首页
社区
课程
招聘
[原创]XXXXX项目管理2006之“天下无狗”
发表于: 2006-12-6 14:35 8291

[原创]XXXXX项目管理2006之“天下无狗”

2006-12-6 14:35
8291
XXXXX项目管理2006之“天下无狗”

文章作者:KuNgBiM
文章目的:无狗打狗
作者邮箱:kungbim@163.com
作者声明:学习交流而已
软件简介:工程项目管理软件
下载地址:自己搜
加密方式:ASPack2.12 + MicroDog4.0.13.0 + RC-UMH3.1
程序类别:Microsoft Visual C++ 6.0
软件限制:狗软常用限制
使用工具:PEiD、OllyICE、Stripper(ASPack脱壳机)

文章明细:
安装好目标程序后,用PEiD查壳ASPack加壳,Stripper脱之(偷懒而已),再次检查VC6编译,OllyICE载入脱壳后的程序:

0063894A >/$  55            push    ebp                              ;  (initial cpu selection)
0063894B  |.  8BEC          mov     ebp, esp
0063894D  |.  6A FF         push    -1
0063894F  |.  68 D0566700   push    006756D0
00638954  |.  68 A88A6300   push    <jmp.&MSVCRT._except_handler3>   ;  SE 处理程序安装
00638959  |.  64:A1 0000000>mov     eax, fs:[0]
0063895F  |.  50            push    eax
00638960  |.  64:8925 00000>mov     fs:[0], esp
00638967  |.  83EC 68       sub     esp, 68
0063896A  |.  53            push    ebx
0063896B  |.  56            push    esi
0063896C  |.  57            push    edi
0063896D  |.  8965 E8       mov     [ebp-18], esp
00638970  |.  33DB          xor     ebx, ebx
00638972  |.  895D FC       mov     [ebp-4], ebx
00638975  |.  6A 02         push    2
00638977  |.  FF15 10CF6500 call    [<&MSVCRT.__set_app_type>]       ;  msvcrt.__set_app_type
0063897D  |.  59            pop     ecx
0063897E  |.  830D 182C6D00>or      dword ptr [6D2C18], FFFFFFFF
00638985  |.  830D 1C2C6D00>or      dword ptr [6D2C1C], FFFFFFFF
0063898C  |.  FF15 14CF6500 call    [<&MSVCRT.__p__fmode>]           ;  msvcrt.__p__fmode
00638992  |.  8B0D FC2B6D00 mov     ecx, [6D2BFC]
00638998  |.  8908          mov     [eax], ecx

使用字符搜索插件搜索关键字符找到:

0061FCE3  /$  55            push    ebp
0061FCE4  |.  8BEC          mov     ebp, esp
0061FCE6  |.  6A FF         push    -1
0061FCE8  |.  68 CCAE6500   push    0065AECC                         ;  SE 处理程序安装
0061FCED  |.  64:A1 0000000>mov     eax, fs:[0]
0061FCF3  |.  50            push    eax
0061FCF4  |.  64:8925 00000>mov     fs:[0], esp
0061FCFB  |.  83EC 0C       sub     esp, 0C
0061FCFE  |.  8D4D F0       lea     ecx, [ebp-10]
0061FD01  |.  E8 2A0E0000   call    00620B30
0061FD06  |.  C745 FC 00000>mov     dword ptr [ebp-4], 0
0061FD0D  |.  8D4D F0       lea     ecx, [ebp-10]
0061FD10  |.  E8 5B0E0000   call    00620B70                         ;  首次读狗,F2设断
0061FD15  |.  85C0          test    eax, eax
0061FD17  |.  75 32         jnz     short 0061FD4B
0061FD19  |.  68 4CA06C00   push    006CA04C                         ;  b
0061FD1E  |.  68 50A06C00   push    006CA050                         ;  项目管理2006 标准版
0061FD23  |.  8D4D F0       lea     ecx, [ebp-10]
0061FD26  |.  E8 550E0000   call    00620B80                         ;  读狗软序列号,F2设断
0061FD2B  |.  83F8 6E       cmp     eax, 6E
0061FD2E  |.  75 1B         jnz     short 0061FD4B
0061FD30  |.  C745 EC 6E000>mov     dword ptr [ebp-14], 6E
0061FD37  |.  C745 FC FFFFF>mov     dword ptr [ebp-4], -1
0061FD3E  |.  8D4D F0       lea     ecx, [ebp-10]
0061FD41  |.  E8 1A0E0000   call    00620B60
0061FD46  |.  8B45 EC       mov     eax, [ebp-14]
0061FD49  |.  EB 19         jmp     short 0061FD64
0061FD4B  |>  C745 E8 00000>mov     dword ptr [ebp-18], 0
0061FD52  |.  C745 FC FFFFF>mov     dword ptr [ebp-4], -1
0061FD59  |.  8D4D F0       lea     ecx, [ebp-10]

