自己的脱壳过程(FSG2.0)

本文介绍了作者在UPK论坛中通过一个脱壳示例学习逆向工程的过程。首先,作者提到脱壳的关键在于找到OEP,通过单步跟踪,识别出call和jmp指令可能指向OEP。接着,作者通过改变程序流程验证了 jmp dword ptr [ebx+C] 是到达OEP的入口,并使用IR工具分析输入表,发现仅有少量函数,不符合正常程序的特征。为修复输入表,作者将第一条函数的RVA地址导入IR,并删除无效函数,最终成功保存并运行程序。
摘要由CSDN通过智能技术生成

(此系列脱文附件有兴趣才找我要吧,留言)

在UPK论坛下了一个密界精华,其实没看到有特别牛的东西,但是适合我等菜鸟,决定先把里面的脱壳示例中的程序脱一次,积累经验。

在我的脱文里,我会尽量将每一步的缘由说清楚,但如果你是基本反汇编,PE格式都不知道的就。。了


到OEP的方法:因为是压缩壳,跳转到OEP的方法多半是用jmp等跳转指令,所以单步跟踪即可

过程:

一直单步直到这个地方,你会发现如果想在004001DC上F4,程序会跑飞,所以到达OEP的代码一定在上面

而可能到达OEP的代码只可能是那个call和jmp,因为其他跳转指令都是近跳转。

改变程序流程使得call    dword ptr [ebx+14]执行,发现程序没跑飞,也就是说jmp     dword ptr [ebx+C]是到达OEP的地方

004001CA    8B07              mov     eax, dword ptr [edi]
004001CC    40                inc     eax
004001CD  ^ 78 F3             js      short 004001C2
004001CF    75 03             jnz     short 004001D4
004001D1    FF63 0C           jmp     dword ptr [ebx+C]
004001D4    50                push    eax
004001D5    55           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值