老文章档案 · 2003 年

Ollydbg——轻松文本 2003 V6.13(VB)

破解教程 · 算法分析 · 2003-10-22 · 作者:fly [OCN][FCG] 人气: · 出处:赢政天下整理收藏)

下载页面: http://www.skycn.com/soft/5977.html<;br>

【软件限制】:NAG、功能限制<br>

【作者声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!<br>

【破解工具】:Ollydbg1.09、PEiD、AspackDie、W32Dasm 9.0白金版<br>

————————————————————————————————— <br>

【过 程】:<br>

<br>

其实这个东东数10天前就做了,因为太忙,今天才把笔记整理出来,呵呵,作者也快升级了吧?<br>

顺便看了一下同门的《英语音标大师 V1.02》,算法是一样的,就没必要写了。^O^ ^O^<br>

easypad.exe 是ASPack 2.12壳,用AspackDie脱之。169K->732K。 VB 编写。<br>

这个东东不算难,只是有些方面不好掌握。 ~Q~ ^Q^ ^v^ ^v^<br>

<br>

序列号:FLYN649065455613<br>

试炼码:fly-12345678-fly[OCN][FCG]-E<br>

—————————————————————————————————<br>

* Reference To: MSVBVM60.rtcInputBox, Ord:0254h<br>

<br>

:004620D2 FF15FC104000 Call dword ptr [004010FC]<br>

:004620D8 8BD0 mov edx, eax<br>

====>EDX=fly-12345678-fly[OCN][FCG]-E 试炼码<br>

<br>

:004620DA 8D4DA8 lea ecx, dword ptr [ebp-58]<br>

:004620DD FFD6 call esi<br>

:004620DF 8BD0 mov edx, eax<br>

:004620E1 8B8D78FEFFFF mov ecx, dword ptr [ebp+FFFFFE78]<br>

<br>

* Reference To: MSVBVM60.__vbaStrCopy, Ord:0000h<br>

|<br>

:004620E7 FF15D4124000 Call dword ptr [004012D4]<br>

:004620ED 8D55A4 lea edx, dword ptr [ebp-5C]<br>

:004620F0 52 push edx<br>

<br>

.............................................<br>

..............<br>

<br>

<br>

* Reference To: MSVBVM60.__vbaFreeVarList, Ord:0000h<br>

|<br>

:00462161 FF1544104000 Call dword ptr [00401044]<br>

:00462167 83C45C add esp, 0000005C<br>

:0046216A 8B0B mov ecx, dword ptr [ebx]<br>

:0046216C 8D95C8FEFFFF lea edx, dword ptr [ebp+FFFFFEC8]<br>

:00462172 52 push edx<br>

:00462173 8B8578FEFFFF mov eax, dword ptr [ebp+FFFFFE78]<br>

:00462179 50 push eax<br>

:0046217A 53 push ebx<br>

:0046217B FF9128070000 call dword ptr [ecx+00000728]<br>

====>关键CALL!进入!<br>

<br>

:00462181 85C0 test eax, eax<br>

:00462183 7D12 jge 00462197<br>

:00462185 6828070000 push 00000728<br>

:0046218A 688C574200 push 0042578C<br>

:0046218F 53 push ebx<br>

:00462190 50 push eax<br>

<br>

* Reference To: MSVBVM60.__vbaHresultCheckObj, Ord:0000h<br>

|<br>

:00462191 FF15A4104000 Call dword ptr [004010A4]<br>

<br>

* Referenced by a (U)nconditional or (C)onditional Jump at Address:<br>

|:00462183(C)<br>

|<br>

:00462197 6683BDC8FEFFFF00 cmp word ptr [ebp+FFFFFEC8], 0000<br>

:0046219F 0F84C3030000 je 00462568<br>

====>跳则OVER!<br>

<br>

:004621A5 8D4D8C lea ecx, dword ptr [ebp-74]<br>

:004621A8 51 push ecx<br>

<br>

* Reference To: MSVBVM60.rtcGetDateVar, Ord:0262h<br>

|<br>

:004621A9 FF1524134000 Call dword ptr [00401324]<br>

:004621AF 6A00 push 00000000<br>

:004621B1 8D558C lea edx, dword ptr [ebp-74]<br>

:004621B4 52 push edx<br>

:004621B5 8D857CFFFFFF lea eax, dword ptr [ebp+FFFFFF7C]<br>

:004621BB 50 push eax<br>

<br>

...................................<br>

.........................<br>

<br>

:004622C3 8D856CFFFFFF lea eax, dword ptr [ebp+FFFFFF6C]<br>

