Ollydbg学习

小弟最近开始学习反汇编。碰到一个具体的例子,在此记录一下。

使用的小程序是Part10Tut.ReverseMe。首先碰到第一个问题:去除所有的Nag。关键在于寻找一个函数代码的起始地址。后续根据书上的示例和自己做的过程仔细对照,发现可以从栈中寻找。

图中是正在进入的函数语句,需要寻找它的代码位置。此时函数还没进入栈中,观察此时的栈:

栈顶元素所指向的地址为0F038913,使用ctrl+G语句在地址中寻找该地址:

找到该处地址。如何确定自己找的对不对呢?在语句的上一句call函数处设置断点,运行程序,停在了断点处,继续执行程序,发现它返回了00402C17地址,就是需要动手脚处函数的地址。可以确定,我们找到了代码的存放地址。接下来需要确定函数的参数有几个,以便返回正确的栈地址。

最终可以确定,应该返回4栈地址以跳过函数。改写为retn 4。

以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值