CrackMe —— 027

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

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

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

来源 <-点击查看

编号 作者 保护方式
027 Cosh CD-CHECK

工具

x32dbg

开始破解之旅

ON.1

爆破方式

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

这里看到了我们的正确提示字符串信息和错误提示字符串信息

进入正确字符串地址处0040148B,向上翻看

 | E8               | call <JMP.&Ordinal#>                                 |
| 385D F3 | cmp byte ptr ss:[ebp-0xD],bl |
0040138C | 0F84 F3000000 | je cosh.. | 判断验证信息是否正确,正确则跳转到正确提示处
| FF45 EC | inc dword ptr ss:[ebp-0x14] |
| 83C7 | add edi,0x4 | edi:"0#@"
| 837D EC | cmp dword ptr ss:[ebp-0x14],0x7 |
0040139C | 9F | jne cosh..40133D | 错误则向上跳转,循环每个盘验证注册信息
0040139E | | push ebx |
0040139F | 4C304000 | push cosh..40304C | 40304C:"Try again"
004013A4 | | push cosh.. | :"You lost"
004013A9 | 8B4D E4 | mov ecx,dword ptr ss:[ebp-0x1C] | [ebp-1C]:"0#@"
004013AC | E8 D1020000 | call <JMP.&Ordinal#> |
004013B1 | 8D4D E8 | lea ecx,dword ptr ss:[ebp-0x18] |
004013B4 | C645 FC 0E | mov byte ptr ss:[ebp-0x4],0xE |
004013B8 | E8 DD020000 | call <JMP.&Ordinal#> |
004013BD | | push esi | esi:"0#@"
004013BE | 6A | push 0x1 |
004013C0 | 8D45 DC | lea eax,dword ptr ss:[ebp-0x24] |
004013C3 | 6A | push 0x4 |
004013C5 | | push eax |
004013C6 | C645 FC 0D | mov byte ptr ss:[ebp-0x4],0xD | D:'\r'
004013CA | E8 | call cosh..4016F6 |
004013CF | 8D4D D8 | lea ecx,dword ptr ss:[ebp-0x28] |
004013D2 | C645 FC 0C | mov byte ptr ss:[ebp-0x4],0xC | C:'\f'
004013D6 | E8 BF020000 | call <JMP.&Ordinal#> |
004013DB | 8D4D D4 | lea ecx,dword ptr ss:[ebp-0x2C] |
004013DE | C645 FC 0B | mov byte ptr ss:[ebp-0x4],0xB | B:'\v'
004013E2 | E8 B3020000 | call <JMP.&Ordinal#> |
004013E7 | 8D4D D0 | lea ecx,dword ptr ss:[ebp-0x30] |
004013EA | C645 FC 0A | mov byte ptr ss:[ebp-0x4],0xA | A:'\n'
004013EE | E8 A7020000 | call <JMP.&Ordinal#> |
004013F3 | 8D4D CC | lea ecx,dword ptr ss:[ebp-0x34] |
004013F6 | C645 FC | mov byte ptr ss:[ebp-0x4],0x9 | :'\t'
004013FA | E8 9B020000 | call <JMP.&Ordinal#> |
004013FF | 8D4D C8 | lea ecx,dword ptr ss:[ebp-0x38] |
| C645 FC | mov byte ptr ss:[ebp-0x4],0x8 |
| E8 8F020000 | call <JMP.&Ordinal#> |
0040140B | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] |
0040140E | C645 FC | mov byte ptr ss:[ebp-0x4],0x7 |
| E8 | call <JMP.&Ordinal#> |
| 8D4D C0 | lea ecx,dword ptr ss:[ebp-0x40] |
0040141A | C645 FC | mov byte ptr ss:[ebp-0x4],0x6 |
0040141E | E8 | call <JMP.&Ordinal#> |
| 8D4D BC | lea ecx,dword ptr ss:[ebp-0x44] |
| C645 FC | mov byte ptr ss:[ebp-0x4],0x5 |
0040142A | E8 6B020000 | call <JMP.&Ordinal#> |
0040142F | 8D4D B8 | lea ecx,dword ptr ss:[ebp-0x48] |
| C645 FC | mov byte ptr ss:[ebp-0x4],0x4 |
| E8 5F020000 | call <JMP.&Ordinal#> |
0040143B | 8D4D B4 | lea ecx,dword ptr ss:[ebp-0x4C] |
0040143E | C645 FC | mov byte ptr ss:[ebp-0x4],0x3 |
| E8 | call <JMP.&Ordinal#> |
| 8D4D B0 | lea ecx,dword ptr ss:[ebp-0x50] |
0040144A | C645 FC | mov byte ptr ss:[ebp-0x4],0x2 |
0040144E | E8 | call <JMP.&Ordinal#> |
| 8D4D AC | lea ecx,dword ptr ss:[ebp-0x54] |
| C645 FC | mov byte ptr ss:[ebp-0x4],0x1 |
0040145A | E8 3B020000 | call <JMP.&Ordinal#> |
0040145F | 8D4D A8 | lea ecx,dword ptr ss:[ebp-0x58] |
| 885D FC | mov byte ptr ss:[ebp-0x4],bl |
| E8 | call <JMP.&Ordinal#> |
0040146A | 834D FC FF | or dword ptr ss:[ebp-0x4],0xFFFFFFFF |
0040146E | 8D4D A4 | lea ecx,dword ptr ss:[ebp-0x5C] |
| E8 | call <JMP.&Ordinal#> |
| 8B4D F4 | mov ecx,dword ptr ss:[ebp-0xC] |
| 5F | pop edi | edi:"0#@"
0040147A | 5E | pop esi | esi:"0#@"
0040147B | 5B | pop ebx |
0040147C | :890D | mov dword ptr fs:[],ecx |
| C9 | leave |
| C3 | ret |
| | push ebx |
| | push cosh.. | :"You did it"
0040148B | | push cosh.. | :"Well done, Cracker"
| E9 14FFFFFF | jmp cosh..4013A9 | 此处向上跳转,跳转到004013A9
| 6A | push 0x0 |
| FF71 | push dword ptr ds:[ecx+0x20] |