:004622C9 50 push eax<br>

:004622CA 8D8D7CFFFFFF lea ecx, dword ptr [ebp+FFFFFF7C]<br>

:004622D0 51 push ecx<br>

:004622D1 8D558C lea edx, dword ptr [ebp-74]<br>

:004622D4 52 push edx<br>

<br>

* Reference To: MSVBVM60.rtcInputBox, Ord:0254h<br>

|<br>

:004622D5 FF15FC104000 Call dword ptr [004010FC]<br>

====>恭喜完成!输入确认号码!7055<br>

<br>

:004622DB 8BD0 mov edx, eax<br>

====>EDX=7055<br>

<br>

:004622DD 8D4DC8 lea ecx, dword ptr [ebp-38]<br>

:004622E0 FFD6 call esi<br>

:004622E2 50 push eax<br>

<br>

* Reference To: MSVBVM60.__vbaR8Str, Ord:0000h<br>

|<br>

:004622E3 FF15C0124000 Call dword ptr [004012C0]<br>

:004622E9 DB437C fild dword ptr [ebx+7C]<br>

:004622EC DD9D70FEFFFF fstp qword ptr [ebp+FFFFFE70]<br>

:004622F2 DC9D70FEFFFF fcomp qword ptr [ebp+FFFFFE70]<br>

====>比较 确认号码 是否是7055?<br>

<br>

:004622F8 DFE0 fstsw ax<br>

:004622FA F6C440 test ah, 40<br>

:004622FD 7407 je 00462306<br>

:004622FF B801000000 mov eax, 00000001<br>

:00462304 EB02 jmp 00462308<br>

<br>

* Referenced by a (U)nconditional or (C)onditional Jump at Address:<br>

|:004622FD(C)<br>

|<br>

:00462306 33C0 xor eax, eax<br>

<br>

* Referenced by a (U)nconditional or (C)onditional Jump at Address:<br>

|:00462304(U)<br>

|<br>

:00462308 F7D8 neg eax<br>

:0046230A 668BF0 mov si, ax<br>

:0046230D 8D45C8 lea eax, dword ptr [ebp-38]<br>

:00462310 50 push eax<br>

:00462311 8D4DCC lea ecx, dword ptr [ebp-34]<br>

:00462314 51 push ecx<br>

:00462315 6A02 push 00000002<br>

<br>

* Reference To: MSVBVM60.__vbaFreeStrList, Ord:0000h<br>

|<br>

:00462317 FF15E4124000 Call dword ptr [004012E4]<br>

:0046231D 8D952CFFFFFF lea edx, dword ptr [ebp+FFFFFF2C]<br>

:00462323 52 push edx<br>

:00462324 8D853CFFFFFF lea eax, dword ptr [ebp+FFFFFF3C]<br>

:0046232A 50 push eax<br>

:0046232B 8D8D4CFFFFFF lea ecx, dword ptr [ebp+FFFFFF4C]<br>

:00462331 51 push ecx<br>

:00462332 8D955CFFFFFF lea edx, dword ptr [ebp+FFFFFF5C]<br>

:00462338 52 push edx<br>

:00462339 8D856CFFFFFF lea eax, dword ptr [ebp+FFFFFF6C]<br>

:0046233F 50 push eax<br>

:00462340 8D8D7CFFFFFF lea ecx, dword ptr [ebp+FFFFFF7C]<br>

:00462346 51 push ecx<br>

:00462347 8D558C lea edx, dword ptr [ebp-74]<br>

:0046234A 52 push edx<br>

:0046234B 6A07 push 00000007<br>

<br>

* Reference To: MSVBVM60.__vbaFreeVarList, Ord:0000h<br>

|<br>

:0046234D FF1544104000 Call dword ptr [00401044]<br>

:00462353 83C42C add esp, 0000002C<br>

:00462356 6685F6 test si, si<br>

:00462359 0F8409020000 je 00462568<br>

:0046235F 8B8578FEFFFF mov eax, dword ptr [ebp+FFFFFE78]<br>

:00462365 8B08 mov ecx, dword ptr [eax]<br>

:00462367 51 push ecx<br>

<br>

* Possible StringData Ref from Code Obj ->"rregnumber"<br>

|<br>

:00462368 6870684200 push 00426870<br>

<br>

* Possible StringData Ref from Code Obj ->"rregist"<br>

|<br>

:0046236D 685C684200 push 0042685C<br>

<br>

* Possible StringData Ref from Code Obj ->"eeasypad"<br>

