我的Github:   Github

逆向破解之160个CrackMe —— 015

CrackMe —— 015

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

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

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

来源 <-点击查看

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

 

 

 

工具 

x32dbg

开始破解之旅

ON.1

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

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

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

我们看到了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窗口成功 

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 ~破解成功

追码方式

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

bingo~ 追码成功

 

posted @ 2019-08-21 23:16 寂夜云 阅读(...) 评论(...) 编辑 收藏