zoukankan      html  css  js  c++  java
  • 逆向破解之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~ 追码成功

  • 相关阅读:
    css sprite的实现
    python的range()函数使用方法
    Codeforces Round #260 (Div. 1) 455 A. Boredom (DP)
    n个整数全排列的递归实现(C++)
    AngularJS进阶(三十一)AngularJS项目开发技巧之获取模态对话框中的组件ID
    Swift扩展(Extension)
    leetcode 88 Merge Sorted Array
    Unity3D摄像机尾随人物
    mybatis 高级映射和spring整合之与Spring整合(6)
    mybatis 高级映射和spring整合之查询缓存(5)
  • 原文地址:https://www.cnblogs.com/lonenysky/p/11391877.html
Copyright © 2011-2022 走看看