|<br>

:00462372 68E8634200 push 004263E8<br>

<br>

* Reference To: MSVBVM60.rtcSaveSetting, Ord:02B2h<br>

|<br>

:00462377 FF150C104000 Call dword ptr [0040100C]<br>

====>保存注册信息!<br>

<br>

:0046237D E9E6010000 jmp 00462568<br>

<br>

<br>

—————————————————————————————————<br>

进入关键CALL:0046217B call dword ptr [ecx+00000728]<br>

<br>

…… ……省略…… ……<br>

<br>

:004724A8 FFD3 call ebx<br>

:004724AA 50 push eax<br>

<br>

* Possible StringData Ref from Code Obj ->"CC:\"<br>

|<br>

:004724AB 68A4974200 push 004297A4<br>

:004724B0 8D45CC lea eax, dword ptr [ebp-34]<br>

:004724B3 50 push eax<br>

:004724B4 FFD3 call ebx<br>

:004724B6 50 push eax<br>

:004724B7 E8EC30FBFF call 004255A8<br>

<br>

* Reference To: MSVBVM60.__vbaSetSystemError, Ord:0000h<br>

|<br>

:004724BC FF1598104000 Call dword ptr [00401098]<br>

:004724C2 8B4DC8 mov ecx, dword ptr [ebp-38]<br>

<br>

* Reference To: MSVBVM60.__vbaStrToUnicode, Ord:0000h<br>

|<br>

:004724C5 8B1D38124000 mov ebx, dword ptr [00401238]<br>

:004724CB 51 push ecx<br>

:004724CC 8D55C4 lea edx, dword ptr [ebp-3C]<br>

:004724CF 52 push edx<br>

:004724D0 FFD3 call ebx<br>

:004724D2 50 push eax<br>

:004724D3 8B45DC mov eax, dword ptr [ebp-24]<br>

:004724D6 50 push eax<br>

:004724D7 57 push edi<br>

<br>

* Reference To: MSVBVM60.__vbaLsetFixstr, Ord:0000h<br>

|<br>

:004724D8 FF1594104000 Call dword ptr [00401094]<br>

:004724DE 8B4DC0 mov ecx, dword ptr [ebp-40]<br>

:004724E1 51 push ecx<br>

:004724E2 8D55BC lea edx, dword ptr [ebp-44]<br>

:004724E5 52 push edx<br>

:004724E6 FFD3 call ebx<br>

:004724E8 50 push eax<br>

:004724E9 8B45D8 mov eax, dword ptr [ebp-28]<br>

:004724EC 50 push eax<br>

:004724ED 57 push edi<br>

<br>

* Reference To: MSVBVM60.__vbaLsetFixstr, Ord:0000h<br>

|<br>

:004724EE FF1594104000 Call dword ptr [00401094]<br>

:004724F4 8D4DBC lea ecx, dword ptr [ebp-44]<br>

:004724F7 51 push ecx<br>

:004724F8 8D55C0 lea edx, dword ptr [ebp-40]<br>

:004724FB 52 push edx<br>

:004724FC 8D45C4 lea eax, dword ptr [ebp-3C]<br>

:004724FF 50 push eax<br>

:00472500 8D4DC8 lea ecx, dword ptr [ebp-38]<br>

:00472503 51 push ecx<br>

:00472504 8D55CC lea edx, dword ptr [ebp-34]<br>

:00472507 52 push edx<br>

:00472508 6A05 push 00000005<br>

<br>

* Reference To: MSVBVM60.__vbaFreeStrList, Ord:0000h<br>

|<br>

:0047250A FF15E4124000 Call dword ptr [004012E4]<br>

:00472510 8B5D0C mov ebx, dword ptr [ebp+0C]<br>

:00472513 8B03 mov eax, dword ptr [ebx]<br>

====>EAX=fly-12345678-fly[OCN][FCG]-E 试炼码<br>

<br>

:00472515 83C418 add esp, 00000018<br>

:00472518 6A01 push 00000001<br>

:0047251A 6AFF push FFFFFFFF<br>

:0047251C 6A01 push 00000001<br>

:0047251E 68D0654200 push 004265D0<br>

:00472523 68CC754200 push 004275CC<br>

:00472528 50 push eax<br>

<br>

* Reference To: MSVBVM60.rtcReplace, Ord:02C8h<br>

|<br>

:00472529 FF152C124000 Call dword ptr [0040122C]<br>

====>去除试炼码中的-<br>

<br>

:0047252F 8BD0 mov edx, eax<br>

