lvcaolhx 发表于 2007-9-20 19:05:30

冰糖的第二个CM追码成功

在命令行下bp __vbaStrVarVal
004037DF   .FF15 80104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrVa>;MSVBVM60.__vbaStrVarVal
004037E5   .50            PUSH EAX//断在这里
004037E6   .FF15 1C104000 CALL DWORD PTR DS:[<&MSVBVM60.#516>]   ;MSVBVM60.rtcAnsiValueBstr
向下找VB比较函数
在0040396D处下断
0040396D   .50            PUSH EAX断在这里
0040396E   .FF15 5C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarTs>;MSVBVM60.__vbaVarTstEq//F7进入
到这里,此处只一个Call
66109836 >FF7424 08       PUSH DWORD PTR SS:
6610983A    FF7424 08       PUSH DWORD PTR SS:
6610983E    6A 00         PUSH 0
66109840    E8 51FEFFFF   CALL MSVBVM60.66109696//进入
66109845    8B0485 54E90266 MOV EAX,DWORD PTR DS:
到这里
66109696    55            PUSH EBP
66109697    8BEC            MOV EBP,ESP
66109699    83EC 38         SUB ESP,38
6610969C    8B55 10         MOV EDX,DWORD PTR SS:
6610969F    8B4D 0C         MOV ECX,DWORD PTR SS:
661096A2    53            PUSH EBX
661096A3    56            PUSH ESI
661096A4    66:8B31         MOV SI,WORD PTR DS:
661096A7    57            PUSH EDI
661096A8    66:8B3A         MOV DI,WORD PTR DS:
661096AB    B8 FF7F0000   MOV EAX,7FFF
661096B0    23F8            AND EDI,EAX
661096B2    23F0            AND ESI,EAX
661096B4    66:83FF 09      CMP DI,9
661096B8    74 32         JE SHORT MSVBVM60.661096EC
661096BA    66:83FE 09      CMP SI,9
661096BE    74 2C         JE SHORT MSVBVM60.661096EC
661096C0    0FB745 08       MOVZX EAX,WORD PTR SS:
661096C4    68 01000300   PUSH 30001
661096C9    50            PUSH EAX
661096CA    51            PUSH ECX
661096CB    52            PUSH EDX
661096CC    FF15 0CEE1066   CALL DWORD PTR DS:             ; OLEAUT32.VarCmp//注册码比较函数进

77109F38 >8BFF            MOV EDI,EDI
77109F3A    55            PUSH EBP
代码太长,影响浏览速度,略,真码在这个Call内出现,附一图

[ 本帖最后由 lvcaolhx 于 2007-9-21 14:49 编辑 ]

jy2207661 发表于 2007-9-21 17:07:13

冰糖的第二个CM破文

【破文标题】冰糖的第二个CM破文
【破文作者】jy2207661
【破解工具】PEID,OLLYICE
【破解平台】XP
【软件名称】bingtangscm2.exe
【软件大小】28KB
------------------------------------------------------------------------
在QQ群同学们的帮助下,完成。

1.PEID查壳,无壳,为Microsoft Visual Basic 5.0 / 6.0所写

2.OD载入,F9运行,输入名称:jy2207661,密码:000000,下断bp __vbaVarTstEq(比较变量是否相等),点确定停

在这里:
0040396E   .FF15 5C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarTs>;MSVBVM60.__vbaVarTstEq
00403974   .66:85C0       TEST AX,AX   ;断在这里,记下上面一行的地址,OD新重载入
00403977      0F84 DA000000 JE bingtang.00403A57    ;修改这里的JE为JNE即可实现爆破

3.OD重新载入,F9运行,输入名称:jy2207661,密码:000000,CTRL+G,输入0040396E,回车,点确定停在这里:
0040396E   .FF15 5C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarTs>;MSVBVM60.__vbaVarTstEq//F7进



4.F7进入来到这里:
66109836 >FF7424 08       PUSH DWORD PTR SS:
6610983A    FF7424 08       PUSH DWORD PTR SS:
6610983E    6A 00         PUSH 0
66109840    E8 51FEFFFF   CALL MSVBVM60.66109696//F7进入,不然下面要返回了。
66109845    8B0485 54E90266 MOV EAX,DWORD PTR DS:
6610984C    C2 0800         RETN 8

5.F7进入来到这里:
66109696    55            PUSH EBP
..................
..................//往下看,下面的CALL是个比较
661096CC    FF15 0CEE1066   CALL DWORD PTR DS:             ; OLEAUT32.VarCmp//F7进入

6.F7进入来到这里:
77109F38 >8BFF            MOV EDI,EDI
77109F3A    55            PUSH EBP
................................
77109F7A    FF2495 8C9B1077 JMP DWORD PTR DS://此处跳到下面7710A8D2

7710A8D2    FF75 14         PUSH DWORD PTR SS:
7710A8D5    FF75 10         PUSH DWORD PTR SS:
7710A8D8    FF73 08         PUSH DWORD PTR DS:
7710A8DB    FF76 08         PUSH DWORD PTR DS:
7710A8DE    E8 31FFFFFF   CALL OLEAUT32.VarBstrCmp//此处比较,应F7进入,否则死
7710A8E3^ EB 99         JMP SHORT OLEAUT32.7710A87E
7710A8E5    90            NOP

7.F7进入来到这里:
7710A814 >8BFF            MOV EDI,EDI
7710A816    55            PUSH EBP
7710A817    8BEC            MOV EBP,ESP
7710A819    53            PUSH EBX
7710A81A    56            PUSH ESI
7710A81B    8B75 08         MOV ESI,DWORD PTR SS://ESI中出现假码
7710A81E    57            PUSH EDI
7710A81F    56            PUSH ESI
7710A820    E8 D5A4FEFF   CALL OLEAUT32.SysStringByteLen
7710A825    8B7D 0C         MOV EDI,DWORD PTR SS:
7710A828    8BD8            MOV EBX,EAX               //EDI中出现真码

8.内存注册机不好写,因为在改变用户名的时候,好像程序检验注册码是否正确,这样导致内存注册机无法正确显

示注册码。

jy2207661 发表于 2007-9-21 18:39:02

冰糖的第二个CM破文

【破文标题】冰糖的第二个CM破文
【破文作者】jy2207661
【破解工具】PEID,OLLYICE
【破解平台】XP
【软件名称】bingtangscm2.exe
【软件大小】28KB
------------------------------------------------------------------------
在QQ群同学们的帮助下,完成。

1.PEID查壳,无壳,为Microsoft Visual Basic 5.0 / 6.0所写

2.OD载入,F9运行,输入名称:jy2207661,密码:000000,下断bp __vbaVarTstEq(比较变量是否相等),点确定停

在这里:
0040396E   .FF15 5C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarTs>;MSVBVM60.__vbaVarTstEq
00403974   .66:85C0       TEST AX,AX   ;断在这里,记下上面一行的地址,OD新重载入
00403977      0F84 DA000000 JE bingtang.00403A57    ;修改这里的JE为JNE即可实现爆破

3.OD重新载入,F9运行,输入名称:jy2207661,密码:000000,CTRL+G,输入0040396E,回车,点确定停在这里:
0040396E   .FF15 5C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarTs>;MSVBVM60.__vbaVarTstEq//F7进



4.F7进入来到这里:
66109836 >FF7424 08       PUSH DWORD PTR SS:
6610983A    FF7424 08       PUSH DWORD PTR SS:
6610983E    6A 00         PUSH 0
66109840    E8 51FEFFFF   CALL MSVBVM60.66109696//F7进入,不然下面要返回了。
66109845    8B0485 54E90266 MOV EAX,DWORD PTR DS:
6610984C    C2 0800         RETN 8

5.F7进入来到这里:
66109696    55            PUSH EBP
..................
..................//往下看,下面的CALL是个比较
661096CC    FF15 0CEE1066   CALL DWORD PTR DS:             ; OLEAUT32.VarCmp//F7进入

6.F7进入来到这里:
77109F38 >8BFF            MOV EDI,EDI
77109F3A    55            PUSH EBP
................................
77109F7A    FF2495 8C9B1077 JMP DWORD PTR DS://此处跳到下面7710A8D2

7710A8D2    FF75 14         PUSH DWORD PTR SS:
7710A8D5    FF75 10         PUSH DWORD PTR SS:
7710A8D8    FF73 08         PUSH DWORD PTR DS:
7710A8DB    FF76 08         PUSH DWORD PTR DS:
7710A8DE    E8 31FFFFFF   CALL OLEAUT32.VarBstrCmp//此处比较,应F7进入,否则死
7710A8E3^ EB 99         JMP SHORT OLEAUT32.7710A87E
7710A8E5    90            NOP

7.F7进入来到这里:
7710A814 >8BFF            MOV EDI,EDI
7710A816    55            PUSH EBP
7710A817    8BEC            MOV EBP,ESP
7710A819    53            PUSH EBX
7710A81A    56            PUSH ESI
7710A81B    8B75 08         MOV ESI,DWORD PTR SS://ESI中出现假码
7710A81E    57            PUSH EDI
7710A81F    56            PUSH ESI
7710A820    E8 D5A4FEFF   CALL OLEAUT32.SysStringByteLen
7710A825    8B7D 0C         MOV EDI,DWORD PTR SS:
7710A828    8BD8            MOV EBX,EAX               //EDI中出现真码

8.内存注册机不好写,因为在改变用户名的时候,好像程序检验注册码是否正确,这样导致内存注册机无法正确显

示注册码。

zyhxhw 发表于 2007-9-24 23:20:35

原来是下取长度断点:

yang15363 发表于 2007-9-25 17:05:15

VB的东东,不熟悉函数就是不行,好不容易才追出码来。/:L
练一手还是有必要的。其实用C32Asm查找字串更方便,两分钟搞定暴破,走了一个弯路。





[ 本帖最后由 yang15363 于 2007-9-25 17:11 编辑 ]

afeng1996 发表于 2007-9-25 18:16:58

入口太难进了,不知道如何断点

lixy8888 发表于 2008-7-25 08:39:03

成功

小试身手,终于弄出来了
页: 1 2 [3]
查看完整版本: 冰糖的第二个CM——送给第七期5.4CRACKER小组的礼物