growuphappily 发表于 2020-2-17 14:27

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”
最后:



评分不要钱!评分不要钱!评分不要钱!

growuphappily 发表于 2020-2-17 19:42

zzyyyy 发表于 2020-2-17 19:39
楼主,今日评分用完了,明天再给你哈哈
问个事,edi dword ptrecx 等等 这些代码意思去哪了解
如果只是临时用,可以去网上搜,但是如果要长期用的话,最好还是把它记在脑子里

这是汇编代码

growuphappily 发表于 2020-2-18 11:43

破解者灬禄 发表于 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

eebill 发表于 2020-2-17 15:05

厉害了,很有用,谢谢。

ZXCVBNM13 发表于 2020-2-17 15:29

支持一下

zqq 发表于 2020-2-17 16:11

说的非常好,谢谢,再见。

ruoling 发表于 2020-2-17 17:14

很有用 支持一下

serv 发表于 2020-2-17 17:45

支持一下

Jonly 发表于 2020-2-17 18:19

这个使用什么软件写的啊

growuphappily 发表于 2020-2-17 18:55

Jonly 发表于 2020-2-17 18:19
这个使用什么软件写的啊

哪个?
软件是VB
注册机是Python

a2837297164 发表于 2020-2-17 19:11

拿来学习了

zzyyyy 发表于 2020-2-17 19:39

楼主,今日评分用完了,明天再给你哈哈
问个事,edi dword ptrecx 等等 这些代码意思去哪了解
页: [1] 2 3
查看完整版本: CrackMe第二题追码写注册机