首页
社区
课程
招聘
[求助]Armadillo 3.78双进程保护的壳脱壳问题
发表于: 2013-1-7 11:05 4387

[求助]Armadillo 3.78双进程保护的壳脱壳问题

2013-1-7 11:05
4387
最近遇到一个Armadillo 3.78的壳,本人菜鸟,按照大大们的教程进行脱壳操作,总是找不对地方,在这里提出还请各位大大们帮忙~
具体方法如下:
1、OD载入,因为是双进程保护,所以用脚本先分离父子进程,脚本在论坛里面就有;

2、2避开IAT加密

下断点 HE GetModuleHandleA

按F9运行中断后,看堆栈:

0012CC68   762EF4A7  /CALL 到 GetModuleHandleA 来自 ole32.762EF4A1
0012CC6C   762EF528  \pModule = "rpcrt4.dll"
0012CC70   762EFE05  返回到 ole32.762EFE05 来自 ole32.762EF49C

0012CC68   672AF49D  /CALL 到 GetModuleHandleA 来自 safemon.672AF497
0012CC6C   672CE394  \pModule = "KERNEL32"

0012D2D8   6723D87C  /CALL 到 GetModuleHandleA 来自 safemon.6723D876
0012D2DC   672D0158  \pModule = "kernel32.dll"

0012D6E4   004F4BA3  /CALL 到 GetModuleHandleA 来自 AutoCCMa.004F4B9D
0012D6E8   00000000  \pModule = NULL

00127B38   00781B31  /CALL 到 GetModuleHandleA 来自 00781B2B
00127B3C   00796364  \pModule = "kernel32.dll"
00127B40   00797588  ASCII "VirtualAlloc"

00127B38   00781B4E  /CALL 到 GetModuleHandleA 来自 00781B48
00127B3C   00796364  \pModule = "kernel32.dll"
00127B40   0079757C  ASCII "VirtualFree"

00106F24   0078C9DA  /CALL 到 GetModuleHandleA 来自 0078C9D4
00106F28   00000000  \pModule = NULL

00106F58   0078C640  /CALL 到 GetModuleHandleA 来自 0078C63E
00106F5C   00000000  \pModule = NULL

多次运行注册窗口开始启动,并提示EIP错误,在此情况下Shift+F9继续运行,堆栈出现以下提示
001278A8   014B9CD7  /CALL 到 GetModuleHandleA 来自 014B9CD1
001278AC   001279EC  \pModule = "kernel32.dll"                         ; 在这里清除硬件断点后Alt+F9返回程序

Alt+F9返回到这里来了
014B9CD7    8B0D 74B74E01   MOV ECX,DWORD PTR DS:[14EB774]            ; 返回到这里
014B9CDD    89040E          MOV DWORD PTR DS:[ESI+ECX],EAX           ; kernel32.75E20000
014B9CE0    A1 74B74E01     MOV EAX,DWORD PTR DS:[14EB774]
014B9CE5    391C06          CMP DWORD PTR DS:[ESI+EAX],EBX
014B9CE8    75 16           JNZ SHORT 014B9D00
014B9CEA    8D85 B4FEFFFF   LEA EAX,DWORD PTR SS:[EBP-14C]
014B9CF0    50              PUSH EAX                                 ; kernel32.75E20000
014B9CF1    FF15 DC004E01   CALL DWORD PTR DS:[14E00DC]              ; kernel32.LoadLibraryA
014B9CF7    8B0D 74B74E01   MOV ECX,DWORD PTR DS:[14EB774]
014B9CFD    89040E          MOV DWORD PTR DS:[ESI+ECX],EAX           ; kernel32.75E20000
014B9D00    A1 74B74E01     MOV EAX,DWORD PTR DS:[14EB774]
014B9D05    391C06          CMP DWORD PTR DS:[ESI+EAX],EBX
014B9D08    0F84 3B010000   JE 014B9E49                                         ; 改成为 JMP 00C05E47 修改这是为了避开IAT加密
014B9D0E    33C9            XOR ECX,ECX                              ; ntdll.77606500
014B9D10    8B07            MOV EAX,DWORD PTR DS:[EDI]
014B9D12    3918            CMP DWORD PTR DS:[EAX],EBX
014B9D14    74 06           JE SHORT 014B9D1C
014B9D16    41              INC ECX                                  ; ntdll.77606500
014B9D17    83C0 0C         ADD EAX,0C
014B9D1A  ^ EB F6           JMP SHORT 014B9D12
014B9D1C    8BD9            MOV EBX,ECX                              ; ntdll.77606500
014B9D1E    C1E3 02         SHL EBX,2
014B9D21    53              PUSH EBX
014B9D22    E8 A9530200     CALL 014DF0D0                            ; JMP 到 msvcrt.??2@YAPAXI@Z

3 寻找入口点

继续下断点 bp GetCurrentThreadId

按F9运行中断后,看堆栈:
0012754C   72941E46  /CALL 到 GetCurrentThreadId 来自 72941E40
0012752C   7294352D  /CALL 到 GetCurrentThreadId 来自 72943527
00127B40   00000000
到了这里以后就进行不下去了找不到大大们说的返回的程序的地方,F9运行始终没有 /CALL
按照教程来走找不到北了

新人比较菜,还请各位大大们指教~

脱壳程序放到附件中了,有大大能指点帮我脱壳么?
更新文件

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
---------------------------
错误
---------------------------
Cannot find import; DLL may be missing, corrupt, or wrong version
File "libtiff.dll", error 126
---------------------------
确定   
---------------------------

为什么不把文件给齐,起码让别人能运行啊。。
2013-1-7 12:24
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不好意思,压缩的时候就选了一个文件,已经重新压缩了~麻烦帮忙看看吧。谢谢~
2013-1-7 13:07
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
先到这里看看。
2013-1-7 13:22
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
高手啊,感谢论坛热心的朋友们。
再请教下达文西,PEID查壳怎么会变成Armadillo 1.xx - 2.xx的了呢?还是已经脱好壳的了?
还有是怎么做的呢?我的思路错在哪里了?
2013-1-7 13:31
0
游客
登录 | 注册 方可回帖
返回
//