首 页文章中心黑客软件黑客动画绿色软件私服技术私服下载本站论坛
您当前的位置:黑客之家文章中心脱壳破解软件脱壳 → 文章内容 退出登录 用户管理
本类热门文章
相关文章
站内广告
Themida脱壳
作者:黑客之家  来源:www.hackjia.com  发布时间:2007-12-30 9:49:23

减小字体 增大字体

1. Dump点搜索:

   以前的版本,挂在用CreateFile加载的kernel32!Sleep,就很容易找到dump
   位置,这个似乎不同了,也不知道是什么版本.

   先随便找个地方下断,比如对第1个区段下写入断点,目的是等VM所在内存分
   配,然后在VM内搜索出口:
   popad
   popfd
   ret

   对找到的所有结果下断,写个脚本记录一下调用过程:
   var        counter
   var        ret_addr

   mov        counter,0
   eob        l_record
   eoe        l_record
   run

l_record:
   mov ret_addr,[esp]       
   log ret_addr
   esto

   结果:
........
00DDCBD3   Breakpoint at 00DDCBD3
           ret_addr = 0088A795
00E42EF0   Breakpoint at 00E42EF0
           ret_addr = 0088B084
00E4F835   Breakpoint at 00E4F835
           ret_addr = 0088BAA2 <---- 这个
00E42EF0   Breakpoint at 00E42EF0
           ret_addr = 02FA1A7E
00E4F835   Breakpoint at 00E4F835
           ret_addr = 0046228E
00DDCBD3   Breakpoint at 00DDCBD3
           ret_addr = 00402750
00E4F835   Breakpoint at 00E4F835
           ret_addr = 00460327
00E42EF0   Breakpoint at 00E42EF0
           ret_addr = 00402790
00E5D56F   Breakpoint at 00E5D56F
           ret_addr = 00410D1E
           Thread 000005E4 terminated, exit code 0
           Thread 00000184 terminated, exit code 0
           Thread 000003DC terminated, exit code 0
   
  最后几项的返回地址在原程序了,还有个02FA1A7E是模仿的GetVersion
  Ctrl-F2重来,在0088BAA2下断,还有一两次SMC解码(大概有,记不清了),
  很容易找到dump点:

0088C432   /0F86 01000000    jbe GameMon.0088C439
0088C438   |F5               cmc
0088C439   \9D               popfd
0088C43A    C3               retn
   
-> 这里:

007D4BF3    68 54235132      push 32512354
007D4BF8  ^ E9 B9C6FFFF      jmp GameMon.007D12B6
007D4BFD    68 C4711C55      push 551C71C4
007D4C02  ^ E9 AFC6FFFF      jmp GameMon.007D12B6
007D4C07    FB               sti
007D4C08    D125 06E03800    shl dword ptr ds:[38E006],1


2. 避开IAT加密

脚本挂到CreateFile加载的kernel32!VirtualAlloc,记录分配size,
当出现连续分配0x1000,0x2000,0x10000,最后的1个出来就到了.

00EDA072   Hardware breakpoint 1 at 00EDA072
           counter = 00000007
           ret_addr = 007D787D
           cbSize = 00001000
00EDA072   Hardware breakpoint 1 at 00EDA072
           counter = 00000008
           ret_addr = 007D789F
           cbSize = 00002000
00EDA072   Hardware breakpoint 1 at 00EDA072
           counter = 00000009
           ret_addr = 007D78BF <---- 这里
           cbSize = 00010000 | UNICODE "=::=::\"

007D78BF    8985 A9271406    mov dword ptr ss:[ebp+61427A9],eax
007D78C5    8BB5 31321406    mov esi,dword ptr ss:[ebp+6143231]            ; GameMon.007CE59A
007D78CB    8B9D 41051406    mov ebx,dword ptr ss:[ebp+6140541]
007D78D1    89B5 05081406    mov dword ptr ss:[ebp+6140805],esi            ; GameMon.007CE59A
007D78D7    899D C9021406    mov dword ptr ss:[ebp+61402C9],ebx
007D78DD    8B9D 41051406    mov ebx,dword ptr ss:[ebp+6140541]
007D78E3    8B0B             mov ecx,dword ptr ds:[ebx]
007D7

[1] [2] [3] [4] [5] [6]  下一页

[] [返回上一页] [打 印]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 文章投稿 - 软件发布 -