分析

可以通过搜索字符串的方式找到 “恭喜恭喜!注册成功” 的提示
在关键跳转上面打断点,输入一组假的 Name Serial 测试
发现点击图片框时程序会停在断点,说明图片框和按钮作用相同
直接 nop 掉关键跳转即可完成爆破,下面再研究一下注册机

注册机算法分析

分析上面的代码,但是看不出来注册码是怎么算出来的
甚至也找不到正确的注册码

查一下发现是 Delphi写的
那么可以用 Delphi Decompiler 试一下
发现三个有关函数 chkcodePanel1ClickPanel1DblClick
chkcode 的位置在 0x00457C40,回到 OD 下断点试试

在 OD 里找到对应的位置,上面还有一些奇奇怪怪的字符串
下完断点在注册码里每输入一个字符都会触发一次断点
说明注册码的正确性应该是在输入过程中进行判断的

果然,注册码的生成就在 chkcode 这部分
在输入注册码过程中判断是否正确,再点图片框显示图片
最终注册码为 "黑头Sun Bird" + [注册码长度+5] + "dseloffc-012-OK" + [用户名]

粘贴进去试试:

这个时候你会发现输入注册码以后需要点好几下才能显示注册成功的图片
想起刚才看到的 Panel1ClickPanel1DblClick 两个函数
在 IDA 里对反编译这两个函数就会发现
输入注册码之后还需要 先双击再单击图片框 才能显示图片
下图对比 IDA 中单击和双击和两个函数
左侧为单击事件,右侧为双击事件

C语言注册机:
简单粗暴,终于不用像前两个CM一样考虑中文了,感动ing

#include <stdio.h>
#include <string.h>//英文
int main()
{unsigned char username[200];scanf("%s",username);printf("黑头Sun Bird%ddseloffc-012-OK%s",strlen(username)+5,username);return 0;
}

注册效果:

004/160 CrackMe ajj CKme相关推荐

  1. 160 - 5 ajj.2

    环境: Windows xp sp3 打开,输入点东西到输入框(这里把第一个输出框称为text1)里面,点一下注册,什么反应都没有. 到处都点一点,每张图片都点一下,还是什么反应都没有. 查壳: 发现 ...

  2. 160 - 4 ajj.1

    环境: Windows Xp sp3 输入Name和Serial,无错误提示.看说明,只有正确时才有提示 OD载入,搜索字符串,发现两个字符串: Panel1DblClick和Panel1Click ...

  3. 002/160 CrackMe Afkayas #1

    Crack 依旧可以搜索字符串找到提示的错误信息 之后在上面下断点,单步往下走就可以在寄存器中看到正确的序列号了 KeyGen 直接扔进 IDA 中效果不理想,所以只能分析汇编了 在判断的上面打上断点 ...

  4. 009/160 CrackMe Andrénalin #2

    Crack 先随便输入点什么试试 搜索字符串找到注册成功的位置 向上找到比较函数,跟随比较函数的2个地址 可以发现一个是输入的注册码,一个是算好的正确注册码 输入测试通过 算法分析 下面再来看看这个注 ...

  5. 逆向破解之160个CrackMe —— 007

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

  6. 逆向破解之160个CrackMe —— 023-024

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

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

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

  8. 逆向破解之160个CrackMe —— 001

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

  9. 逆向破解之160个CrackMe —— 021

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

最新文章

  1. 基于OpenCV的焊件缺陷检测
  2. 《Java8实战》-第六章读书笔记(用流收集数据-01)
  3. 【Android 安全】DEX 加密 ( Application 替换 | 创建用户自定义 Application | 替换 ContextImpl 对象的 mOuterContext 成员 )
  4. Qt for Android gradle编译同时输出多个渠道apk
  5. Node.js 文件系统流pipe到Http响应流中
  6. rap技术原理_「水深坑多」做分子海绵,你还需要了解这些技术
  7. 直播预约 | 揭秘微信支付背后的数据库技术
  8. SAP Commerce Cloud 里的 Media 概念简述
  9. CRM呼叫中心toolbar的cancel按钮会导致session清理
  10. 注意指针修饰符的准确含义
  11. 2021山东科技大学计算机学院,2021年3月山东科技大学计算机等级考试报名工作通知...
  12. 关于不过洋节的通知_国家有规定不许过圣诞节等洋节吗?
  13. iOS开发:remove reference与move to trash的区别
  14. Java基础:基础加强巩固
  15. UE4官方文档毛发部分整合笔记
  16. 计算机位数怎么看win10,查看Windows10系统是32位还是64位的三种方法
  17. 猴子搬香蕉 php,猴子搬香蕉
  18. JAVA多线程向kafka的topic各分区中写入本地数据
  19. 合并多个 .ts 文件为单个 .mp4 解决方案
  20. 外仁内圣,以借得天下,以情御英雄

热门文章

  1. 16光8电全千兆宽温工业交换机16千兆光8千兆网口机架式网管型工业级以太网交换机
  2. 自定义View实战(一) 汽车速度仪表盘
  3. Java和Python哪个比较有前途,好就业?(初学者必读)
  4. 教师计算机知识比赛方案,小学信息技术教师基本功竞赛方案.doc
  5. 下载FATSQ,读取10条序列并计算每条序列的长度和GC含量
  6. STM32驱动RC522读卡完整资料分享,包含原理图、PCB、驱动工程文件
  7. java 和c 多态比较_多态在 Java 和 C 编程语言中的实现比较
  8. VS Code 高效“摸鱼”插件推荐
  9. linux 脚本 input,Linux 下通过命令行和脚本开关笔记本触控板和其他输入外设
  10. 【QT小记】设置窗口背景透明