首页
社区
课程
招聘
再谈Dll注入NetTransport 2.25.337[原创]
发表于: 2006-11-27 20:09 8184

再谈Dll注入NetTransport 2.25.337[原创]

2006-11-27 20:09
8184
【详细过程】
  写在前面:看了wynney大大的《Dll注入NetTransport 2.25.337 》一文,觉得深受启发!不过wynney在定位注册框的时候写得比较简略,只是说“F7配合F8很容易就找到掉用注册框的地方”。我问他能不能详细说说这个过程,wynney说这个是基本功!其实,OD有一个自动跟踪的功能,用这个功能在定位注册框、NAG等对话框时非常有用和简便。只是不知为什么,我见到现在很少有人提到这个功能,于是便有了本文,说得不对的地方还请各位指正!
  OD加载NetTransport 2.25.337后,CTRL+F8 ;让OD自动跟踪!
  7C935C93    5E              pop     esi
  7C935C94    F7FE            idiv    esi
  7C935C96    85D2            test    edx, edx     ;稍等一会后OD停在这里!
  7C935C98    75 32           jnz     short 7C935CCC
  7C935C9A    66:8B71 02      mov     si, [ecx+2]
  7C935C9E    53              push    ebx
  
  这时由于主程序(NetTransport)还没有运行起来,故继续CTRL+F8 第二次:
  00443EA7   .  6A 00         push    0                                         ; /Arg2 = 00000000
  00443EA9   .  50            push    eax                                       ; |Arg1
  00443EAA   .  8D8C24 A40000>lea     ecx, [esp+A4]                             ; |
  00443EB1   .  C68424 0C1000>mov     byte ptr [esp+100C], 0A                   ; |
  00443EB9   .  E8 4272FFFF   call    0043B100                           \NetTrans.0043B100
  00443EBE   .  8B4C24 18     mov     ecx, [esp+18]
  00443EC2   .  8B41 F8       mov     eax, [ecx-8]     ;[ecx-8]=[728776CC],记住他
  00443EC5   .  85C0          test    eax, eax
  00443EC7   .  75 78         jnz     short 00443F41    ;看看/跳过的话那不就不用注册了?
  00443EC9   .  6A 00         push    0
  00443ECB   .  8D8C24 500100>lea     ecx, [esp+150]
  00443ED2   .  E8 79860200   call    0046C550
  00443ED7   .  8D8C24 4C0100>lea     ecx, [esp+14C]
  00443EDE   .  C68424 041000>mov     byte ptr [esp+1004], 0B
  00443EE6   .  E8 F72C0800   call    <jmp.&MFC42u.#2506>     ; 稍等一会后OD停在这里!
  00443EEB   .  3D 55050000   cmp     eax, 555
  00443EF0   .  75 13         jnz     short 00443F05
  00443EF2   .  8D5424 18     lea     edx, [esp+18]
  
  这时留意到主程序已经运行了(注册对话框已经弹出了)!
  故00443EE6   .  E8 F72C0800   call    <jmp.&MFC42u.#2506> 这个call就是调用注册对话框的call!
  我们发现[ecx-8]=[728776CC]=1才可以跳过去这个CALL!在此之后,wynney是通过追踪关键Call的方法来找到对程序打补丁的地方的。我认为不用这样大费周折的,只要直接找到程序哪里对[728776CC]进行赋值的不就可以了!为了找到程序对[728776CC]进行赋值的地方,于是CTRL+F2重新加载程序,然后对内存地址[728776CC]下硬件字节写入断点!F9运行
  727A47E0    8B06            mov     eax, [esi]
  727A47E2    83C4 0C         add     esp, 0C
  727A47E5    8978 F8         mov     [eax-8], edi        ;这里对内存地址[728776CC]进行赋值!
  727A47E8    8B06            mov     eax, [esi]             ;OD即时中断在这里!                  
  727A47EA    66:832403 00    and     word ptr [ebx+eax], 0
  
  于是我们把727A47E5    8978 F8         mov     [eax-8], edi   改为  jmp 72843C71  ;跳向Patch位置
  
  72843C71    C640 F8 01      mov     byte ptr [728776CC], 1    ;对内存地址[728776CC]进行赋值1!
  72843C75    8B06            mov     eax, [esi]              ;原代码挪下
  72843C77  ^ E9 6E0BF6FF     jmp     727A47EA               ;跳回原代码执行流程
  
  复制修改--》覆盖本目录下的MFC42u.DLL
   
    再运行NetTransport看看,启动时的注册框没了,关于里面显示:注册给,因为注册表里没任何信息嘛,关于里的注册钮也变成灰色了
    经过测试[挂了几个小时],也没弹出那讨厌的注册框了:0  工作完成,谢谢观赏。(这句话是抄wynney的!)
  写在后面:本文旨在提供另一种破解思路,欢迎指正!

[课程]Android-CTF解题方法汇总!

收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
不会用CTRL+F8
PATCH DLL还是PATCH EXE比较好?
这是一个问题
2006-11-27 20:49
0
雪    币: 267
活跃值: (44)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
3
学习,支持一下!
2006-11-27 21:29
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
4
最初由 笨笨雄 发布
不会用CTRL+F8
PATCH DLL还是PATCH EXE比较好?
这是一个问题

支持楼主

你这个方法以前有朋友说过,不过还是稍微麻烦了点,有个更简单的法子:)

PS:个人认为Patch DLL比较好点
2006-11-27 21:44
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错...一会回去试试此方法.
2006-11-28 13:55
0
雪    币: 154
活跃值: (75)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
不错,顶一个 学到了ctrl+F8
2006-11-28 17:05
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
最初由 笨笨雄 发布

PATCH DLL还是PATCH EXE比较好?

不管白猫还是?猫,只要捉到老鼠就是好猫!
2006-11-28 19:33
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
最初由 wynney 发布


你这个方法以前有朋友说过,不过还是稍微麻烦了点,有个更简单的法子:)


有什么更简单的法子不妨说出来,让大家学习一下!
2006-11-28 19:36
0
游客
登录 | 注册 方可回帖
返回
//