CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)
作者:逆向驿站
微信公众号:逆向驿站
知乎:逆向驿站
crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常适合新入门的来练习.
快过年了,Crackme系列年前就停更在006吧,祝大家新年666 ,年后继续
准备
【环境和工具】
- win7/xp虚拟机环境
- CrackMe006(aLoNg3x.1.exe)
- ollydbg
- Dededark
【学习层次】
- 逆向分析程序验证流程逻辑
- 解密算法,写注册机
- 积累Delphi程序逆向特点经验
实战图文
最终效果展示
程序验证流程逻辑图
动态分析
1.程序观察
旁边既然有个help,我们当然要看了,四个弹框,有实际信息价值的是头两个,如图
大体意思是,这个crackme的最终目标是隐藏ok和cancella按钮来观看完整的Ringzero logo。
2.控件ID,事件函数信息
依然老规矩,既然是delphi的程序,我们就先用dededark给控件信息和事件函数信息搜集出来
3.控件ID常量搜索法,打开入手点
程序开始是ok按钮是禁用状态,cancella按钮是可以点击的,那么我们就从cancella入手,两个方向,你可以去找cancellaclick事件的函数入手,也可以从cancella控件ID入手,我这里选择后者,因为最终目的是cancella要被隐藏起来,无论如何一定会用到控件ID
查找→所有常量→2D0(cancella按钮控件ID),结果如下
一共有四个地方用到了这个控件ID,我们分别跟入查看哪个是我们想找的隐藏这个控件的反汇编代码,从上至下依次如下
找到了入手点,我们开始上下阅读函数块,发现这正是cancellaclick事件函数
4.分析Cancellaclick中算法
在Cancellaclick函数入口处下断点,然后用户名输入123456,注册码输入654321,然后开始动态调试分析,F8步过分析如下图
F7跟如算法call仔细分析,如下图
这种不是摘要hash的,是直接可以逆推计算出注册码,根据以上算法的反汇编分析,写出逆推注册码的源码,如下
例如我们输入的用户名是123456,逆推注册码计算如下
- "123456"的第五个字符是"5",asc码是53,即十六进制0x35
- 除以7余数是4,再加2是6
- 6的阶乘是6 5 4 3 2 *1,等于720 ,即十六进制的0x2D0
- 123456每个字符的asc码相加是0x31+0x32+0x33+0x34+0x35+0x36,结果是0x135
- 0x135 乘以0x2D0是0x36510
- 0x36510比注册码的十六进制形态大0x7A69
- 即注册码是0x36510-0x7A69 = 0x2EAA7 ,即十进制是191143
算出了注册码,我们来测试一下,如下动图
Cancella按钮消失
5.分析OK按钮中算法
有了如上的过程作为经验,我们"依葫芦画瓢",来进行ok按钮中的算法分析,依然是okClick事件入口下断,F8动态分析,结果如下
F7跟如算法call仔细分析,如下图
分析后发现,这个算法是根据已经算出的注册码,再次要求用户名合规,算法并不难,而且很敏感的看到0x41,0x41对应的asc字符是大写字母A,而0x41加上的数字的取值范围是0-0x19,即十进制0-25,那一看就知道,就是26个大写字母范围内了,这时候你可以变态的暴力枚举也行,当然这个也是可以逆推出来,我们还是选择逆推吧。源码如下
我们刚输入的注册码是191143,逆推出用户名应该是"BXDEUG",验证如下动图
OK按钮消失,至此全部搞定, 是不是感觉不难,去网盘中下载,试试吧
补充知识点
再CancellaClick事件算法中,有个阶乘计算,函数内部反汇编代码如下,可以作为知识点积累,下次看到这个第一时间就能反应过来,提高效率,逆向的老手往往是这种知识碎片很多,而且脑部搜索算法很精准
最后,喜欢这里的请推荐给你身边的朋友吧(渗透测试、逆向破解、病毒分析、信息安全等)
文章中涉及软件、课件、源码等均在网盘,为避免网盘链接失效,公众号中回复:网盘
欢迎关注微信公众号:逆向驿站
相关文章
● CrackMe-005精解(下)
● CrackMe-005精解(上)
● CrackMe-004精解
● CrackMe-003精解
● CrackMe-002精解
● CrackMe-001精解
本期标签:dededark|delphi反汇编|crackme|crackme6|crackme06
CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)相关推荐
- CrackMe007 | 难度适当提高 |160个CrackMe深度解析(图文+视频+注册机源码)
作者:逆向驿站 微信公众号:逆向驿站 知乎:逆向驿站 crackme007,是006的升级版,程序开发者给出的难度是3星,可能是迷惑有点多?个人觉得条线还是比较清晰,难度也不大,依然适合新手 准备 [ ...
- Crackme006 - 全新160个CrackMe学习系列(图文|视频|注册机源码)
知乎:逆向驿站 原文链接 CrackMe006 | 难度适中适合练手 |160个CrackMe深度解析(图文+视频+注册机源码) crackme006,依然是delphi的,而且没壳子,条线比较清晰, ...
- Crackme006 - 全新160个CrackMe深度解析系列(图文+视频+注册机源码)
原文链接 CrackMe006 | 难度适中适合练手 |160个CrackMe深度解析(图文+视频+注册机源码) crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常 ...
- 视频+图文+注册+机源码 | 160个CrackMe深度解析合集 | 逆向破解入门
全部合集的获取请关注微信公众号:逆向驿站 回复:160 即可获得其余合集 以下是示例文章 160个CrackMe深度解析合集-001 提倡"刨根问底",拒绝"浅尝辄止&q ...
- 【Faster R-CNN论文精度系列】从Faster R-CNN源码中,我们“学习”到了什么?
[Faster R-CNN论文精度系列] (如下为建议阅读顺序) 1[Faster R-CNN论文精度系列]从Faster R-CNN源码中,我们"学习"到了什么? 2[Faste ...
- arcgis开发 多版本之间如何兼容_arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)...
你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...
- C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP /MC协议与三菱FX5U/Q系列PLC通讯
C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP /MC协议与三菱FX5U/Q系列PLC通讯 1.该程序可以与FX5U/Q系列PLC以太网通讯,根据3E帧报文写了一个类库,可以读写各种类型 ...
- Neural Turing Machines-NTM系列(三)ntm-lasagne源码分析
Neural Turing Machines-NTM系列(三)ntm-lasagne源码分析 在NTM系列文章(二)中,我们已经成功运行了一个ntm工程的源代码.在这一章中,将对它的源码实现进行分析. ...
- perp系列之二:perp源码README
perp系列之二:perp源码README 版本说明 版本 作者 日期 备注 0.1 ZY 2019.5.29 初稿 目录 文章目录 perp系列之二:perp源码README 版本说明 目录 per ...
最新文章
- Java项目:在线商城系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
- Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE
- gitignore完整使用方法
- 如何对SQL Server数据库中的孤立用户和系统及用户建立映射
- mac地址 linux c api,如何使用C程序获取linux中接口的mac地址?
- 分割平面、空间问题 数学公式
- 查询某个分区是那张表_分库、分表、分区的区别
- 【二、玩转vim(vi)编辑器】三大模式及命令介绍、如何通过配置文件.vimrc配置vim编辑器
- PDF怎么转换成JPG图片?教你如何快速转换
- 全球及中国生活用纸市场营销策略与盈利前景预测报告2022版
- Xmind思维导图 常用快捷键使用
- 利用Email包实现邮件的群收发功能
- 如何调试Hola Studio
- android 获取渠道信息,Android 如何获取 umeng 的 渠道信息
- SIM7600使用TCP连接服务器
- 基于Python的OpenCV+TensorFlow+Keras人脸识别实现
- spring文件上传拦截器及异常处理
- Checkra1n越狱更新0.12.4版本,支持iOS14.7.1越狱
- 硬盘插上后计算机无法识别,移动硬盘插入Mac后,在Windows无法识别
- aomei动态磁盘管理器_程序员需要了解的硬核知识之磁盘