====>EDX=fly12345678fly[OCN][FCG]E <br>

<br>

:00472531 8D4DD4 lea ecx, dword ptr [ebp-2C]<br>

<br>

* Reference To: MSVBVM60.__vbaStrMove, Ord:0000h<br>

|<br>

:00472534 FF1578134000 Call dword ptr [00401378]<br>

:0047253A 8B0B mov ecx, dword ptr [ebx]<br>

<br>

* Reference To: MSVBVM60.__vbaLenBstr, Ord:0000h<br>

|<br>

:0047253C 8B1D34104000 mov ebx, dword ptr [00401034]<br>

:00472542 51 push ecx<br>

====>ECX=fly-12345678-fly[OCN][FCG]-E<br>

<br>

:00472543 FFD3 call ebx<br>

====>取fly-12345678-fly[OCN][FCG]-E的长度<br>

<br>

:00472545 8BD0 mov edx, eax<br>

====>EDX=1C<br>

<br>

:00472547 8B45D4 mov eax, dword ptr [ebp-2C]<br>

:0047254A 50 push eax<br>

====>EAX=fly12345678fly[OCN][FCG]E<br>

<br>

:0047254B 899528FFFFFF mov dword ptr [ebp+FFFFFF28], edx<br>

====>[ebp+FFFFFF28]=EDX=1C<br>

<br>

:00472551 FFD3 call ebx<br>

====>取fly12345678fly[OCN][FCG]E的长度=19<br>

<br>

:00472553 8B8D28FFFFFF mov ecx, dword ptr [ebp+FFFFFF28]<br>

====>ECX=1C<br>

<br>

:00472559 8B55D4 mov edx, dword ptr [ebp-2C]<br>

:0047255C 33DB xor ebx, ebx<br>

:0047255E 3BC1 cmp eax, ecx<br>

====>比较2者长度是否相同?既检测试炼码中是否有-<br>

<br>

:00472560 52 push edx<br>

:00472561 0F9DC3 setnl bl<br>

====>设置BL值!有-则长度不同则BL=0<br>

<br>

* Reference To: MSVBVM60.__vbaLenBstr, Ord:0000h<br>

|<br>

:00472564 FF1534104000 Call dword ptr [00401034]<br>

====>取fly12345678fly[OCN][FCG]E的长度=19<br>

<br>

:0047256A 33C9 xor ecx, ecx<br>

:0047256C 83F819 cmp eax, 00000019<br>

====>去除试炼码中的-后是否是25位?<br>

<br>

:0047256F 0F9CC1 setl cl<br>

====>设置CL值!是25位则CL=0<br>

<br>

:00472572 0BD9 or ebx, ecx<br>

:00472574 0F850C010000 jne 00472686<br>

====>如果上面2个条件都符合则此处不跳!<br>

====>若此处跳就直接OVER了!爆破点①!<br>

<br>

:0047257A 8B55D4 mov edx, dword ptr [ebp-2C]<br>

====>EDX=fly12345678fly[OCN][FCG]E<br>

<br>

:0047257D A110804A00 mov eax, dword ptr [004A8010]<br>

====>EAX=211C1E09 C盘的硬盘序列号<br>

<br>

:00472582 8D4DA4 lea ecx, dword ptr [ebp-5C]<br>

:00472585 89955CFFFFFF mov dword ptr [ebp+FFFFFF5C], edx<br>

:0047258B 2DCF337B00 sub eax, 007B33CF<br>

====>EAX=211C1E09 - 007B33CF=20A0EA3A<br>

<br>

:00472590 51 push ecx<br>

:00472591 8D5594 lea edx, dword ptr [ebp-6C]<br>

:00472594 0F8020050000 jo 00472ABA<br>

:0047259A 52 push edx<br>

:0047259B C78554FFFFFF08000000 mov dword ptr [ebp+FFFFFF54], 00000008<br>

:004725A5 8945AC mov dword ptr [ebp-54], eax<br>

:004725A8 C745A403000000 mov [ebp-5C], 00000003<br>

<br>

* Reference To: MSVBVM60.rtcHexVarFromVar, Ord:023Dh<br>

|<br>

:004725AF FF15D8124000 Call dword ptr [004012D8]<br>

:004725B5 6A01 push 00000001<br>

:004725B7 8D8554FFFFFF lea eax, dword ptr [ebp+FFFFFF54]<br>

:004725BD 50 push eax<br>

:004725BE 8D4D94 lea ecx, dword ptr [ebp-6C]<br>

:004725C1 51 push ecx<br>

