逆向破解之160个CrackMe —— 001
CrackMe —— 001
160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序
CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。
编号 | 作者 | 保护方式 |
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的更多相关文章
- 逆向破解之160个CrackMe —— 001(上)
CrackMe--001 前置知识介绍: 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合,一共160个待逆向破解的程序 CrackMe:一些公开给别人尝试破解的小程序,制 ...
- 逆向破解之160个CrackMe —— 002-003
CrackMe —— 002 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 004-005
CrackMe —— 004 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 013
CrackMe —— 013 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 014
CrackMe —— 014 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 016
CrackMe —— 016 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 017
CrackMe —— 017 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 018
CrackMe —— 018 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 逆向破解之160个CrackMe —— 025
CrackMe —— 025 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
随机推荐
- scrapy实战3利用fiddler对手机app进行抓包爬虫图片下载(重写ImagesPipeline):
关于fiddler的使用方法参考(http://jingyan.baidu.com/article/03b2f78c7b6bb05ea237aed2.html) 本案例爬取斗鱼 app 先利用fidd ...
- scrapy基础知识之下载中间件使用案例:
1. 创建middlewares.py文件. Scrapy代理IP.Uesr-Agent的切换都是通过DOWNLOADER_MIDDLEWARES进行控制,我们在settings.py同级目录下创建m ...
- ZigBee按键中断
何为按键中断? 在了解按键中断之前,我们先来了解一下什么是中断?中断就是程序执行当前代码,当前任务的时候: 突然有自身函数或外部的影响,而使程序执行到别的任务再回来. 举个栗子: 当你在做饭的时候,电 ...
- 在eclipse中使用git创建本地库,以及托管项目到GitHub超详细教程
关于安装git的教程,由于比较简单,并且网上教程特别多,而且即使不按照网上教程,下载好的windows版本git,安装时候一路默认设置就行. 安装好之后,在桌面上有git图标:右键菜单中有Git Ba ...
- 6.秋招复习简单整理之请你谈谈JDBC的反射,以及它的作用?
通过反射com.mysql.jdbc.Driver类,实例化该类时会调用该类的静态代码块,该代码块会去java的DriverManager类中注册自己,DriverManager管理所有已注册的驱动类 ...
- C# 使用表达式树获取特性的值
一.定义特性 /// <summary> /// 定义特性 /// </summary> [AttributeUsage(AttributeTargets.Field | At ...
- 利用jenkins实现自动构建、部署,提升团队开发效率
一大早就被群里的同学刷银川下雪的消息,看着我都发冷,突觉一阵凉风裹身,是不是该考虑秋裤了. 偏离主题,正文走起...... 使用jenkins目标:利用其结合maven完成自动构建,并部署到tomca ...
- nexus私服快速update index方法
简单搭好nexus私服后,做好基本的配置. 稍微麻烦点的就是让其更新Jar索引文件.如果有耐心的话,完全可以通过在线更新索引的方式来做,但所消耗的时间较长,让人误以为出错了,不知所措. 下面介绍一种简 ...
- 彻底搞清楚c#中的委托和事件
一.什么是委托呢? 听着名字挺抽象,确实不好理解.面试官最喜欢考察这个,而且更喜欢问:“委托和事件有何异同?”.如果对一些知识点没有想明白,那么很容易被绕进去.研究任何事物,我们不妨从它的定义开始,委 ...
- python 中_init_函数以及参数self
1)class类包含: 类的属性:类中所涉及的变量 类的方法:类中函数 2)_init_函数(方法) 1.首先说一下,带有两个下划线开头的函数是声明该属性为私有,不能在类地外部被使用或直接访问. 2. ...