首页
社区
课程
招聘
[求助]Armadillo 1.xx - 2.xx脱壳问题
2005-4-15 15:04 6760

[求助]Armadillo 1.xx - 2.xx脱壳问题

2005-4-15 15:04
6760
首先感谢大侠门的帮助,我已经成功的拖了几个壳。可是遇到一个软件使我无从下手特向大侠请教:
用PEID查是Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks的壳,但用FI查报是MS Visual C++ V5.? !!。用OD载入,设置Ollydbg忽略所有的异常选项。用IsDebug 1.4插件隐藏OD。 载入后OD停在这里:
006B8740 S>/$  55          push ebp
006B8741   |.  8BEC        mov ebp,esp
006B8743   |.  6A FF       push -1
006B8745   |.  68 A03A6D00 push S3Ser.006D3AA0
006B874A   |.  68 18846B00 push S3Ser.006B8418    ;  SE handler installation
006B874F   |.  64:A1 00000>mov eax,dword ptr fs:[0]
006B8755   |.  50          push eax
006B8756   |.  64:8925 000>mov dword ptr fs:[0],esp
006B875D   |.  83EC 58     sub esp,58
006B8760   |.  53          push ebx
006B8761   |.  56          push esi
006B8762   |.  57          push edi
006B8763   |.  8965 E8     mov dword ptr ss:[ebp-18],esp

下断点:BP OpenMutexA,然后F9运行
77E6D78C K>  55            push ebp
77E6D78D     8BEC          mov ebp,esp
77E6D78F     51            push ecx
77E6D790     51            push ecx
77E6D791     837D 10 00    cmp dword ptr ss:[ebp+10],0
77E6D795     56            push esi
77E6D796     0F84 F0B30200 je KERNEL32.77E98B8C
77E6D79C     64:A1 1800000>mov eax,dword ptr fs:[18]
77E6D7A2     FF75 10       push dword ptr ss:[ebp+10]
77E6D7A5     8DB0 F80B0000 lea esi,dword ptr ds:[eax+BF8]
77E6D7AB     8D45 F8       lea eax,dword ptr ss:[ebp-8]
77E6D7AE     50            push eax
77E6D7AF     FF15 8010E677 call dword ptr ds:[<&NTDLL.RtlInit>; ntdll.RtlInitAnsiString

OD断下后,看到堆栈:
0012D7A0    006A4380  /CALL 到 OpenMutexA 来自 SE3Ser.006A437A
0012D7A4    001F0001  |Access = 1F0001
0012D7A8    00000000  |Inheritable = FALSE
0012D7AC    0012DDE0  \MutexName = "338::DABF5A0F45"
......
请问:
    1)从这里是否可以判断是Armadillo的哪个版本加的壳吗? 用什么办法可以查到加壳版本号;
    2)我发现Armadillo加壳的软件只要上述堆栈是“0012FBF*”的,他的Magic Jump就容易找而,这个程序的堆栈是“0012DDE*”,无论怎么也找不到大侠们说的Magic Jump,是不是可以根据堆栈里这个特殊数据来判断Armadillo的版本号?
    先暂时请教这两个问题吧。谢谢。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (11)
雪    币: 177
活跃值: (1961)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-18 20:54
2
0
经过几天的调试,情况如下:
。。。。。。。。《省略...》
Ctrl+G定位到00401000处,取消先前的修改后下断点:BP GetModuleHandleA ,F9运行

