CrackMe —— 001

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

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

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

来源 <-点击查看

编号 作者 保护方式
001 Acid burn Nag Name/Serial,Serial

工具

x32dbg

KeyMake

开始破解之旅

ON.1

使用x32dbg打开001号程序

我们来到了入口点,如果打开后发现程序直接运行,在选项->选项->事件处勾选 入口断点 即可在程序入口处暂停

ON.2

F9运行,或者点击菜单栏 调试->运行 程序运行出现

程序分为两部分Serial/Name 和 Serial

爆破方式破解

Serial/Name

在输入框内输入任意数据,点击Check it Baby! 弹出窗口

在x32dbg里右键 搜索->当前模块->字符串 先会显示在当前搜索到的字符串

找到 Sorry, The serial is incorect!

找到两处

地址=0042FA63
反汇编=mov edx,acid burn.42FB80
字符串="Sorry , The serial is incorect !" 地址=0042FB26
反汇编=mov edx,acid burn.42FB80
字符串="Sorry , The serial is incorect !"

插入代码里竟然没有汇编的选项!!!

分别点进去查看两处代码

地址=0042FA63

0042FA52 | E8 D96EFDFF              | call acid burn.406930                   |
0042FA57 | 83F8 04 | cmp eax,0x4 |
0042FA5A | 7D 1D | jge acid burn.42FA79 |
0042FA5C | 6A 00 | push 0x0 |
0042FA5E | B9 74FB4200 | mov ecx,acid burn.42FB74 | 42FB74:"Try Again!"
0042FA63 | BA 80FB4200 | mov edx,acid burn.42FB80 | 42FB80:"Sorry , The serial is incorect !"
0042FA68 | A1 480A4300 | mov eax,dword ptr ds:[0x430A48] |
0042FA6D | 8B00 | mov eax,dword ptr ds:[eax] |
0042FA6F | E8 FCA6FFFF | call acid burn.42A170 |
0042FA74 | E9 BE000000 | jmp acid burn.42FB37 |
0042FA79 | 8D55 F0 | lea edx,dword ptr ss:[ebp-0x10] |
0042FA7C | 8B83 DC010000 | mov eax,dword ptr ds:[ebx+0x1DC] |

0042FA5A 处有跳转,指向弹出错误提示框 修改为JMP

地址=0042FB26

0042FAF8 | 8B55 F0                  | mov edx,dword ptr ss:[ebp-0x10]         |
0042FAFB | 8B45 F4 | mov eax,dword ptr ss:[ebp-0xC] |
0042FAFE | E8 F93EFDFF | call <acid burn.sub_4039FC> |
0042FB03 | 75 1A | jne acid burn.42FB1F |
0042FB05 | 6A 00 | push 0x0 |
0042FB07 | B9 CCFB4200 | mov ecx,acid burn.42FBCC | 42FBCC:"Congratz !!"
0042FB0C | BA D8FB4200 | mov edx,acid burn.42FBD8 | 42FBD8:"Good job dude =)"
0042FB11 | A1 480A4300 | mov eax,dword ptr ds:[0x430A48] |
0042FB16 | 8B00 | mov eax,dword ptr ds:[eax] |
0042FB18 | E8 53A6FFFF | call acid burn.42A170 |
0042FB1D | EB 18 | jmp acid burn.42FB37 |
0042FB1F | 6A 00 | push 0x0 |
0042FB21 | B9 74FB4200 | mov ecx,acid burn.42FB74 | 42FB74:"Try Again!"
0042FB26 | BA 80FB4200 | mov edx,acid burn.42FB80 | 42FB80:"Sorry , The serial is incorect !"
0042FB2B | A1 480A4300 | mov eax,dword ptr ds:[0x430A48] |
0042FB30 | 8B00 | mov eax,dword ptr ds:[eax] |
0042FB32 | E8 39A6FFFF | call acid burn.42A170 |
0042FB37 | 33C0 | xor eax,eax |
0042FB39 | 5A | pop edx |
0042FB3A | 59 | pop ecx |
0042FB3B | 59 | pop ecx |

