首页
社区
课程
招聘
[求助]Armadillo PEID显示1.x,但查信息为v4.4
发表于: 2007-6-20 03:14 4663

[求助]Armadillo PEID显示1.x,但查信息为v4.4

2007-6-20 03:14
4663
!- Protected Armadillo
Protection system (Professional)
!- <Protection Options>
Standard protection or Minimum protection
!- <Backup Key Options>
Fixed Backup Keys
!- <Compression Options>
Better/Slower Compression
!- <Other Options>
Disable Monitoring Thread
!- Version 4.40 31October2005

开始按照1.x的脱壳方法
载入停在这里
004B0C43 >/$  55            push    ebp
004B0C44  |.  8BEC          mov     ebp, esp
004B0C46  |.  6A FF         push    -1
004B0C48  |.  68 909F4D00   push    004D9F90
004B0C4D  |.  68 80094B00   push    004B0980                         ;  SE 处理程序安装
004B0C52  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]

下断 bp OpenMutexA
F9运行
断下,堆栈值:
0012F798   0049C7B8  /CALL 到 OpenMutexA 来自 游戏菜单.0049C7B2
0012F79C   001F0001  |Access = 1F0001
0012F7A0   00000000  |Inheritable = FALSE
0012F7A4   0012FDD8  \MutexName = "FE8::DA7F80D3DA"        ****

Ctrl+G,到401000
填入:
pushad
pushfd
push    12FDD8
xor     eax, eax
push    eax
push    eax
call    kernel32.CreateMutexA
popfd
popad
jmp     kernel32.OpenMutexA

60 9C 68 D8 FD 12 00 33 C0 50 50 E8 97 83 42 7C 9D 61 E9 F0 F5 42 7C 90

点右键 选在此处新建 Eip ,看到Eip 变为 401000