断点设置完毕后F9运行:

0061FD06  |.  C745 FC 00000>mov     dword ptr [ebp-4], 0
0061FD0D  |.  8D4D F0       lea     ecx, [ebp-10]
0061FD10  |.  E8 5B0E0000   call    00620B70                         ;  断下后,F7跟进
0061FD15  |.  85C0          test    eax, eax
0061FD17  |.  75 32         jnz     short 0061FD4B                   ;  这里不能跳,跳则为学习版
0061FD19  |.  68 4CA06C00   push    006CA04C
0061FD1E  |.  68 50A06C00   push    006CA050                         ;  项目管理2006 标准版
0061FD23  |.  8D4D F0       lea     ecx, [ebp-10]

跟进call    00620B70:

00620B70   $  B9 902B6D00   mov     ecx, 006D2B90                    ;  跟进后来到这里
00620B75   .  E9 36060000   jmp     006211B0                         ;  跳向读狗点――跳转①
00620B7A      90            nop
00620B7B      90            nop
00620B7C      90            nop
00620B7D      90            nop
00620B7E      90            nop
00620B7F      90            nop

上面跳转①来到:

006211B0   > \56            push    esi
006211B1   .  57            push    edi
006211B2   .  8BF9          mov     edi, ecx
006211B4   .  83CE FF       or      esi, FFFFFFFF
006211B7   .  C605 B82B6D00>mov     byte ptr [6D2BB8], 0
006211BE   .  C605 BC2B6D00>mov     byte ptr [6D2BBC], 0
006211C5   .  C705 B42B6D00>mov     dword ptr [6D2BB4], 0F026
006211CF   .  C705 C42B6D00>mov     dword ptr [6D2BC4], 0
006211D9   .  E8 2C7F0000   call    0062910A                         ;  读狗核心,不必跟进
006211DE   .  85C0          test    eax, eax                         ;  EAX有狗为0,无狗为27EF,必须清零
                                                                     ; (修改为:xor     eax, eax)
006211E0      75 0E         jnz     short 006211F0                   ;  这里不能跳
006211E2   .  A1 C42B6D00   mov     eax, [6D2BC4]
006211E7   .  0C 02         or      al, 2
006211E9   .  33F6          xor     esi, esi
006211EB   .  A3 C42B6D00   mov     [6D2BC4], eax
006211F0   >  8BCF          mov     ecx, edi
006211F2   .  E8 C9040000   call    006216C0
006211F7   .  85C0          test    eax, eax
006211F9   .  74 1A         je      short 00621215
006211FB   .  E8 0E160000   call    0062280E
00621200   .  85C0          test    eax, eax
00621202   .  75 11         jnz     short 00621215
00621204   .  A1 C42B6D00   mov     eax, [6D2BC4]
00621209   .  5F            pop     edi
0062120A   .  0C 01         or      al, 1
0062120C   .  5E            pop     esi
0062120D   .  A3 C42B6D00   mov     [6D2BC4], eax
00621212   .  33C0          xor     eax, eax
00621214   .  C3            retn
00621215   >  8BC6          mov     eax, esi
00621217   .  5F            pop     edi
00621218   .  5E            pop     esi
00621219   .  C3            retn                                     ;  返回

在006211DE处,EAX赋值为0后,0061FD17处就不再跳转了(第一处狗杀掉)。

继续F9运行中断:

0061FD26  |.  E8 550E0000   call    00620B80                         ;  断下后,F7跟进
0061FD2B  |.  83F8 6E       cmp     eax, 6E
0061FD2E  |.  75 1B         jnz     short 0061FD4B                   ;  这里不能跳,跳则为必须输入序列号,错误则进入学习版
0061FD30  |.  C745 EC 6E000>mov     dword ptr [ebp-14], 6E
0061FD37  |.  C745 FC FFFFF>mov     dword ptr [ebp-4], -1
0061FD3E  |.  8D4D F0       lea     ecx, [ebp-10]

