逆向破解之160个CrackMe —— 015 CrackMe —— 015 开始破解之旅 ON.1 ON.2

逆向破解之160个CrackMe —— 015
CrackMe —— 015
开始破解之旅
ON.1
ON.2

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

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

CrackMe简称CM。
程序下载地址:点击我

来源 <-点击查看

编号 作者 保护方式
015 blaster99 Nag,Serial(VB5)

工具 

x32dbg

开始破解之旅

ON.1

首先我们打开程序,发现NAG窗口

逆向破解之160个CrackMe —— 015
CrackMe —— 015
开始破解之旅
ON.1
ON.2

我们要想办法先去掉这个窗口

使用x32dbg打开015号程序,右键搜索字符串

逆向破解之160个CrackMe —— 015
CrackMe —— 015
开始破解之旅
ON.1
ON.2

我们看到了00402C85这个地址是NAG的提示字符串地址,点击进入该地址

我们向上翻看来到段首处

00402C12 | 5B                       | pop ebx                                 |
00402C13 | C9                       | leave                                   |
00402C14 | C2 0400                  | ret 4                                   |
00402C17 | 55                       | push ebp                                | NAG 段首处
00402C18 | 8BEC                     | mov ebp,esp                             |
00402C1A | 83EC 0C                  | sub esp,C                               |
00402C1D | 68 66104000              | push <JMP.&__vbaExceptHandler>          |

我们将00402C17改为ret意思是进入NAG处直接返回,即可跳过NAG

我们将其修改为ret运行

bingo ~程序直接运行,去除NAG窗口成功 

逆向破解之160个CrackMe —— 015
CrackMe —— 015
开始破解之旅
ON.1
ON.2

ON.2

爆破方式

根据我们之前搜索到的字符串00402A69地址处,该地址是错误字符串地址

004028F5处按照汉意是正确字符串

地址=004028F5
反汇编=mov dword ptr ss:[ebp-84],123.401E08
字符串=L"Danke, das Passwort ist richtig !"

地址=00402C85
反汇编=mov dword ptr ss:[ebp-7C],123.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-58]              |
004028BD | 68 DC1D4000              | push 123.401DDC                         | 401DDC:L"2G83G35Hs2"
004028C2 | E8 83E8FFFF              | call <JMP.&__vbaStrCmp>                 |
004028C7 | 8BF8                     | mov edi,eax                             |
004028C9 | 8D4D A8                  | lea ecx,dword ptr ss:[ebp-58]           |
004028CC | F7DF                     | neg edi                                 |
004028CE | 1BFF                     | sbb edi,edi                             |
004028D0 | 47                       | 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 | 66:3BFE                  | cmp di,si                               |
004028E3 | 0F84 F3000000            | je 123.4029DC                           |
004028E9 | 6A 08                    | push 8                                  |
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-54]           |
004028F5 | C785 7CFFFFFF 081E4000   | mov dword ptr ss:[ebp-84],123.401E08    | 401E08:L"Danke, das Passwort ist richtig !"
004028FF | 89B5 74FFFFFF            | mov dword ptr ss:[ebp-8C],esi           |

我们将004028E3地址处修改为NOP,在输入框内输入任意数据,点击Registeren按钮

bingo ~破解成功

逆向破解之160个CrackMe —— 015
CrackMe —— 015
开始破解之旅
ON.1
ON.2

追码方式

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

逆向破解之160个CrackMe —— 015
CrackMe —— 015
开始破解之旅
ON.1
ON.2

bingo~ 追码成功