在吾爱上边找到的资源,160个Crack me,第六个,网上有很多大佬也有写文章来讲解,当然在破解的时候也有参考,姑且记录下来,当作自己的学习资料:
拿到程序之后,查壳:
die查壳:

可以看到是Delphi的程序,直接上手Darkde进行反编译,这都是后话,在查完壳之后,获取到程序的一些基本信息。下一步先运行一下程序,对于程序有一个大致的了解:

在程序之初,只有帮助按钮可以弹出对于我们来说有用的信息,这次破解的方法不采用关键字符串搜索的方法,这次换另外一种方法:采用Delphi反编译工具,获取关键控件的信息,从而破解程序。
第一步:Darkde反编译程序:

点击CrackMe模块,进入:

第二部:获取到控件的关键信息之后,我们可以获取到在程序中使用的控件的ID,在这次的破解中我们使用控件ID来下断点的方式进行破解,查看控件的ID:

我们在调试破解过程中用到的两个关键的 控件ID是Cancle键和OK键,(这个程序的主要目的就是在运行之后将这两个按键隐藏掉,可以从帮助信息里边看到)
第三步:OD附加进程
第四步找到关键的控件的ID:
鼠标右键—>查找—>所有常量—>输入2D0(Cancle按键的控件ID)

第五步:可以看到一共有4个地方涉及到该控件的使用,
我们可以跳过去分别去看一下这四个地方的大概作用,来找到哪个是我们要用的(我们的目的是找到隐藏Cancle键的逻辑和算法):




找到隐藏Cancle的代码段之后,进行调试,输入Nome:134567 Code: 564897(这两个值可以随便输入),在这块代码段的开头部分下断点进行调试:(输入数据之后,点击Cancle按钮)


F7跟随关键的算法部分:算法的核心部分分析如下:

算法的核心部分分析之后,其实就可以逆向的写出相应的代码,来得到满足条件的数据:
用C写了一个 :

