小蜜蜂CrackMe简单算法分析+VB注册机源码
【破文标题】小蜜蜂CrackMe简单算法分析+VB注册机源码【破解作者】hrbx
【使用工具】OllDbg1.10、Peid
【破解日期】2007-11-16
【下载地址】https://www.chinapyg.com/viewthread.php?tid=22178
【软件简介】小蜜蜂CrackMe
-------------------------------------------------------------------------
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
-------------------------------------------------------------------------
【破解过程】
1.脱壳。用PEID扫描,显示为:Microsoft Visual C++ 6.0 ,实际上是易语言的程序,因为调试时可以见到易语言的krnln库。
2.追出算法。OD载入CrackMe,F9运行,输入注册信息后点击"注册"按钮,弹出错误提示"加油,注册不成功!"
F12暂停,Alt+K查看调用堆栈,找到:
===================================================================
地址 堆栈 函数例程 / 参数 调用来自
0012F8C0 0041D7E4 小蜜蜂V1.0041DD4E 小蜜蜂V1.0041D7DF
===================================================================
Ctrl+G,输入:0041D7DF,回车,来到:
0041D7DF E8 6A050000 call 小蜜蜂V1.0041DD4E
0041D7E4 83C4 28 add esp,28
0041D7E7 8B5D F8 mov ebx,dword ptr ss:
向上查找,0041CF51处F2下断,Ctrl+F2重新载入程序,F9运行,输入注册信息:
====================================================
注册名:hrbx
注册码:9876543210
====================================================
点击"注册"按钮,立即中断:
0041CF51 55 push ebp ; F2在此下断,中断后F8往下走
0041CF52 8BEC mov ebp,esp
0041CF54 81EC 44000000 sub esp,44
0041CF5A C745 FC 00000000mov dword ptr ss:,0
0041CF61 C745 F8 00000000mov dword ptr ss:,0
0041CF68 C745 F4 00000000mov dword ptr ss:,0
0041CF6F 6A FF push -1
0041CF71 6A 08 push 8
0041CF73 68 10000116 push 16010010
0041CF78 68 01000152 push 52010001
0041CF7D E8 EA0D0000 call 小蜜蜂V1.0041DD6C ; 获取用户名
0041CF82 83C4 10 add esp,10
0041CF85 8945 F0 mov dword ptr ss:,eax ; 用户名"hrbx"
0041CF88 68 04000080 push 80000004
0041CF8D 6A 00 push 0
0041CF8F 8B45 F0 mov eax,dword ptr ss:
0041CF92 85C0 test eax,eax
0041CF94 75 05 jnz short 小蜜蜂V1.0041CF9B
0041CF96 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041CF9B 50 push eax
0041CF9C 68 01000000 push 1
0041CFA1 BB 30010000 mov ebx,130
0041CFA6 E8 A30D0000 call 小蜜蜂V1.0041DD4E ; 获取用户名长度
0041CFAB 83C4 10 add esp,10
0041CFAE 8945 EC mov dword ptr ss:,eax ; 用户名长度保存,EAX=0x4
0041CFB1 8B5D F0 mov ebx,dword ptr ss:
0041CFB4 85DB test ebx,ebx
0041CFB6 74 09 je short 小蜜蜂V1.0041CFC1
0041CFB8 53 push ebx
0041CFB9 E8 A20D0000 call 小蜜蜂V1.0041DD60
0041CFBE 83C4 04 add esp,4
0041CFC1 8B45 EC mov eax,dword ptr ss:
0041CFC4 33C9 xor ecx,ecx
0041CFC6 50 push eax
0041CFC7 8D45 FC lea eax,dword ptr ss:
0041CFCA 8BD8 mov ebx,eax
0041CFCC 58 pop eax
0041CFCD 41 inc ecx
0041CFCE 51 push ecx
0041CFCF 53 push ebx
0041CFD0 890B mov dword ptr ds:,ecx
0041CFD2 50 push eax
0041CFD3 3BC8 cmp ecx,eax
0041CFD5 0F8F 17010000 jg 小蜜蜂V1.0041D0F2
0041CFDB 6A FF push -1
0041CFDD 6A 08 push 8
0041CFDF 68 10000116 push 16010010
0041CFE4 68 01000152 push 52010001
0041CFE9 E8 7E0D0000 call 小蜜蜂V1.0041DD6C
0041CFEE 83C4 10 add esp,10
0041CFF1 8945 F0 mov dword ptr ss:,eax
0041CFF4 68 01030080 push 80000301
0041CFF9 6A 00 push 0
0041CFFB FF75 FC push dword ptr ss:
0041CFFE 68 04000080 push 80000004
0041D003 6A 00 push 0
0041D005 8B45 F0 mov eax,dword ptr ss:
0041D008 85C0 test eax,eax
0041D00A 75 05 jnz short 小蜜蜂V1.0041D011
0041D00C B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D011 50 push eax ; 用户名"hrbx"
0041D012 68 02000000 push 2
0041D017 BB 44010000 mov ebx,144
0041D01C E8 2D0D0000 call 小蜜蜂V1.0041DD4E ; 依次取用户名每一位字符的ASCII值
0041D021 83C4 1C add esp,1C
0041D024 8945 EC mov dword ptr ss:,eax ; EAX=0x68
0041D027 8B5D F0 mov ebx,dword ptr ss:
0041D02A 85DB test ebx,ebx
0041D02C 74 09 je short 小蜜蜂V1.0041D037
0041D02E 53 push ebx
0041D02F E8 2C0D0000 call 小蜜蜂V1.0041DD60
0041D034 83C4 04 add esp,4
0041D037 DB45 EC fild dword ptr ss: ; ss:=0x68(104)
0041D03A DD5D E4 fstp qword ptr ss: ; ASCII值转为浮点数运算,计为N
0041D03D DD45 E4 fld qword ptr ss:
0041D040 DC05 0BC14000 fadd qword ptr ds: ; (N+27.0),ds:=27.0
0041D046 DD5D DC fstp qword ptr ss: ; st=131.0
0041D049 DD45 DC fld qword ptr ss:
0041D04C DC0D 13C14000 fmul qword ptr ds: ; (N+27.0)*4,ds:=4.0
0041D052 DD5D D4 fstp qword ptr ss: ; st=524.0
0041D055 68 01060080 push 80000601
0041D05A 68 00003B40 push 403B0000
0041D05F 68 00000000 push 0
0041D064 68 01060080 push 80000601
0041D069 FF75 D8 push dword ptr ss:
0041D06C FF75 D4 push dword ptr ss:
0041D06F 68 02000000 push 2
0041D074 BB 48000000 mov ebx,48
0041D079 E8 D00C0000 call 小蜜蜂V1.0041DD4E ; (N+27.0)*4 MOD 27.0
0041D07E 83C4 1C add esp,1C
0041D081 8945 C4 mov dword ptr ss:,eax
0041D084 8955 C8 mov dword ptr ss:,edx
0041D087 DD45 C4 fld qword ptr ss: ; 运算结果,ss:=11.00000000000000
0041D08A E8 37FDFFFF call 小蜜蜂V1.0041CDC6 ; 转为16进制数,11.0-->0xB
0041D08F 68 01030080 push 80000301
0041D094 6A 00 push 0
0041D096 50 push eax
0041D097 68 01000000 push 1
0041D09C BB D4010000 mov ebx,1D4
0041D0A1 E8 A80C0000 call 小蜜蜂V1.0041DD4E ; 16进制数转为字符串,0xB-->"B"
0041D0A6 83C4 10 add esp,10
0041D0A9 8945 C0 mov dword ptr ss:,eax ; D EAX "B"
0041D0AC FF75 C0 push dword ptr ss:
0041D0AF FF75 F8 push dword ptr ss:
0041D0B2 B9 02000000 mov ecx,2
0041D0B7 E8 9CFDFFFF call 小蜜蜂V1.0041CE58 ; 依次连接每次Mod结果
0041D0BC 83C4 08 add esp,8
0041D0BF 8945 BC mov dword ptr ss:,eax ; 连接后的字符串"B18E15"保存
0041D0C2 8B5D C0 mov ebx,dword ptr ss:
0041D0C5 85DB test ebx,ebx
0041D0C7 74 09 je short 小蜜蜂V1.0041D0D2
0041D0C9 53 push ebx
0041D0CA E8 910C0000 call 小蜜蜂V1.0041DD60
0041D0CF 83C4 04 add esp,4
0041D0D2 8B45 BC mov eax,dword ptr ss:
0041D0D5 50 push eax
0041D0D6 8B5D F8 mov ebx,dword ptr ss:
0041D0D9 85DB test ebx,ebx
0041D0DB 74 09 je short 小蜜蜂V1.0041D0E6
0041D0DD 53 push ebx
0041D0DE E8 7D0C0000 call 小蜜蜂V1.0041DD60
0041D0E3 83C4 04 add esp,4
0041D0E6 58 pop eax
0041D0E7 8945 F8 mov dword ptr ss:,eax
0041D0EA 58 pop eax
0041D0EB 5B pop ebx
0041D0EC 59 pop ecx
0041D0ED ^ E9 DBFEFFFF jmp 小蜜蜂V1.0041CFCD
0041D0F2 83C4 0C add esp,0C
0041D0F5 837D FC 02 cmp dword ptr ss:,2
0041D0F9 0F8E D5000000 jle 小蜜蜂V1.0041D1D4
0041D0FF 6A FF push -1
0041D101 6A 08 push 8
0041D103 68 11000116 push 16010011
0041D108 68 01000152 push 52010001
0041D10D E8 5A0C0000 call 小蜜蜂V1.0041DD6C ; 获取假码
0041D112 83C4 10 add esp,10
0041D115 8945 EC mov dword ptr ss:,eax ; 假码"987654321012345678901234567890"
0041D118 68 01030080 push 80000301
0041D11D 6A 00 push 0
0041D11F 68 04000000 push 4 ; 常数,4
0041D124 68 04000080 push 80000004
0041D129 6A 00 push 0
0041D12B 8B45 EC mov eax,dword ptr ss:
0041D12E 85C0 test eax,eax
0041D130 75 05 jnz short 小蜜蜂V1.0041D137
0041D132 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D137 50 push eax
0041D138 68 02000000 push 2
0041D13D BB 38010000 mov ebx,138
0041D142 E8 070C0000 call 小蜜蜂V1.0041DD4E ; 取假码最后4位
0041D147 83C4 1C add esp,1C
0041D14A 8945 E8 mov dword ptr ss:,eax ; 假码后4位"7890"
0041D14D 8B5D EC mov ebx,dword ptr ss:
0041D150 85DB test ebx,ebx
0041D152 74 09 je short 小蜜蜂V1.0041D15D
0041D154 53 push ebx
0041D155 E8 060C0000 call 小蜜蜂V1.0041DD60
0041D15A 83C4 04 add esp,4
0041D15D 68 6A000000 push 6A
0041D162 B8 1BC14000 mov eax,小蜜蜂V1.0040C11B
0041D167 8945 E4 mov dword ptr ss:,eax
0041D16A 8D45 E4 lea eax,dword ptr ss:
0041D16D 50 push eax
0041D16E E8 98060000 call 小蜜蜂V1.0041D80B
0041D173 8945 E0 mov dword ptr ss:,eax ; 固定字符串1"-KAN"
0041D176 8B5D E4 mov ebx,dword ptr ss:
0041D179 85DB test ebx,ebx
0041D17B 74 09 je short 小蜜蜂V1.0041D186
0041D17D 53 push ebx
0041D17E E8 DD0B0000 call 小蜜蜂V1.0041DD60
0041D183 83C4 04 add esp,4
0041D186 8B45 E0 mov eax,dword ptr ss:
0041D189 50 push eax ; 固定字符串1"-KAN"
0041D18A FF75 E8 push dword ptr ss: ; 假码后4位"7890"
0041D18D E8 22FDFFFF call 小蜜蜂V1.0041CEB4 ; 比较两者是否相等
0041D192 83C4 08 add esp,8
0041D195 83F8 00 cmp eax,0
0041D198 B8 00000000 mov eax,0
0041D19D 0F94C0 sete al
0041D1A0 8945 DC mov dword ptr ss:,eax
0041D1A3 8B5D E8 mov ebx,dword ptr ss:
0041D1A6 85DB test ebx,ebx
0041D1A8 74 09 je short 小蜜蜂V1.0041D1B3
0041D1AA 53 push ebx
0041D1AB E8 B00B0000 call 小蜜蜂V1.0041DD60
0041D1B0 83C4 04 add esp,4
0041D1B3 8B5D E0 mov ebx,dword ptr ss:
0041D1B6 85DB test ebx,ebx
0041D1B8 74 09 je short 小蜜蜂V1.0041D1C3
0041D1BA 53 push ebx
0041D1BB E8 A00B0000 call 小蜜蜂V1.0041DD60
0041D1C0 83C4 04 add esp,4
0041D1C3 837D DC 00 cmp dword ptr ss:,0
0041D1C7 0F84 07000000 je 小蜜蜂V1.0041D1D4 ; 不等则Over,暴破点1,NOP掉
0041D1CD B8 01000000 mov eax,1
0041D1D2 EB 02 jmp short 小蜜蜂V1.0041D1D6
0041D1D4 33C0 xor eax,eax
0041D1D6 85C0 test eax,eax
0041D1D8 0F84 CD050000 je 小蜜蜂V1.0041D7AB
0041D1DE 68 01030080 push 80000301
0041D1E3 6A 00 push 0
0041D1E5 68 04000000 push 4
0041D1EA 68 01030080 push 80000301
0041D1EF 6A 00 push 0
0041D1F1 68 01000000 push 1
0041D1F6 68 02000000 push 2
0041D1FB BB 94000000 mov ebx,94
0041D200 E8 490B0000 call 小蜜蜂V1.0041DD4E
0041D205 83C4 1C add esp,1C
0041D208 8945 F0 mov dword ptr ss:,eax
0041D20B 68 01030080 push 80000301
0041D210 6A 00 push 0
0041D212 68 F2000000 push 0F2
0041D217 68 01030080 push 80000301
0041D21C 6A 00 push 0
0041D21E FF75 F0 push dword ptr ss:
0041D221 68 01030080 push 80000301
0041D226 6A 00 push 0
0041D228 68 0A000000 push 0A
0041D22D 68 03000000 push 3
0041D232 BB 10000000 mov ebx,10
0041D237 B8 01000000 mov eax,1
0041D23C E8 190B0000 call 小蜜蜂V1.0041DD5A
0041D241 83C4 28 add esp,28
0041D244 6A FF push -1
0041D246 6A 08 push 8
0041D248 68 11000116 push 16010011
0041D24D 68 01000152 push 52010001
0041D252 E8 150B0000 call 小蜜蜂V1.0041DD6C
0041D257 83C4 10 add esp,10
0041D25A 8945 F0 mov dword ptr ss:,eax ; 假码"98765432101234567890"
0041D25D 68 01030080 push 80000301
0041D262 6A 00 push 0
0041D264 68 13000000 push 13 ; 常数,0x13(19)
0041D269 68 04000080 push 80000004
0041D26E 6A 00 push 0
0041D270 8B45 F0 mov eax,dword ptr ss:
0041D273 85C0 test eax,eax
0041D275 75 05 jnz short 小蜜蜂V1.0041D27C
0041D277 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D27C 50 push eax
0041D27D 68 02000000 push 2
0041D282 BB 34010000 mov ebx,134
0041D287 E8 C20A0000 call 小蜜蜂V1.0041DD4E ; 取假码前19位
0041D28C 83C4 1C add esp,1C
0041D28F 8945 EC mov dword ptr ss:,eax ; 假码前19位"9876543210123456789"
0041D292 8B5D F0 mov ebx,dword ptr ss:
0041D295 85DB test ebx,ebx
0041D297 74 09 je short 小蜜蜂V1.0041D2A2
0041D299 53 push ebx
0041D29A E8 C10A0000 call 小蜜蜂V1.0041DD60
0041D29F 83C4 04 add esp,4
0041D2A2 68 4F000000 push 4F
0041D2A7 B8 20C14000 mov eax,小蜜蜂V1.0040C120
0041D2AC 8945 E8 mov dword ptr ss:,eax
0041D2AF 8D45 E8 lea eax,dword ptr ss:
0041D2B2 50 push eax
0041D2B3 E8 53050000 call 小蜜蜂V1.0041D80B
0041D2B8 8945 E4 mov dword ptr ss:,eax ; 固定字符串2"-No."
0041D2BB 8B5D E8 mov ebx,dword ptr ss:
0041D2BE 85DB test ebx,ebx
0041D2C0 74 09 je short 小蜜蜂V1.0041D2CB
0041D2C2 53 push ebx
0041D2C3 E8 980A0000 call 小蜜蜂V1.0041DD60
0041D2C8 83C4 04 add esp,4
0041D2CB 8B45 E4 mov eax,dword ptr ss:
0041D2CE 50 push eax ; 固定字符串"-No."
0041D2CF FF75 EC push dword ptr ss: ; 假码前19位"9876543210123456789"
0041D2D2 E8 DDFBFFFF call 小蜜蜂V1.0041CEB4 ; 比较两者是否相等
0041D2D7 83C4 08 add esp,8
0041D2DA 83F8 00 cmp eax,0
0041D2DD B8 00000000 mov eax,0
0041D2E2 0F94C0 sete al
0041D2E5 8945 E0 mov dword ptr ss:,eax
0041D2E8 8B5D EC mov ebx,dword ptr ss:
0041D2EB 85DB test ebx,ebx
0041D2ED 74 09 je short 小蜜蜂V1.0041D2F8
0041D2EF 53 push ebx
0041D2F0 E8 6B0A0000 call 小蜜蜂V1.0041DD60
0041D2F5 83C4 04 add esp,4
0041D2F8 8B5D E4 mov ebx,dword ptr ss:
0041D2FB 85DB test ebx,ebx
0041D2FD 74 09 je short 小蜜蜂V1.0041D308
0041D2FF 53 push ebx
0041D300 E8 5B0A0000 call 小蜜蜂V1.0041DD60
0041D305 83C4 04 add esp,4
0041D308 837D E0 00 cmp dword ptr ss:,0
0041D30C 0F84 58040000 je 小蜜蜂V1.0041D76A ; 不等则Over,暴破点2,NOP掉
0041D312 6A FF push -1
0041D314 6A 08 push 8
0041D316 68 11000116 push 16010011
0041D31B 68 01000152 push 52010001
0041D320 E8 470A0000 call 小蜜蜂V1.0041DD6C
0041D325 83C4 10 add esp,10
0041D328 8945 F0 mov dword ptr ss:,eax
0041D32B 68 04000080 push 80000004
0041D330 6A 00 push 0
0041D332 8B45 F0 mov eax,dword ptr ss:
0041D335 85C0 test eax,eax
0041D337 75 05 jnz short 小蜜蜂V1.0041D33E
0041D339 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D33E 50 push eax
0041D33F 68 01000000 push 1
0041D344 BB 30010000 mov ebx,130
0041D349 E8 000A0000 call 小蜜蜂V1.0041DD4E
0041D34E 83C4 10 add esp,10
0041D351 8945 EC mov dword ptr ss:,eax
0041D354 8B5D F0 mov ebx,dword ptr ss:
0041D357 85DB test ebx,ebx
0041D359 74 09 je short 小蜜蜂V1.0041D364
0041D35B 53 push ebx
0041D35C E8 FF090000 call 小蜜蜂V1.0041DD60
0041D361 83C4 04 add esp,4
0041D364 8B45 EC mov eax,dword ptr ss:
0041D367 33C9 xor ecx,ecx
0041D369 50 push eax
0041D36A 8D45 FC lea eax,dword ptr ss:
0041D36D 8BD8 mov ebx,eax
0041D36F 58 pop eax
0041D370 41 inc ecx
0041D371 51 push ecx
0041D372 53 push ebx
0041D373 890B mov dword ptr ds:,ecx
0041D375 50 push eax
0041D376 3BC8 cmp ecx,eax
0041D378 0F8F 17010000 jg 小蜜蜂V1.0041D495
0041D37E 6A FF push -1
0041D380 6A 08 push 8
0041D382 68 11000116 push 16010011
0041D387 68 01000152 push 52010001
0041D38C E8 DB090000 call 小蜜蜂V1.0041DD6C ; \从
0041D391 83C4 10 add esp,10 ; |之
0041D394 8945 F0 mov dword ptr ss:,eax ; |里
0041D397 68 01030080 push 80000301 ; |开
0041D39C 6A 00 push 0 ; |始
0041D39E FF75 FC push dword ptr ss: ; |,
0041D3A1 68 04000080 push 80000004 ; |由
0041D3A6 6A 00 push 0 ; |注
0041D3A8 8B45 F0 mov eax,dword ptr ss: ; |册
0041D3AB 85C0 test eax,eax ; |码
0041D3AD 75 05 jnz short 小蜜蜂V1.0041D3B4 ; |反
0041D3AF B8 0AC14000 mov eax,小蜜蜂V1.0040C10A ; |算
0041D3B4 50 push eax ; |用
0041D3B5 68 02000000 push 2 ; |户
0041D3BA BB 44010000 mov ebx,144 ; |名
0041D3BF E8 8A090000 call 小蜜蜂V1.0041DD4E ; |,
0041D3C4 83C4 1C add esp,1C ; |若
0041D3C7 8945 EC mov dword ptr ss:,eax ; |反
0041D3CA 8B5D F0 mov ebx,dword ptr ss: ; |算
0041D3CD 85DB test ebx,ebx ; |出
0041D3CF 74 09 je short 小蜜蜂V1.0041D3DA ; |的
0041D3D1 53 push ebx ; |结
0041D3D2 E8 89090000 call 小蜜蜂V1.0041DD60 ; |果
0041D3D7 83C4 04 add esp,4 ; |与
0041D3DA DB45 EC fild dword ptr ss: ; |用
0041D3DD DD5D E4 fstp qword ptr ss: ; |户
0041D3E0 DD45 E4 fld qword ptr ss: ; |名
0041D3E3 DC05 34C14000 fadd qword ptr ds: ; |相
0041D3E9 DD5D DC fstp qword ptr ss: ; |等
0041D3EC DD45 DC fld qword ptr ss: ; |,
0041D3EF DC0D 13C14000 fmul qword ptr ds: ; |则
0041D3F5 DD5D D4 fstp qword ptr ss: ; |不
0041D3F8 68 01060080 push 80000601 ; |提
0041D3FD 68 00003B40 push 403B0000 ; |示
0041D402 68 00000000 push 0 ; |注
0041D407 68 01060080 push 80000601 ; |册
0041D40C FF75 D8 push dword ptr ss: ; |成
0041D40F FF75 D4 push dword ptr ss: ; |功
0041D412 68 02000000 push 2 ; |或
0041D417 BB 48000000 mov ebx,48 ; |失
0041D41C E8 2D090000 call 小蜜蜂V1.0041DD4E ; |败
0041D421 83C4 1C add esp,1C ; |。
0041D424 8945 C4 mov dword ptr ss:,eax
0041D427 8955 C8 mov dword ptr ss:,edx
0041D42A DD45 C4 fld qword ptr ss:
0041D42D E8 94F9FFFF call 小蜜蜂V1.0041CDC6
0041D432 68 01030080 push 80000301
0041D437 6A 00 push 0
0041D439 50 push eax
0041D43A 68 01000000 push 1
0041D43F BB D4010000 mov ebx,1D4
0041D444 E8 05090000 call 小蜜蜂V1.0041DD4E
0041D449 83C4 10 add esp,10
0041D44C 8945 C0 mov dword ptr ss:,eax
0041D44F FF75 C0 push dword ptr ss:
0041D452 FF75 F4 push dword ptr ss:
0041D455 B9 02000000 mov ecx,2
0041D45A E8 F9F9FFFF call 小蜜蜂V1.0041CE58
0041D45F 83C4 08 add esp,8
0041D462 8945 BC mov dword ptr ss:,eax
0041D465 8B5D C0 mov ebx,dword ptr ss:
0041D468 85DB test ebx,ebx
0041D46A 74 09 je short 小蜜蜂V1.0041D475
0041D46C 53 push ebx
0041D46D E8 EE080000 call 小蜜蜂V1.0041DD60
0041D472 83C4 04 add esp,4
0041D475 8B45 BC mov eax,dword ptr ss:
0041D478 50 push eax
0041D479 8B5D F4 mov ebx,dword ptr ss:
0041D47C 85DB test ebx,ebx
0041D47E 74 09 je short 小蜜蜂V1.0041D489
0041D480 53 push ebx
0041D481 E8 DA080000 call 小蜜蜂V1.0041DD60
0041D486 83C4 04 add esp,4
0041D489 58 pop eax
0041D48A 8945 F4 mov dword ptr ss:,eax
0041D48D 58 pop eax
0041D48E 5B pop ebx
0041D48F 59 pop ecx
0041D490 ^ E9 DBFEFFFF jmp 小蜜蜂V1.0041D370
0041D495 83C4 0C add esp,0C
0041D498 68 4F000000 push 4F
0041D49D B8 3CC14000 mov eax,小蜜蜂V1.0040C13C
0041D4A2 8945 F0 mov dword ptr ss:,eax
0041D4A5 8D45 F0 lea eax,dword ptr ss:
0041D4A8 50 push eax
0041D4A9 E8 5D030000 call 小蜜蜂V1.0041D80B
0041D4AE 8945 EC mov dword ptr ss:,eax
0041D4B1 8B5D F0 mov ebx,dword ptr ss:
0041D4B4 85DB test ebx,ebx
0041D4B6 74 09 je short 小蜜蜂V1.0041D4C1
0041D4B8 53 push ebx
0041D4B9 E8 A2080000 call 小蜜蜂V1.0041DD60
0041D4BE 83C4 04 add esp,4
0041D4C1 68 1B000000 push 1B
0041D4C6 B8 41C14000 mov eax,小蜜蜂V1.0040C141
0041D4CB 8945 E8 mov dword ptr ss:,eax
0041D4CE 8D45 E8 lea eax,dword ptr ss:
0041D4D1 50 push eax
0041D4D2 E8 34030000 call 小蜜蜂V1.0041D80B
0041D4D7 8945 E4 mov dword ptr ss:,eax
0041D4DA 8B5D E8 mov ebx,dword ptr ss:
0041D4DD 85DB test ebx,ebx
0041D4DF 74 09 je short 小蜜蜂V1.0041D4EA
0041D4E1 53 push ebx
0041D4E2 E8 79080000 call 小蜜蜂V1.0041DD60
0041D4E7 83C4 04 add esp,4
0041D4EA FF75 E4 push dword ptr ss:
0041D4ED FF75 F4 push dword ptr ss:
0041D4F0 FF75 EC push dword ptr ss:
0041D4F3 B9 03000000 mov ecx,3
0041D4F8 E8 5BF9FFFF call 小蜜蜂V1.0041CE58
0041D4FD 83C4 0C add esp,0C
0041D500 8945 E0 mov dword ptr ss:,eax
0041D503 8B5D EC mov ebx,dword ptr ss:
0041D506 85DB test ebx,ebx
0041D508 74 09 je short 小蜜蜂V1.0041D513
0041D50A 53 push ebx
0041D50B E8 50080000 call 小蜜蜂V1.0041DD60
0041D510 83C4 04 add esp,4
0041D513 8B5D E4 mov ebx,dword ptr ss:
0041D516 85DB test ebx,ebx
0041D518 74 09 je short 小蜜蜂V1.0041D523
0041D51A 53 push ebx
0041D51B E8 40080000 call 小蜜蜂V1.0041DD60
0041D520 83C4 04 add esp,4
0041D523 8B45 E0 mov eax,dword ptr ss:
0041D526 50 push eax
0041D527 8B5D F4 mov ebx,dword ptr ss:
0041D52A 85DB test ebx,ebx
0041D52C 74 09 je short 小蜜蜂V1.0041D537
0041D52E 53 push ebx
0041D52F E8 2C080000 call 小蜜蜂V1.0041DD60
0041D534 83C4 04 add esp,4
0041D537 58 pop eax
0041D538 8945 F4 mov dword ptr ss:,eax
0041D53B 68 04000080 push 80000004
0041D540 6A 00 push 0
0041D542 8B45 F4 mov eax,dword ptr ss:
0041D545 85C0 test eax,eax
0041D547 75 05 jnz short 小蜜蜂V1.0041D54E
0041D549 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D54E 50 push eax
0041D54F 68 01000000 push 1
0041D554 BB 30010000 mov ebx,130
0041D559 E8 F0070000 call 小蜜蜂V1.0041DD4E
0041D55E 83C4 10 add esp,10
0041D561 8945 F0 mov dword ptr ss:,eax
0041D564 6A FF push -1
0041D566 6A 08 push 8
0041D568 68 10000116 push 16010010
0041D56D 68 01000152 push 52010001
0041D572 E8 F5070000 call 小蜜蜂V1.0041DD6C
0041D577 83C4 10 add esp,10
0041D57A 8945 EC mov dword ptr ss:,eax
0041D57D 68 01030080 push 80000301
0041D582 6A 00 push 0
0041D584 FF75 F0 push dword ptr ss:
0041D587 68 01030080 push 80000301
0041D58C 6A 00 push 0
0041D58E 68 01000000 push 1
0041D593 68 04000080 push 80000004
0041D598 6A 00 push 0
0041D59A 8B45 EC mov eax,dword ptr ss:
0041D59D 85C0 test eax,eax
0041D59F 75 05 jnz short 小蜜蜂V1.0041D5A6
0041D5A1 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D5A6 50 push eax
0041D5A7 68 03000000 push 3
0041D5AC BB 3C010000 mov ebx,13C
0041D5B1 E8 98070000 call 小蜜蜂V1.0041DD4E
0041D5B6 83C4 28 add esp,28
0041D5B9 8945 E8 mov dword ptr ss:,eax
0041D5BC 8B5D EC mov ebx,dword ptr ss:
0041D5BF 85DB test ebx,ebx
0041D5C1 74 09 je short 小蜜蜂V1.0041D5CC
0041D5C3 53 push ebx
0041D5C4 E8 97070000 call 小蜜蜂V1.0041DD60
0041D5C9 83C4 04 add esp,4
0041D5CC 8B45 F4 mov eax,dword ptr ss:
0041D5CF 50 push eax
0041D5D0 FF75 E8 push dword ptr ss:
0041D5D3 E8 DCF8FFFF call 小蜜蜂V1.0041CEB4
0041D5D8 83C4 08 add esp,8
0041D5DB 83F8 00 cmp eax,0
0041D5DE B8 00000000 mov eax,0
0041D5E3 0F95C0 setne al
0041D5E6 8945 E4 mov dword ptr ss:,eax
0041D5E9 8B5D E8 mov ebx,dword ptr ss:
0041D5EC 85DB test ebx,ebx
0041D5EE 74 09 je short 小蜜蜂V1.0041D5F9 ; |到
0041D5F0 53 push ebx ; |这
0041D5F1 E8 6A070000 call 小蜜蜂V1.0041DD60 ; |里
0041D5F6 83C4 04 add esp,4 ; |结
0041D5F9 837D E4 00 cmp dword ptr ss:,0 ; |束
0041D5FD 0F84 62010000 je 小蜜蜂V1.0041D765 ; /。
0041D603 68 04000080 push 80000004
0041D608 6A 00 push 0
0041D60A 8B45 F8 mov eax,dword ptr ss:
0041D60D 85C0 test eax,eax
0041D60F 75 05 jnz short 小蜜蜂V1.0041D616
0041D611 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D616 50 push eax
0041D617 68 01000000 push 1
0041D61C BB 30010000 mov ebx,130
0041D621 E8 28070000 call 小蜜蜂V1.0041DD4E
0041D626 83C4 10 add esp,10
0041D629 8945 F0 mov dword ptr ss:,eax
0041D62C 6A FF push -1
0041D62E 6A 08 push 8
0041D630 68 11000116 push 16010011
0041D635 68 01000152 push 52010001
0041D63A E8 2D070000 call 小蜜蜂V1.0041DD6C
0041D63F 83C4 10 add esp,10
0041D642 8945 EC mov dword ptr ss:,eax ; 假码"987654321012345678901234567890"
0041D645 68 01030080 push 80000301
0041D64A 6A 00 push 0
0041D64C FF75 F0 push dword ptr ss:
0041D64F 68 01030080 push 80000301
0041D654 6A 00 push 0
0041D656 68 14000000 push 14 ; 常数,0x14(20)
0041D65B 68 04000080 push 80000004
0041D660 6A 00 push 0
0041D662 8B45 EC mov eax,dword ptr ss:
0041D665 85C0 test eax,eax
0041D667 75 05 jnz short 小蜜蜂V1.0041D66E
0041D669 B8 0AC14000 mov eax,小蜜蜂V1.0040C10A
0041D66E 50 push eax
0041D66F 68 03000000 push 3
0041D674 BB 3C010000 mov ebx,13C
0041D679 E8 D0060000 call 小蜜蜂V1.0041DD4E ; 从假码第20位开始取
0041D67E 83C4 28 add esp,28
0041D681 8945 E8 mov dword ptr ss:,eax ; 取出的字符串"012345"
0041D684 8B5D EC mov ebx,dword ptr ss:
0041D687 85DB test ebx,ebx
0041D689 74 09 je short 小蜜蜂V1.0041D694
0041D68B 53 push ebx
0041D68C E8 CF060000 call 小蜜蜂V1.0041DD60 ; 取用户名运算得到的字符串"B18E15"
0041D691 83C4 04 add esp,4
0041D694 8B45 F8 mov eax,dword ptr ss:
0041D697 50 push eax ; 用户名运算得到的字符串"B18E15"
0041D698 FF75 E8 push dword ptr ss: ; 从假码取出的字符串"012345"
0041D69B E8 14F8FFFF call 小蜜蜂V1.0041CEB4 ; 比较两者是否相等
0041D6A0 83C4 08 add esp,8
0041D6A3 83F8 00 cmp eax,0
0041D6A6 B8 00000000 mov eax,0
0041D6AB 0F95C0 setne al
0041D6AE 8945 E4 mov dword ptr ss:,eax
0041D6B1 8B5D E8 mov ebx,dword ptr ss:
0041D6B4 85DB test ebx,ebx
0041D6B6 74 09 je short 小蜜蜂V1.0041D6C1
0041D6B8 53 push ebx
0041D6B9 E8 A2060000 call 小蜜蜂V1.0041DD60
0041D6BE 83C4 04 add esp,4
0041D6C1 837D E4 00 cmp dword ptr ss:,0
0041D6C5 0F84 41000000 je 小蜜蜂V1.0041D70C ; 不等则Over,暴破点3,改为Jmp
0041D6CB 68 02000080 push 80000002
0041D6D0 6A 00 push 0
0041D6D2 68 01000000 push 1
0041D6D7 68 01000100 push 10001
0041D6DC 68 00000106 push 6010000
0041D6E1 68 01000152 push 52010001
0041D6E6 68 01000100 push 10001
0041D6EB 68 23000106 push 6010023
0041D6F0 68 24000152 push 52010024
0041D6F5 68 03000000 push 3
0041D6FA BB 20030000 mov ebx,320
0041D6FF E8 4A060000 call 小蜜蜂V1.0041DD4E
0041D704 83C4 28 add esp,28
0041D707 E9 59000000 jmp 小蜜蜂V1.0041D765
0041D70C 6A 00 push 0
-----------------------------------------------------------------------------
【破解总结】
1.依次取用户名每一位字符的ASCII值,记为N,进行运算(N+27.0)*4 MOD 27.0,运算结果转为16进制数后再转为字符串依次连接,记为str2。
2.程序内置2个固定字符串,分别记为str1"-No."和str3"-KAN"。
3.依次连接字符串str1,str2,str3即为注册码。
一组可用注册信息:
====================================================
注册名:hrbx
注册码:-No.B18E15-KAN
====================================================
暴破更改以下位置:
0041D1C7 je 小蜜蜂V1.0041D1D4 ; je====>Nop
0041D30C je 小蜜蜂V1.0041D76A ; je====>Nop
0041D6C5 je 小蜜蜂V1.0041D70C ; je====>Jmp
--------------------------------------------------------------------------
【VB注册机源码】
Private Sub btnGenerate_Click(ByVal ClickReason As b2kClickReason)
Dim UserName As String
Dim Serial As String
Dim TmpStr As String
Dim Num As Integer
Dim Length As Integer
Dim i As Integer
On Error Resume Next
If Text1.Text = "" Then
Text2.Text = "请输入用户名!"
Else
UserName = Trim(Text1.Text)
Length = Len(UserName)
For i = 1 To Length
Num = ((Asc(Mid$(UserName, i, 1)) + 27) * 4) Mod 27
TmpStr = TmpStr & Hex(Num)
Next i
Serial = "-No." & TmpStr & "-KAN"
Text2.Text = Serial
End If
-------------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 hrbx 于 2007-11-18 12:59 编辑 ] 截个图,:)
[ 本帖最后由 hrbx 于 2007-11-16 22:03 编辑 ] 原帖由 奈落 于 2007-11-16 22:05 发表 https://www.chinapyg.com/images/common/back.gif
不知道有谁能介绍下浮点运算~这个有点不太懂`
google一下吧,很好找的 好厉害,我也去试试。。 好文,学习了 牛人,厉害的说,用尽全力的顶!/:good /:good /:good 我对注册机的皮肤也很感兴趣/:013 原帖由 acafeel 于 2007-11-19 10:27 发表 https://www.chinapyg.com/images/common/back.gif
牛人,厉害的说,用尽全力的顶!/:good /:good /:good
太过分了,没点正经 /:017 好东西,下来看看!!!! OVERLAY是什么意思啊
页:
[1]
2