:004725C2 6A01 push 00000001<br>

:004725C4 8D5584 lea edx, dword ptr [ebp-7C]<br>

:004725C7 52 push edx<br>

:004725C8 89BD4CFFFFFF mov dword ptr [ebp+FFFFFF4C], edi<br>

:004725CE C78544FFFFFF02800000 mov dword ptr [ebp+FFFFFF44], 00008002<br>

<br>

* Reference To: MSVBVM60.__vbaInStrVar, Ord:0000h<br>

|<br>

:004725D8 FF1570124000 Call dword ptr [00401270]<br>

====>比较CALL!进入!有点特别呀 ^O^ ^O^<br>

<br>

:004725DE 50 push eax<br>

:004725DF 8D8544FFFFFF lea eax, dword ptr [ebp+FFFFFF44]<br>

:004725E5 50 push eax<br>

<br>

* Reference To: MSVBVM60.__vbaVarTstGt, Ord:0000h<br>

|<br>

:004725E6 FF1504104000 Call dword ptr [00401004]<br>

:004725EC 8D4D84 lea ecx, dword ptr [ebp-7C]<br>

:004725EF 51 push ecx<br>

:004725F0 8D5594 lea edx, dword ptr [ebp-6C]<br>

:004725F3 668BD8 mov bx, ax<br>

====>爆破点②! ^O^ ^O^<br>

<br>

:004725F6 52 push edx<br>

:004725F7 8D45A4 lea eax, dword ptr [ebp-5C]<br>

:004725FA 50 push eax<br>

:004725FB 6A03 push 00000003<br>

<br>

* Reference To: MSVBVM60.__vbaFreeVarList, Ord:0000h<br>

|<br>

:004725FD FF1544104000 Call dword ptr [00401044]<br>

:00472603 83C410 add esp, 00000010<br>

:00472606 663BDF cmp bx, di<br>

:00472609 0F84E3000000 je 004726F2<br>

====>跳则OVER!<br>

<br>

:0047260F 8B0E mov ecx, dword ptr [esi]<br>

:00472611 56 push esi<br>

:00472612 C745D0FFFFFFFF mov [ebp-30], FFFFFFFF<br>

:00472619 FF912C060000 call dword ptr [ecx+0000062C]<br>

:0047261F 50 push eax<br>

:00472620 8D55B8 lea edx, dword ptr [ebp-48]<br>

:00472623 52 push edx<br>

<br>

* Reference To: MSVBVM60.__vbaObjSet, Ord:0000h<br>

|<br>

:00472624 FF15F4104000 Call dword ptr [004010F4]<br>

:0047262A 8D4DB4 lea ecx, dword ptr [ebp-4C]<br>

:0047262D 51 push ecx<br>

:0047262E 8BF0 mov esi, eax<br>

:00472630 8B06 mov eax, dword ptr [esi]<br>

:00472632 6A03 push 00000003<br>

:00472634 56 push esi<br>

:00472635 FF5040 call [eax+40]<br>

:00472638 DBE2 fclex<br>

:0047263A 3BC7 cmp eax, edi<br>

:0047263C 7D0F jge 0047264D<br>

:0047263E 6A40 push 00000040<br>

:00472640 68BC654200 push 004265BC<br>

:00472645 56 push esi<br>

:00472646 50 push eax<br>

<br>

—————————————————————————————————<br>

进入比较CALL:004725D8 Call dword ptr [00401270]<br>

再进入:7347A9CC Call MSVBVM60.__vbaInStr<br>

<br>

733A45A5 > 55 push ebp<br>

733A45A6 8BEC mov ebp,esp<br>

733A45A8 81EC BC000000 sub esp,0BC<br>

733A45AE 8365 EC 00 and dword ptr ss:[ebp-14],0<br>

733A45B2 53 push ebx<br>

733A45B3 56 push esi<br>

733A45B4 8B75 0C mov esi,dword ptr ss:[ebp+C]<br>

====>ESI=20A0EA3A<br>

<br>

733A45B7 57 push edi<br>

733A45B8 8B7D 10 mov edi,dword ptr ss:[ebp+10]<br>

====>EDI=fly12345678fly[OCN][FCG]E<br>

<br>

733A45BB 8D85 44FFFFFF lea eax,dword ptr ss:[ebp-BC]<br>

733A45C1 897D F8 mov dword ptr ss:[ebp-8],edi<br>

733A45C4 85FF test edi,edi<br>

733A45C6 8945 F4 mov dword ptr ss:[ebp-C],eax<br>

