ReversingWithLena——03. Basic nag removal + header problems

03. Basic nag removal + header problems


实验要求消除掉多余的nags。

查看文件可以看到比较eax与0,不相等则会弹出第一个nags。
EAX是函数GetModuleHandleA()的返回值,该函数的功能是获取ImageBase。因此EAX一定不等于0。

可以想到的修改方法有:

  1. 修改cmp语句为cmp eax,eax
  2. 修改条件跳转语句je为jne
  3. 覆盖跳转部分为NOP

这里Lena的视频中提到了一个新的思路:修改可执行文件EP

选中Dump区域,点击M。
在这里插入图片描述双击PE头查看可以看到EP=1000:
在这里插入图片描述
可以直接在Dump区域修改相应位置的值从而改变EP,这里修改为1024:
在这里插入图片描述
重新执行,可以看到修改成功,此时成功消除了nags。
在这里插入图片描述
对于另一个nags,这里直接使用nop填充即可:选中右键-Binary-Fill with NOPs。
在这里插入图片描述
对于第二个文件RegisterMe.Oops,讲解视频中提到它的问题在于加壳,OD打开时显示的EP为结尾处。

点击M查看,可以看到PE头和节区信息存在问题:
在这里插入图片描述
查看EP=1000:
在这里插入图片描述双击PE头并下滑:
在这里插入图片描述
可以看到需要修改以下信息:
在这里插入图片描述在这里插入图片描述
进行修改:在这里插入图片描述
保存再次查看程序正常:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值