CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

栏目: 编程语言 · 发布时间: 5年前

内容简介:作者:逆向驿站微信公众号:知乎:

作者:逆向驿站

微信公众号: 逆向驿站

知乎: 逆向驿站

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常适合新入门的来练习.

快过年了,Crackme系列年前就停更在006吧,祝大家新年666 ,年后继续

准备

【环境和工具】

  • win7/xp虚拟机环境
  • CrackMe006(aLoNg3x.1.exe)
  • ollydbg
  • Dededark

【学习层次】

  • 逆向分析程序验证流程逻辑
  • 解密算法,写注册机
  • 积累Delphi程序逆向特点经验

实战图文

最终效果展示

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

程序验证流程逻辑图

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

动态分析

1.程序观察

旁边既然有个help,我们当然要看了,四个弹框,有实际信息价值的是头两个,如图

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

大体意思是,这个crackme的最终目标是隐藏ok和cancella按钮来观看完整的Ringzero logo。

2.控件ID,事件函数信息

依然老规矩,既然是delphi的程序,我们就先用dededark给控件信息和事件函数信息搜集出来

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

3.控件ID常量搜索法,打开入手点

程序开始是ok按钮是禁用状态,cancella按钮是可以点击的,那么我们就从cancella入手,两个方向,你可以去找cancellaclick事件的函数入手,也可以从cancella控件ID入手,我这里选择后者,因为最终目的是cancella要被隐藏起来,无论如何一定会用到控件ID

查找→所有常量→2D0(cancella按钮控件ID),结果如下

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

一共有四个地方用到了这个控件ID,我们分别跟入查看哪个是我们想找的隐藏这个控件的反汇编代码,从上至下依次如下

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

找到了入手点,我们开始上下阅读函数块,发现这正是cancellaclick事件函数

4.分析Cancellaclick中算法

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

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

F7跟如算法call仔细分析,如下图

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

这种不是摘要hash的,是直接可以逆推计算出注册码,根据以上算法的反汇编分析,写出逆推注册码的源码,如下

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

例如我们输入的用户名是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

算出了注册码,我们来测试一下,如下动图

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

Cancella按钮消失

5.分析OK按钮中算法

有了如上的过程作为经验,我们"依葫芦画瓢",来进行ok按钮中的算法分析,依然是okClick事件入口下断,F8动态分析,结果如下

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

F7跟如算法call仔细分析,如下图

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

分析后发现,这个算法是根据已经算出的注册码,再次要求用户名合规,算法并不难,而且很敏感的看到0x41,0x41对应的asc字符是大写字母A,而0x41加上的数字的取值范围是0-0x19,即十进制0-25,那一看就知道,就是26个大写字母范围内了,这时候你可以变态的暴力枚举也行,当然这个也是可以逆推出来,我们还是选择逆推吧。源码如下

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

我们刚输入的注册码是191143,逆推出用户名应该是"BXDEUG",验证如下动图

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

OK按钮消失,至此全部搞定, 是不是感觉不难,去网盘中下载,试试吧

补充知识点

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

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

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

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

欢迎关注微信公众号: 逆向驿站

CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

RESTful Web Services Cookbook

RESTful Web Services Cookbook

Subbu Allamaraju / Yahoo Press / 2010-3-11 / USD 39.99

While the REST design philosophy has captured the imagination of web and enterprise developers alike, using this approach to develop real web services is no picnic. This cookbook includes more than 10......一起来看看 《RESTful Web Services Cookbook》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具