CrackMe -- 002
160 CrackMe 是比较适合新手学习逆向破解的 CrackMe 的一个集合一共 160 个待逆向破解的程序
CrackMe: 它们都是一些公开给别人尝试破解的小程序, 制作 crackme 的人可能是程序员, 想测试一下自己的软件保护技术, 也可能是一位 cracker, 想挑战一下其它 cracker 的破解实力, 也可能是一些正在学习破解的人, 自己编一些小程序给自己破.
CrackMe 简称 CM.
来源
编号 | 作者 | 保护方式 |
002 | Afkayas | Name/Serial(VB5) |
003 | Afkayas | Nag,Name/Serial(VB5) |
工具
x32dbg
KeyMake
开始破解之旅
ON.1
使用 x32dbg 打开 002 号程序, 运行
在输入框输入任意数据, 点击按钮 OK , 弹出窗口
爆破方式
搜索字符串 "Try Again" 点进地址向上查看, 在 0040258B 处下断点 , 这里是逻辑正确跳转处
- 0040258B | 74 58 | je afkayas.1.4025E5 |
- 0040258D | 68 801B4000 | push afkayas.1.401B80 | 401B80:L"You Get It"
- 00402592 | 68 9C1B4000 | push afkayas.1.401B9C | 401B9C:L"\r\n"
- 00402597 | FFD7 | call edi |
- 00402599 | 8BD0 | mov edx,eax |
- 0040259B | 8D4D E8 | lea ecx,dword ptr ss:[ebp-0x18] |
- 0040259E | FFD3 | call ebx |
- 004025A0 | 50 | push eax |
- 004025A1 | 68 A81B4000 | push afkayas.1.401BA8 | 401BA8:L"KeyGen It Now"
- 004025A6 | FFD7 | call edi |
- 004025A8 | 8D4D 94 | lea ecx,dword ptr ss:[ebp-0x6C] |
- 004025AB | 8945 CC | mov dword ptr ss:[ebp-0x34],eax |
- 004025AE | 8D55 A4 | lea edx,dword ptr ss:[ebp-0x5C] |
- 004025B1 | 51 | push ecx |
- 004025B2 | 8D45 B4 | lea eax,dword ptr ss:[ebp-0x4C] |
- 004025B5 | 52 | push edx |
- 004025B6 | 50 | push eax |
- 004025B7 | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] |
- 004025BA | 6A 00 | push 0x0 |
- 004025BC | 51 | push ecx |
- 004025BD | C745 C4 08000000 | mov dword ptr ss:[ebp-0x3C],0x8 |
- 004025C4 | FF15 10414000 | call dword ptr ds:[<&rtcMsgBox>] |
- 004025CA | 8D4D E8 | lea ecx,dword ptr ss:[ebp-0x18] |
- 004025CD | FF15 80414000 | call dword ptr ds:[<&__vbaFreeStr>] |
- 004025D3 | 8D55 94 | lea edx,dword ptr ss:[ebp-0x6C] |
- 004025D6 | 8D45 A4 | lea eax,dword ptr ss:[ebp-0x5C] |
- 004025D9 | 52 | push edx |
- 004025DA | 8D4D B4 | lea ecx,dword ptr ss:[ebp-0x4C] |
- 004025DD | 50 | push eax |
- 004025DE | 8D55 C4 | lea edx,dword ptr ss:[ebp-0x3C] |
- 004025E1 | 51 | push ecx |
- 004025E2 | 52 | push edx |
- 004025E3 | EB 56 | jmp afkayas.1.40263B |
- 004025E5 | 68 C81B4000 | push afkayas.1.401BC8 | 401BC8:L"You Get Wrong"
- 004025EA | 68 9C1B4000 | push afkayas.1.401B9C | 401B9C:L"\r\n"
- 004025EF | FFD7 | call edi |
再次点击 OK 按钮, 此时停在断点处, ZF 标志位为 1 , 双击改变标志位为 0,F9 运行
出现正确提示, 修改 je 4025E5 为 NOP 保存, 输入任意数据, 点击按钮, 显示正确弹窗.
注册机方式
此处需要选择宽字符串
- CrackMe -- 003
- ON.1
使用 x32dbg 打开 003 号程序, 运行
出现了两个窗口
左边的窗口是要 Kill 掉的, 右边的则需要我们来爆破
ON.2
这里使用 4C 方法来破解 NAG 窗口
来到入口点
- 00401170 | 68 D4674000 | push afkayas.2.4067D4 |
- 00401175 | E8 F0FFFFFF | call <JMP.&ThunRTMain> |
- 0040117A | 0000 | add byte ptr ds:[eax],al |
第一个 push 处转到内存窗口, 内存窗口地址为 004067D4 ,4C 就是这个地址加上 4C
右键转到 -> 表达式
此时跳转到 00406820 地址处
00406820 68 68 40 00 CC 67 40 00 7C 11 40 00 68 00 00 00 hh@.Ìg@.|.@.h...
在该地址处右键 "在当前内存窗口中转到指定 DWORD"
此时在 00404888 和 004048D8 处各有两个标志位, 该标志位代表了程序加载窗口的启动顺序, 先加载 00 后加载 01,00 就是我们要去除的 NAG 窗口, 将两个标志位颠倒, 便可以达到去除 NAG 窗口的效果.
绕过验证方法和 002 相同 (~▽~)~*
来源: https://www.cnblogs.com/lonenysky/p/11327781.html