-
-
关于 ASProtect 2.1x SKE 脱壳
-
发表于:
2005-12-26 16:31
7164
-
论坛上SYSCOM发了很多关于ASProtect 2.1x SKE的脱壳文章,
我也照葫芦画瓢练习了一下。凑巧遇到一程序就是用的
ASProtect 2.1x SKE加的壳(PEID0.94),于是实战开始:
1.忽略除内存访问异常外的其它异常 F9运行
2.按 CTRL+B 搜索 83 C4 2C 5D 5F 5E 5B C3 找到一处位置。
但是下硬件断点后直到程序运行也没有中断下来!
于是在第31次异常后(32次异常后程序运行)在SEH句柄处F2
下断点,SHIFT+F9一次中断下来后取消断点。这时向下翻就
可以看到刚才搜索到的位置! 下F2断点 F9运行后中断下来了:)
3.取消断点 F7跟进CALL 运行到RET时 按 CTRL+B 搜索
89 45 F0 B8 00 07 00 00 找到一处地方 修改跳转吧。
4.F7一下来到伪OEP开始处(?) 找空地贴上PATCH代码 并在代码开始处
新建EIP,开始模拟运行每一处的 CALL 00XX0000。
但是跳到相应位置执行call时出错了! :( 感觉是模拟运行的
参数可能有问题,无奈汇编基础太差,找不出原因。 恳请高手指点!
脱壳无果只有考虑INLINE PATCH了。幸运的是ASProtect 2.1x SKE对付
inline patch的方法没什么特别的,按照以前的方法就可以搞定。只是
需要注意的是壳中增加了对一些空闲位置的检测,不小心就会发现你写
的修复代码被清零了!下内存访问断点就能找到清除代码 也相应PATCH
一下就OK了。
个人感觉对付ASProtect 2.1x SKE加壳程序,采用INLINE PATCH更好破
解,但不利于软件的汉化。
不知道大家怎么看,希望能多多交流一下。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)