upx、asp脱壳

本文介绍了如何使用单步跟踪法和ESP大法进行程序脱壳,特别探讨了UPX和ASP壳的脱壳过程。通过设置内存断点,找到并修复被压缩的原始代码。针对可能遇到的程序运行问题,如无法运行或脱壳不完全,提出了相应的解决方案,包括文件大小修复和IAT修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 单步跟踪法,找大跳
0040D001 >  60              pushad
0040D002    E8 03000000     call NotePad_.0040D00A                   ; 不能在这里下F4
0040D007  - E9 EB045D45     jmp 459DD4F7                             ; 跳转太大,也不能在这里下
0040D00C    55              push ebp                                 ; 可以在这里下F4
0040D00D    C3              retn
0040D00E    E8 01000000     call NotePad_.0040D014                   ; 涉及到call和jmp还有nop指令的,一般都绕过,悠着点,跳到这些指令的下一条
0040D013    EB 5D           jmp short NotePad_.0040D072
0040D015    BB EDFFFFFF     mov ebx,-13

备注:有时候程序会跑飞,这时候call也得跟进去

  • ESP大法, 通用
    hr esp

  • ctrl+f popad
    仅适用于upx, 不适用于asp

备注:我说错了。这个也是通用的。od是怎么找的呢,在内存中找指令对应的字节。所以会出现找到后,强行解释后面的指令就错了,这说明找到的不是原本代码中的,是拆解了。应该继续找。

  • 内存镜像法(仅适用于upx,是根据upx压缩的算法的出来的)
    ALT+M打开内存
    找到.rsrc,F2下断,F9运行
    ALT+M打开内存
    找到UPX0,F2下断,F9运行

备注:其实这种方式是通用的,先资源断点,再text断点。我说错了。upx0就是text段。

upx\asp 好脱壳是因为这两种壳都是压缩壳,属于解压缩后就是完整原始代码的压缩方式。

lordPE、ollydump等都属于对内存的dump操作,因此到达oep后就不要动了。dump完了之后看下如果没壳了但是运行不了,那就是IAT的事情用importFix修复下就行了。如果dump完了之后发现还是没脱壳,IAT修复也无济于事。

lordPE需要先修复文件大小,然后dumpimportFix属于对内存程序中的IAT修复,所以,多种dump出来方式,用一次ImportFix就够了。不用不同的dump方式,然后每一次都importfix.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值