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

160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序

CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。

CrackMe简称CM。
程序下载地址:点击我

来源 <-点击查看

编号 作者 保护方式
014 bjanes Serial(VB5)

工具 

x32dbg

VB Decompiler Pro

peid

开始破解之旅

ON.1

首先使用peid查壳,发现是VB的程序

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

使用x32dbg打开014号程序,查找字符串

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

找到了报错字符串,双击进入报错字符串地址,在上方跳转处下断点,运行发现并没有拦截到断点处,可能断点地址是错误的

我们按Ctrl+B  输入“816C24” 这是VB的按钮事件,在这里我们要选择整块,不然搜索不到,点击确定

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

搜索到五处地址,我们在五处地址上分别下断点

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

在程序上输入任意数据,点击Check it按钮,程序停在了我们的断点处,F7两次进入第一个jmp ,单步向下走

此时我们来到了00403A04地址处,发现在该出跳转,跳转到了错误的提示字符,我们将JNE改为NOP运行

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

bingo  爆破成功~

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

ON.2

使用VB Decompiler Pro打开014号程序 

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

将反编译代码转换为Python代码

code = ''
for i in range(1, 10):
a = i ^ 2
code = code + str(a)[-1]
print(code)

得出结果为301674501我们输入到输入框内,点击Check it按钮

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

bingo ~答案正确

在这里我们需要看一下汇编代码,在汇编中计算异或后我们得到的是一个一位数,8和9的循环计算答案是两位数,这里我们需要细心观察一下反编译代码中Right指的是右边的一位,所以就是8和9循环中异或计算值的右边一位,也就是最后一位。