跟进call    00620B80:

00620B80  /$  53            push    ebx                              ;  跟进后来到这里
00620B81  |.  55            push    ebp
00620B82  |.  8B6C24 10     mov     ebp, [esp+10]
00620B86  |.  56            push    esi
00620B87  |.  57            push    edi
00620B88  |.  33C0          xor     eax, eax
00620B8A  |.  BE 68A06C00   mov     esi, 006CA068                    ;  z
00620B8F  |.  8BCD          mov     ecx, ebp
00620B91  |>  8A19          /mov     bl, [ecx]
00620B93  |.  8AD3          |mov     dl, bl
00620B95  |.  3A1E          |cmp     bl, [esi]
00620B97  |.  75 1C         |jnz     short 00620BB5                  ;  程序正常运行则跳转
00620B99  |.  84D2          |test    dl, dl
00620B9B  |.  74 14         |je      short 00620BB1
00620B9D  |.  8A59 01       |mov     bl, [ecx+1]
00620BA0  |.  8AD3          |mov     dl, bl
00620BA2  |.  3A5E 01       |cmp     bl, [esi+1]
00620BA5  |.  75 0E         |jnz     short 00620BB5
00620BA7  |.  83C1 02       |add     ecx, 2
00620BAA  |.  83C6 02       |add     esi, 2
00620BAD  |.  84D2          |test    dl, dl
00620BAF  |.^ 75 E0         \jnz     short 00620B91
00620BB1  |>  33C9          xor     ecx, ecx
00620BB3  |.  EB 05         jmp     short 00620BBA
00620BB5  |>  1BC9          sbb     ecx, ecx
00620BB7  |.  83D9 FF       sbb     ecx, -1
00620BBA  |>  8B7C24 14     mov     edi, [esp+14]
00620BBE  |.  85C9          test    ecx, ecx
00620BC0  |.  75 0F         jnz     short 00620BD1
00620BC2  |.  6A 00         push    0
00620BC4  |.  6A 39         push    39
00620BC6  |.  57            push    edi
00620BC7  |.  B9 902B6D00   mov     ecx, 006D2B90
00620BCC  |.  E8 EF000000   call    00620CC0                         ;  加载序列号输入窗体
00620BD1  |> \BE 64A06C00   mov     esi, 006CA064                    ;  b
00620BD6  |.  8BCD          mov     ecx, ebp
00620BD8  |>  8A19          /mov     bl, [ecx]                       ;  验证狗序列号是否正确
00620BDA  |.  8AD3          |mov     dl, bl
00620BDC  |.  3A1E          |cmp     bl, [esi]                       ; (修改为:mov     bl, [esi])
00620BDE  |.  75 1C         |jnz     short 00620BFC                  ;  序列号正确则跳转,必须跳
00620BE0  |.  84D2          |test    dl, dl
00620BE2  |.  74 14         |je      short 00620BF8
00620BE4  |.  8A59 01       |mov     bl, [ecx+1]
00620BE7  |.  8AD3          |mov     dl, bl
00620BE9  |.  3A5E 01       |cmp     bl, [esi+1]
00620BEC  |.  75 0E         |jnz     short 00620BFC
00620BEE  |.  83C1 02       |add     ecx, 2
00620BF1  |.  83C6 02       |add     esi, 2
00620BF4  |.  84D2          |test    dl, dl
00620BF6  |.^ 75 E0         \jnz     short 00620BD8
00620BF8  |>  33C9          xor     ecx, ecx
00620BFA  |.  EB 05         jmp     short 00620C01
00620BFC  |>  1BC9          sbb     ecx, ecx
00620BFE  |.  83D9 FF       sbb     ecx, -1
00620C01  |>  85C9          test    ecx, ecx
00620C03  |.  75 0E         jnz     short 00620C13
00620C05  |.  6A 1C         push    1C
00620C07  |.  51            push    ecx
00620C08  |.  57            push    edi
00620C09  |.  B9 902B6D00   mov     ecx, 006D2B90
00620C0E  |.  E8 AD000000   call    00620CC0                         ;  加载序列号输入窗体
00620C13  |> \5F            pop     edi                              ;  检测狗与序列号
00620C14  |.  5E            pop     esi
00620C15      2D 13020000   sub     eax, 213
00620C1A  |.  5D            pop     ebp
00620C1B  |.  5B            pop     ebx
00620C1C  |.  74 12         je      short 00620C30                   ;  对应正确则跳,必须跳
                                                                     ; (修改为:jnz     short 00620C30)
