做者:逆向驿站
微信公众号:逆向驿站
知乎:逆向驿站算法
crackme006,依然是delphi的,并且没壳子,条线比较清晰,算法也不难,很是适合新入门的来练习.
快过年了,Crackme系列年前就停更在006吧,祝你们新年666 ,年后继续
【环境和工具】安全
【学习层次】微信
最终效果展现
程序验证流程逻辑图
动态分析
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事件函数spa
4.分析Cancellaclick中算法
在Cancellaclick函数入口处下断点,而后用户名输入123456,注册码输入654321,而后开始动态调试分析,F8步过度析以下图
F7跟如算法call仔细分析,以下图
这种不是摘要hash的,是直接能够逆推计算出注册码,根据以上算法的反汇编分析,写出逆推注册码的源码,以下调试
例如咱们输入的用户名是123456,逆推注册码计算以下事件
算出了注册码,咱们来测试一下,以下动图
Cancella按钮消失
5.分析OK按钮中算法
有了如上的过程做为经验,咱们"依葫芦画瓢",来进行ok按钮中的算法分析,依然是okClick事件入口下断,F8动态分析,结果以下
F7跟如算法call仔细分析,以下图
分析后发现,这个算法是根据已经算出的注册码,再次要求用户名合规,算法并不难,并且很敏感的看到0x41,0x41对应的asc字符是大写字母A,而0x41加上的数字的取值范围是0-0x19,即十进制0-25,那一看就知道,就是26个大写字母范围内了,这时候你能够变态的暴力枚举也行,固然这个也是能够逆推出来,咱们仍是选择逆推吧。源码以下
咱们刚输入的注册码是191143,逆推出用户名应该是"BXDEUG",验证以下动图
OK按钮消失,至此所有搞定, 是否是感受不难,去网盘中下载,试试吧
补充知识点
再CancellaClick事件算法中,有个阶乘计算,函数内部反汇编代码以下,能够做为知识点积累,下次看到这个第一时间就能反应过来,提升效率,逆向的老手每每是这种知识碎片不少,并且脑部搜索算法很精准
最后,喜欢这里的请推荐给你身边的朋友吧(渗透测试、逆向破解、病毒分析、信息安全等)
文章中涉及软件、课件、源码等均在网盘,为避免网盘连接失效,公众号中回复:网盘
欢迎关注微信公众号:逆向驿站
相关文章
本期标签:dededark|delphi反汇编|crackme|crackme6|crackme06