破解目标:GuitarChordHelperV2.3
破解工具:flyollydbg1.10
破解目的:学习找注册码,VB编程
软件简介:
吉他和弦的软件,偶尔弹吉他,用着还可以。免费注册,请留下 ID 进行注册,顺便带上你的GCH文件,^_^)。不注册有30次使用限制。既然不收费,那拿来破解也不为过。
破解过程:
首先分析,注册麻保存在reg.ini文件里,重启动验证注册。使用次数纪录在windows/system32的2个文件,文件名sysmap.vxd和win_mpa.lib里
互相验证。中间没有一点提示对话框!!
不过我们这次是找注册码,就不管他怎么验证使用次数了。
VB编程的.
首先,我进入程序,注册一下,注册码随便填12345678901234567890,必须20位 !
重新用od打开,我们下比较断点MSVBVM60.__vbaStrCmp等,因为它会比较吧!
F9运行,中断10次左右,我们来到下面:
00507BAC . 68 30034500 push GtChrdHl.00450330 ; UNICODE "\Reg.ini" 这就是注册码存在的文件
00507BB1 . FF15 64104000 call dword ptr ds:[<&MSVBVM60.__vbaStrCat>] ; MSVBVM60.__vbaStrCat
00507BB7 . 8B3D 88124000 mov edi,dword ptr ds:[<&MSVBVM60.__vbaStrMove>] ; MSVBVM60.__vbaStrMove
00507BBD . 8BD0 mov edx,eax
00507BBF . 8D4D E8 lea ecx,dword ptr ss:[ebp-18]
00507BC2 . FFD7 call edi ; MSVBVM60.__vbaStrMove;
<&MSVBVM60.__vbaStrMove>
00507BC4 . 8D4D E0 lea ecx,dword ptr ss:[ebp-20]
00507BC7 . FF15 CC124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>] ; MSVBVM60.__vbaFreeStr
00507BCD . 8D4D D4 lea ecx,dword ptr ss:[ebp-2C]
00507BD0 . FF15 C8124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>] ; MSVBVM60.__vbaFreeObj
00507BD6 . 8D4D C4 lea ecx,dword ptr ss:[ebp-3C]
00507BD9 . 8D45 E8 lea eax,dword ptr ss:[ebp-18]
00507BDC . 53 push ebx
00507BDD . 51 push ecx
00507BDE . 8945 CC mov dword ptr ss:[ebp-34],eax
00507BE1 . C745 C4 08400000 mov dword ptr ss:[ebp-3C],4008
00507BE8 . FF15 DC114000 call dword ptr ds:[<&MSVBVM60.#645>] ; MSVBVM60.rtcDir
00507BEE . 8BD0 mov edx,eax
00507BF0 . 8D4D E0 lea ecx,dword ptr ss:[ebp-20]
00507BF3 . FFD7 call edi ; MSVBVM60.__vbaStrMove
00507BF5 . 8B1D 28114000 mov ebx,dword ptr ds:[<&MSVBVM60.__vbaStrCmp>] ; MSVBVM60.__vbaStrCmp 我们的断点停在这里
00507BFB . 50 push eax
00507BFC . 68 18DB4400 push GtChrdHl.0044DB18
00507C01 . FFD3 call ebx ; MSVBVM60.__vbaStrCmp; <&MSVBVM60.__vbaStrCmp>
00507C03 . 8BF0 mov esi,eax
00507C05 . 8D4D E0 lea ecx,dword ptr ss:[ebp-20]
00507C08 . F7DE neg esi
00507C0A . 1BF6 sbb esi,esi
00507C0C . 46 inc esi
00507C0D . F7DE neg esi
00507C0F . FF15 CC124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>] ; MSVBVM60.__vbaFreeStr
00507C15 . 66:85F6 test si,si
00507C18 . 0F85 8D000000 jnz GtChrdHl.00507CAB
00507C1E . 8B55 E8 mov edx,dword ptr ss:[ebp-18]
00507C21 . 52 push edx
00507C22 . 6A 01 push 1
00507C24 . 6A FF push -1
00507C26 . 6A 01 push 1
00507C28 . FF15 E8114000 call dword ptr ds:[<&MSVBVM60.__vbaFileOpen>] ; MSVBVM60.__vbaFileOpen
00507C2E . 8D45 E4 lea eax,dword ptr ss:[ebp-1C]
00507C31 . 6A 01 push 1
00507C33 . 50 push eax
00507C34 . FF15 28104000 call dword ptr ds:[<&MSVBVM60.__vbaLineInputStr>; MSVBVM60.__vbaLineInputStr
00507C3A . 6A 01 push 1
00507C3C . FF15 18114000 call dword ptr ds:[<&MSVBVM60.__vbaFileClose>] ; MSVBVM60.__vbaFileClose
00507C42 . E8 C9FCFFFF call GtChrdHl.00507910
00507C47 . 8BD0 mov edx,eax ; 出现我的机器码 xM2N2ONKA2
00507C49 . 8D4D D8 lea ecx,dword ptr ss:[ebp-28]
00507C4C . FFD7 call edi ; MSVBVM60.__vbaStrMove
00507C4E . 8B55 D8 mov edx,dword ptr ss:[ebp-28]
00507C51 . 8D4D E0 lea ecx,dword ptr ss:[ebp-20]
00507C54 . C745 C0 14000000 mov dword ptr ss:[ebp-40],14
00507C5B . C745 D8 00000000 mov dword ptr ss:[ebp-28],0
00507C62 . FFD7 call edi ; MSVBVM60.__vbaStrMove
00507C64 . 8B4D E4 mov ecx,dword ptr ss:[ebp-1C] ; 我的假注册码20位 12345678901234567890
00507C67 . 8D55 C0 lea edx,dword ptr ss:[ebp-40]
00507C6A . 51 push ecx
00507C6B . 8D45 E0 lea eax,dword ptr ss:[ebp-20]
00507C6E . 52 push edx
00507C6F . 50 push eax
00507C70 . E8 0BDCFFFF call GtChrdHl.00505880 ; 注册计算call,追进去看吧
00507C75 . 8BD0 mov edx,eax ; 明码真注册码 K4V7V2i8SYfH35iwbNgR
00507C77 . 8D4D DC lea ecx,dword ptr ss:[ebp-24]
00507C7A . FFD7 call edi ; MSVBVM60.__vbaStrMove
00507C7C . 50 push eax
00507C7D . FFD3 call ebx ; MSVBVM60.__vbaStrCmp 我们的又一个断点
00507C7F . 8BF0 mov esi,eax
00507C81 . 8D4D D8 lea ecx,dword ptr ss:[ebp-28]
00507C84 . F7DE neg esi
00507C86 . 8D55 DC lea edx,dword ptr ss:[ebp-24]
00507C89 . 51 push ecx
00507C8A . 1BF6 sbb esi,esi
00507C8C . 8D45 E0 lea eax,dword ptr ss:[ebp-20]
00507C8F . 52 push edx
00507C90 . 46 inc esi
00507C91 . 50 push eax
00507C92 . 6A 03 push 3
00507C94 . F7DE neg esi
00507C96 . FF15 1C124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeStrList>>; MSVBVM60.__vbaFreeStrList
我们找到了明码,这次就不跟踪算法了,有时间再看!大体看了是用查表法.
其实这个软件的注册算法还是有些复杂,只是出现了明码,是一个败笔.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)