733A45C9 8975 FC mov dword ptr ss:[ebp-4],esi<br>

733A45CC 0F84 09350300 je MSVBVM60.733D7ADB<br>

733A45D2 8B47 FC mov eax,dword ptr ds:[edi-4]<br>

733A45D5 D1E8 shr eax,1<br>

====>取fly12345678fly[OCN][FCG]E长度<br>

<br>

733A45D7 8945 E4 mov dword ptr ss:[ebp-1C],eax<br>

====>EAX=19<br>

<br>

733A45DA 0F84 FB340300 je MSVBVM60.733D7ADB<br>

733A45E0 85F6 test esi,esi<br>

733A45E2 0F84 EB340300 je MSVBVM60.733D7AD3<br>

733A45E8 8B46 FC mov eax,dword ptr ds:[esi-4]<br>

733A45EB D1E8 shr eax,1<br>

====>取20A0EA3A的长度<br>

<br>

733A45ED 8945 E4 mov dword ptr ss:[ebp-1C],eax<br>

====>EAX=8<br>

<br>

733A45F0 0F84 DD340300 je MSVBVM60.733D7AD3<br>

733A45F6 8B45 14 mov eax,dword ptr ss:[ebp+14]<br>

733A45F9 8D58 FF lea ebx,dword ptr ds:[eax-1]<br>

733A45FC 85DB test ebx,ebx<br>

733A45FE 0F8C 33330300 jl MSVBVM60.733D7937<br>

733A4604 81FB FFFFFF3F cmp ebx,3FFFFFFF<br>

733A460A 0F87 27330300 ja MSVBVM60.733D7937<br>

733A4610 8B45 08 mov eax,dword ptr ss:[ebp+8]<br>

733A4613 895D E8 mov dword ptr ss:[ebp-18],ebx<br>

733A4616 85C0 test eax,eax<br>

733A4618 0F85 20330300 jnz MSVBVM60.733D793E<br>

====>跳下去,转变大写字母为小写字母!<br>

<br>

733A461E 8B45 F8 mov eax,dword ptr ss:[ebp-8]<br>

====>转变完了再跳回来!<br>

<br>

733A4621 85C0 test eax,eax<br>

====>EAX=fly12345678fly[ocn][fcg]e<br>

<br>

733A4623 0F84 06340300 je MSVBVM60.733D7A2F<br>

733A4629 8B48 FC mov ecx,dword ptr ds:[eax-4]<br>

733A462C D1E9 shr ecx,1<br>

733A462E 85F6 test esi,esi<br>

733A4630 0F84 00340300 je MSVBVM60.733D7A36<br>

733A4636 8B56 FC mov edx,dword ptr ds:[esi-4]<br>

733A4639 D1EA shr edx,1<br>

733A463B 8B7D E8 mov edi,dword ptr ss:[ebp-18]<br>

733A463E 3BF9 cmp edi,ecx<br>

733A4640 73 74 jnb short MSVBVM60.733A46B6<br>

733A4642 85D2 test edx,edx<br>

733A4644 0F84 F3330300 je MSVBVM60.733D7A3D<br>

733A464A 3BD1 cmp edx,ecx<br>

733A464C 0F87 F6330300 ja MSVBVM60.733D7A48<br>

733A4652 8D0478 lea eax,dword ptr ds:[eax+edi*2]<br>

733A4655 8B7D F8 mov edi,dword ptr ss:[ebp-8]<br>

733A4658 2BCA sub ecx,edx<br>

733A465A 8D5C4F 02 lea ebx,dword ptr ds:[edi+ecx*2+2]<br>

733A465E 0FB70E movzx ecx,word ptr ds:[esi]<br>

733A4661 894D 14 mov dword ptr ss:[ebp+14],ecx<br>

733A4664 8D4C12 FE lea ecx,dword ptr ds:[edx+edx-2]<br>

733A4668 3BC3 cmp eax,ebx<br>

733A466A 894D E4 mov dword ptr ss:[ebp-1C],ecx<br>

733A466D 73 47 jnb short MSVBVM60.733A46B6<br>

733A466F 8BCB mov ecx,ebx<br>

733A4671 2BC8 sub ecx,eax<br>

733A4673 D1F9 sar ecx,1<br>

733A4675 51 push ecx<br>

733A4676 FF75 14 push dword ptr ss:[ebp+14]<br>

733A4679 50 push eax<br>

733A467A E8 46000000 call MSVBVM60.733A46C5<br>

====>循环取试炼码,比较第“1”位是否是2?<br>

<br>

