zoukankan      html  css  js  c++  java
  • 逆向破解之160个CrackMe —— 020

    CrackMe —— 020

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

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

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

    来源 <-点击查看

    编号 作者 保护方式
    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-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运行

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

    爆破方式

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

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

    下面是python代码

    int('0x3E74984B',16)/3

    结果为 349276185

    bingo ~ 破解成功,追码成功

  • 相关阅读:
    python标准库
    python常用标准库
    django-restframework-serializers
    Resources.UnloadUnusedAssets
    Shader 的 Blend
    C++STL queue
    C++STL stack
    C++STL deque
    C++STL容器重点
    C++STL 迭代器
  • 原文地址:https://www.cnblogs.com/lonenysky/p/11427043.html
Copyright © 2011-2022 走看看