在游戏中,很多地方都有障碍物,那么怎么才能越过障碍物快速进行行走呢?
我们可以逆向分析它的障碍物判断函数,然后修改他的返回值或者直接jmp跳过检测就可以实现障碍物的穿越了。
下面就来说说具体的思路:
.要怎么寻找障碍物判断call?
可以通过其他的方法来进行判断,比如人物的坐标来进行判断,首先找到人物坐标的地址,然后通过CE下访问了这个地点的地址,然后就在没有障碍的时候就会调用某些代码,而在有障碍的时候就无法走路,就不会调用到那些代码。所以在这附近就一定有关于障碍物判断的函数。
.要怎么修改代码来实现穿过障碍物呢?
可以修改那个具体call的返回值,让那个call返回值为没有障碍物的返回值就可以实现了。
或者修改返回值后面的条件判断,让他jmp到指定的地点。
也可以在后面调用函数返回值的地方直接修改返回值的值就可以达到穿墙的效果了。
.那么一般的障碍物判断的代码是怎么样的呢?
CALL XXXXXX
比较( test , cmp)等,比如test eax ,0x1
跳转(jz jnz jmp)等。
只要在附近看到这样的代码,一般就是穿墙call的几率就比较大,就可以值得分析一下
以上就是穿墙分析的具体思路了~~具体思路还是要看具体游戏来进行分析了