逆向破解之160个CrackMe —— 025
CrackMe —— 025
160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序
CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。
CrackMe简称CM。
编号 | 作者 | 保护方式 |
025 | CodeZero | Nag,Serial(VB5) |
工具
x32dbg
VB Decompiler Pro
开始破解之旅
ON.1
第一步我们要去除NAG
首先使用VB Decompiler Pro打开我们的025号程序
我们点击Code ->Form1->Form_Load 这里是加载NAG窗口的地方,点进进入看见了反编译的VB代码
Private Sub Form_Load() '405905 Dim Me As Me loc_00405948: Me.Visible = False loc_00405986: Form2.Visible = True End Sub
在函数名后面有一串数字,该数字是函数的入口地址,我们在x32dbg里跳转到该地址
使用x32dbg打开025号程序,右键 转到->表达式\CTL+G,输入405905
点击确定
此时来到了我们的函数入口处
我们将push ebp修改为ret,F9运行
bingo~ NAG窗口成功去除
ON.2
爆破方式
右键在x32dbg中搜索字符串
看到了我们的正确信息提示符,地址为40577B,双击进入该地址
向上翻看,来到最近的一个跳转处,发现该跳转跳过了正确提示信息来到了错误提示信息
0040576B | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] | 0040576E | 74 2A | je codezero.1.40579A | 程序跳转处 00405770 | E8 CDB9FFFF | call <JMP.&__vbaVarDup> | 00405775 | 8D55 94 | lea edx,dword ptr ss:[ebp-0x6C] | 00405778 | 8D4D D4 | lea ecx,dword ptr ss:[ebp-0x2C] | 0040577B | C745 9C B4264000 | mov dword ptr ss:[ebp-0x64],codezero.1.4026B4 | 4026B4:L"Congratulations! you've really made it :-)" 00405782 | 8975 94 | mov dword ptr ss:[ebp-0x6C],esi | 00405785 | E8 B8B9FFFF | call <JMP.&__vbaVarDup> | 0040578A | 8D45 A4 | lea eax,dword ptr ss:[ebp-0x5C] | 0040578D | 50 | push eax | 0040578E | 8D45 B4 | lea eax,dword ptr ss:[ebp-0x4C] | 00405791 | 50 | push eax | 00405792 | 8D45 C4 | lea eax,dword ptr ss:[ebp-0x3C] | 00405795 | 50 | push eax | 00405796 | 6A 40 | push 0x40 | 00405798 | EB 28 | jmp codezero.1.4057C2 | 0040579A | E8 A3B9FFFF | call <JMP.&__vbaVarDup> | 0040579F | C745 9C 10274000 | mov dword ptr ss:[ebp-0x64],codezero.1.402710 | 402710:L"Invalid unlock code, please try again." 004057A6 | 8D55 94 | lea edx,dword ptr ss:[ebp-0x6C] | 004057A9 | 8D4D D4 | lea ecx,dword ptr ss:[ebp-0x2C] |
我们将0040576E处JE修改为NOP,F9运行,在输入框内输入任意字符
bingo ~ 破解成功
追码方式
在次来到我们搜索字符串处,我们看到一个可疑的字符串“55555”
我们在输入框内输入55555,点击Check按钮
bingo ~ 破解成功