F9运行,断下:
7C830607 >  8BFF            mov     edi, edi
7C830609    55              push    ebp
7C83060A    8BEC            mov     ebp, esp
7C83060C    51              push    ecx
7C83060D    51              push    ecx
7C83060E    837D 10 00      cmp     dword ptr [ebp+10], 0
7C830612    56              push    esi
7C830613    0F84 49130100   je      7C841962
7C830619    FF75 10         push    dword ptr [ebp+10]
7C83061C    64:8B35 1800000>mov     esi, dword ptr fs:[18]
7C830623    8D45 F8         lea     eax, dword ptr [ebp-8]
7C830626    50              push    eax
7C830627    81C6 F80B0000   add     esi, 0BF8
7C83062D    FF15 8C10807C   call    dword ptr [<&ntdll.RtlInitAnsiSt>; ntdll.RtlInitAnsiString
7C830633    6A 00           push    0

清除断点

Ctrl+G,到401000
撤消修改
下断
bp GetModuleHandleA+5
0012EF2C  /0012EF64
0012EF30  |773D8089  返回到 773D8089 来自 kernel32.GetModuleHandleA
0012EF34  |77372E84  ASCII "kernel32.dll"
0012EF38  |773E0598
0012EF3C  |00000000
0012EF40  |77370000
0012EF44  |7C965109  返回到 ntdll.7C965109 来自 ntdll.7C958256
0012EF48  |7C82B227  返回到 kernel32.7C82B227 来自 ntdll.RtlCreateHeap

0012EF70  /0012EF90
0012EF74  |773D52D6  返回到 773D52D6 来自 kernel32.GetModuleHandleA
0012EF78  |77372E84  ASCII "kernel32.dll"
0012EF7C  |7C823EC7  kernel32.GetProcessHeap

0012EF48  /0012EF80
0012EF4C  |77B98A56  返回到 msvcrt.77B98A56 来自 kernel32.GetModuleHandleA
0012EF50  |77B720C0  ASCII "kernel32.dll"
0012EF54  |77BC3A48  msvcrt.77BC3A48
0012EF58  |00000000
0012EF5C  |77B7F78B  msvcrt.<模块入口点>
0012EF60  |7C965109  返回到 ntdll.7C965109 来自 ntdll.7C958256
0012EF64  |7C82B227  返回到 kernel32.7C82B227 来自 ntdll.RtlCreateHeap

0012EF50   77B98AC0  msvcrt.77B98AC0
0012EF54   77BC3B80  msvcrt.77BC3B80
0012EF58   00000012
0012EF5C   77B7F78B  msvcrt.<模块入口点>
0012EF60   00000001
0012EF64   7C82B227  kernel32.7C82B227
0012EF68   0012EF54
0012EF6C   00000000
0012EF70   0012F0C8
0012EF74   77B96C74  msvcrt._except_handler3
0012EF78   77B73200  msvcrt.77B73200
0012EF7C   FFFFFFFF
0012EF80   77B98AC0  msvcrt.77B98AC0
0012EF84   77B9B619  msvcrt.77B9B619
0012EF88   77BC3B68  msvcrt.77BC3B68
0012EF8C  /0012EFB0
0012EF90  |77B9B232  返回到 msvcrt.77B9B232 来自 kernel32.GetModuleHandleA
0012EF94  |77B720C0  ASCII "kernel32.dll"
0012EF98  |7C823EC7  kernel32.GetProcessHeap

这里还有一个,忘了复制过来了

00129524  /0012EC6C
00129528  |00B77122  返回到 00B77122 来自 kernel32.GetModuleHandleA
0012952C  |00B8BC1C  ASCII "kernel32.dll"
00129530  |00B8CEB8  ASCII "VirtualFree"

这里经过几个异常,来到下面
00129288  /00129528
0012928C  |00B65FC9  返回到 00B65FC9 来自 kernel32.GetModuleHandleA
00129290  |001293DC  ASCII "kernel32.dll"

取消断点,Alt+F9返回
00B65FC3    FF15 B860B800   call    dword ptr [B860B8]               ; kernel32.GetModuleHandleA
00B65FC9    8B0D AC40B900   mov     ecx, dword ptr [B940AC]             ;返回到这里
00B65FCF    89040E          mov     dword ptr [esi+ecx], eax
00B65FD2    A1 AC40B900     mov     eax, dword ptr [B940AC]
00B65FD7    391C06          cmp     dword ptr [esi+eax], ebx
00B65FDA    75 16           jnz     short 00B65FF2
00B65FDC    8D85 B4FEFFFF   lea     eax, dword ptr [ebp-14C]
00B65FE2    50              push    eax
00B65FE3    FF15 BC62B800   call    dword ptr [B862BC]               ; kernel32.LoadLibraryA
00B65FE9    8B0D AC40B900   mov     ecx, dword ptr [B940AC]
00B65FEF    89040E          mov     dword ptr [esi+ecx], eax
00B65FF2    A1 AC40B900     mov     eax, dword ptr [B940AC]
00B65FF7    391C06          cmp     dword ptr [esi+eax], ebx
00B65FFA    0F84 2F010000   je      00B6612F                               ;看起来这个是magic jump了,修改je为jmp
00B66000    33C9            xor     ecx, ecx
00B66002    8B07            mov     eax, dword ptr [edi]
00B66004    3918            cmp     dword ptr [eax], ebx
00B66006    74 06           je      short 00B6600E                        

在下面找到
00B66144   /EB 03           jmp     short 00B66149  ;这里下断,F9运行,断下后取消之前的修改
00B66146   |D6              salc
00B66147   |D6              salc

到这里教程上的第一步就完成了,开始第二步
bp GetCurrentThreadId
取到下面这些:
0012F6D0   00406597  /CALL 到 GetCurrentThreadId 来自 xxxxxx.00406592
0012F6D4   00404593  返回到 游戏菜单.00404593
0012F6D8   0012F710  指向下一个 SEH 记录的指针
0012F6DC   004045A1  SE处理程序

00DDFE1C   73443505  /CALL 到 GetCurrentThreadId 来自 MSVBVM60.734434FF
00DDFE20   7354E470  MSVBVM60.7354E470
00DDFE24   00000000

00DDFDF8   76D21426  /CALL 到 GetCurrentThreadId 来自 adsldpc.76D21420
00DDFDFC   00000000
00DDFE00   00000003
00DDFE04   76D20000  adsldpc.76D20000
00DDFE08   76D21414  返回到 adsldpc.76D21414 来自 adsldpc.76D2141B

00DDFE44   76E7128B  /CALL 到 GetCurrentThreadId 来自 WLDAP32.76E71285
00DDFE48  /00DDFE68
00DDFE4C  |76E71176  返回到 WLDAP32.76E71176 来自 WLDAP32.76E7119A

00DDFE14   77F47266  /CALL 到 GetCurrentThreadId 来自 ADVAPI32.77F47260
00DDFE18   00000003

0012F698   004255EE  /CALL 到 GetCurrentThreadId 来自 xxxxxxx.004255E9
0012F69C   00000001

0012F684   00439030  /CALL 到 GetCurrentThreadId 来自 游戏菜单.0043902B
0012F688   0012F6AC
0012F68C   0012F6C4  指向下一个 SEH 记录的指针
0012F690   00439134  SE处理程序

0173FBF0   77B7F5E3  /CALL 到 GetCurrentThreadId 来自 msvcrt.77B7F5DD
0173FBF4   00000000

0173FBD8   76E711C2  /CALL 到 GetCurrentThreadId 来自 WLDAP32.76E711BC
0173FBDC  /0173FBFC

0173FBB4   73443505  /CALL 到 GetCurrentThreadId 来自 MSVBVM60.734434FF
0173FBB8   00000000

0012F374   71ADC291  /CALL 到 GetCurrentThreadId 来自 71ADC28B
0012F378   0012F37C
0012F37C   00000030

0012E8A8   744315F7  /CALL 到 GetCurrentThreadId 来自 744315F1
0012E8AC   00000001

这里的每个都试过返回都找不到正确的出路了。。能不能帮我提供下思路?

现在都不知道是错在哪里了。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 224
活跃值: (75)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
dilloDIE 搞定
2007-6-20 11:18
0
游客
登录 | 注册 方可回帖
返回
//