160 个 CrackMe 之 004 算法分析及易语言注册机实现
本帖最后由 wbz_007 于 2019-8-4 21:34 编辑160 个 CrackMe 之 004 算法分析及易语言注册机实现
直入正题:
这个CrackMe,输入用户名 注册码,点击没有任何反应,因为是Borland Delphi 4.0 - 5.0,我的方法直接采用,Delphi 按钮事件脚本下断,于是段在如下call(注册事件的call)
进入call,来到这里,通过跟踪后发现 没有任何有意义的代码,得到的数据不是注册码,不可用。
00457FB8/.55 push ebp
00457FB9|.8BEC mov ebp,esp
00457FBB|.B9 04000000 mov ecx,0x4
00457FC0|>6A 00 /push 0x0
00457FC2|.6A 00 |push 0x0
00457FC4|.49 |dec ecx
00457FC5|.^ 75 F9 \jnz short CKme.00457FC0
00457FC7|.51 push ecx
00457FC8|.53 push ebx
00457FC9|.56 push esi
00457FCA|.8BF0 mov esi,eax
00457FCC|.33C0 xor eax,eax
00457FCE|.55 push ebp
00457FCF|.68 FD804500 push CKme.004580FD
00457FD4|.64:FF30 push dword ptr fs:
00457FD7|.64:8920 mov dword ptr fs:,esp
00457FDA|.33DB xor ebx,ebx
00457FDC|>8D55 F4 /lea edx,
00457FDF|.8B86 D4020000 |mov eax,dword ptr ds:
00457FE5|.E8 5EB3FCFF |call CKme.00423348 ;取用户名长度
00457FEA|.8B45 F4 |mov eax, ;用户名给eax
00457FED|.E8 8ABBFAFF |call CKme.00403B7C ;用户名长度eax
00457FF2|.83C0 1E |add eax,0x1E ;用户名长度加1e 给eax
00457FF5|.8D55 F8 |lea edx,
00457FF8|.E8 07FBFAFF |call CKme.00407B04
00457FFD|.FF75 F8 |push ;压入 用户名长度加 1e 的十进制值
00458000|.8D55 F0 |lea edx,
00458003|.8B86 D4020000 |mov eax,dword ptr ds:
00458009|.E8 3AB3FCFF |call CKme.00423348
0045800E|.FF75 F0 |push ;msctf.754B3F35
00458011|.8D55 EC |lea edx,
00458014|.8BC3 |mov eax,ebx
00458016|.E8 E9FAFAFF |call CKme.00407B04
0045801B|.FF75 EC |push
0045801E|.8D45 FC |lea eax,
00458021|.BA 03000000 |mov edx,0x3
od 中继续往下翻,没有可用代码,于是就往上翻翻看,一定要仔细看,发现了可逆字符,但还是不是很肯定,于是就在来到如下代码,在段首下断,并且删除 按钮事件那个断点
00457C1C .53 75 6E 20 4>ascii "Sun Bird",0 可疑字符暂时不知道是什么用处
00457C25 00 db 00
00457C26 00 db 00
00457C27 00 db 00
00457C28 .FFFFFFFF dd FFFFFFFF
00457C2C .0F000000 dd 0000000F
00457C30 .64 73 65 6C 6>ascii "dseloffc-012-OK",0 可疑字符,暂时不知道是什么用处
00457C40/.55 push ebp 段首下断,删除按钮事件那个断点
00457C41|.8BEC mov ebp,esp
00457C43|.51 push ecx
00457C44|.B9 05000000 mov ecx,0x5
00457C49|>6A 00 /push 0x0
00457C4B|.6A 00 |push 0x0
00457C4D|.49 |dec ecx
00457C4E|.^ 75 F9 \jnz short CKme.00457C49
00457C50|.51 push ecx
00457C51|.874D FC xchg ,ecx
00457C54|.53 push ebx
00457C55|.56 push esi
00457C56|.8BD8 mov ebx,eax
00457C58|.33C0 xor eax,eax
00457C5A|.55 push ebp
00457C5B|.68 3D7E4500 push CKme.00457E3D
00457C60|.64:FF30 push dword ptr fs:
00457C63|.64:8920 mov dword ptr fs:,esp
00457C66|.8BB3 F8020000 mov esi,dword ptr ds: ;用户名长度给esi
00457C6C|.83C6 05 add esi,0x5 ;esi=用户名长度加5
00457C6F|.FFB3 10030000 push dword ptr ds: ;压入字符串 黑头Sun Bird
00457C75|.8D55 F8 lea edx,
00457C78|.8BC6 mov eax,esi ;eax=esi 用户名长度加5
00457C7A|.E8 85FEFAFF call CKme.00407B04
00457C7F|.FF75 F8 push ;取用户名长度 加 5
00457C82|.FFB3 14030000 push dword ptr ds: ;压入字符串 dseloffc-012-OK
00457C88|.8D55 F4 lea edx,
00457C8B|.8B83 D4020000 mov eax,dword ptr ds:
00457C91|.E8 B2B6FCFF call CKme.00423348 ;取用户名长度
00457C96|.FF75 F4 push ;压入用户名用户名
00457C99|.8D83 18030000 lea eax,dword ptr ds:
00457C9F|.BA 04000000 mov edx,0x4
00457CA4|.E8 93BFFAFF call CKme.00403C3C
00457CA9|.33D2 xor edx,edx
00457CAB|.8B83 F4020000 mov eax,dword ptr ds:
00457CB1|.E8 AAB5FCFF call CKme.00423260
00457CB6|.8B93 18030000 mov edx,dword ptr ds: ;得到的字符串给edx黑头Sun Bird12dseloffc-012-OKwbz_007,可疑字符串出现,验证注册成功
00457CBC|.8B83 F4020000 mov eax,dword ptr ds:
00457CC2|.E8 B1B6FCFF call CKme.00423378
00457CC7|.33F6 xor esi,esi ;esi 清零
00457CC9|>8D55 EC /lea edx,
00457CCC|.8B83 D4020000 |mov eax,dword ptr ds:
00457CD2|.E8 71B6FCFF |call CKme.00423348 ;取用户名长度
00457CD7|.8B45 EC |mov eax, ;用户名给eax
00457CDA|.E8 9DBEFAFF |call CKme.00403B7C
00457CDF|.83C0 03 |add eax,0x3 ;用户名长度加3
00457CE2|.8D55 F0 |lea edx,
00457CE5|.E8 1AFEFAFF |call CKme.00407B04
00457CEA|.FF75 F0 |push ;msctf.754B3F35
00457CED|.8D55 E8 |lea edx,
00457CF0|.8B83 D4020000 |mov eax,dword ptr ds:
00457CF6|.E8 4DB6FCFF |call CKme.00423348
00457CFB|.FF75 E8 |push
00457CFE|.8D55 E4 |lea edx,
00457D01|.8BC6 |mov eax,esi
00457D03|.E8 FCFDFAFF |call CKme.00407B04
00457D08|.FF75 E4 |push
00457D0B|.8D45 FC |lea eax,
00457D0E|.BA 03000000 |mov edx,0x3
00457D13|.E8 24BFFAFF |call CKme.00403C3C
00457D18|.46 |inc esi
00457D19|.83FE 13 |cmp esi,0x13
00457D1C|.^ 75 AB \jnz short CKme.00457CC9
00457D1E|.8D55 E0 lea edx,
00457D21|.8B83 D8020000 mov eax,dword ptr ds: ;CKme.004132A4
00457D27|.E8 1CB6FCFF call CKme.00423348
00457D2C|.8B45 E0 mov eax, ;假码给eax
00457D2F|.8B93 18030000 mov edx,dword ptr ds: ;真码黑头Sun Bird12dseloffc-012-OKwbz_007给edx
00457D35|.E8 52BFFAFF call CKme.00403C8C ;比较call
00457D3A|.75 0A jnz short CKme.00457D46 ;不等就挂了也是爆破点
00457D3C|.C783 0C030000>mov dword ptr ds:,0x3E
00457D46|>8B83 0C030000 mov eax,dword ptr ds:
00457D4C|.83C0 10 add eax,0x10
算法很简单:黑头Sun Bird(作者预设字符串)+用户名长度加5+dseloffc-012-OK(作者预设字符串)+用户名
易语言实现注册机,很简单
不知道什么原因,这个程序注册码复制进去不行,比须要手动键盘输入一些,键盘输入才可以出发注册效果,而且点击注册,需要多点击几次
楼主一直更新吗?想看全部的crackme 马甲 发表于 2019-8-4 21:27
楼主一直更新吗?想看全部的crackme
有些太过去简单,找一些有意思更新
页:
[1]