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

    CrackMe —— 017

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

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

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

    来源 <-点击查看

    编号 作者 保护方式
    017 bjanes Serial(VB5)

    工具 

    x32dbg

    VB Decompiler Pro

    开始破解之旅

    ON.1

    爆破方式

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

    找到了我们的整错提示和错误提示的字符串

    进入错误提示字符串,向上翻看

    00404ED7 | 51                       | push ecx                                                |
    00404ED8 | 52                       | push edx                                                |
    00404ED9 | E9 A8000000              | jmp bjcm30a.404F86                                      |
    00404EDE | BE 08000000              | mov esi,0x8                                             |  从该地址进入
    00404EE3 | 8B1D CC104000            | mov ebx,dword ptr ds:[<&__vbaVarDup>]                   |
    00404EE9 | B9 04000280              | mov ecx,0x80020004                                      |
    00404EEE | 898D 20FFFFFF            | mov dword ptr ss:[ebp-0xE0],ecx                         |
    00404EF4 | B8 0A000000              | mov eax,0xA                                             | A:'
    '
    00404EF9 | 898D 30FFFFFF            | mov dword ptr ss:[ebp-0xD0],ecx                         |
    00404EFF | 8D95 F8FEFFFF            | lea edx,dword ptr ss:[ebp-0x108]                        |
    00404F05 | 8D8D 38FFFFFF            | lea ecx,dword ptr ss:[ebp-0xC8]                         |
    00404F0B | 8985 18FFFFFF            | mov dword ptr ss:[ebp-0xE8],eax                         |
    00404F11 | 8985 28FFFFFF            | mov dword ptr ss:[ebp-0xD8],eax                         |
    00404F17 | C785 00FFFFFF 102A4000   | mov dword ptr ss:[ebp-0x100],bjcm30a.402A10             | 402A10:L"Wrong serial!"
    00404F21 | 89B5 F8FEFFFF            | mov dword ptr ss:[ebp-0x108],esi                        |
    00404F27 | FFD3                     | call ebx                                                |
    00404F29 | 8D95 08FFFFFF            | lea edx,dword ptr ss:[ebp-0xF8]                         |
    00404F2F | 8D8D 48FFFFFF            | lea ecx,dword ptr ss:[ebp-0xB8]                         |
    00404F35 | C785 10FFFFFF D82B4000   | mov dword ptr ss:[ebp-0xF0],bjcm30a.402BD8              | 402BD8:L"Sorry, try again!"
    00404F3F | 89B5 08FFFFFF            | mov dword ptr ss:[ebp-0xF8],esi                         |
    00404F45 | FFD3                     | call ebx                                                |

    此时来到了进入错误提示字符串的入口处,找到00404EDE地址,右键 搜索->当前模块->常数,在此输入00404EDE搜索到了两个引用该字符串的地方,分别下断点

    在输入框内输入任意数据,点击Check it 按钮,程序停在了0040459F处,我们按F9运行程序听到了00404941此时说明0040459F处断点是验证输入数据格式的,00404941处断点才是验证数据,我们单步F8向下

    此时我们看到程序跳过了正确提示符,说明是在此处判断我们将00404E30处改为NOP,F9运行

    bingo ~ 程序破解成功 

    ON.2

    注册机方式

    我们使用VB Decompiler Pro打开017号程序,发现相对于前两个版本此处有了较大的变化

    多出了hextode和hexfunc两个函数,并不影响我们的分析,这两个函数应该是转16进制的函数

    我们点击进入Command1_Click,来到最下方看到了生成注册码的地方 

    发现和我们的前两个程序代码一样

    附上我们的注册机代码

    code = ''
    for i in range(1, 10):
        a = i ^ 2
        code = code + str(a)[-1]
    print(code)

    得出结果为301674501我们输入到输入框内,点击Check it按钮 

    bingo ~ 破解成功

  • 相关阅读:
    生成随机数的三种方法
    老外最常说的二十句钻石级英语
    线性探查法实现的散列表(哈希表)类
    STL容器之间可以直接相互赋值使用
    用位向量实现集合抽象数据类型
    一个利用map统计一段英文文章中每个单词出现次数的小程序
    各种排序算法的稳定性和时间复杂度小结
    24佳句对译收藏
    SQL 将一个字段内用逗号分隔的内容分成多条记录
    SQL递归查询(with cte as)
  • 原文地址:https://www.cnblogs.com/lonenysky/p/11407918.html
Copyright © 2011-2022 走看看