pecompact 压缩壳脱壳初探

背景

一个朋友找我脱壳,不过我从来没有脱壳,于是我研究了一下pecompact脱壳。

网上知识

https://blog.51cto.com/u_15076212/3690173

自己过程

  1. 我按照网上知识走
  2. 按照他方法脱,发现不能用
  3. 我x86dbg 分析,发现地址不能访问,我发现重定位表没有修改
    我后面发现脱壳,都需要修复重定位表
  4. 我搜索这个有关知识,要么就修复重定表,要么就设置程序不要动态基地址。
  5. 我用studype+设置固定地址
  6. 网上有修复重定位表脚本,本来想有时间自己写一个小软件修复重定位表的,但感觉以后基本没有时间研究这个,毕竟好玩的东西太多。。

    总结

  7. pecompact 用SEH,触发修改代码
  8. 加壳就是动态加载pe那套技术
  9. 可以用在virtualalloc 下断点,基本能够很快找到oep
  10. 单点跟,我用x86dbg很容易出现跑飞,异常情况,我开始因为壳导致,后面发现知识x64dbg软件问题,所以直接在后面加断点。
  11. 压缩壳,内存里面真正有PE,所以直接dump,修改PE入口点,导出即可。
  12. 如果打补丁,感觉不一定要脱壳,可以在写dll注入程序,等动态加载成功,然后再修改内存的代码,这样子壳兼容性就基本不用考虑了。

压缩壳为了压缩,并不是为了加密,可能加大破解地方。

其他脱壳资料

https://www.dounaite.com/article/62cdcc63f4ab41be487a5715.html
https://www.anquanke.com/post/id/99750

说明

这篇文章只是自己第一次脱壳,遇到一些问题,怎么思考,怎么解决问题过程。写这篇文章只是为了记录自己技术点滴而已,用于优化自己思考方式而已。