通过查看发现 0042FB26 处有字符串 “Good job dude =)” 猜测可能是正确执行流程

查看该出汇编代码发现0042FB03处有跳转,修改跳转为NOP

运行程序

破解成功

Serial

搜索字符串“Try Agent” 在每个地址下断点,点击Check it Baby!

发现断点于 0042F4F8 在该地址向上翻最近跳转处设置断点单步F8

经过两个call是发现寄存器处显示字符,疑似密码,继续单步向下

发现寄存器出现之前call处显示的字符串拼接到了一起和我们输入框输入的数据,下一条指令为判断跳转,此处call为输入框判断对比函数

在输入框内输入Hello Dude!

密码正确,此处可用爆破方式 jne 42F41F 修改 NOP,运行

bingo! 破解成功

内存补丁方式

单步F8,在地址 42F4D0 处看到寄存器存在Key

打开KeyMake 点击其他->内存注册机->添加

中断地址:对应的内存地址

中断次数:设置1次,是第一次运行到指定地址时中断并追码,设置2次,是第二次运行到指定地址时中断并追码

第一字节:原始指令

指令长度:两个字母或数字代表一个指令长度E82745FDFF代表5个指令长度

点击添加->生成->打开程序运行->点击按钮出现注册码

同理 0042FAFE 发现注册码,制作内存注册机,运行得到注册码

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

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

    CrackMe--001 前置知识介绍: 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合,一共160个待逆向破解的程序 CrackMe:一些公开给别人尝试破解的小程序,制 ...

  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. 常用的方法论-PARR

  2. HDU 2121:Ice_cream’s world II(不定根的最小树形图)

    题目链接 题意 求有向图的最小生成树,且根不定. 思路 最小树形图即求有向图的最小生成树,用的是朱刘算法. 这里不定根,那么可以建立一个虚根,让虚根和所有点相连,权值为一个很大的数(这里直接设为所有边 ...

  3. 微信小程序 CSS border-radius元素 overflow:hidden失效问题 iPhone ios 苹果兼容问题 伪类元素

    同事找我解决一个问题 说安卓圆角没问题 苹果上失效了 我一看 其实就是没做兼容上图给你们看看 有没有看出来 其实就是父级设置圆角属性失效 父元素使用border-radius和overflow:hid ...

  4. 自动化冒烟测试 Unittest , Pytest 哪家强?

    前言:之前有一段时间一直用 Python Uittest做自动化测试,觉得Uittest组织冒烟用例比较繁琐,后来康哥提示我使用pytest.mark来组织冒烟用例 本文讲述以下几个内容: 1.Uni ...

  5. FTP工具便携版 FileZilla 3.38.0

    FileZilla 客户端是一个快速可靠的.跨平台的FTP,FTPS和SFTP客户端.具有图形用户界面(GUI)和很多有用的特性.由NoCmd提供的 FileZilla Client 中文便携版,具有 ...

  6. 对scanner.close方法的误解以及无法补救的错误

    scanner错误关闭导致的异常 public class test2 { public static void main(String[] args) { Scanner scanner1 = ne ...

  7. bzoj1052 9.20考试 第二题 覆盖问题

    1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2004  Solved: 937[Submit][Statu ...

  8. linux应用程序设计--GCC程序编译

    GCC程序编译 linux系统下的GCC(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作之一.GCC可以在多种硬件平台上编译出可执行程序,其执行效率与一 ...

  9. 基于IdentityServer4的OIDC实现单点登录(SSO)原理简析

    写着前面 IdentityServer4的学习断断续续,兜兜转转,走了不少弯路,也花了不少时间.可能是因为没有阅读源码,也没有特别系统的学习资料,相关文章很多园子里的大佬都有涉及,有系列文章,比如: ...

  10. request 中url拼接排序参数与签名算法

    一.参数要求: { appId:应用在后台创建应用时分配的应用编号,与应用密钥一一对应 sign:按照当前请求参数名的字母序进行升序排列(排序时区分大小写,除sign外,其它值不为空的参数都参与签名) ...