逆向破解之160个CrackMe —— 026
CrackMe —— 026
160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序
CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。
CrackMe简称CM。
编号 | 作者 | 保护方式 |
026 | Colormaster | Name/Serial(VB5) |
工具
x32dbg
KeyMake
开始破解之旅
ON.1
爆破方式
首先使用x32dbg打开026号程序,右键搜索字符串
这里我们看到了正确信息提示符,地位为00403745
进入该地址,向上翻看来到最近的一个跳转处
该跳转当寄存器ZF=0时发生跳转,跳转到正确提示信息,我们将004036EB地址处的JE修改为NOP,F9运行,在输入框内输入任意数据
bingo ~ 破解成功
ON.2
内存补丁方式
继续向上翻看代码,此时我们在x32dbg中看到一个字符串对比函数
0040369C | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] | 0040369F | FFD6 | call esi | 004036A1 | 50 | push eax | 在此处下断点 004036A2 | FF15 74104000 | call dword ptr ds:[<&__vbaStrCmp>] | 字符串对比函数 004036A8 | 8BF0 | mov esi,eax | 004036AA | 8D45 C4 | lea eax,dword ptr ss:[ebp-0x3C] | 004036AD | 8D4D D8 | lea ecx,dword ptr ss:[ebp-0x28] | 004036B0 | 50 | push eax | 004036B1 | 8D55 C8 | lea edx,dword ptr ss:[ebp-0x38] | 004036B4 | 51 | push ecx | 004036B5 | F7DE | neg esi | 004036B7 | 8D45 CC | lea eax,dword ptr ss:[ebp-0x34] | 004036BA | 52 | push edx | 004036BB | 8D4D D4 | lea ecx,dword ptr ss:[ebp-0x2C] | 004036BE | 50 | push eax | 004036BF | 1BF6 | sbb esi,esi | 004036C1 | 8D55 D0 | lea edx,dword ptr ss:[ebp-0x30] | 004036C4 | 51 | push ecx | 004036C5 | 46 | inc esi | 004036C6 | 52 | push edx | 004036C7 | 6A 06 | push 0x6 | 004036C9 | F7DE | neg esi | 004036CB | FF15 C4104000 | call dword ptr ds:[<&__vbaFreeStrList>] | 004036D1 | 8D45 B0 | lea eax,dword ptr ss:[ebp-0x50] | 004036D4 | 8D4D B4 | lea ecx,dword ptr ss:[ebp-0x4C] | 004036D7 | 50 | push eax | 004036D8 | 8D55 B8 | lea edx,dword ptr ss:[ebp-0x48] | 004036DB | 51 | push ecx | 004036DC | 52 | push edx | 004036DD | 6A 03 | push 0x3 | 004036DF | FF15 20104000 | call dword ptr ds:[<&__vbaFreeObjList>] | 004036E5 | 83C4 2C | add esp,0x2C | 004036E8 | 66:85F6 | test si,si | 004036EB | 0F84 AB000000 | je colormaster.40379C | 004036F1 | 8B35 D4104000 | mov esi,dword ptr ds:[<&__vbaVarDup>] | 004036F7 | B9 04000280 | mov ecx,0x80020004 |
我们在004036A1处下断点,F9运行,点击check it按钮,此时停在了我们的断点处
0040369A | 8BD0 | mov edx,eax | edx:L"55493CDCDD8599459-CM", eax:L"55493CDCDD8599459-CM" 0040369C | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] | [ebp-3C]:L"55493CDCDD8599459-CM"" 0040369F | FFD6 | call esi | 004036A1 | 50 | push eax | eax:L"55493CDCDD8599459-CM" 004036A2 | FF15 74104000 | call dword ptr ds:[<&__vbaStrCmp>] | 004036A8 | 8BF0 | mov esi,eax | eax:L"55493CDCDD8599459-CM" 004036AA | 8D45 C4 | lea eax,dword ptr ss:[ebp-0x3C] | [ebp-3C]:L"55493CDCDD8599459-CM" 004036AD | 8D4D D8 | lea ecx,dword ptr ss:[ebp-0x28] | [ebp-28]:L"1234"3CDCDD8599459-CM" 004036B0 | 50 | push eax | eax:L"55493CDCDD8599459-CM" 004036B1 | 8D55 C8 | lea edx,dword ptr ss:[ebp-0x38] | [ebp-38]:L"55493CDCDD8599459"CM" 004036B4 | 51 | push ecx | ecx:&L"55493CDCDD8599459-CM"
此时我们看到eax处有一处可疑字符串,我们将该字符串填入Serial框内,点击按钮
bingo ~注册码确认无疑
打开我们的KeyMake,添加以下数据
生成...
打开我们生成的注册机,输入任意Name,点击按钮
叮咚~ 注册码弹了出来,破解成功