飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7694|回复: 12

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

[复制链接]
  • TA的每日心情
    开心
    2022-9-25 11:58
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2006-12-6 21:32:24 | 显示全部楼层 |阅读模式
    XXXXX项目管理2006之“天下无狗”

    文章作者:KuNgBiM
    文章目的:无狗打狗
    作者邮箱:[email protected]
    作者声明:学习交流而已
    软件简介:工程项目管理软件
    下载地址:自己搜
    加密方式: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  ..............

    评分

    参与人数 1威望 +8 飘云币 +8 收起 理由
    下下雪 + 8 + 8 原创内容

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-12-6 22:42:30 | 显示全部楼层
    支持的,支持的!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    前天 15:52
  • 签到天数: 769 天

    [LV.10]以坛为家III

    发表于 2006-12-7 10:49:36 | 显示全部楼层
    好文,支持!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-6-6 15:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2006-12-7 13:21:27 | 显示全部楼层
    好文“天下无狗”绝招的名式哈哈。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-12-7 21:56:12 | 显示全部楼层
    /:D 支持下,嘿嘿~学习~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-12-9 13:45:11 | 显示全部楼层
    学习了,欧对狗一窍不通
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-12-9 13:57:13 | 显示全部楼层
    支持&学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-12-10 21:41:17 | 显示全部楼层
    值 得收藏,!!!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-12-10 22:01:23 | 显示全部楼层
    不错 学到东西了 哈哈:lol:
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-7-11 05:41
  • 签到天数: 329 天

    [LV.8]以坛为家I

    发表于 2006-12-11 20:38:55 | 显示全部楼层
    学习一下:P :P
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表