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

我们看见了错误提示字符串地址00403A69和正确提示字符串地址00403AE9
我们进入错误提示字符串地址00403A69处向上查看
004039FE | 83C4 | add esp, |
00403A01 | :85FF | test di,di |
00403A04 | 1C | jne bjcm20a.403A22 |跳转处 跳转到00403A22
00403A06 | 8B7D | mov edi,dword ptr ss:[ebp+] |
00403A09 | B8 | mov eax, |
00403A0E | : E8 | add ax,word ptr ss:[ebp-] |
00403A12 | 0F80 | jo bjcm20a.403BAC |大跳
00403A18 | E8 | mov dword ptr ss:[ebp-],eax |
00403A1B | 33DB | xor ebx,ebx |
00403A1D | E9 5AFDFFFF | jmp bjcm20a.40377C |
00403A22 | 33DB | xor ebx,ebx |
00403A24 | 8B35 A4104000 | mov esi,dword ptr ds:[<&__vbaVarDup>] |
00403A2A | B9 | mov ecx, |
00403A2F | 894D | mov dword ptr ss:[ebp-],ecx |
00403A32 | B8 0A000000 | mov eax,A | A:'\n'
00403A37 | 894D A8 | mov dword ptr ss:[ebp-],ecx |
00403A3A | BF | mov edi, |
00403A3F | 8D95 50FFFFFF | lea edx,dword ptr ss:[ebp-B0] | edx:EntryPoint
00403A45 | 8D4D B0 | lea ecx,dword ptr ss:[ebp-] |
00403A48 | | mov dword ptr ss:[ebp-],eax |
00403A4B | A0 | mov dword ptr ss:[ebp-],eax |
00403A4E | C785 58FFFFFF F0224000 | mov dword ptr ss:[ebp-A8],bjcm20a.4022F | 4022F0:L"Wrong serial!"
00403A58 | 89BD 50FFFFFF | mov dword ptr ss:[ebp-B0],edi |
00403A5E | FFD6 | call esi |
00403A60 | 8D95 60FFFFFF | lea edx,dword ptr ss:[ebp-A0] | edx:EntryPoint
00403A66 | 8D4D C0 | lea ecx,dword ptr ss:[ebp-] |
00403A69 | C785 68FFFFFF C8224000 | mov dword ptr ss:[ebp-],bjcm20a.4022C | 4022C8:L"Sorry, try again!"
我们看到了最近的跳转处是00403A1D 该处是一个向上跳的JMP明显不是我们要找的跳转,在往上00403A12是一个向下的大跳也不是我们要找的跳转,再往上00403A04是一个跳转到00403A1D下发的地址可能是我们要找的跳转,在此处下断点
F9运行,在输入框内输入任意数据,点击Check it按钮,没有在跳转处暂停,我们在下一条指令下设置断点,再次点击按钮,此时程序暂停到了我们的断点处

由此可知,程序是通过别处跳转到00403A24处
我在x32dbg内右键 搜索->当前模块->常数 在输入框内输入00403A24点击确定

搜索到一处引用的地址

点击进入该地址,在此处下断点
再次点击Check it 按钮
此时程序停在了我们刚刚设置的断点处,我们单步向下

此时可以看出程序跳转到了错误信息提示处,我们将00403A04处的指令改为NOP,F9运行

bingo~ 此时破解成功
ON.2
注册机方式
我们使用VB Decompiler Pro打开016号程序

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

bingo ~ 破解成功
逆向破解之160个CrackMe —— 016的更多相关文章
- 逆向破解之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 —— 017
CrackMe —— 017 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 018
CrackMe —— 018 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前端笔试篇(一)
[ 题外话 ]:本博主作为一名准毕业生,即将面临毕业就业问题,即将到大四了,不准备考研的我,那么该去干嘛呢?毫无疑问,那就是实习,那么即使是实习,那么在要想进入自己心仪的企业之前,笔试这一关终究是无法 ...
- 洛谷P4994 终于结束的起点 题解
求赞,求回复,求关注~ 题目:https://www.luogu.org/problemnew/show/P4994 这道题和斐波那契数列的本质没有什么区别... 分析: 这道题应该就是一个斐波那契数 ...
- Excel催化剂开源第24波-较VBA更强大的.Net环境的正则表达式
在VBA上可以调用正则表达式库,从而编写正则表达式自定义函数,这个相信不少VBA开发者已经熟知,但VBA的VBScript正则表达式库毕竟是一个过时的产品,不像.Net那样是与时俱进的,所以两者实现出 ...
- Excel催化剂开源第22波-VSTO的帮助文档在哪里?
Excel催化剂开源第22波-VSTO的帮助文档在哪里? Excel催化剂 2019.01.12 14:10 字数 2930 阅读 55评论 0喜欢 0 编辑文章 对于专业程序猿来说,查找文档不是 ...
- [PTA] 数据结构与算法题目集 6-11 先序输出叶结点
//函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结点,格式为一个空格跟着一个字符. void PreorderPrintLeaves(BinTree BT) { ...
- 为什么一直玩A股的股民转战去玩港美股了?港美股系统搭建!
今天先聊一下,为什么买港美股?不买 A 股? 1.A 股散户太多,港股美股机构居多. A 股市场,散户占据了70%以上交易份额,散户太多有什么坏处?少量的机构和大户很容易坐庄操控股价.A 股几乎所有票 ...
- ubuntu root用户 默认密码
ubuntu安装好后,root初始密码(默认密码)不知道,需要设置. 1.先用安装时候的用户登录进入系统 2.输入:sudo passwd 按回车 3.输入新密码,重复输入密码,最后提示passwd ...
- 记一次搭建ftp服务器的简略经历
需求:在linux中搭建一个ftp 服务器,用户为:user1 目录为 /data/use1 , 安全设置:限制权限,只能访问自己目录,限制端口,只允许特定ip访问. 1,安装vs ...
- shiro-helloworld
1.目录结构 2.log4j.properties # # Licensed to the Apache Software Foundation (ASF) under one # or more c ...
- IntegerCache的妙用和陷阱
转载自IntegerCache的妙用和陷阱 考虑下面的小程序,你认为会输出为什么结果? public class Test { public static void main(String[] ...