#include<stdio.h>
int main()
{int i=0;int j=0;int s=0;int arr[10]={0};printf("请输入你的Nome个数(友情提示位数必须大于5)\n");scanf("%d",&s);printf("请输入你的Nome:");for(i=0;i<s;i++){scanf("%d",&arr[i]);}int x=(arr[4]+0x30)%7+2;int q=1;int y;//阶乘for(i=x;i>0;i--){q=q*i;}for(i=0;i<6;i++){j=j+(arr[i]+0x30);}q=q*j;y=q-0x7A69;printf("您应该输入的Code应该是:");printf("%d",y);}

之后将得到的数据填入Code再点击Cancle发现Cancle键消失了:

下一步,将Cancle按键隐藏之后,就该隐藏OK键了(这两个没有顺序而言,全凭开心),和Cancle同样的方法,我们还是根据控件来对OK键定位:


核心算法的分析:

根据核心算法的分析结果,也可以顺着得到我们最后的注册码:(这里没有用代码实现,因为过程比较麻烦,但是不难就是太搬砖了)

到此这个分析过程也已经结束了,根据这次分析结果也学到了很多东西;
1、在逆向分析的时候有一个好的工具是非常重要的,要多换着使用工具,找到对的工具事半功倍
2、关键字符串搜索的方法,有一定的局限性,从其他角度多方面进行解析
3、在思考问题的时候不能钻牛角尖,否则容易在一个点卡死,而且在分析的时候,不能先入为主,否则会产生思维定势,也不容易走出来(关键是我太菜)。

CrackMe 之 006相关推荐

  1. 吾爱破解160个crackme之006

    这个题目的原话在这里 意思是将两个button隐藏掉即可... 其实我是挺想吐槽一下的= =. 我们打开pe文件的资源管理器,发现如下结构: object Ok: TButton Left = 24 ...

  2. 160个Crackme007

    文章目录 查壳 Darkde分析程序 导入符号 分析核心算法 写出注册机 校验结果 分析again按钮事件 校验步骤 007这个crackme跟006是同一个作者,只不过难度上升了一颗星.先来查一下壳 ...

  3. Crackme006 - 全新160个CrackMe学习系列(图文|视频|注册机源码)

    知乎:逆向驿站 原文链接 CrackMe006 | 难度适中适合练手 |160个CrackMe深度解析(图文+视频+注册机源码) crackme006,依然是delphi的,而且没壳子,条线比较清晰, ...

  4. 逆向破解之160个CrackMe —— 008-009

    CrackMe -- 008 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  5. CrackMe007 | 难度适当提高 |160个CrackMe深度解析(图文+视频+注册机源码)

    作者:逆向驿站 微信公众号:逆向驿站 知乎:逆向驿站 crackme007,是006的升级版,程序开发者给出的难度是3星,可能是迷惑有点多?个人觉得条线还是比较清晰,难度也不大,依然适合新手 准备 [ ...

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

    作者:逆向驿站 微信公众号:逆向驿站 知乎:逆向驿站 crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常适合新入门的来练习. 快过年了,Crackme系列年前就停更 ...

  7. Crackme006 - 全新160个CrackMe深度解析系列(图文+视频+注册机源码)

    原文链接 CrackMe006 | 难度适中适合练手 |160个CrackMe深度解析(图文+视频+注册机源码) crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常 ...

  8. 基础006 宏基因组入门理论以及分析环境的部署

    本文"植物微生物组"公众号原创,ID: plantmicrobiome 作者:zhiwen 原文链接:基础006 宏基因组入门理论以及分析环境的部署 一.宏基因组核心思想 鉴定菌群 ...

  9. android 入门 006(sqlite增删改查)

    android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite;import android.content.Context; import a ...

最新文章

  1. java封装对象实体类_Java 接口自动化系列--实体类之entity封装
  2. Linux常用命令--cat 、more、less、head、tail
  3. declare sql语句_每天10分钟学习T-SQL语言基础(Part 5)
  4. android dropbox anr分析,Android如何分析排查ANR
  5. apache ab 测试 apr_socket_connect(): 由于目标机器积极拒绝 无法连接
  6. 前端学习(3218):批量传递props
  7. 软件测试人员的核心竞争力
  8. 全球10大受欢迎的顶级编程语言与薪资水平
  9. mount nfs 经常出错信息总结(转)
  10. Deno 冲上榜首,Vue.js 首次屈居第二,JavaScript 2020 年度“新起之秀”都有谁?
  11. VUE图片预览放大缩小插件viewer
  12. LINUX如何获取jre路径,及程序代码如何读取
  13. 打印机提示服务器状态未知,win7打印机提示rpc服务器不可用怎么办
  14. 2020-2023保时捷Taycan维修手册电路图技术培训手册用户手册电动汽车技术资料
  15. 独创圆柱形投影,索尼高透光HOE全息显示方案详解
  16. html中最小规格字体,font-size【CSS 字体大小】文字大小尺寸
  17. r语言和python语法对比_R语言和Python区别对比,你会选择哪一个?
  18. Hive 修复分区 msck repair table
  19. C++经典算法题-洗扑克牌(乱数排列)
  20. 启航——我的第一篇博客

热门文章

  1. 文档管理服务器脱机编辑,如何离线访问nicelabel文档管理系统
  2. Android自制弹幕
  3. linux中wps默认安装目录,在Linux中安装和使用wps
  4. “魔盗”窃密木马(FakeCDR)研究
  5. 计算机组成原理——中央处理器-数据通路(课程笔记)
  6. Flume之——配置多个Sink源(一个Source对应多个Channel和Sink)
  7. 【面试题整理】MySQL索引
  8. docker的下载与安装
  9. Linux应用开发【第四章】Linux进程间通信应用开发
  10. 51单片机矩阵键盘C程序