我们在0040138C处下断点,点击Check for CD按钮,此时程序停在了我们的断点处

将0040138C处JE修改为JMP

bingo ~ 破解成功

ON.2

来到上一步下的断点处,向上一栋两三步可以看出来,该代码会循环读取C-P硬盘下的"CH_CHECK.DAT"文件,判断是否存在如果存在成提示正确信息,在C盘下创建该文件后点击Check for CD按钮,提示我们破解成功

逆向破解之160个CrackMe —— 027的更多相关文章

  1. 逆向破解之160个CrackMe —— 001

    CrackMe —— 001 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  2. 逆向破解之160个CrackMe —— 002-003

    CrackMe —— 002 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  3. 逆向破解之160个CrackMe —— 004-005

    CrackMe —— 004 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  4. 逆向破解之160个CrackMe —— 013

    CrackMe —— 013 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  5. 逆向破解之160个CrackMe —— 014

    CrackMe —— 014 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  6. 逆向破解之160个CrackMe —— 016

    CrackMe —— 016 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  7. 逆向破解之160个CrackMe —— 017

    CrackMe —— 017 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  8. 逆向破解之160个CrackMe —— 018

    CrackMe —— 018 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  9. 逆向破解之160个CrackMe —— 025

    CrackMe —— 025 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

随机推荐

  1. PATA1075 PAT Judge (25 分)

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

  2. 企业级Nginx负载均衡与keepalived高可用实战(一)Nginx篇

    1.集群简介 1.1.什么是集群 简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器. ...

  3. Qt 简易图片播放器

    一.前言 使用 Qt 制作了一个简单的图片播放器,点击 "浏览按钮" 浏览图片所在目录,目录中的所有图片缩小图标和名称会显示在左侧的图片列表中,点击列表中的图片项,可以在右侧区域的 ...

  4. Python连载31-threading的使用

    一. 例子:我们对传参是有要求的必须传入一个元组,否则报错 二. import _thread as thread import time def loop1(in1): print("St ...

  5. hdu6546 Function

    Function \(\text{Alice}\) 有 \(n\) 个二次函数 \(F_i(x)=a_ix^2+b_ix+c_i(i \in [1,n])\). 现在他想在 \(\sum_{i=1}^ ...

  6. kali 安装 360国产浏览器

    1. 下载360安全浏览器国产版本的 amd64 deb的包 https://browser.360.cn/se/linux/index.html 下载到的文件为: browser360-cn-sta ...

  7. Sitecore A / B测试

    测试您的Web内容非常重要.这是查看页面中的页面和组件是否达到预期效果的好方法.测试还可以让您放心,您的内容足够吸引人,以增加转化次数并最大限度地提高增长率. 测试如何运作? 测试通过向访问者随机显示 ...

  8. struts2的使用入门

    虽然说Struts2现在已经被SpringMVC框架淘汰了,据说是有很多安全漏洞.但是Struts2作为一个成熟的MVC框架,还是有必要了解一下的,好歹是曾经风光一时的前辈,老祖宗的东西不能丢下,里面 ...

  9. scala的应用--UDF:用户自定义函数

    在window10下安装了hadoop,用ida创建maven项目. <properties> <spark.version>2.2.0</spark.version&g ...

  10. MySQL数据库 : 高级查询

    根据某个字段删除重复的数据, 只保留一条: 比如uuid字段有重复的, 需要只保留一条数据, 让uuid字段不能重复, 则首先 group by uuid 查出所有数据的id最小的那条数据,作为dt表 ...