CrackMe —— 020

160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序

CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 CrackMe简称CM。 程序下载地址: 点击我

来源 <-点击查看

编号 作者 保护方式
020 Brad Soblesky Name/Serial

 

 

 

工具 

x32dbg

peid

scylla

DelphiDecompiler

开始破解之旅

ON.1

首先使用PEID程序进行查壳,发现存在wwpack32压缩壳

逆向破解之160个CrackMe —— 020 Safe 第1张

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

逆向破解之160个CrackMe —— 020 Safe 第2张

我们使用ESP定律来脱壳

我们F8一次,此时观察右边寄存器窗口

逆向破解之160个CrackMe —— 020 Safe 第3张

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

逆向破解之160个CrackMe —— 020 Safe 第4张

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

逆向破解之160个CrackMe —— 020 Safe 第5张

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

逆向破解之160个CrackMe —— 020 Safe 第6张

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

逆向破解之160个CrackMe —— 020 Safe 第7张

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

逆向破解之160个CrackMe —— 020 Safe 第8张

ON.2 

爆破方式

我们使用 DelphiDecompiler程序打开020软件 

逆向破解之160个CrackMe —— 020 Safe 第9张

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

逆向破解之160个CrackMe —— 020 Safe 第10张

我们单步向下走

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-10]           |
0044A381 | 58                       | pop eax                                 |
0044A382 | E8 6198FBFF              | call bullet.8_dump_scy.403BE8           |
0044A387 | 75 0F                    | jne bullet.8_dump_scy.44A398            | 此处关键跳
0044A389 | B2 01                    | mov dl,1                                |
0044A38B | 8B83 FC020000            | mov eax,dword ptr ds:[ebx+2FC]          | ebx+2FC:"B"
0044A391 | E8 669FFDFF              | call bullet.8_dump_scy.4242FC           |
0044A396 | EB 11                    | jmp bullet.8_dump_scy.44A3A9            |
0044A398 | 8B83 D4020000            | mov eax,dword ptr ds:[ebx+2D4]          | ebx+2D4:"@"
0044A39E | 8B50 34                  | mov edx,dword ptr ds:[eax+34]           |
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 | 8378 34 32               | cmp dword ptr ds:[eax+34],32            | 32:'2'

我们将0044A387处将JNE修改为NOPF9运行

逆向破解之160个CrackMe —— 020 Safe 第11张

bingo ~ 破解成功,奖杯出来了

爆破方式

查看代码可得0044A34B地址处为key计算处

输入数据转10进制 * 3 得出了3E74984B

下面是python代码

int('0x3E74984B',16)/3

结果为 349276185

逆向破解之160个CrackMe —— 020 Safe 第12张

bingo ~ 破解成功,追码成功

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