733A467F 85C0 test eax,eax<br>

733A4681 74 33 je short MSVBVM60.733A46B6<br>

733A4683 8B4D E4 mov ecx,dword ptr ss:[ebp-1C]<br>

733A4686 40 inc eax<br>

733A4687 40 inc eax<br>

733A4688 8D7E 02 lea edi,dword ptr ds:[esi+2]<br>

733A468B 8BF0 mov esi,eax<br>

733A468D 33D2 xor edx,edx<br>

733A468F F3:A6 repe cmps byte ptr es:[edi],byte ptr ds:[esi]<br>

====>依次比较剩下的7位是否是0a0ea3a<br>

<br>

733A4691 75 1A jnz short MSVBVM60.733A46AD<br>

733A4693 8BC8 mov ecx,eax<br>

733A4695 2B4D F8 sub ecx,dword ptr ss:[ebp-8]<br>

733A4698 D1F9 sar ecx,1<br>

733A469A 837D 08 00 cmp dword ptr ss:[ebp+8],0<br>

733A469E 0F85 AD330300 jnz MSVBVM60.733D7A51<br>

733A46A4 8BC1 mov eax,ecx<br>

733A46A6 5F pop edi<br>

733A46A7 5E pop esi<br>

733A46A8 5B pop ebx<br>

733A46A9 C9 leave<br>

733A46AA C2 1000 retn 10<br>

<br>

733A46AD 3BC3 cmp eax,ebx<br>

733A46AF 73 05 jnb short MSVBVM60.733A46B6<br>

733A46B1 8B75 FC mov esi,dword ptr ss:[ebp-4]<br>

733A46B4 ^ EB B9 jmp short MSVBVM60.733A466F<br>

====>循环比较!<br>

====>其实就是循环比较试炼码中是否有8位是20a0ea3a<br>

<br>

—————————————————<br>

由733A4618跳到这里:<br>

<br>

733D793E 83F8 01 cmp eax,1<br>

733D7941 75 3D jnz short MSVBVM60.733D7980<br>

733D7943 E8 818DFCFF call MSVBVM60.733A06C9<br>

733D7948 8945 08 mov dword ptr ss:[ebp+8],eax<br>

733D794B 8B45 08 mov eax,dword ptr ss:[ebp+8]<br>

733D794E 3B05 2C1E4A73 cmp eax,dword ptr ds:[734A1E2C]<br>

733D7954 74 06 je short MSVBVM60.733D795C<br>

733D7956 50 push eax<br>

733D7957 E8 D83B0A00 call MSVBVM60.7347B534<br>

733D795C 8B45 F4 mov eax,dword ptr ss:[ebp-C]<br>

733D795F 33F6 xor esi,esi<br>

733D7961 56 push esi<br>

733D7962 56 push esi<br>

733D7963 56 push esi<br>

733D7964 C700 FEFFFFFF mov dword ptr ds:[eax],-2<br>

733D796A FF75 0C push dword ptr ss:[ebp+C]<br>

733D796D E8 CA3D0A00 call MSVBVM60.7347B73C<br>

====>将20A0EA3A中的大写字母转为小写字母!<br>

<br>

733D7972 3BC6 cmp eax,esi<br>

====>EAX=20a0ea3a<br>

<br>

733D7974 8945 FC mov dword ptr ss:[ebp-4],eax<br>

733D7977 75 1D jnz short MSVBVM60.733D7996<br>

733D7979 6A 07 push 7<br>

733D797B E8 D9D9FDFF call MSVBVM60.733B5359<br>

733D7980 83F8 02 cmp eax,2<br>

733D7983 74 0A je short MSVBVM60.733D798F<br>

733D7985 50 push eax<br>

733D7986 E8 69830900 call MSVBVM60.7346FCF4<br>

733D798B 85C0 test eax,eax<br>

733D798D ^ 75 BC jnz short MSVBVM60.733D794B<br>

733D798F 6A 05 push 5<br>

733D7991 E8 C3D9FDFF call MSVBVM60.733B5359<br>

733D7996 56 push esi<br>

733D7997 8D45 F4 lea eax,dword ptr ss:[ebp-C]<br>

733D799A 56 push esi<br>

733D799B 50 push eax<br>

733D799C 57 push edi<br>

====>EDI=fly12345678fly[OCN][FCG]E<br>

<br>

733D799D E8 9A3D0A00 call MSVBVM60.7347B73C<br>

====>将fly12345678fly[OCN][FCG]E中的大写字母转为小写字母!<br>

<br>

