首页
社区
课程
招聘
再问ARM壳的问题.
发表于: 2006-9-14 22:38 3615

再问ARM壳的问题.

2006-9-14 22:38
3615
用PEID0.94查壳显示为:Armadillo 3.00a - 3.61 -> Silicon Realms Toolworks 双进程.CopyMem-II

下断点:BP WaitForDebugEvent,F9运行,Shift+F9两次来到下面

7C85A268 >  8BFF            mov     edi, edi                         ; 复Ex91.008508C8
7C85A26A    55              push    ebp
7C85A26B    8BEC            mov     ebp, esp
7C85A26D    83EC 68         sub     esp, 68
7C85A270    56              push    esi
7C85A271    FF75 0C         push    dword ptr [ebp+C]
7C85A274    8D45 F8         lea     eax, [ebp-8]
7C85A277    50              push    eax
7C85A278    E8 F381FAFF     call    7C802470
7C85A27D    8BF0            mov     esi, eax
7C85A27F    56              push    esi
7C85A280    8D45 98         lea     eax, [ebp-68]
7C85A283    50              push    eax
7C85A284    E8 9A520200     call    <jmp.&ntdll.DbgUiWaitStateChange>
7C85A289    3D 01010000     cmp     eax, 101
7C85A28E  ^ 74 EF           je      short 7C85A27F
7C85A290    3D C0000000     cmp     eax, 0C0
7C85A295  ^ 74 E8           je      short 7C85A27F
7C85A297    85C0            test    eax, eax
7C85A299    7D 07           jge     short 7C85A2A2
7C85A29B    3D 02000140     cmp     eax, 40010002
7C85A2A0    75 26           jnz     short 7C85A2C8
7C85A2A2    3D 02010000     cmp     eax, 102
7C85A2A7    75 0E           jnz     short 7C85A2B7
7C85A2A9    6A 79           push    79
7C85A2AB    E8 10F0FAFF     call    7C8092C0
7C85A2B0    33C0            xor     eax, eax
7C85A2B2    5E              pop     esi
7C85A2B3    C9              leave
7C85A2B4    C2 0800         retn    8

堆栈窗口:在12DA7C点在数据中跟随.

0012DA78   00825AF7  /CALL 到 WaitForDebugEvent
0012DA7C   0012EB54  |pDebugEvent = 0012EB54
0012DA80   000003E8  \Timeout = 1000. ms

接下来再下断点:bp WriteProcessMemory,F9

7C80220F >  8BFF            mov     edi, edi
7C802211    55              push    ebp
7C802212    8BEC            mov     ebp, esp
7C802214    51              push    ecx
7C802215    51              push    ecx
7C802216    8B45 0C         mov     eax, [ebp+C]
7C802219    53              push    ebx
7C80221A    8B5D 14         mov     ebx, [ebp+14]
7C80221D    56              push    esi
7C80221E    8B35 B812807C   mov     esi, [<&ntdll.NtProtectVirtualMe>; ntdll.ZwProtectVirtualMemory

0012D918   00829B0F  /CALL 到 WriteProcessMemory
0012D91C   0000004C  |hProcess = 0000004C
0012D920   005B8000  |Address = 5B8000
0012D924   003EBAD8  |Buffer = 003EBAD8
0012D928   00001000  |BytesToWrite = 1000 (4096.)
0012D92C   0012DA34  \pBytesWritten = 0012DA34

我想问的是:
用bp WriteProcessMemory我只断下来过一次.后来怎么都断不下来.请FLY帮帮我.

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
2
搜索论坛文章,N多!
2006-9-14 23:49
0
雪    币: 62
活跃值: (1977)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
加密文集1,2凡ARM壳都看了.而且我还在不同的三台电脑上试过,我曾怀疑我的系统,重装过两次系统.不行.
2006-9-14 23:59
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
用 Armadillo.Find.Protected.V1.4.Special.Editing.for.UnPacK.cN.By.vel 察看具体保护方式
用 dilloDIE.V1.6 试试自动脱壳
2006-9-15 09:17
0
雪    币: 62
活跃值: (1977)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
保护方式:
!- Protected Armadillo
?- Signature = 48A038E0
Protection system (Professional)
!- <Protection Options>
Debug-Blocker
CopyMem-II
Enable Import Table Elimination
Enable Strategic Code Splicing
Enable Nanomites Processing
!- <Backup Key Options>
Fixed Backup Keys
!- <Compression Options>
Better/Slower Compression
!- <Other Options>

我用脱壳机已成功脱掉,但是我想弄不明白我为什么会断不下来.我也试过先用bp OpenMutexA

0012F56C   00821CAD  /CALL 到 OpenMutexA
0012F570   001F0001  |Access = 1F0001
0012F574   00000000  |Inheritable = FALSE
0012F578   0012FBAC  \MutexName = "DB0::DA7342392C"

然后CTRL+G 401000

00401000    60              pushad
00401001    9C              pushfd
00401002    68 ACFB1200     push    12FBAC
00401007    33C0            xor     eax, eax
00401009    50              push    eax
0040100A    50              push    eax
0040100B    E8 2FDB407C     call    kernel32.CreateMutexA
00401010    9D              popfd
00401011    61              popad
00401012  - E9 04DC407C     jmp     kernel32.OpenMutexA

在401000处新建EIP,然后F9断在OpenMutexA处,然后取消401000处的修改.
找 magic jmp 命令行下断点,bp GetModuleHandleA

010D96FF    FF15 C8B00F01   call    [10FB0C8]                        ; kernel32.GetModuleHandleA
010D9705    8B0D C04C1001   mov     ecx, [1104CC0]
010D970B    89040E          mov     [esi+ecx], eax
010D970E    A1 C04C1001     mov     eax, [1104CC0]
010D9713    393C06          cmp     [esi+eax], edi
010D9716    75 16           jnz     short 010D972E
010D9718    8D85 B4FEFFFF   lea     eax, [ebp-14C]
010D971E    50              push    eax
010D971F    FF15 D0B00F01   call    [10FB0D0]                        ; kernel32.LoadLibraryA
010D9725    8B0D C04C1001   mov     ecx, [1104CC0]
010D972B    89040E          mov     [esi+ecx], eax
010D972E    A1 C04C1001     mov     eax, [1104CC0]
010D9733    393C06          cmp     [esi+eax], edi
010D9736    0F84 AD000000   je      010D97E9 ******** majic jmp
010D973C    33C9            xor     ecx, ecx
010D973E    8B03            mov     eax, [ebx]

修改10D9736处,取消所有断点,ALT+M在401000处下内存访问断点
.
010F375F    8B04B0          mov     eax, [eax+esi*4]
010F3762    3341 34         xor     eax, [ecx+34]
010F3765    8B0D 88901001   mov     ecx, [1109088]                   ; 件_Ex900.0084C2A0
010F376B    3341 70         xor     eax, [ecx+70]
010F376E    8B0D 88901001   mov     ecx, [1109088]                   ; 件_Ex900.0084C2A0

程序终止在010F375F处.每次都停在此处.
始终都无法手工脱掉它.请版主帮帮我.
2006-9-15 12:48
0
雪    币: 62
活跃值: (1977)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
前辈们说在401000处下内存访问断点可以直达OEP,我到不了?
2006-9-15 12:51
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
看CopyMem-II教程
DebugActiveProcess后对子进程OpenMutexA
2006-9-15 13:09
0
游客
登录 | 注册 方可回帖
返回
//