冰糖的第二个CM追码成功
在命令行下bp __vbaStrVarVal004037DF .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 编辑 ]
冰糖的第二个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.内存注册机不好写,因为在改变用户名的时候,好像程序检验注册码是否正确,这样导致内存注册机无法正确显
示注册码。
冰糖的第二个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.内存注册机不好写,因为在改变用户名的时候,好像程序检验注册码是否正确,这样导致内存注册机无法正确显
示注册码。 原来是下取长度断点: VB的东东,不熟悉函数就是不行,好不容易才追出码来。/:L
练一手还是有必要的。其实用C32Asm查找字串更方便,两分钟搞定暴破,走了一个弯路。
[ 本帖最后由 yang15363 于 2007-9-25 17:11 编辑 ] 入口太难进了,不知道如何断点