XXXXX项目管理2006之“天下无狗”
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:
0063895F|.50 push eax
00638960|.64:8925 00000>mov fs:, esp
00638967|.83EC 68 sub esp, 68
0063896A|.53 push ebx
0063896B|.56 push esi
0063896C|.57 push edi
0063896D|.8965 E8 mov , esp
00638970|.33DB xor ebx, ebx
00638972|.895D FC mov , 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 , FFFFFFFF
00638985|.830D 1C2C6D00>or dword ptr , FFFFFFFF
0063898C|.FF15 14CF6500 call [<&MSVCRT.__p__fmode>] ;msvcrt.__p__fmode
00638992|.8B0D FC2B6D00 mov ecx,
00638998|.8908 mov , 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:
0061FCF3|.50 push eax
0061FCF4|.64:8925 00000>mov fs:, esp
0061FCFB|.83EC 0C sub esp, 0C
0061FCFE|.8D4D F0 lea ecx,
0061FD01|.E8 2A0E0000 call 00620B30
0061FD06|.C745 FC 00000>mov dword ptr , 0
0061FD0D|.8D4D F0 lea ecx,
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,
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 , 6E
0061FD37|.C745 FC FFFFF>mov dword ptr , -1
0061FD3E|.8D4D F0 lea ecx,
0061FD41|.E8 1A0E0000 call 00620B60
0061FD46|.8B45 EC mov eax,
0061FD49|.EB 19 jmp short 0061FD64
0061FD4B|>C745 E8 00000>mov dword ptr , 0
0061FD52|.C745 FC FFFFF>mov dword ptr , -1
0061FD59|.8D4D F0 lea ecx,
断点设置完毕后F9运行:
0061FD06|.C745 FC 00000>mov dword ptr , 0
0061FD0D|.8D4D F0 lea ecx,
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,
跟进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 , 0
006211BE .C605 BC2B6D00>mov byte ptr , 0
006211C5 .C705 B42B6D00>mov dword ptr , 0F026
006211CF .C705 C42B6D00>mov dword ptr , 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,
006211E7 .0C 02 or al, 2
006211E9 .33F6 xor esi, esi
006211EB .A3 C42B6D00 mov , 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,
00621209 .5F pop edi
0062120A .0C 01 or al, 1
0062120C .5E pop esi
0062120D .A3 C42B6D00 mov , 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 , 6E
0061FD37|.C745 FC FFFFF>mov dword ptr , -1
0061FD3E|.8D4D F0 lea ecx,
跟进call 00620B80:
00620B80/$53 push ebx ;跟进后来到这里
00620B81|.55 push ebp
00620B82|.8B6C24 10 mov ebp,
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,
00620B93|.8AD3 |mov dl, bl
00620B95|.3A1E |cmp bl,
00620B97|.75 1C |jnz short 00620BB5 ;程序正常运行则跳转
00620B99|.84D2 |test dl, dl
00620B9B|.74 14 |je short 00620BB1
00620B9D|.8A59 01 |mov bl,
00620BA0|.8AD3 |mov dl, bl
00620BA2|.3A5E 01 |cmp bl,
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,
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, ;验证狗序列号是否正确
00620BDA|.8AD3 |mov dl, bl
00620BDC|.3A1E |cmp bl, ; (修改为:mov bl, )
00620BDE|.75 1C |jnz short 00620BFC ;序列号正确则跳转,必须跳
00620BE0|.84D2 |test dl, dl
00620BE2|.74 14 |je short 00620BF8
00620BE4|.8A59 01 |mov bl,
00620BE7|.8AD3 |mov dl, bl
00620BE9|.3A5E 01 |cmp bl,
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:
00563F47|.50 push eax
00563F48|.64:8925 00000000 mov fs:, esp
00563F4F|.81EC 68010000 sub esp, 168
00563F55|.898D B4FEFFFF mov , ecx
00563F5B|.833D 48A06C00 6E cmp dword ptr , 6E ;这里有问题!研究的数据!
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,
00563F7C|.E8 73370D00 call <jmp.&MFC42.#537_CString::CString>
00563F81|.8985 B0FEFFFF mov , eax
00563F87|.8B85 B0FEFFFF mov eax,
00563F8D|.8985 ACFEFFFF mov , eax
00563F93|.C745 FC 00000000 mov dword ptr , 0
00563F9A|.8B8D ACFEFFFF mov ecx,
00563FA0|.51 push ecx
00563FA1|.68 94196B00 push 006B1994 ;标准版不提供
00563FA6|.8D8D C4FEFFFF lea ecx,
00563FAC|.E8 43370D00 call <jmp.&MFC42.#537_CString::CString>
我们在00563F5B处用“数据窗口中跟随”-->“内存地址”:
006CA0486E 00 00 00 42 00 00 00 CF EE C4 BF B9 DC C0 EDn...B...项目管理
006CA05832 30 30 35 20 B1 EA D7 BC B0 E6 00 42 00 00 002006 标准版.B...
006CA0685A 00 00 00 01 03 01 0A 04 06 0B 32 07 09 33 64Z.... 2.3d
006CA0780A 0C 65 78 0D 0F 79 82 10 12 83 87 13 15 88 91..ex.y?儑垜
006CA08816 18 92 9B 19 1B 9C B9 1C 1E BA CD 1F 21 CE E1挍湽和!吾
006CA09822 24 E2 E6 25 27 E7 FE 4C 50 54 33 00 00 00 00"$怄%'琬LPT3....
006CA0A84C 50 54 32 00 00 00 00 4C 50 54 31 00 00 00 00LPT2....LPT1....
006CA0B8A1 BF D0 F2 C1 D0 BA C5 00 00 00 00 C7 EB CA E4】序列号....请输
006CA0C8C8 EB A1 BE 00 00 00 00 01 01 00 00 00 00 00 00入【..........
006CA0D856 65 72 73 69 6F 6E 31 32 33 03 00 9C 01 52 43Version123.?RC
006CA0E82D 55 4D 48 2D 4C 4D 2D 57 33 32 49 4E 54 46 00-UMH-LM-W32INTF.
006CA0F800 00 00 00 00 00 00 00 00 00 00 00 00 00 80 7C.............. 支持的,支持的! 好文,支持! 好文“天下无狗”绝招的名式哈哈。 /:D 支持下,嘿嘿~学习~ 学习了,欧对狗一窍不通 支持&学习 值 得收藏,!!!!! 不错 学到东西了 哈哈:lol: 学习一下:P :P
页:
[1]
2