77E756DB K>  55            push ebp                  * OD中断在这里,F2取消断点。
77E756DC     8BEC          mov ebp,esp
77E756DE     837D 08 00    cmp dword ptr ss:[ebp+8],0
77E756E2     0F84 BC670000 je KERNEL32.77E7BEA4       *在这里F2重新下断点
77E756E8     FF75 08       push dword ptr ss:[ebp+8]
77E756EB     E8 B1F6FFFF   call KERNEL32.77E74DA1
77E756F0     85C0          test eax,eax
F9运行,中断几次后,返回之后来到这里:
00B39705     8B0D C04CB600 mov ecx,dword ptr ds:[B64CC0]
00B3970B     89040E        mov dword ptr ds:[esi+ecx],eax
00B3970E     A1 C04CB600   mov eax,dword ptr ds:[B64CC0]
00B39713     393C06        cmp dword ptr ds:[esi+eax],edi
00B39716     75 16         jnz short 00B3972E
00B39718     8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-14C]
00B3971E     50            push eax
00B3971F     FF15 D0B0B500 call dword ptr ds:[B5B0D0]         ; KERNEL32.LoadLibraryA
00B39725     8B0D C04CB600 mov ecx,dword ptr ds:[B64CC0]
00B3972B     89040E        mov dword ptr ds:[esi+ecx],eax
00B3972E     A1 C04CB600   mov eax,dword ptr ds:[B64CC0]
00B39733     393C06        cmp dword ptr ds:[esi+eax],edi
00B39736     0F84 AD000000 je 00B397E9           **这就应该是大侠们说的那个Magic Jump,把她改成JMP 00B397E9,我判断的不知道是否正确
00B3973C     33C9          xor ecx,ecx
00B3973E     8B03          mov eax,dword ptr ds:[ebx]
00B39740     3938          cmp dword ptr ds:[eax],edi
00B39742     74 06         je short 00B3974A
00B39744     41            inc ecx
00B39745     83C0 0C       add eax,0C
00B39748   ^ EB F6         jmp short 00B39740
00B3974A     8BC1          mov eax,ecx
00B3974C     C1E0 02       shl eax,2

下断点:BP GetCurrentThreadId,F9运行。
77E69AA2 K>  64:A1 1800000>mov eax,dword ptr fs:[18]
77E69AA8     8B40 24       mov eax,dword ptr ds:[eax+24]
77E69AAB     C3            retn

堆栈中的数据:
----------------------------------------------------------------
0012B454    66001E26  /CALL 到 GetCurrentThreadId 来自 66001E20
0012B458    00000001
0012B45C    66001C0A  返回到 66001C0A 来自 66001DD2
0012B460    66001B50  返回到 66001B50 来自 66001B7C
----------------------------------------------------------------
0012B434    66003538  /CALL 到 GetCurrentThreadId 来自 66003532
0012B438    00000000
0012B43C    6610F470
----------------------------------------------------------------
0012BB20    00000000
0012BB24    00000001
0012BB28    00B83870
0012BB2C    00000000
----------------------------------------------------------------
然后是一片红色代码,进程终止。
00B5375F     8B04B0        mov eax,dword ptr ds:[eax+esi*4]
00B53762     3341 34       xor eax,dword ptr ds:[ecx+34]
00B53765     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B5376B     3341 70       xor eax,dword ptr ds:[ecx+70]
00B5376E     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B53774     3341 38       xor eax,dword ptr ds:[ecx+38]
00B53777     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B5377D     3341 64       xor eax,dword ptr ds:[ecx+64]
00B53780     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B53786     3341 74       xor eax,dword ptr ds:[ecx+74]

这到底是什么原因?情大侠指教,是我找的magic jump位置不对还是端点设置的有问题?
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48657119 2005-4-18 21:18
3
0
我是一点也看不懂,不过帮你顶顶,希望有高手能帮帮你
雪    币: 2189
活跃值: (1965)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
fxyang 20 2005-4-18 21:27
4
0
arm的关键代码是逐段对上面代码的解码来运行的,so 不要轻易的修改代码。需要修改时运行完这一段后及时的还原才能正确的解码下面的代码。
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dabao 2005-4-18 23:57
5
0
你在最后一次返回的时候 没有跟到 过早返回了
雪    币: 177
活跃值: (1961)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-19 09:33
6
0
最初由 fxyang 发布
arm的关键代码是逐段对上面代码的解码来运行的,so 不要轻易的修改代码。需要修改时运行完这一段后及时的还原才能正确的解码下面的代码。


