逆向破解之160个CrackMe —— 020
CrackMe —— 020
160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序
CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。
| 编号 | 作者 | 保护方式 |
| 020 | Brad Soblesky | Name/Serial |
工具
x32dbg
peid
scylla
DelphiDecompiler
开始破解之旅
ON.1
首先使用PEID程序进行查壳,发现存在wwpack32压缩壳

我们使用x32dbg打开020号程序,程序停在了入口处

我们使用ESP定律来脱壳
我们F8一次,此时观察右边寄存器窗口

我们看见ESP已经变成了红色,右键点击“在内存窗口转到”

此时我们已经下好了断点,F9运行,停在了我们的OEP附近

F8一下,就来到了我们的OEP

在这里我们打开scylla,按照图中顺序我们一次进行

此时再用我们的PEID进行查壳,发现已经没有壳了

ON.2
爆破方式
我们使用 DelphiDecompiler程序打开020软件

我们在x32dbg中跳转到0044A2E8这个地址同时下断点,我们在输入框内输入任意数据点击spider按钮,此时程序停在了我们的断点处

我们单步向下走
0044A373 | 8B83 F0020000 | mov eax,dword ptr ds:[ebx+2F0] | ebx+2F0:"B"
0044A379 | E8 8EA0FDFF | call bullet.8_dump_scy.42440C |
0044A37E | 8B55 F0 | mov edx,dword ptr ss:[ebp-] |
0044A381 | | pop eax |
0044A382 | E8 6198FBFF | call bullet.8_dump_scy.403BE8 |
0044A387 | 0F | jne bullet.8_dump_scy.44A398 | 此处关键跳
0044A389 | B2 | mov dl, |
0044A38B | 8B83 FC020000 | mov eax,dword ptr ds:[ebx+2FC] | ebx+2FC:"B"
0044A391 | E8 669FFDFF | call bullet.8_dump_scy.4242FC |
0044A396 | EB | jmp bullet.8_dump_scy.44A3A9 |
0044A398 | 8B83 D4020000 | mov eax,dword ptr ds:[ebx+2D4] | ebx+2D4:"@"
0044A39E | 8B50 | mov edx,dword ptr ds:[eax+] |
0044A3A1 | 83EA 0A | sub edx,A |
0044A3A4 | E8 4398FDFF | call bullet.8_dump_scy.423BEC |
0044A3A9 | 8B83 D4020000 | mov eax,dword ptr ds:[ebx+2D4] | ebx+2D4:"@"
0044A3AF | | cmp dword ptr ds:[eax+], | :''
我们将0044A387处将JNE修改为NOP,F9运行

bingo ~ 破解成功,奖杯出来了
爆破方式
查看代码可得0044A34B地址处为key计算处
输入数据转10进制 * 3 得出了3E74984B
下面是python代码
int('0x3E74984B',16)/3
结果为 349276185

bingo ~ 破解成功,追码成功
逆向破解之160个CrackMe —— 020的更多相关文章
- 逆向破解之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 ...
随机推荐
- GPS和LOAM的pose之间建立edge
基于时间戳一致原理,在与PG的timestamp邻近的的两个LOAM的pose中插值出一个虚拟的LOAM pose PG' ,其timestamp = PG的timestamp. 然后GPS的pose ...
- 使用dozer将DTO转化为DO
DTO,就是Data Transfer Object,数据传输对象,可以简单理解成请求中的对象. PO,就是Persistant Object,持久化对象,它跟持久层(通常是关系型数据库)的数据结构形 ...
- Centos目录及其常用处理命令
1.Centos之常见目录作用介绍[1] 我们先切换到系统根目录 / 看看根目录下有哪些目录 [root@localhost ~]# cd / [root@localhost /]# ls bin ...
- elasticsearch迁移数据到新索引中
因为业务原因,需要修改索引的映射的某个字段的类型,比如更改Text为Keyword. 需要如下步骤: 1).先新建索引,映射最新的映射实体 2).迁移老索引的数据到新索引中(数据较大的话,可以分批迁移 ...
- Apache Kafka使用默认配置执行一些负载测试来完成性能测试和基准测试
Kafka是一种分布式,分区,复制的提交日志服务.它提供了消息传递系统的功能. 我们先来看看它的消息传递术语: Kafka在称为主题的类别中维护消息的提要. 我们将调用向Kafka主题生成器发布消 ...
- php-微信分享签名
//测试 $APPID='*************************'; $SECRET='***********************'; $url = trim($_REQUEST['u ...
- yum 删除了,如何重新导入
说明:准备研究docker时遇到的问题,提示如下: [root@localhost116 yum-package]# rpm -ivh yum--.el6.centos.noarch.rpm warn ...
- 封装:简要介绍自定义开发基于WPF的MVC框架
原文:封装:简要介绍自定义开发基于WPF的MVC框架 一.目的:在使用Asp.net Core时,深感MVC框架作为页面跳转数据处理的方便,但WPF中似乎没有现成的MVC框架,由此自定义开发一套MVC ...
- 使用ASP.NET Core MVC应用程序中的ResponseCache属性处理缓存(转载)
HTTP响应的缓存意味着当发出HTTP请求时,服务器生成的响应由浏览器或服务器存储在某个地方,以便在对同一资源的连续HTTP请求中重复使用.实质上,我们正在存储生成的响应,并将该响应重用于后续请求一段 ...
- 对 GAN 的 value function 的理解
上式分为两个步骤: 第一步:调整discriminative model D的权重,使得V中两项取得最大值 第二步:调整generative model G的权重,使得V中第二项取得最小值 首先,分析 ...