CrackMe第二题追码写注册机
本帖最后由 growuphappily 于 2020-2-17 14:42 编辑应@zzyyyy要求,写了这篇文章
回到注册码计算的地方:
00402412 .50 push eax ; /String = 00000001 ???
00402413 .8B1A mov ebx,dword ptr ds: ; |
00402415 .FF15 E4404000 call dword ptr ds:[<&MSVBVM50.__vbaLenBstr>] ; \__vbaLenBstr;计算name的长度
0040241B .8BF8 mov edi,eax ;eax为name长度
0040241D 8B4D E8 mov ecx,dword ptr ss: ;ecx为name
00402420 .69FF FB7C0100 imul edi,edi,0x17CFB ;将字符串长度与17CFB相乘,结果放在edi
00402426 .51 push ecx ; /String = NULL
00402427 .0F80 91020000 jo Afkayas_.004026BE ;
0040242D .FF15 F8404000 call dword ptr ds:[<&MSVBVM50.#rtcAnsiValueBstr>; \rtcAnsiValueBstr取第一个字符的ASCII码
00402433 .0FBFD0 movsx edx,ax
00402436 .03FA add edi,edx ;把ediedx相加
00402438 .0F80 80020000 jo Afkayas_.004026BE
0040243E .57 push edi ;把edi转换成十进制
0040243F .FF15 E0404000 call dword ptr ds:[<&MSVBVM50.__vbaStrI4>] ;MSVBVM50.__vbaStrI4
00402445 .8BD0 mov edx,eax ;把eax放到edx
..................................
0040251D .68 701B4000 push Afkayas_.00401B70 ;UNICODE "AKA-"
00402522 .51 push ecx ; /String = NULL
00402523 .FFD7 call edi ; \__vbaStrCat
其中00402415,0040243f,00402523,0040242D,00402436和00402420比较重要
00402415计算了name的长度
00402420把name的长度与0x17CFB相乘,结果放在edi
0040243F把edi转换成十进制
0046242D取name的第一位的ASCII码放到edx中
00402436把edi加上edx
00402523把edi转换成十进制的结果前面加上"AKA-"
于是,我们就可以写注册机了
name = input()
edi = len(name) * int(0x17CFB)
edx = ord(name)
key = "AKA-" + str(edi+edx)
print(key)
所以,“Type In Your Name”的注册码就是“AKA-1658111”
最后:
评分不要钱!评分不要钱!评分不要钱!
zzyyyy 发表于 2020-2-17 19:39
楼主,今日评分用完了,明天再给你哈哈
问个事,edi dword ptrecx 等等 这些代码意思去哪了解
如果只是临时用,可以去网上搜,但是如果要长期用的话,最好还是把它记在脑子里
这是汇编代码 破解者灬禄 发表于 2020-2-18 11:41
谢谢楼主,很有用!我还想问一下用哪个软件好用?
ollydbg,你可以去爱盘下载:
http://down.52pojie.cn/Tools/Debuggers/%e5%90%be%e7%88%b1%e7%a0%b4%e8%a7%a3%e4%b8%93%e7%94%a8%e7%89%88Ollydbg.rar
厉害了,很有用,谢谢。 支持一下 说的非常好,谢谢,再见。 很有用 支持一下 支持一下 这个使用什么软件写的啊 Jonly 发表于 2020-2-17 18:19
这个使用什么软件写的啊
哪个?
软件是VB
注册机是Python 拿来学习了 楼主,今日评分用完了,明天再给你哈哈
问个事,edi dword ptrecx 等等 这些代码意思去哪了解