733D79A2 8BF0 mov esi,eax<br>

====>ESI=fly12345678fly[ocn][fcg]e<br>

<br>

…… ……省 略…… ……<br>

<br>

733D7A1F E9 FACBFCFF jmp MSVBVM60.733A461E<br>

====>转变完了再跳上去!<br>

<br>

————————————————————————————————— <br>

注册源码的生成:<br>

<br>

<br>

:00461E75 FF15E4124000 Call dword ptr [004012E4]<br>

:00461E7B 83C418 add esp, 00000018<br>

:00461E7E 8B0D10804A00 mov ecx, dword ptr [004A8010]<br>

====>ECX=211C1E09 C盘的硬盘序列号<br>

<br>

:00461E84 81E957300E00 sub ecx, 000E3057<br>

====>ECX=211C1E09 - 000E3057=210DEDB2<br>

<br>

:00461E8A 0F80C1070000 jo 00462651<br>

:00461E90 51 push ecx<br>

<br>

* Reference To: MSVBVM60.__vbaStrI4, Ord:0000h<br>

|<br>

:00461E91 FF1520104000 Call dword ptr [00401020]<br>

====>取210DEDB2的10进制值<br>

<br>

:00461E97 8BD0 mov edx, eax<br>

====>EDX=554560946<br>

<br>

:00461E99 8D4DC4 lea ecx, dword ptr [ebp-3C]<br>

:00461E9C FFD6 call esi<br>

:00461E9E 50 push eax<br>

<br>

* Reference To: MSVBVM60.rtcStrReverse, Ord:02C9h<br>

|<br>

:00461E9F FF153C124000 Call dword ptr [0040123C]<br>

====>把554560946倒序排列<br>

<br>

:00461EA5 8BD0 mov edx, eax<br>

====>EDX=649065455<br>

<br>

…… ……省 略…… ……<br>

<br>

:00461FCC 8B4344 mov eax, dword ptr [ebx+44]<br>

====>EAX=FLY 计算机用户名<br>

<br>

:00461FCF 50 push eax<br>

:00461FD0 683C994200 push 0042993C<br>

====>0042993C=N 这个应该是作者预设的固定值<br>

<br>

* Reference To: MSVBVM60.__vbaStrCat, Ord:0000h<br>

|<br>

:00461FD5 8B3D80104000 mov edi, dword ptr [00401080]<br>

:00461FDB FFD7 call edi<br>

====>连接FLY和N<br>

<br>

:00461FDD 8BD0 mov edx, eax<br>

====>EDX=FLYN<br>

<br>

:00461FDF 8D4DC0 lea ecx, dword ptr [ebp-40]<br>

:00461FE2 FFD6 call esi<br>

:00461FE4 50 push eax<br>

:00461FE5 8B957CFEFFFF mov edx, dword ptr [ebp+FFFFFE7C]<br>

====>EDX=649065455<br>

<br>

:00461FEB 8D4DBC lea ecx, dword ptr [ebp-44]<br>

:00461FEE FFD6 call esi<br>

:00461FF0 50 push eax<br>

:00461FF1 FFD7 call edi<br>

====>连接FLYN和649065455<br>

<br>

:00461FF3 8BD0 mov edx, eax<br>

====>EDX=FLYN649065455 这就是程序显示的注册源码!<br>

<br>

—————————————————————————————————<br>

【算 法 总 结】:<br>

<br>

1、注册码要有-<br>

2、去除-后还需要25位数字或字母<br>

3、取C盘序列号211C1E09 - 007B33CF=20A0EA3A<br>

4、25位字符中要有8位是20A0EA3A 其他任意<br>

<br>

不清楚程序是否还有其他暗桩,有朋友发现的话,麻烦指出来!<br>

<br>

————————————————————————————————— <br>

【完 美 爆 破】:<br>

<br>

1、00472574 0F850C010000 jne 00472686<br>

改为:909090909090 NOP掉!<br>

<br>

2、004725F3 668BD8 mov bx, ax<br>

改为:B301 mov bl, 01 <br>

————————————————————————————————— <br>

【注册信息保存】:<br>

REGEDIT4<br>

<br>

[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\easypad\regist]<br>

"regnumber"="fly-20A0EA3A-fly[OCN][FCG]-E"<br>

————————————————————————————————— <br>

【整 理】:<br>

<br>

序列号:FLYN649065455613<br>

注册码:fly-20A0EA3A-fly[OCN][FCG]-E<br>

—————————————————————————————————

(出处:赢政天下整理收藏)

相关文章:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史