首页
社区
课程
招聘
OD 脱Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks的问题?
发表于: 2007-4-24 17:32 7555

OD 脱Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks的问题?

2007-4-24 17:32
7555
peid0.94查出是Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks

用od加载

1.  he GetModuleHandleA    F9  运行····
断下后4次F9:

调用堆栈:     主线程
地址       堆栈       函数过程 / 参数                       调用来自                      结构
0012C280   00CE5331   kernel32.GetModuleHandleA             00CE532B                      0012C508
0012C284   0012C3BC     pModule = "kernel32.dll"
0012C50C   00CF9244   ? 00CE514F                            00CF923F
0012F014   00CF5F04   00CF6458                              00CF5EFF                      0012F010

alt+f9返回:

00CE5331    8B0D 60D8D000   mov     ecx, dword ptr [D0D860]
00CE5337    89040E          mov     dword ptr [esi+ecx], eax
00CE533A    A1 60D8D000     mov     eax, dword ptr [D0D860]
00CE533F    393C06          cmp     dword ptr [esi+eax], edi
00CE5342    75 16           jnz     short 00CE535A
00CE5344    8D85 B4FEFFFF   lea     eax, dword ptr [ebp-14C]
00CE534A    50              push    eax
00CE534B    FF15 B850D000   call    dword ptr [D050B8]               ; kernel32.LoadLibraryA
00CE5351    8B0D 60D8D000   mov     ecx, dword ptr [D0D860]
00CE5357    89040E          mov     dword ptr [esi+ecx], eax
00CE535A    A1 60D8D000     mov     eax, dword ptr [D0D860]
00CE535F    393C06          cmp     dword ptr [esi+eax], edi
00CE5362    0F84 AD000000   je      00CE5415                          //改成jmp
00CE5368    33C9            xor     ecx, ecx
00CE536A    8B03            mov     eax, dword ptr [ebx]
00CE536C    3938            cmp     dword ptr [eax], edi
00CE536E    74 06           je      short 00CE5376
00CE5370    41              inc     ecx
00CE5371    83C0 0C         add     eax, 0C
00CE5374  ^ EB F6           jmp     short 00CE536C

2。bp GetCurrentThreadId    F9  运行····

断下后2次F9:

调用堆栈:     主线程
地址       堆栈       函数过程 / 参数                       调用来自                      结构
0012F5A8   00CFCF2D   kernel32.GetCurrentThreadId           00CFCF27                      0012FD1C
0012F5B8   005A24E9   00CFCEBA                              1.005A24E3                 0012FD1C
0012FD20   005A2C41   1.005A1D1F                            1.005A2C3C                 0012FD1C
0012FF38   005AB447   1.005A2980                            1.005AB442                 0012FF34
0012FF3C   00400000     Arg1 = 00400000 ASCII "MZP"
0012FF40   00000000     Arg2 = 00000000
0012FF44   00141F01     Arg3 = 00141F01
0012FF48   0000000A     Arg4 = 0000000A

alt+f9返回:

00CFCF2D    A3 F018D100     mov     dword ptr [D118F0], eax
00CFCF32    E8 2487FEFF     call    00CE565B
00CFCF37    6A 00           push    0
00CFCF39    E8 4BD9FEFF     call    00CEA889
00CFCF3E    59              pop     ecx
00CFCF3F    E8 7D39FFFF     call    00CF08C1
。。。。。。
00CFCF9C    A1 E018D100     mov     eax, dword ptr [D118E0]
00CFCFA1    8B48 78         mov     ecx, dword ptr [eax+78]
00CFCFA4    3348 5C         xor     ecx, dword ptr [eax+5C]
00CFCFA7    3348 14         xor     ecx, dword ptr [eax+14]
00CFCFAA    2BF9            sub     edi, ecx
00CFCFAC    FFD7            call    edi                 ; 1.004014A0      //F7进入

004014A0   /EB 10           jmp     short 004014B2                       //oep ?
004014A2   |66:623A         bound   di, dword ptr [edx]
004014A5   |43              inc     ebx
004014A6   |2B2B            sub     ebp, dword ptr [ebx]
004014A8   |48              dec     eax
004014A9   |4F              dec     edi
004014AA   |4F              dec     edi
004014AB   |4B              dec     ebx
004014AC   |90              nop
004014AD  -|E9 98505100     jmp     0091654A
004014B2   \A1 8B505100     mov     eax, dword ptr [51508B]
004014B7    C1E0 02         shl     eax, 2
004014BA    A3 8F505100     mov     dword ptr [51508F], eax
004014BF    52              push    edx
004014C0    6A 00           push    0
004014C2    E8 C32D1100     call    0051428A                         ; jmp 到 kernel32.GetModuleHandleA
004014C7    8BD0            mov     edx, eax
004014C9    E8 A2511000     call    00506670

然后就是转存脱壳,建输入表。但是程序老是不对,不知道oep是不是找对了?

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 58782
活跃值: (21915)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
7C80B6B6 74 08 je short 7C80B6C0 //改成jmp


这里是系统代码,不能改的。

你将http://bbs.pediy.com/showthread.php?t=20366&page=2  13楼文章看看
2007-4-24 20:20
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不好意思,贴错了,是这一句,上面已经改过了
00CE5362    0F84 AD000000   je      00CE5415                          //改成jmp

我跟着动画教程做的,不知道是不是修复输入表的时候还有什么地方没对?只有kernel32。dll中的125个函数
2007-4-25 09:54
0
雪    币: 58782
活跃值: (21915)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
看入口,你这个是Borland C++ 程序。
对于Borland C++ 程序,其IAT排列不是连续的,ImportREC获得到的size不准备,你手工将其调大些,(如0x2000,如果过大,出现垃圾,你再Cut掉就行),再Get Import就没问题了。
2007-4-25 17:58
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢坛主,能运行了。脱出来看是Borland C++ 程序。
2007-4-27 09:17
0
游客
登录 | 注册 方可回帖
返回