记一次手动脱壳
来源:互联网 发布:lol美服加速器免费mac 编辑:程序博客网 时间:2024/06/11 00:41
以前一直都是用脱壳工具直接脱壳,最近学了手动脱壳的一些知识,就尝试了一次简单的手动脱壳。
我使用吾爱破解版的OD来脱壳,因为上面自带了插件OllyDump。不得不说这个功能十分强大,原以为脱壳出来还要重建修复表的,结果发现居然不用,完成了以后一脸懵逼,完全不敢相信成功了。
首先,遇到了这个的话,都选否。
原来的OD似乎是要先执行一段代码,再开始执行壳的(从pushad那里开始)如下图:
执行那个call函数以后,才开始执行壳:
而吾爱破解版的有所不同,上来就是壳的代码:
这里采用PUSHAD—POPAD法:壳开始是PUSHAD,那么结尾一定在POPAD附近。
直接Ctrl+F,搜索popad,去掉“整个块”上的钩
在那里f2设上断点,f9运行到,或者直接在那条指令上按F4(运行到此处停止)
接下来的3条语句循环应该是平衡栈,直接设断点f9跳过,然后到了那个jump那里,执行跳转,到的就是OEP(程序原入口点)。
这里普及一下OEP的判断,关于调用main前被调用的函数:
关于起始的汇编语句:
可以对比一下,基本一致。
各语言的OEP开始几行代码参考:
http://blog.csdn.net/pxm2525/article/details/39968381
调试运行到了OEP后,插件-OllyDump-脱壳在当前调试的进程。
点击脱壳就行了。可以看到起始地址由0x40f8d0改为了0x40131e。
脱壳后程序可以用IDA分析了(不过分析时还是会有提示说有壳)。
关于手动脱壳的其他方法,可以参考
http://www.docin.com/p-1602586172.html
- 记一次手动脱壳
- 手动脱壳
- 手动脱壳入门破文锦集
- 常用手动脱壳方法
- ASProtect 1.23 手动脱壳
- 手动脱壳VMP
- 手动脱壳技巧总结
- 手动脱壳nSPack 3.7
- 手动脱壳之PECompact
- 手动脱壳进阶锦集
- FSG2.0 手动脱壳笔记
- 手动脱壳方法及原理
- 手动脱壳进阶第二篇Telock0.98
- 手动脱壳NsPack V1.4 -> LiuXingPing *
- 手动脱壳之-胡乱一脱
- 手动脱壳----PECompact 2.x -> Jeremy Collake
- Ollydbg手动脱壳得几点小结
- 逆向基础:软件手动脱壳技术入门
- LeetCode 189---Rotate Array
- C#接口的意义
- Python 机器学习
- 微信为什么不丢消息?
- pip安装
- 记一次手动脱壳
- ndk编译C++,提示找不到头文件(ndk-build error: string: No such file or directory)
- ajax发送json数据到springmvc的controller
- 浏览器定位之 - 百度定位地图显示
- Unity AssetBundle管理(一)
- Linux获取jdk版本中的“1.7.0_75”字符串
- iOS常见的闪退问题及解决方法
- 清除缓存工具类
- 神奇的SpannableString