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),结果如下
图片描述
找到了入手点,我们开始上下阅读函数块,发现这正是cancellaclick事件函数

4.分析Cancellaclick中算法
在Cancellaclick函数入口处下断点,然后用户名输入123456,注册码输入654321,然后开始动态调试分析,F8步过分析如下图
图片描述

例如我们输入的用户名是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动态分析,结果如下
图片描述

我们刚输入的注册码是191143,逆推出用户名应该是"BXDEUG",验证如下动图
图片描述
OK按钮消失,至此全部搞定, 是不是感觉不难,去网盘中下载,试试吧

补充知识点

再CancellaClick事件算法中,有个阶乘计算,函数内部反汇编代码如下,可以作为知识点积累,下次看到这个第一时间就能反应过来,提高效率,逆向的老手往往是这种知识碎片很多,而且脑部搜索算法很精准
图片描述

最后,喜欢这里的请推荐给你身边的朋友吧(渗透测试、逆向破解、病毒分析、信息安全等)


文章中涉及软件、课件、源码等均在网盘,为避免网盘链接失效,公众号中回复:网盘

欢迎关注微信公众号:逆向驿站
图片描述

相关文章

CrackMe-005精解(下)

CrackMe-005精解(上)

CrackMe-004精解

CrackMe-003精解

CrackMe-002精解

CrackMe-001精解

本期标签:dededark|delphi反汇编|crackme|crackme6|crackme06

你可能感兴趣的:(安全,逆向工程,破解,软件安全,黑客)