解密——OD使用指南
1.OD中ctrl+f9:运行到返回,就是运行到当前断点所在的函数末尾"retn xxx"处,若xxx=10,那么10等于10进制的16,就是说这个函数有4个参数,一个参数默认是占4字节,所以就是retn 10。
2.调试程序时,在OD内部小窗口左上角会显示当前断点所在的函数层,是在系统领空还是某个应用程序领空。
3.call前出现lea edx,dword ptr ss:的分析方法:
当在call处出现类似于下面,在call内部存在对edx的使用时:
call处:
lea edx,dword ptr ss: ;将ebp-8堆栈地址赋给edx,注意是堆栈地址,不是堆栈地址上存储的数据。
call 0045255c
call内部:
mov esi,edx
...
push esi
那么在写call调用的时候,怎么办呢?
只需要查看当程序停在call处时,edx寄存器的数值,然后去找到edx数值代表的堆栈地址处存储的数据是什么。
是1,所以我们就可以通过ce查找出当前为0的值,为0可能就是无关数据,选择一个地址,修改为1,然后将该地址
赋给edx。
就是mov edx, xxxxx
call 0045255c
嘻嘻不错支持一个 还是看不懂,复杂 不错不错 支持下 学习一下!十分感谢 我表示压力很大 学习了!!!! 我表示压力很大 碉堡了! 赞一个!