在什么时候还原合适?
雪    币: 2189
活跃值: (1965)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
fxyang 20 2005-4-19 09:58
7
0
arm的代码中每次完成的功能和解码之间的分别还是很容易看出来的。
比如这段iat处理代码和后面解码:
00EF9046  CALL 00F01314                            ; JMP to msvcrt.memcpy
00EF904B  ADD ESP,0C
00EF904E  PUSH 1
00EF9050  MOV EAX,DWORD PTR SS:[EBP-3C80]
00EF9056  SHL EAX,2
00EF9059  PUSH EAX
00EF905A  MOV EAX,DWORD PTR SS:[EBP-3908]
00EF9060  ADD EAX,DWORD PTR SS:[EBP-3C88]
00EF9066  PUSH EAX
00EF9067  CALL 00EFAC9D
00EF906C  ADD ESP,0C
00EF906F  MOV EAX,DWORD PTR SS:[EBP-37A8]
00EF9075  MOV DWORD PTR SS:[EBP+FFFF9EA4],EAX
00EF907B  PUSH DWORD PTR SS:[EBP+FFFF9EA4]
00EF9081  CALL 00F0130E                            ; JMP to msvcrt.??3@YAXPAX@Z
00EF9086  POP ECX
00EF9087  JMP 00EF8790
00EF908C  MOV EAX,DWORD PTR SS:[EBP-3924]
00EF9092  MOV DWORD PTR SS:[EBP+FFFF9EA0],EAX
00EF9098  PUSH DWORD PTR SS:[EBP+FFFF9EA0]
00EF909E  CALL 00F0130E                            ; JMP to msvcrt.??3@YAXPAX@Z
00EF90A3  POP ECX
00EF90A4  CMP DWORD PTR SS:[EBP-3930],0
00EF90AB  JE 00EF920A
00EF90B1  MOV EAX,DWORD PTR DS:[F11EF8]
00EF90B6  MOV EAX,DWORD PTR DS:[EAX+6C]
00EF90B9  MOV DWORD PTR SS:[EBP+FFFF9C44],EAX
00EF90BF  MOV EAX,DWORD PTR SS:[EBP+FFFF9C44]
00EF90C5  MOV DWORD PTR SS:[EBP+FFFFB038],EAX
00EF90CB  CALL 00EFC9EA
00EF90D0  NEG EAX
00EF90D2  SBB EAX,EAX
00EF90D4  AND EAX,100
00EF90D9  ADD EAX,100
00EF90DE  MOV DWORD PTR SS:[EBP+FFFF9C30],EAX
00EF90E4  PUSH 1DF5E0D
00EF90E9  PUSH DWORD PTR SS:[EBP+FFFFB038]
00EF90EF  LEA ECX,DWORD PTR SS:[EBP+FFFFB038]
00EF90F5  CALL 00ED1071
00EF90FA  INC EAX
00EF90FB  XOR EDX,EDX
00EF90FD  MOV ECX,5F5E100
00EF9102  DIV ECX
00EF9104  MOV DWORD PTR SS:[EBP+FFFFB038],EDX
00EF910A  MOVZX ECX,BYTE PTR SS:[EBP-37E0]
00EF9111  NEG ECX
00EF9113  SBB ECX,ECX
00EF9115  AND ECX,100
00EF911B  ADD ECX,200
00EF9121  MOV EAX,DWORD PTR SS:[EBP+FFFFB038]
00EF9127  XOR EDX,EDX
00EF9129  MOV ESI,2710
00EF912E  DIV ESI
00EF9130  IMUL EAX,DWORD PTR SS:[EBP+FFFF9C30]
00EF9137  XOR EDX,EDX
00EF9139  MOV ESI,2710
00EF913E  DIV ESI
00EF9140  ADD ECX,EAX
00EF9142  MOV DWORD PTR SS:[EBP+FFFFB03C],ECX
00EF9148  AND DWORD PTR SS:[EBP+FFFFB034],0
00EF914F  JMP SHORT 00EF915E
00EF9151  MOV EAX,DWORD PTR SS:[EBP+FFFFB034]
00EF9157  INC EAX
00EF9158  MOV DWORD PTR SS:[EBP+FFFFB034],EAX
00EF915E  MOV EAX,DWORD PTR SS:[EBP+FFFFB034]
00EF9164  CMP EAX,DWORD PTR SS:[EBP+FFFFB03C]
00EF916A  JNB 00EF920A
00EF9170  PUSH 1DF5E0D
00EF9175  PUSH DWORD PTR SS:[EBP+FFFFB038]
00EF917B  LEA ECX,DWORD PTR SS:[EBP+FFFFB038]
00EF9181  CALL 00ED1071
00EF9186  INC EAX
00EF9187  XOR EDX,EDX
00EF9189  MOV ECX,5F5E100
00EF918E  DIV ECX
00EF9190  MOV DWORD PTR SS:[EBP+FFFFB038],EDX
00EF9196  MOV EAX,DWORD PTR SS:[EBP+FFFFB038]
00EF919C  XOR EDX,EDX
00EF919E  MOV ECX,2710
00EF91A3  DIV ECX
00EF91A5  IMUL EAX,DWORD PTR SS:[EBP-37D0]
00EF91AC  XOR EDX,EDX
00EF91AE  MOV ECX,2710
00EF91B3  DIV ECX
00EF91B5  MOV DWORD PTR SS:[EBP+FFFFB02C],EAX
00EF91BB  MOV EAX,DWORD PTR SS:[EBP-3930]
00EF91C1  MOV EAX,DWORD PTR DS:[EAX]
00EF91C3  MOV DWORD PTR SS:[EBP+FFFFB030],EAX
00EF91C9  MOV EAX,DWORD PTR SS:[EBP+FFFFB02C]
00EF91CF  LEA EAX,DWORD PTR DS:[EAX*4+4]
00EF91D6  PUSH EAX
00EF91D7  MOV EAX,DWORD PTR SS:[EBP-3930]
00EF91DD  ADD EAX,4
00EF91E0  PUSH EAX
00EF91E1  PUSH DWORD PTR SS:[EBP-3930]
00EF91E7  CALL DWORD PTR DS:[F0230C]               ; msvcrt.memmove
00EF91ED  ADD ESP,0C
00EF91F0  MOV EAX,DWORD PTR SS:[EBP+FFFFB02C]
00EF91F6  MOV ECX,DWORD PTR SS:[EBP-3930]
00EF91FC  MOV EDX,DWORD PTR SS:[EBP+FFFFB030]
00EF9202  MOV DWORD PTR DS:[ECX+EAX*4],EDX
00EF9205  JMP 00EF9151
00EF920A  PUSH DWORD PTR SS:[EBP-37CC]
00EF9210  CALL 00ED12E4
00EF9215  POP ECX
00EF9216  JMP SHORT 00EF921B
//看看这里就是完成了功能代码jmp到解码代码的分水岭
//跟踪下面的可以发现是把上面的代码解码出下面的另外一段功能代码
00EF9218  SALC
00EF9219  SALC
00EF921A  MOV ESP,DWORD PTR DS:[ECX+F10C8C]
00EF9220  MOV DWORD PTR SS:[EBP+FFFFB028],EAX
00EF9226  CMP DWORD PTR SS:[EBP+FFFFB028],0
00EF922D  JE SHORT 00EF9265
00EF922F  MOV EAX,DWORD PTR SS:[EBP+FFFFB028]
00EF9235  CMP DWORD PTR DS:[EAX],0
00EF9238  JE SHORT 00EF9265
00EF923A  MOV EAX,DWORD PTR SS:[EBP+FFFFB028]
00EF9240  MOV EAX,DWORD PTR DS:[EAX]
00EF9242  MOV EAX,DWORD PTR DS:[EAX]
00EF9244  SUB EAX,DWORD PTR DS:[F123C0]
00EF924A  MOV ECX,DWORD PTR SS:[EBP+FFFFB028]
00EF9250  MOV ECX,DWORD PTR DS:[ECX]
00EF9252  MOV DWORD PTR DS:[ECX],EAX
00EF9254  MOV EAX,DWORD PTR SS:[EBP+FFFFB028]
00EF925A  ADD EAX,4
00EF925D  MOV DWORD PTR SS:[EBP+FFFFB028],EAX
00EF9263  JMP SHORT 00EF922F
00EF9265  PUSH 1
00EF9267  PUSH DWORD PTR DS:[F07C10]
00EF926D  MOV EAX,DWORD PTR DS:[F11EEC]
00EF9272  ADD EAX,DWORD PTR DS:[F07A10]
00EF9278  PUSH EAX
00EF9279  PUSH DWORD PTR SS:[EBP-37C8]
00EF927F  CALL 00ED14AC
00EF9284  ADD ESP,10
00EF9287  MOV EAX,DWORD PTR DS:[F10C8C]
00EF928C  MOV DWORD PTR SS:[EBP+FFFFB024],EAX
00EF9292  CMP DWORD PTR SS:[EBP+FFFFB024],0
00EF9299  JE SHORT 00EF92D1
00EF929B  MOV EAX,DWORD PTR SS:[EBP+FFFFB024]
00EF92A1  CMP DWORD PTR DS:[EAX],0
00EF92A4  JE SHORT 00EF92D1
00EF92A6  MOV EAX,DWORD PTR SS:[EBP+FFFFB024]
00EF92AC  MOV EAX,DWORD PTR DS:[EAX]
00EF92AE  MOV EAX,DWORD PTR DS:[EAX]
00EF92B0  ADD EAX,DWORD PTR DS:[F123C0]
00EF92B6  MOV ECX,DWORD PTR SS:[EBP+FFFFB024]
00EF92BC  MOV ECX,DWORD PTR DS:[ECX]
00EF92BE  MOV DWORD PTR DS:[ECX],EAX
00EF92C0  MOV EAX,DWORD PTR SS:[EBP+FFFFB024]
00EF92C6  ADD EAX,4
00EF92C9  MOV DWORD PTR SS:[EBP+FFFFB024],EAX
00EF92CF  JMP SHORT 00EF929B
00EF92D1  PUSH 0F10F70
00EF92D6  CALL DWORD PTR DS:[F021C8]               ; ntdll.RtlLeaveCriticalSection
00EF92DC  PUSH 0F10F58
00EF92E1  CALL DWORD PTR DS:[F021C8]               ; ntdll.RtlLeaveCriticalSection
00EF92E7  PUSH 0F10F70
00EF92EC  CALL DWORD PTR DS:[F0207C]               ; ntdll.RtlEnterCriticalSection
00EF92F2  PUSH 0F10F88
00EF92F7  CALL DWORD PTR DS:[F0207C]               ; ntdll.RtlEnterCriticalSection
//上面的这几个API可以看做标志
00EF92FD  MOV EAX,DWORD PTR DS:[F07A10]
00EF9302  MOV DWORD PTR DS:[F123C4],EAX
00EF9307  MOV DWORD PTR SS:[EBP+FFFFB020],0ED7CE8
00EF9311  MOV EAX,DWORD PTR SS:[EBP+FFFFB020]
00EF9317  MOV DWORD PTR SS:[EBP+FFFFB020],EAX
00EF931D  MOV DWORD PTR SS:[EBP+FFFFB018],0F10C60
00EF9327  MOV DWORD PTR SS:[EBP+FFFFB01C],0F11CC4
00EF9331  MOV EAX,DWORD PTR SS:[EBP+FFFFB018]
00EF9337  MOV EAX,DWORD PTR DS:[EAX+2C]
00EF933A  MOV DWORD PTR SS:[EBP+FFFFB014],EAX
00EF9340  CMP DWORD PTR SS:[EBP+FFFFB014],0
00EF9347  JE SHORT 00EF937F
00EF9349  MOV EAX,DWORD PTR SS:[EBP+FFFFB014]
00EF934F  CMP DWORD PTR DS:[EAX],0
00EF9352  JE SHORT 00EF937F
00EF9354  MOV EAX,DWORD PTR SS:[EBP+FFFFB014]
00EF935A  MOV EAX,DWORD PTR DS:[EAX]
00EF935C  MOV EAX,DWORD PTR DS:[EAX]
00EF935E  SUB EAX,DWORD PTR DS:[F123C0]
00EF9364  MOV ECX,DWORD PTR SS:[EBP+FFFFB014]
00EF936A  MOV ECX,DWORD PTR DS:[ECX]
00EF936C  MOV DWORD PTR DS:[ECX],EAX
00EF936E  MOV EAX,DWORD PTR SS:[EBP+FFFFB014]
00EF9374  ADD EAX,4
00EF9377  MOV DWORD PTR SS:[EBP+FFFFB014],EAX
00EF937D  JMP SHORT 00EF9349
00EF937F  MOV EAX,DWORD PTR SS:[EBP+FFFFB01C]
00EF9385  MOV EAX,DWORD PTR DS:[EAX+2C]
00EF9388  MOV DWORD PTR SS:[EBP+FFFFB010],EAX
00EF938E  CMP DWORD PTR SS:[EBP+FFFFB010],0
00EF9395  JE SHORT 00EF93CD
00EF9397  MOV EAX,DWORD PTR SS:[EBP+FFFFB010]
00EF939D  CMP DWORD PTR DS:[EAX],0
00EF93A0  JE SHORT 00EF93CD
00EF93A2  MOV EAX,DWORD PTR SS:[EBP+FFFFB010]
00EF93A8  MOV EAX,DWORD PTR DS:[EAX]
00EF93AA  MOV EAX,DWORD PTR DS:[EAX]
00EF93AC  SUB EAX,DWORD PTR DS:[F123C0]
00EF93B2  MOV ECX,DWORD PTR SS:[EBP+FFFFB010]
00EF93B8  MOV ECX,DWORD PTR DS:[ECX]
00EF93BA  MOV DWORD PTR DS:[ECX],EAX
00EF93BC  MOV EAX,DWORD PTR SS:[EBP+FFFFB010]
00EF93C2  ADD EAX,4
00EF93C5  MOV DWORD PTR SS:[EBP+FFFFB010],EAX
00EF93CB  JMP SHORT 00EF9397
00EF93CD  CALL 00EFC556
00EF93D2  MOV ECX,DWORD PTR DS:[F123C8]
00EF93D8  LEA EAX,DWORD PTR DS:[EAX+ECX+6A42AC52]
00EF93DF  PUSH EAX
00EF93E0  MOV EAX,DWORD PTR DS:[F11ED0]
00EF93E5  MOVZX EAX,WORD PTR DS:[EAX+16]
00EF93E9  MOV ECX,DWORD PTR DS:[F07C10]
00EF93EF  ADD ECX,EAX
00EF93F1  PUSH ECX
00EF93F2  MOV EAX,DWORD PTR DS:[F11ED0]
00EF93F7  MOVZX EAX,WORD PTR DS:[EAX+16]
00EF93FB  MOV ECX,DWORD PTR DS:[F07A10]
00EF9401  SUB ECX,EAX
00EF9403  MOV EAX,DWORD PTR DS:[F11EEC]
00EF9408  ADD EAX,ECX
00EF940A  PUSH EAX
00EF940B  CALL DWORD PTR SS:[EBP+FFFFB020]
00EF9411  ADD ESP,0C
00EF9414  MOV DWORD PTR SS:[EBP-3920],EAX
00EF941A  MOV EAX,DWORD PTR SS:[EBP+FFFFB01C]
00EF9420  MOV EAX,DWORD PTR DS:[EAX+2C]
00EF9423  MOV DWORD PTR SS:[EBP+FFFFB00C],EAX
00EF9429  CMP DWORD PTR SS:[EBP+FFFFB00C],0
00EF9430  JE SHORT 00EF9468
00EF9432  MOV EAX,DWORD PTR SS:[EBP+FFFFB00C]
00EF9438  CMP DWORD PTR DS:[EAX],0
00EF943B  JE SHORT 00EF9468
00EF943D  MOV EAX,DWORD PTR SS:[EBP+FFFFB00C]
00EF9443  MOV EAX,DWORD PTR DS:[EAX]
00EF9445  MOV EAX,DWORD PTR DS:[EAX]
00EF9447  ADD EAX,DWORD PTR DS:[F123C0]
00EF944D  MOV ECX,DWORD PTR SS:[EBP+FFFFB00C]
00EF9453  MOV ECX,DWORD PTR DS:[ECX]
00EF9455  MOV DWORD PTR DS:[ECX],EAX
00EF9457  MOV EAX,DWORD PTR SS:[EBP+FFFFB00C]
00EF945D  ADD EAX,4
00EF9460  MOV DWORD PTR SS:[EBP+FFFFB00C],EAX
00EF9466  JMP SHORT 00EF9432
00EF9468  MOV EAX,DWORD PTR SS:[EBP+FFFFB018]
00EF946E  MOV EAX,DWORD PTR DS:[EAX+2C]
00EF9471  MOV DWORD PTR SS:[EBP+FFFFB008],EAX
00EF9477  CMP DWORD PTR SS:[EBP+FFFFB008],0
00EF947E  JE SHORT 00EF94B6
00EF9480  MOV EAX,DWORD PTR SS:[EBP+FFFFB008]
00EF9486  CMP DWORD PTR DS:[EAX],0
00EF9489  JE SHORT 00EF94B6
00EF948B  MOV EAX,DWORD PTR SS:[EBP+FFFFB008]
00EF9491  MOV EAX,DWORD PTR DS:[EAX]
00EF9493  MOV EAX,DWORD PTR DS:[EAX]
00EF9495  ADD EAX,DWORD PTR DS:[F123C0]
00EF949B  MOV ECX,DWORD PTR SS:[EBP+FFFFB008]
00EF94A1  MOV ECX,DWORD PTR DS:[ECX]
00EF94A3  MOV DWORD PTR DS:[ECX],EAX
00EF94A5  MOV EAX,DWORD PTR SS:[EBP+FFFFB008]
00EF94AB  ADD EAX,4
00EF94AE  MOV DWORD PTR SS:[EBP+FFFFB008],EAX
00EF94B4  JMP SHORT 00EF9480
00EF94B6  MOV EAX,DWORD PTR DS:[F10C90]
00EF94BB  MOV DWORD PTR SS:[EBP+FFFFB004],EAX
00EF94C1  CMP DWORD PTR SS:[EBP+FFFFB004],0
00EF94C8  JE SHORT 00EF9500
00EF94CA  MOV EAX,DWORD PTR SS:[EBP+FFFFB004]
00EF94D0  CMP DWORD PTR DS:[EAX],0
00EF94D3  JE SHORT 00EF9500
00EF94D5  MOV EAX,DWORD PTR SS:[EBP+FFFFB004]
00EF94DB  MOV EAX,DWORD PTR DS:[EAX]
00EF94DD  MOV EAX,DWORD PTR DS:[EAX]
00EF94DF  SUB EAX,DWORD PTR DS:[F123C0]
00EF94E5  MOV ECX,DWORD PTR SS:[EBP+FFFFB004]
00EF94EB  MOV ECX,DWORD PTR DS:[ECX]
00EF94ED  MOV DWORD PTR DS:[ECX],EAX
00EF94EF  MOV EAX,DWORD PTR SS:[EBP+FFFFB004]
00EF94F5  ADD EAX,4
00EF94F8  MOV DWORD PTR SS:[EBP+FFFFB004],EAX
00EF94FE  JMP SHORT 00EF94CA
00EF9500  PUSH 0
00EF9502  PUSH DWORD PTR DS:[F07C14]
00EF9508  MOV EAX,DWORD PTR DS:[F11EEC]
00EF950D  ADD EAX,DWORD PTR DS:[F07A14]
00EF9513  PUSH EAX
00EF9514  PUSH DWORD PTR SS:[EBP-3920]
00EF951A  CALL 00ED14AC
00EF951F  ADD ESP,10
00EF9522  MOV EAX,DWORD PTR DS:[F10C90]
00EF9527  MOV DWORD PTR SS:[EBP+FFFFB000],EAX
00EF952D  CMP DWORD PTR SS:[EBP+FFFFB000],0
00EF9534  JE SHORT 00EF956C
00EF9536  MOV EAX,DWORD PTR SS:[EBP+FFFFB000]
00EF953C  CMP DWORD PTR DS:[EAX],0
00EF953F  JE SHORT 00EF956C
00EF9541  MOV EAX,DWORD PTR SS:[EBP+FFFFB000]
00EF9547  MOV EAX,DWORD PTR DS:[EAX]
00EF9549  MOV EAX,DWORD PTR DS:[EAX]
00EF954B  ADD EAX,DWORD PTR DS:[F123C0]
00EF9551  MOV ECX,DWORD PTR SS:[EBP+FFFFB000]
00EF9557  MOV ECX,DWORD PTR DS:[ECX]
00EF9559  MOV DWORD PTR DS:[ECX],EAX
00EF955B  MOV EAX,DWORD PTR SS:[EBP+FFFFB000]
00EF9561  ADD EAX,4
00EF9564  MOV DWORD PTR SS:[EBP+FFFFB000],EAX
00EF956A  JMP SHORT 00EF9536
//到这里就是解码完成了,没有解码时看看下面的代码是乱码,运行到这里时就可以看到下面的代码不再是乱码了。
00EF956C  XCHG ECX,EDI
00EF956E  NOP
00EF956F  XCHG ECX,EDI
00EF9571  BOUND EDX,QWORD PTR DS:[ESI+B5709F57]
00EF9577  ROL BH,1                                 ; 多余的前缀
00EF957A  CMP DWORD PTR SS:[EBP+56E0E836],ECX
00EF9580  LOCK MOV DL,77                           ; 锁定前缀是不允许的
00EF9583  SBB DH,BYTE PTR SS:[EBP+93404391]
00EF9589  XCHG EAX,ECX
00EF958A  INC EAX
00EF958B  AAA
00EF958C  POP EDX
00EF958D  DEC EDI
00EF958E  XCHG EAX,EDI
00EF958F  ADD DH,BL
00EF9591  PUSH EDI
00EF9592  SBB DWORD PTR SS:[EBP+C22727F6],EBP
00EF9598  PUSHAD
00EF9599  STOS DWORD PTR ES:[EDI]
00EF959A  SBB BYTE PTR DS:[ECX+A7257698],DL
00EF95A0  ADC DWORD PTR DS:[ECX],1EBC8442
00EF95A6  INT 9
00EF95A8  TEST BYTE PTR DS:[5879FA4B],CL
00EF95AE  DAA
00EF95AF  POP EAX
00EF95B0  ADD DWORD PTR DS:[EDX+3454B8F],EAX
00EF95B6  TEST AL,79
00EF95B8  INC EDX
00EF95B9  MOV DH,9B
00EF95BB  STOS BYTE PTR ES:[EDI]