00620C1E  |.  83E8 6F       sub     eax, 6F
00620C21  |.  74 05         je      short 00620C28
00620C23  |.  33C0          xor     eax, eax                         ;  Default case of switch 00620C15
00620C25  |.  C2 0800       retn    8
00620C28  |>  B8 4C040000   mov     eax, 44C                         ;  Case 282 of switch 00620C15
00620C2D  |.  C2 0800       retn    8
00620C30  |>  B8 6E000000   mov     eax, 6E                          ;  Case 213 of switch 00620C15
00620C35  \.  C2 0800       retn    8

以上修改好了后,0061FD2E处就不再跳转了(第二处狗杀掉)。

小结:

这只狗是老狗了,非常容易打掉,此上的修改仅为打狗而已,达到软件脱狗运行的目的,并且标准版中的功能全部能使用了。
如果想使用该软件的更多专业版功能,则还需要进一步研究,请见下文:

因为专业版与标准版有一些功能上的区别,所以软件的专业版功能更为强大。

继续用字符搜索插件搜索:“标准版”

我这里找到N处,并且在所有这些提示上的能跳过改提示的跳转上设断!这里我就不一一例举出来了。

F9运行,随便找软件一个标准版限制的功能中断下来,我找的是“数据检查”功能。

中断后:

00563F37  /.  55                   push    ebp
00563F38  |.  8BEC                 mov     ebp, esp
00563F3A  |.  6A FF                push    -1
00563F3C  |.  68 CCF16400          push    0064F1CC                              ;  SE 处理程序安装
00563F41  |.  64:A1 00000000       mov     eax, fs:[0]
00563F47  |.  50                   push    eax
00563F48  |.  64:8925 00000000     mov     fs:[0], esp
00563F4F  |.  81EC 68010000        sub     esp, 168
00563F55  |.  898D B4FEFFFF        mov     [ebp-14C], ecx
00563F5B  |.  833D 48A06C00 6E     cmp     dword ptr [6CA048], 6E                ;  这里有问题!研究[6CA048]的数据!
00563F62  |.  0F85 06010000        jnz     0056406E                              ;  这里跳转则能使用对应处限制的功能
00563F68  |.  6A 00                push    0
00563F6A  |.  6A 00                push    0
00563F6C  |.  68 8C196B00          push    006B198C                              ;  功能
00563F71  |.  68 9AF00000          push    0F09A
00563F76  |.  8D8D C8FEFFFF        lea     ecx, [ebp-138]
00563F7C  |.  E8 73370D00          call    <jmp.&MFC42.#537_CString::CString>
00563F81  |.  8985 B0FEFFFF        mov     [ebp-150], eax
00563F87  |.  8B85 B0FEFFFF        mov     eax, [ebp-150]
00563F8D  |.  8985 ACFEFFFF        mov     [ebp-154], eax
00563F93  |.  C745 FC 00000000     mov     dword ptr [ebp-4], 0
00563F9A  |.  8B8D ACFEFFFF        mov     ecx, [ebp-154]
00563FA0  |.  51                   push    ecx
00563FA1  |.  68 94196B00          push    006B1994                              ;  标准版不提供
00563FA6  |.  8D8D C4FEFFFF        lea     ecx, [ebp-13C]
00563FAC  |.  E8 43370D00          call    <jmp.&MFC42.#537_CString::CString>

我们在00563F5B处用“数据窗口中跟随”-->“内存地址”:

