也来谈谈POLYBOX的简单脱壳法
之前论坛的ximo写过一篇脱文 这里我补充个简单的完美脱壳法其实类似POLYBOX这种壳 并不算真正意义上的壳 看雪有人称之为"伪壳" 我喜欢把它称作"捆绑壳" 因为他的原理像极了捆绑机 加壳完成后我们看到的是他的STUB 被加壳程序则一般用各种方式保存在资源里 比如POLYBOX的以前一个版本 将被加壳程序用随机的密钥加密储存在资源里 运行的时候从内存解密出来 所以没有改变源程序的任何代码
这是这类伪壳的特点 所以我们也因此有了通用的完美脱壳法
这里我用POLYBOX对一个DELPHI程序加壳 PEID查壳FSG 2.0 -> bart/xt 我们会对这个附加数据产生好奇 将其保存起来 用WINHEX看
可以依稀看出来是个PE文件 但是显然是被处理过了的 是不是我们的源文件呢?这里我们会很自然的猜想:按照这类伪壳的思路 很可能这里的附加数据就是被加密处理过的源程序 我们查壳查到的FSG 则可能是加了壳后的STUB
OD载入
明显是FSG的入口特征 脱法 ximo介绍过了 我不多说了 来到伪OEP 也就是STUB的入口
跟进第二个CALL 发现经过00402D8C处时 信息窗口中出现了如图所示信息
看来是将源程序写入了临时空间 继续经过00402D9D的时候发现程序运行了 证实了我们的这一猜想
重新来过 跟入00402D9D 单步跟踪可以看到在将解密后的源程序写入内存空间 写入前创建了一个进程 并挂起 完全写入后恢复此线程
至此 这种伪装壳的原理我们已经摸清楚了 现在开始简单脱壳的过程
OD载入 bp CreateProcessA 执行到返回
单步到
从信息窗口中看到写入的内存地址为008F0000
bp ResumeThread 执行到返回 程序运行了 关闭程序(方便后面DUMP)
LOADPE选取目标进程 将008F0000 大小为0005C000的段转存为dumped.exe
PEID查壳
用FFI删除附加数据 得到与加壳前一模一样的源程序
至此 脱壳完成
DUMP过程可以参见此动画 http://www.52pojie.cn/read.php?tid-6563.html 东西学走 亲切的问候楼主 辛苦了````
搞到这了
从信息窗口中看到写入的内存地址为008F0000
bp ResumeThread 执行到返回 程序运行了 关闭程序(方便后面DUMP)
LOADPE选取目标进程 将008F0000 大小为0005C000的段转存为dumped.exe
这里能写详细些吗??? 好教程啊 来学习下啊。。。 kissy讲得真好啊,还有视频教程太好了,这就学习。 难得的详细教材。谢谢。 看过学习了啊 ~~~~~~~~~~~~~ 好好学习学习 kissy讲得真好啊,还有视频教程太好了,这就学习 谢谢分享咯