0x00 前言
我今天在翻之前的帖子的时候,发现CrackMe第一题的注册机没有写,也是@镇北看雪的提醒
所以就开搞吧!
0x02 开搞
先第一个:Name/Serial
先输入假码
断点断下(之前的断点)
分析一下代码:
[Asm] 纯文本查看 复制代码 0042FA87 |. 8B45 F0 mov eax,[local.4] ; 取出name
0042FA8A |. 0FB600 movzx eax,byte ptr ds:[eax] ; 取出第一位
0042FA8D |. F72D 50174300 imul dword ptr ds:[0x431750] ; eax乘以0x29
0042FA93 |. A3 50174300 mov dword ptr ds:[0x431750],eax ; 0x431570 = eax
0042FA98 |. A1 50174300 mov eax,dword ptr ds:[0x431750]
0042FA9D |. 0105 50174300 add dword ptr ds:[0x431750],eax ; 0x431750 + eax
0042FAA3 |. 8D45 FC lea eax,[local.1]
0042FAA6 |. BA ACFB4200 mov edx,Acid_bur.0042FBAC
0042FAAB |. E8 583CFDFF call Acid_bur.00403708
0042FAB0 |. 8D45 F8 lea eax,[local.2]
0042FAB3 |. BA B8FB4200 mov edx,Acid_bur.0042FBB8
0042FAB8 |. E8 4B3CFDFF call Acid_bur.00403708
0042FABD |. FF75 FC push [local.1]
0042FAC0 |. 68 C8FB4200 push Acid_bur.0042FBC8 ; UNICODE "-"
0042FAC5 |. 8D55 E8 lea edx,[local.6]
0042FAC8 |. A1 50174300 mov eax,dword ptr ds:[0x431750]
0042FACD |. E8 466CFDFF call Acid_bur.00406718 ; 转换十进制
0042FAD2 |. FF75 E8 push [local.6] ; Acid_bur.0041B233
0042FAD5 |. 68 C8FB4200 push Acid_bur.0042FBC8 ; UNICODE "-"
0042FADA |. FF75 F8 push [local.2]
0042FADD |. 8D45 F4 lea eax,[local.3]
0042FAE0 |. BA 05000000 mov edx,0x5
0042FAE5 |. E8 C23EFDFF call Acid_bur.004039AC
0042FAEA |. 8D55 F0 lea edx,[local.4]
0042FAED |. 8B83 E0010000 mov eax,dword ptr ds:[ebx+0x1E0]
0042FAF3 |. E8 60AFFEFF call Acid_bur.0041AA58 ; 合并(CW-[00431750]-CRACKED)
关键的就这些
意思就是把name的第一位的ASCII乘以0x29再乘以0x2转换成十进制
前面加上CW-
后面加上-CRACKED
注册机:
[Python] 纯文本查看 复制代码 print('CW-' + str(ord(input()[0]) * 41 * 2 )+ '-CRACKED')
(你没看错,就一行代码!!!)
再来看第二个
分析了一会,发现注册码是固定的,是“Hello Dude!”
第一个效果图:
0x03 最后
评分不要钱!评分不要钱!评分不要钱! |