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

    CrackMe —— 016

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

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

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

    来源 <-点击查看

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

    工具 

    x32dbg

    VB Decompiler Pro

    开始破解之旅

    ON.1

    爆破方式

    使用x32dbg打开016号程序

    右键 搜索->当前模块->字符串 

    我们看见了错误提示字符串地址00403A69和正确提示字符串地址00403AE9

    我们进入错误提示字符串地址00403A69处向上查看

    004039FE | 83C4 18                  | add esp,18                              |
    00403A01 | 66:85FF                  | test di,di                              |
    00403A04 | 75 1C                    | jne bjcm20a.403A22                      |跳转处 跳转到00403A22
    00403A06 | 8B7D 08                  | mov edi,dword ptr ss:[ebp+8]            |
    00403A09 | B8 01000000              | mov eax,1                               |
    00403A0E | 66:0345 E8               | add ax,word ptr ss:[ebp-18]             |
    00403A12 | 0F80 94010000            | jo bjcm20a.403BAC                       |大跳
    00403A18 | 8945 E8                  | mov dword ptr ss:[ebp-18],eax           |
    00403A1B | 33DB                     | xor ebx,ebx                             |
    00403A1D | E9 5AFDFFFF              | jmp bjcm20a.40377C                      |
    00403A22 | 33DB                     | xor ebx,ebx                             |
    00403A24 | 8B35 A4104000            | mov esi,dword ptr ds:[<&__vbaVarDup>]   |
    00403A2A | B9 04000280              | mov ecx,80020004                        |
    00403A2F | 894D 98                  | mov dword ptr ss:[ebp-68],ecx           |
    00403A32 | B8 0A000000              | mov eax,A                               | A:'
    '
    00403A37 | 894D A8                  | mov dword ptr ss:[ebp-58],ecx           |
    00403A3A | BF 08000000              | mov edi,8                               |
    00403A3F | 8D95 50FFFFFF            | lea edx,dword ptr ss:[ebp-B0]           | edx:EntryPoint
    00403A45 | 8D4D B0                  | lea ecx,dword ptr ss:[ebp-50]           |
    00403A48 | 8945 90                  | mov dword ptr ss:[ebp-70],eax           |
    00403A4B | 8945 A0                  | mov dword ptr ss:[ebp-60],eax           |
    00403A4E | C785 58FFFFFF F0224000   | mov dword ptr ss:[ebp-A8],bjcm20a.4022F | 4022F0:L"Wrong serial!"
    00403A58 | 89BD 50FFFFFF            | mov dword ptr ss:[ebp-B0],edi           |
    00403A5E | FFD6                     | call esi                                |
    00403A60 | 8D95 60FFFFFF            | lea edx,dword ptr ss:[ebp-A0]           | edx:EntryPoint
    00403A66 | 8D4D C0                  | lea ecx,dword ptr ss:[ebp-40]           |
    00403A69 | C785 68FFFFFF C8224000   | mov dword ptr ss:[ebp-98],bjcm20a.4022C | 4022C8:L"Sorry, try again!"

    我们看到了最近的跳转处是00403A1D 该处是一个向上跳的JMP明显不是我们要找的跳转,在往上00403A12是一个向下的大跳也不是我们要找的跳转,再往上00403A04是一个跳转到00403A1D下发的地址可能是我们要找的跳转,在此处下断点

    F9运行,在输入框内输入任意数据,点击Check it按钮,没有在跳转处暂停,我们在下一条指令下设置断点,再次点击按钮,此时程序暂停到了我们的断点处

    由此可知,程序是通过别处跳转到00403A24

    我在x32dbg内右键 搜索->当前模块->常数   在输入框内输入00403A24点击确定

     

    搜索到一处引用的地址

    点击进入该地址,在此处下断点

    再次点击Check it 按钮

    此时程序停在了我们刚刚设置的断点处,我们单步向下

    此时可以看出程序跳转到了错误信息提示处,我们将00403A04处的指令改为NOP,F9运行

    bingo~ 此时破解成功

    ON.2

    注册机方式

    我们使用VB Decompiler Pro打开016号程序 

    发现和我们的014号程序代码一样

    附上我们的注册机代码

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

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

     

    bingo ~ 破解成功

  • 相关阅读:
    数据结构矩阵问题总结
    数据结构:二维ST表
    mysql--时区表问题(Windows环境下)
    mysql--基本命令
    Django2.0--创建缓存表
    git--基本命令
    阿里云主机--重置系统后的登录问题
    链表中倒数第K个结点
    从尾到头打印链表
    替换空格
  • 原文地址:https://www.cnblogs.com/lonenysky/p/11397402.html
Copyright © 2011-2022 走看看