逆向破解之160个CrackMe —— 025 CrackMe —— 025 开始破解之旅 ON.1 ON.2

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号程序 

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

我们点击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

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

点击确定

此时来到了我们的函数入口处

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

我们将push ebp修改为ret,F9运行

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

bingo~ NAG窗口成功去除

ON.2

爆破方式

右键在x32dbg中搜索字符串

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

看到了我们的正确信息提示符,地址为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]                         |

我们将0040576EJE修改为NOP,F9运行,在输入框内输入任意字符

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

bingo ~ 破解成功

追码方式

在次来到我们搜索字符串处,我们看到一个可疑的字符串“55555

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

我们在输入框内输入55555,点击Check按钮

逆向破解之160个CrackMe —— 025
CrackMe —— 025
开始破解之旅
ON.1
ON.2

bingo ~ 破解成功