逆向破解之160个CrackMe —— 017
CrackMe —— 017
160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序
CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。
| 编号 | 作者 | 保护方式 |
| 017 | bjanes | Serial(VB5) |
工具
x32dbg
VB Decompiler Pro
开始破解之旅
ON.1
爆破方式
首先使用x32dbg打开017号程序,右键搜索字符串

找到了我们的整错提示和错误提示的字符串
进入错误提示字符串,向上翻看
00404ED7 | | push ecx |
00404ED8 | | push edx |
00404ED9 | E9 A8000000 | jmp bjcm30a.404F86 |
00404EDE | BE | mov esi,0x8 | 从该地址进入
00404EE3 | 8B1D CC104000 | mov ebx,dword ptr ds:[<&__vbaVarDup>] |
00404EE9 | B9 | mov ecx,0x80020004 |
00404EEE | 898D 20FFFFFF | mov dword ptr ss:[ebp-0xE0],ecx |
00404EF4 | B8 0A000000 | mov eax,0xA | A:'\n'
00404EF9 | 898D 30FFFFFF | mov dword ptr ss:[ebp-0xD0],ecx |
00404EFF | 8D95 F8FEFFFF | lea edx,dword ptr ss:[ebp-0x108] |
00404F05 | 8D8D 38FFFFFF | lea ecx,dword ptr ss:[ebp-0xC8] |
00404F0B | 18FFFFFF | mov dword ptr ss:[ebp-0xE8],eax |
00404F11 | 28FFFFFF | mov dword ptr ss:[ebp-0xD8],eax |
00404F17 | C785 00FFFFFF 102A4000 | mov dword ptr ss:[ebp-0x100],bjcm30a.402A10 | 402A10:L"Wrong serial!"
00404F21 | 89B5 F8FEFFFF | mov dword ptr ss:[ebp-0x108],esi |
00404F27 | FFD3 | call ebx |
00404F29 | 8D95 08FFFFFF | lea edx,dword ptr ss:[ebp-0xF8] |
00404F2F | 8D8D 48FFFFFF | lea ecx,dword ptr ss:[ebp-0xB8] |
00404F35 | C785 10FFFFFF D82B4000 | mov dword ptr ss:[ebp-0xF0],bjcm30a.402BD8 | 402BD8:L"Sorry, try again!"
00404F3F | 89B5 08FFFFFF | mov dword ptr ss:[ebp-0xF8],esi |
00404F45 | FFD3 | call ebx |
此时来到了进入错误提示字符串的入口处,找到00404EDE地址,右键 搜索->当前模块->常数,在此输入00404EDE搜索到了两个引用该字符串的地方,分别下断点

在输入框内输入任意数据,点击Check it 按钮,程序停在了0040459F处,我们按F9运行程序听到了处此时说明0040459F处断点是验证输入数据格式的,处断点才是验证数据,我们单步F8向下

此时我们看到程序跳过了正确提示符,说明是在此处判断我们将00404E30处改为NOP,F9运行

bingo ~ 程序破解成功
ON.2
注册机方式
我们使用VB Decompiler Pro打开017号程序,发现相对于前两个版本此处有了较大的变化

多出了hextode和hexfunc两个函数,并不影响我们的分析,这两个函数应该是转16进制的函数
我们点击进入Command1_Click,来到最下方看到了生成注册码的地方

发现和我们的前两个程序代码一样
附上我们的注册机代码
code = ''
for i in range(1, 10):
a = i ^ 2
code = code + str(a)[-1]
print(code)
得出结果为我们输入到输入框内,点击Check it按钮

bingo ~ 破解成功
逆向破解之160个CrackMe —— 017的更多相关文章
- 逆向破解之160个CrackMe —— 018
CrackMe —— 018 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 001
CrackMe —— 001 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 002-003
CrackMe —— 002 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 004-005
CrackMe —— 004 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 013
CrackMe —— 013 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 014
CrackMe —— 014 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 016
CrackMe —— 016 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 025
CrackMe —— 025 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 026
CrackMe —— 026 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
随机推荐
- 默认文档接卸--手机web app开发笔记(二)
首先我们启动HBuilderX2.0 ,界面如图2-1所示 图2-1 软件开发界面 单击“文件—新建—项目”,弹出新建项目管理界面,我们在里面进行了项目类型选择“5+APP”.项目名称填写“编程之路” ...
- Android之无限轮播图源代码
Android轮播广告图是大家经常用到的一个控件今天便撸了一把代码 实现步骤 使用Viewpager进行实现图片滑动 设置ViewPager的数据,让其无限切换 Activity代码 public c ...
- markdown表情
Emoji表情 将对应emoji表情的符号码复制后输入你的markdown文本即可显示emoji表情. 如:blush:,显示为
- HC-08 BLE资料
1.1 特点简介 HC-08蓝牙串口通信模块是新一代的基于Bluetooth Specification V4.0 BLE蓝牙协议的数传模块.无线工作频段为 2.4GHz ISM,调制方式是 GFSK ...
- MySQL5.7运行CPU达百分之400处理方案
用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...
- sift、surf、orb 特征提取及最优特征点匹配
目录 sift sift特征简介 sift特征提取步骤 surf surf特征简介 surf特征提取步骤 orb orb特征简介 orb特征提取算法 代码实现 特征提取 特征匹配 附录 sift si ...
- 夯实Java基础(一)——数组
1.Java数组介绍 数组(Array):是多个相同类型元素按一定顺序排列的集合. 数组是编程中最常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常我们可以通过数组元素的索引来访问 ...
- Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现 一.漏洞描述 该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通 ...
- .Net Core 最优 MD5 打开方式!初学者建议收藏(支持 SHA1,SHA256,.Net Framework)
public static string GetMd5Hash(string input) { using (MD5 md5Hash = MD5.Create()) { // Convert the ...
- azure k8s netcore 程序初次部署
以下都是我在2018年12月份做的实验,今天才发布出来. 念想 首先是了解一些关于K8s的一些基础概念,推荐查看一下这个链接,非常适合入门k8s.是因为K8S的环境搭建比较复杂(最主要是懒),其实也有 ...