经过几天的琢磨,本人对找CALL又有了新认识,写出来与新手共享!
1、先明白什么是call
(调用)
用于将程序的执行交给其他的代码段,通常是一个子例程,同时保存必要的信息,从而使被调用段执行完毕后返回到调用点继续执行。 描述 将控制权传递给 Sub 过程或 Function 过程。
在OD中一般格式:call 地址A

2、OD汇编中函数或过程的格式。
第一句一般是:push EBP

最后一句是:retn X

3、ctrl+F9使用
下断bp send,点运行,在断点处断下来。按ctrl+F9回到游戏领空。


4、找有用的Call过程。
到了游戏领空。向上找到过程的起点,下断。运行,依次按游戏功能。

黄色框内是下的断点。结果不管按那个都断下来,说明这可能是共同的过程。
这时候注意红色框内容。意思是这个过程由框内所指的四个地方调用了。这时在红色框(跳转窗口)点右键选择回到调用点再分析。

点第一个跳转。会到调用的Call处。清除其它断点,在此下断。再依次点功能实验。发现点技能才断下,说明这是技能call.

但是两个技能都会断下来。这时我们回到这个调用的头部。

再下断(注意清除以前的断),看跳转窗口内的两个调用,可能就是那两个技能的调用CAll,你找找看,有时间再写,其实其它几个功能都这样找。