首页
社区
课程
招聘
快速带狗脱Hardlock壳
发表于: 2006-8-22 11:52 6448

快速带狗脱Hardlock壳

2006-8-22 11:52
6448
【文章标题】: 快速带狗脱Hardlock壳
【文章作者】: netsowell
【作者邮箱】: Lifeengines@gmail.com
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  
  首先用OD装入程序,我这里脱的是OCX文件,也就是DLL。需要处理重定位。
  第一步,查找入口,这个没有固定的方法,你可以找特征码,特征函数,可以想办法停在被拖文件代码空间向上看堆栈。等等,
  找到OEP后,用rec一看,IAT被破坏了一部分,在dump一个文件下来,用lordpe一看,重定位表破坏了。检查下,没有其他数据被破坏了
  于是乎alt+M,双击模块空间的最后一个.protect区段。查找二进制8B 4D BC 89 01 0F 85 37 14 00 00 74 03,处理IAT的特征码。
  至于这个码是怎么来的,你在被加密了的iat跳转地址下内存或者硬件写入断点看看吧。找到后下硬件执行。别忘了在oep也下个硬件执行。
  重新装入程序,直接F9,停在IAT处理的地方。然后随便找个空间吧。从这里jmp过去。然后写入下面代码
  10049FA4    60              pushad
  10049FA5    9C              pushfd
  10049FA6    FF7424 2C       push    dword ptr [esp+2C]//取出函数名
  10049FAA    FF7424 50       push    dword ptr [esp+50]//取出模块句柄
  10049FAE    E8 0E207E6C     call    kernel32.GetProcAddress
  10049FB3    894424 20       mov     [esp+20], eax 回写地址
  10049FB7    9D              popfd
  10049FB8    61              popad
  10049FB9    8B4D BC         mov     ecx, [ebp-44]                             ; garnfeld.100697F0
  10049FBC    8901            mov     [ecx], eax
  10049FBE  - E9 4D61F8FF     jmp     0FFD0110 跳回去
  
  然后再run.99.9%的输入表已经被修复了,偶尔的回有程序在kernel32.dll模块中有一个无法识别的函数。简单跟踪一下
  是GetProcAddress.
  然后用ReloX.exe修复重新定位。不敢说秒杀。应该分杀没问题。
  
  附加二进制代码。
  60 9C FF 74 24 2C FF 74 24 50 E8 D5 77 36 7C 89 44 24 20 9D 61 8B 4D BC 89 01 E9 4D 61 F8 FF
  示例程序:
  10065280 >  55              push    ebp //壳入口
  10065281    8BEC            mov     ebp, esp
  10065283    53              push    ebx                                       ; garnfeld.<模块入口点>
  10065284    56              push    esi
  10065285    57              push    edi
  10065286    60              pushad
  10065287    8BC4            mov     eax, esp
  10065289    A3 F05E0610     mov     [10065EF0], eax
  1006528E    B8 18550610     mov     eax, 10065518
  10065293    2B05 3C550610   sub     eax, [1006553C]                           ; garnfeld.10065518
  10065299    A3 3C550610     mov     [1006553C], eax
  1006529E    833D EC5E0610 0>cmp     dword ptr [10065EEC], 0
  100652A5    74 15           je      short 100652BC
  100652A7    8B0D F05E0610   mov     ecx, [10065EF0]
  100652AD    51              push    ecx
  100652AE    FF15 EC5E0610   call    [10065EEC]
  100652B4    83C4 04         add     esp, 4
  100652B7    E9 A5000000     jmp     10065361
  100652BC    68 D85E0610     push    10065ED8                                  ; ASCII "kernel32"
  100652C1    FF15 405F0610   call    [<&KERNEL32.GetModuleHandleA>]            ; kernel32.GetModuleHandleA
  100652C7    A3 F8540610     mov     [100654F8], eax
  100652CC    68 E45E0610     push    10065EE4                                  ; ASCII "user32"
  100652D1    FF15 405F0610   call    [<&KERNEL32.GetModuleHandleA>]            ; kernel32.GetModuleHandleA
  100652D7    A3 FC540610     mov     [100654FC], eax
  100652DC    8B15 445F0610   mov     edx, [<&KERNEL32.GetProcAddress>]         ; kernel32.GetProcAddress
  100652E2    8915 00550610   mov     [10065500], edx
  100652E8    A1 4C5F0610     mov     eax, [<&USER32.MessageBoxA>]
  100652ED    A3 04550610     mov     [10065504], eax
  100652F2    C705 08550610 0>mov     dword ptr [10065508], 0
  100652FC    C705 0C550610 0>mov     dword ptr [1006550C], 0
  10065306    8B0D 3C550610   mov     ecx, [1006553C]                           ; garnfeld.10065518
  
  
  
  ////////////////
  10077144    8B4D BC         mov     ecx, [ebp-44]   //这里写入处理了的IAT地址修改为jmp
  10077147    8901            mov     [ecx], eax
  10077149    0F85 37140000   jnz     10078586
  1007714F    74 03           je      short 10077154
  10077151    29AB 4B0F842C   sub     [ebx+2C840F4B], ebp
  10077157    14 00           adc     al, 0
  10077159    00D9            add     cl, bl
  
  //////////////////
   好象没什么技术含量的.高手路过勿笑.
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2006年08月22日 11:50:02

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
2
写文章用了3分钟
2006-8-22 11:53
0
雪    币: 210
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
最初由 netsowell 发布
写文章用了3分钟


神速啊
2006-8-22 11:56
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最初由 netsowell 发布
写文章用了3分钟


牛人。。。。向你致敬!!
2006-8-22 14:31
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
5
unpacker差不多也是3分钟
2006-8-22 15:02
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6


  顶一下    别砸我
2006-8-22 17:10
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
不顶不行,一定要顶
2006-8-22 18:03
0
雪    币: 483
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
方法好多呢.呵呵

有狗基本上可以做到秒杀了.

这个方法不错.
2006-8-23 10:31
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不错学习一下
2006-8-23 10:37
0
雪    币: 250
活跃值: (145)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个是老版?新版有没教程 ?
2006-8-24 01:00
0
雪    币: 132
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
希望能出最新壳的脱壳讲解过程。
2006-8-24 17:40
0
雪    币: 483
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
hardlock 没有新版本了吧,

现在都是hasp hl的狗壳了.

其他的都是秒杀,只有一个IAT给破坏的不会修复,呵呵
2006-9-11 15:14
0
雪    币: 127
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
Hardlock壳,现有一个硬件狗,能否脱壳不限制
使用软件(就是说不用狗也可以运行)。

能否详细讲解,最好有详细教程。
2007-1-11 17:10
0
雪    币: 483
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14


用上面的方法脱吧,很多的东西,都是内部交流,不会对外提供的
2007-1-12 01:02
0
游客
登录 | 注册 方可回帖
返回