逆向工程——调试upx压缩的notepad程序

一. 比较notepad.exe与notepad_upx.exe的EP代码

notepad.exe:
在这里插入图片描述
程序的EOP在0100739D处,在010073B2处调用函数getModuleHandleA()API,获取notepad.exe的Imagebase。然后在010073B4和010073C0处比较MZ和PE签名,这部分的EP代码很重要,后面分析notepad_upx.exe时会进行比较,也方便找到真正的程序的OEP。
notepad_upx.exe:
在这里插入图片描述
在地址01015330处是压缩之后的第二节部分,PUSHAD命令将EAX~EDI寄存器的值保存到栈中,然后分别把第二个节区的起始地址(01011000)与第一个节区的起始地址(01001000)设置到ESI与EDI寄存器中。
在地址01015330处上方的代码是notepad.exe的源代码;

UPX文件第一节区仅存在于内存,该处即是解压后保存源文件代码的地方

调试时像这样同时设置ESI和EDI,就能预见从ESI(Source)所指的缓冲区到EDI(Destination)所指的缓冲区的内存发生了复制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值