saning 发表于 2009-2-11 15:36:29

用Armadillo_Find_Protected_V1.8查穿山甲壳时出现的问题

用Armadillo_Find_Protected_V1.8英文版和汉化版查的保护方式如下:
!- 目标为Armadillo保护
!- 保护系统级别为 (专业版)      
!- <所用到的保护模式有>
屏蔽调试器   
使用输入表乱序模式            
使用策略代码拼接模式         
使用 Nanomites 处理模式   
!- <备份密钥设置>      
固定的备份密钥   
!- <目标程序压缩设置>   
较好 / 较慢 的压缩方式   
!- <其它保护设置>
!- 版本号: 5.40 28-01-2008
!- 共使用的时间 00h 00m 15s 234ms
--------------------------------------
保护模式明明没有双进程模式,为啥打开程序后在进程里面依然显示为双进程。这是怎么回事呢?
脱壳过程用lqiulu大牛的软件脱壳教程。
利用Armadillo Process Detach 1.31版工具的CopyMemⅡ方式载入加壳程序。
(Armadillo Process Detach 1.31版工具有两种模式,1种为CopyMemⅡ模式,用于dump脱壳主程序的。
另一种模式为Debug-Block模式,用于取得解密的IAT完整数据的。)
用了这个工具的CopyMemⅡ方式,无法Detached successfully,到
Debug-Blocker protection detected
Process terminated.
就结束了。。这是怎么回事?
有以为两个问题望明白的大牛解答下!谢谢。。

[ 本帖最后由 saning 于 2009-2-11 15:38 编辑 ]

lqiulu 发表于 2009-2-11 16:23:27

这说明是标准的双进程模式,可以用标准的方法进行脱壳。
1 分离父子进程
下断点BP OpenMutexA
(用的是两次修改法。修改断下后alt+f9返回后下面的第一个条件跳,je改为jne,jnz改为je。这两次更改后运行就完成了双进程变单进程。

2处理IAT加密
用VirtualProtect这个断点,主要采用的是大缓冲的方法来断定返回时机。还有就是eax为程序的首地址00401000时的方法。到了返回时机后我们用alt+f9返回,返回程序后,ctrl+f查找“push 100”并且选中下面的“全段”选框。找到后向上把push ebp改为retn,这个过程就完了。

3 寻找入口点

我们采用的是CreateThread这个断点。断下后返回,然后f8单步并查找call EXX句,到这个语句进入就是程序的oep了。然后用Arminline工具处理远地址跳等东西,最后就可以dump,并修复了。


[ 本帖最后由 lqiulu 于 2009-2-11 16:34 编辑 ]
页: [1]
查看完整版本: 用Armadillo_Find_Protected_V1.8查穿山甲壳时出现的问题