逆向破解之160个CrackMe —— 015
CrackMe —— 015
160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序
CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。
| 编号 | 作者 | 保护方式 |
| 015 | blaster99 | Nag,Serial(VB5) |
工具
x32dbg
开始破解之旅
ON.1
首先我们打开程序,发现NAG窗口

我们要想办法先去掉这个窗口
使用x32dbg打开015号程序,右键搜索字符串

我们看到了00402C85这个地址是NAG的提示字符串地址,点击进入该地址
我们向上翻看来到段首处
00402C12 | 5B | pop ebx |
00402C13 | C9 | leave |
00402C14 | C2 | ret |
00402C17 | | push ebp | NAG 段首处
00402C18 | 8BEC | mov ebp,esp |
00402C1A | 83EC 0C | sub esp,C |
00402C1D | | push <JMP.&__vbaExceptHandler> |
我们将00402C17改为ret意思是进入NAG处直接返回,即可跳过NAG
我们将其修改为ret运行
bingo ~程序直接运行,去除NAG窗口成功

ON.2
爆破方式
根据我们之前搜索到的字符串00402A69地址处,该地址是错误字符串地址
004028F5处按照汉意是正确字符串
地址=004028F5
反汇编=mov dword ptr ss:[ebp-],.401E08
字符串=L"Danke, das Passwort ist richtig !" 地址=00402C85
反汇编=mov dword ptr ss:[ebp-7C],.401EF0
字符串=L"Entferne diesen Nag, oder bekomme das richtige Passwort heraus !"
我们双击进入004028F5地址处,向上翻看来到最近的一个跳转出
004028B5 | E8 84E8FFFF | call <JMP.&__vbaHresultCheckObj> |
004028BA | FF75 A8 | push dword ptr ss:[ebp-] |
004028BD | DC1D4000 | push .401DDC | 401DDC:L"2G83G35Hs2"
004028C2 | E8 83E8FFFF | call <JMP.&__vbaStrCmp> |
004028C7 | 8BF8 | mov edi,eax |
004028C9 | 8D4D A8 | lea ecx,dword ptr ss:[ebp-] |
004028CC | F7DF | neg edi |
004028CE | 1BFF | sbb edi,edi |
004028D0 | | inc edi |
004028D1 | F7DF | neg edi |
004028D3 | E8 60E8FFFF | call <JMP.&__vbaFreeStr> |
004028D8 | 8D4D A4 | lea ecx,dword ptr ss:[ebp-5C] |
004028DB | E8 52E8FFFF | call <JMP.&__vbaFreeObj> |
004028E0 | :3BFE | cmp di,si |
004028E3 | 0F84 F3000000 | je .4029DC |
004028E9 | 6A | push |
004028EB | 8D95 74FFFFFF | lea edx,dword ptr ss:[ebp-8C] | edx:EntryPoint
004028F1 | 5E | pop esi |
004028F2 | 8D4D AC | lea ecx,dword ptr ss:[ebp-] |
004028F5 | C785 7CFFFFFF 081E4000 | mov dword ptr ss:[ebp-],.401E08 | 401E08:L"Danke, das Passwort ist richtig !"
004028FF | 89B5 74FFFFFF | mov dword ptr ss:[ebp-8C],esi |
我们将004028E3地址处修改为NOP,在输入框内输入任意数据,点击Registeren按钮
bingo ~破解成功

追码方式
我们继续向上翻看,发现004028BD处有可疑字符串,我们将“2G83G35Hs2”输入到输入框内,点击注册按钮

bingo~ 追码成功
逆向破解之160个CrackMe —— 015的更多相关文章
- 逆向破解之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 —— 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 ...
随机推荐
- JUC锁框架_AbstractQueuedSynchronizer详细分析
AQS是JUC锁框架中最重要的类,通过它来实现独占锁和共享锁的.本章是对AbstractQueuedSynchronizer源码的完全解析,分为四个部分介绍: CLH队列即同步队列:储存着所有等待 ...
- Jenkins-slave 镜像集成 docker 和 kubectl
1.说明 对官方的 jenkins/jnlp-slave 镜像集成 docker 和 kubectl 命令. 2.Dockerfile 文件 该镜像底层采用的是 Debian 系统,先更改下载源,然后 ...
- 017 使用域名访问本地项目---涉及switchhost和Nginx
1.统一环境 我们现在访问页面使用的是:http://localhost:9001 实际开发中,会有不同的环境: 开发环境:自己的电脑 测试环境:提供给测试人员使用的环境 预发布环境:数据是和生成环境 ...
- 洛谷P3957:跳房子——题解
https://www.luogu.org/problem/P3957 沉迷普及组题无法自拔. 显然二分答案,然后里面套个dp,$f[i]$表示跳到第$i$个格子的最大得分,复杂度$O(n^2logn ...
- 百度云 2G 4核 服务器拼团链接
拼团链接如下: https://cloud.baidu.com/campaign/ABCSale-2019/index.html?teamCode=P3D6DV8T
- tf.random_shuffle()函数解析
tf.random_shuffle(value, seed=None, name=None) 函数就是随机地将张量沿第一维度打乱 value:将被打乱的张量. seed:一个 Python 整数.用于 ...
- PAT 1008数组元素右移问题
PAT 1008数组元素右移问题 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变 ...
- 【Mysql技术内幕InnoDB存储引擎】读书笔记
一.存储引擎 1.InnoDB引擎 设计目标是面向在线事务(OLTP)处理的应用. 支持事务.行级锁.通过多版本并发控制(MVCC)支持高并发.提供一致性非锁定读.next-key locking避免 ...
- Beego学习笔记5:MVC-VC
MVC-VC 1> 新建一个user.go控制器,其代码如下: package controllers import ( "webapp/models" " ...
- iframe中操作主体页面的元素,方法
在不使用三大框架的情况下,iframe的使用可以做到在页面中直接引入别的页面作为当前页面的一部分,但是在iframe的使用过程中存在一些相互之间的操作 例如在iframe中获取主页面的元素,使用主页面 ...