首页
社区
课程
招聘
Armadillo 2.51 - 3.xx DLL Stub脱壳疑惑!
发表于: 2006-6-21 11:29 3990

Armadillo 2.51 - 3.xx DLL Stub脱壳疑惑!

2006-6-21 11:29
3990
按刹那恍惚教程脱加Armadillo 2.51 - 3.xx 的dll壳
用PEiD查壳 Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks
1。OD 载入
  下断点 HE OutputDebugStringA
  Shift+F9 运行,中断下来。看堆栈
0295DC20   0332296B /CALL 到 OutputDebugStringA 来自 03322965
0295DC24   0295E590 \String = "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>
出现这个说明这个DLL是经过Armadillo 4.X压缩过
DLL文件加壳应该是不可以双进程,所以这里是单进程方式
2。脱壳
  a寻找 Magic Jump
     下断点 BP GetModuleHandleA+5,Shift+F9 几次f9后到这里
     02958880   033135DD 返回到 033135DD 来自 kernel32.GetModuleHandleA
     02958884   03322C1C ASCII "kernel32.dll"
     02958888   03323E98 ASCII "VirtualAlloc"
     f9到这里
     02958880   033135FA 返回到 033135FA 来自 kernel32.GetModuleHandleA
     02958884   03322C1C ASCII "kernel32.dll"
     02958888   03323E8C ASCII "VirtualFree"
     f9到这里
     02958620   0330592B 返回到 0330592B 来自 kernel32.GetModuleHandleA
     02958624   0295875C ASCII "kernel32.dll"
     
     按脱壳教程 在这里清除断点后Alt+F9返回程序
     0330592B    8B0D 14B03203      mov ecx,dword ptr ds:[332B014]              ;返回到这里
     03305931    89040E             mov dword ptr ds:[esi+ecx],eax
     03305934    A1 14B03203        mov eax,dword ptr ds:[332B014]
     03305939    393C06             cmp dword ptr ds:[esi+eax],edi
     0330593C    75 16              jnz short 03305954
     0330593E    8D85 DCFEFFFF      lea eax,dword ptr ss:[ebp-124]
     03305944    50                 push eax
     03305945    FF15 90D03103      call dword ptr ds:[331D090]                ; kernel32.LoadLibraryA
     0330594B    8B0D 14B03203      mov ecx,dword ptr ds:[332B014]
     03305951    89040E             mov dword ptr ds:[esi+ecx],eax
     03305954    A1 14B03203        mov eax,dword ptr ds:[332B014]
     03305959    393C06             cmp dword ptr ds:[esi+eax],edi
     0330595C    0F84 2F010000      je 03305A91                                 ;magic jump处
     03305962    33C9               xor ecx,ecx
     03305964    8B03               mov eax,dword ptr ds:[ebx]
     03305966    3938               cmp dword ptr ds:[eax],edi
     03305968    74 06              je short 03305970
     
   把 0330595C 这句的 JE 03305A91 改成 JMP 03305A91
   b获得重定位信息
      下断点 bp GetTickCount,Shift+F9 运行中断后,注意看堆栈:
       02958888   03314CF3 /CALL 到 GetTickCount 来自 03314CED
      f9到这里
      02958888   03314EB8 /CALL 到 GetTickCount 来自 03314EB2
      按脱壳教程 在这里清除断点后Alt+F9返回程序
      
      问题就出在这里
        Alt+F9返回程序后没有找到教程类似代码
        00B8C3C8    2B85 A4D4FFFF   SUB EAX,DWORD PTR SS:[EBP-2B5C]          ; 返回到这里
        00B8C3CE    8B8D A8D4FFFF   MOV ECX,DWORD PTR SS:[EBP-2B58]
        00B8C3D4    6BC9 32         IMUL ECX,ECX,32
        00B8C3D7    81C1 D0070000   ADD ECX,7D0
        00B8C3DD    3BC1            CMP EAX,ECX
        00B8C3DF    76 07           JBE SHORT 00B8C3E8
        00B8C3E1    C685 34D9FFFF 0>MOV BYTE PTR SS:[EBP-26CC],1
        00B8C3E8    83BD E4D7FFFF 0>CMP DWORD PTR SS:[EBP-281C],0
        00B8C3EF    0F85 8A000000   JNZ 00B8C47F
        在 CPU 窗口按 Ctrl+S 查找如下代码
             PUSH EAX
             XCHG CX,CX
             POP EAX
             STC
        也找不到!
        我调试了很多次bp GetTickCount Shift+F9 运行中断后所有的才找到了
        
请教高手们这里下断点 bp GetTickCount后何时按Alt+F9返回程序,如何判断该按Alt+F9

         我比较菜,问的不对请高手别笑话!!!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
论坛有个Armadillo V4.0-V4.4.DLL.osc
试试看
2006-6-21 12:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢!找到了Armadillo V4.0-V4.4.DLL.osc先试一试再请教。
2006-6-21 18:22
0
游客
登录 | 注册 方可回帖
返回
//