//看看解码完成后的乱码变成了什么
00EF956C  XCHG ECX,EDI
00EF956E  NOP
00EF956F  XCHG ECX,EDI
00EF9571  MOV DWORD PTR DS:[F079E0],0F08544
00EF957B  MOV EAX,DWORD PTR DS:[F123D0]
00EF9580  MOV EAX,DWORD PTR DS:[EAX+3DF0]
00EF9586  MOV DWORD PTR SS:[EBP-3800],EAX
00EF958C  AND DWORD PTR SS:[EBP-37C4],0
00EF9593  JMP SHORT 00EF95A2
雪    币: 177
活跃值: (1961)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-19 10:38
8
0
我是按照楼上大侠说的还原了,可是我在使用401000段内存断点大法,却不能直达OEP处,而是又停在一片红色代码。
00B5375F     8B04B0        mov eax,dword ptr ds:[eax+esi*4]
00B53762     3341 34       xor eax,dword ptr ds:[ecx+34]
00B53765     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B5376B     3341 70       xor eax,dword ptr ds:[ecx+70]
00B5376E     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B53774     3341 38       xor eax,dword ptr ds:[ecx+38]
00B53777     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B5377D     3341 64       xor eax,dword ptr ds:[ecx+64]
00B53780     8B0D 8890B600 mov ecx,dword ptr ds:[B69088]      ; 13.005092A0
00B53786     3341 74       xor eax,dword ptr ds:[ecx+74]

到底是什么原因。
雪    币: 2189
活跃值: (1965)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
fxyang 20 2005-4-19 10:45
9
0
要先搞清楚程序的arm大概的版本,是单进程还是双进程?加壳的方式?再具体的对待。不能教条主义。
雪    币: 177
活跃值: (1961)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-19 14:45
10
0
双进程,标准壳,其他没有什么特殊的。

无法DUMP第2个进程,提示“无法得到进程内存”错误。那位高手指点一下。
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
limin520 2005-4-20 15:59
11
0
程序发出来看看!
雪    币: 2189
活跃值: (1965)
能力值: ( LV12,RANK:810 )
在线值:
发帖
回帖
粉丝
fxyang 20 2005-4-20 16:53
12
0
最初由 xingbing 发布
双进程,标准壳,其他没有什么特殊的。

无法DUMP第2个进程,提示“无法得到进程内存”错误。那位高手指点一下。


看精华中的相关教程,基础问题先要搞懂。
游客
登录 | 注册 方可回帖
返回