006CA048  6E 00 00 00 42 00 00 00 CF EE C4 BF B9 DC C0 ED  n...B...项目管理
006CA058  32 30 30 35 20 B1 EA D7 BC B0 E6 00 42 00 00 00  2006 标准版.B...
006CA068  5A 00 00 00 01 03 01 0A 04 06 0B 32 07 09 33 64  Z.... 2.3d
006CA078  0A 0C 65 78 0D 0F 79 82 10 12 83 87 13 15 88 91  ..ex.y???
006CA088  16 18 92 9B 19 1B 9C B9 1C 1E BA CD 1F 21 CE E1  ??和!吾
006CA098  22 24 E2 E6 25 27 E7 FE 4C 50 54 33 00 00 00 00  "$怄%'琬LPT3....
006CA0A8  4C 50 54 32 00 00 00 00 4C 50 54 31 00 00 00 00  LPT2....LPT1....
006CA0B8  A1 BF D0 F2 C1 D0 BA C5 00 00 00 00 C7 EB CA E4  】序列号....请输
006CA0C8  C8 EB A1 BE 00 00 00 00 01 01 00 00 00 00 00 00  入【..........
006CA0D8  56 65 72 73 69 6F 6E 31 32 33 03 00 9C 01 52 43  Version123.?RC
006CA0E8  2D 55 4D 48 2D 4C 4D 2D 57 33 32 49 4E 54 46 00  -UMH-LM-W32INTF.
006CA0F8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 7C  ..............?
006CA108  00 00 E5 00 01 00 00 00 01 00 00 00 00 00 00     ..?..........

哦~~那里的数据原来是比较版本的类别!

B = 标准版?
Z = 专业版?

试试看,我们把:

cmp     dword ptr [6CA048], 6E

修改为:

cmp     dword ptr [6CA068], 6E

嘿嘿,修改后00563F62跳走了!

其实上面修改太麻烦了,00563F5B的语句意思为比较6CA048中的数据是否等于“6E”也就是十进制数“110”,所以,我们用十六进制修改以下

此处的数据:

006CA048  6E 00 00 00 42 00 00 00 CF EE C4 BF B9 DC C0 ED  n...B...项目管理     // 把“n”随便修改一个字符保存就OK了,这样修  

                                                                                // 改后的主程序那些专业版才能用的功能在这个修

                                                                                // 改后的标准版中也能完全使用了,收工!

不过有一点要注意,006CA048处是动态内存分配的数据6E,修改方法有N多种,所以怎么修改,就看你的了,以前有文章提到过,自己尝试!呵

呵!

----------------------------------------------------------------------

Remove.Dongle.By.KuNgBiM

2006-12-06

感谢D.C.Team:微笑一刀、闪电狼、妓院小老板(FSlove)、少爷、LoveBoom以及所有人给我的愉快心情~~~~

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
占下老K的沙发
2006-12-6 14:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习!
2006-12-6 14:45
0
雪    币: 51
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上的是马甲!!!
而已不是shoooo 的马甲!!!
强烈要求封马甲!!
2006-12-6 14:57
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
  老大 我强顶!!   
另加膜拜
2006-12-6 15:09
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
6
可惜不知道软件名,不然我也来学打一次,可惜
2006-12-6 15:13
0
雪    币: 245
活跃值: (41)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
7
打狗了...............
2006-12-6 15:14
0
雪    币: 243
活跃值: (13)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
顶+学习了!
2006-12-6 15:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习中!!
2006-12-6 15:42
0
雪    币: 255
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这种解微狗的办法,太老了。
2006-12-6 15:48
0
雪    币: 255
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不把锁内数据PATCH进文件。模拟那些函数。靠改跳转是不行的。
2006-12-6 16:11
0
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
12
支持老K了,不过这种狗的强度确实不怎莫样!
2006-12-6 16:51
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
学习!!!
2006-12-6 16:57
0
雪    币: 175
活跃值: (2331)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
破解狗,要看懂狗的流程很麻烦。
2006-12-6 21:04
0
雪    币: 233
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
现在打狗的文章越来越多了,看来随着软件的发展,这也是个趋势啊。
对于有试用或有学习版的国内商业软件,楼主的这通拳脚应该是标准的“打狗拳”。
2006-12-7 10:34
0
雪    币: 204
活跃值: (225)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
没搞懂!这好像是深圳thware公司的软件,我搞了好久啷个都是标准版啊?哪位老大指点一下啊
2006-12-13 16:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
打狗的好文,顶一下....

咱的好好研究一下,希望再多来几篇!
2006-12-16 17:21
0
游客
登录 | 注册 方可回帖
返回
//