逆向破解之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 ...
随机推荐
- Spring MVC标签
1.我们平时使用表单的时候,一般都是这样: <form id="form" action="Login.do" method="post&quo ...
- INSERT,UPDATE,DELETE时不写日志
我们在维护数据库的过程中,可能会遇到海量数据的存储和维护,但在有的情况下,需要先试验,然后再对实际的数据进行操作,那么在试验这个过程中,我们是不需要写日志的,因为当你对海量数据操作时,产生的日志可能会 ...
- CURL SSL为6的由来
起初,我直接用方倍工作室之前做微信接口调用时的http_request函数,发现能正常调用微信api的函数获取不了火星天气数据,然后又尝试用file_get_contents,仍然不行 一直出的错就是 ...
- unable to find utility "simctl", not a developer tool or in PATH解决方案
解决方案就是去xcode设置里面,将Command line Tools设置一下,在Xcode>preferences>Locations里面,设置之后再运行终端即可
- 彻底解决springboot修改页面和代码会自动重启
3.application.yml配置 spring.devtools.restart.enabled=falsespring.thymeleaf.cache=false 1.解决thymeleaf修 ...
- 第十七节:.Net Core中新增HttpClientFactory的前世今生
一. 背景 1.前世 提到HttpClient,在传统的.Net版本中简直臭名昭著,因为我们安装官方用法 using(var httpClient = new HttpClient()),当然可以Di ...
- 避免maven package 打包时执行 mybatis-generator-maven-plugin 插件
一.为什么打包时会执行该插件mybatis-generator-maven-plugin默认绑定了package的生命周期 二.如何解决如果在package和install 执行插件,修改pom中的配 ...
- Unsafe API介绍及其使用
废话 个人理解:java 出现的原因之一,就是对内存的管理:在c/c++,内存可以随心使用,超高的性能也伴有极高的风险:java极大的规避了这种风险,却也降低了程序运行的性能:那么java是否提供 ...
- Replication:Distribution Reader
在transactional replication中,在publication中执行了一个更新,例如:update table set col=? Where ?,如果table中含有大量的数据行, ...
- Java 8 HashMap 源码解析
HashMap 使用数组.链表和红黑树存储键值对,当链表足够长时,会转换为红黑树.HashMap 是非线程安全的. HashMap 中的常量 static final int DEFAULT_INIT ...