每天一个CM----第四天
应某牛要求,这次依然是VB的
要求算法分析
一组可用注册码:
zapline
AKA-682839
关键是分析如何由注册名计算出注册码后面部分的数字
难度:易 part1 = AKA-
part2 = (用户名长度*0X17CFB+用户名第一字符的ASCII值 )转十进制
serial = part1+part2
name:creantan
serial:AKA-780347 这个CM好,适合我,LZ说的那位牛牛就不要玩了:lol :lol
用户名:x80x88
用户名位数为6,用户名第1位"x"的ASCII码16进制值为78
17CFB(固定值)*6+78=8EE5A(16进制计算)---->585306(10进制形式)
真码为"AKA-"&"585306"即AKA-585306
晕倒,又被抢沙发了:Q 两位还真是快啊
下次把汇编代码贴着注释一下吧
:lol 我学习 学习来了。。。。。。。。。。
:lol 00402412 .50 PUSH EAX ; /String
00402413 .8B1A MOV EBX,DWORD PTR DS: ; |
00402415 .FF15 E4404000 CALL DWORD PTR DS:[<&MSVBVM50.__vbaLenBs>; \__vbaLenBstr
0040241B .8BF8 MOV EDI,EAX
0040241D .8B4D E8 MOV ECX,DWORD PTR SS:
00402420 .69FF FB7C0100 IMUL EDI,EDI,17CFB
00402426 .51 PUSH ECX ; /String
00402427 .0F80 91020000 JO Afkayas_.004026BE ; |
0040242D .FF15 F8404000 CALL DWORD PTR DS:[<&MSVBVM50.#516>] ; \rtcAnsiValueBstr
00402433 .0FBFD0 MOVSX EDX,AX
00402436 .03FA ADD EDI,EDX
00402438 .0F80 80020000 JO Afkayas_.004026BE
0040243E .57 PUSH EDI
0040243F .FF15 E0404000 CALL DWORD PTR DS:[<&MSVBVM50.__vbaStrI4>;MSVBVM50.__vbaStrI4
00402445 .8BD0 MOV EDX,EAX
00402447 .8D4D E0 LEA ECX,DWORD PTR SS:
哪位注释一下?有部分看不懂。
直接出结果了:
lrbf810
AKA-682825 顺便谁把第2天的那个弄个教程出来呀?
不胜感激。当然不是要爆破的。
http://www.52pojie.cn/thread-18096-1-1.html
00402409 > \8B95 50FFFFFF mov edx, dword ptr
0040240F .8B45 E4 mov eax, dword ptr ;用户名
00402412 .50 push eax ; /String
00402413 .8B1A mov ebx, dword ptr ; |
00402415 .FF15 E4404000 call dword ptr [<&MSVBVM50.__vbaLenBs>; \__vbaLenBstr //取用户名长度
0040241B .8BF8 mov edi, eax //长度赋给edi
0040241D .8B4D E8 mov ecx, dword ptr
00402420 .69FF FB7C0100 imul edi, edi, 17CFB //edi*=0x17cfb
00402426 .51 push ecx ; /String
00402427 .0F80 91020000 jo 004026BE ; |
0040242D .FF15 F8404000 call dword ptr [<&MSVBVM50.#516>] ; \rtcAnsiValueBstr //取用户名第一个字符16进制值
00402433 .0FBFD0 movsx edx, ax
00402436 .03FA add edi, edx ; // edi+=edx 相加得到注册码数字部分
00402438 .0F80 80020000 jo 004026BE
0040243E .57 push edi
0040243F .FF15 E0404000 call dword ptr [<&MSVBVM50.__vbaStrI4>;MSVBVM50.__vbaStrI4 //转十进制
00402445 .8BD0 mov edx, eax
00402447 .8D4D E0 lea ecx, dword ptr
0040244A .FF15 70414000 call dword ptr [<&MSVBVM50.__vbaStrMo>;MSVBVM50.__vbaStrMove
第二个算不出来。。。数学不好。。。
[ 本帖最后由 creantan 于 2009-1-30 23:26 编辑 ] 感谢,主要是那几个VB的Call不明白,没学过编程。呵呵。
页:
[1]
2