Crackme021 的逆向分析

1.程序观察

可以看到,name 其实是让输入英文的,输入数字就会出现像图1那样的弹窗。
只有输入英文字母的时候,程序才会真正开始验证输入的是否正确,而且一个用户名是有两个验证码的。

2.简单查壳

程序使用 Delphi 编写,无壳。

3.程序分析

OD 载入程序,搜索字符串。

进入代码,来到代码块开头,下断点,点击 Try 按钮,程序就断了下来

程序会比较内存42F714和内存42F718处的值,如果是0,就会弹窗报错

如果都不为0,才会进行接下来的验证程序。

  1. 程序获取三个输入框的值,比较是否为0
  2. 再次比较两个内存处的值是否为0
  3. 依次将内存42F714 和内存42F718处的值转化为字符串,再和两个序列号进行比较,全部相同,就会提示正确

那么内存 42F714 和内存 42F718 处的值从哪里来的呢?
其实是在我们输入用户名的时候,程序就计算出来的。

使用 IDR 载入程序,可以看到有一个键盘输入事件

程序会得到输入的字符,然后进行比较,是否为非法字符串,如果是,就跳转走;如果不是,就来到给内存  42F714 和内存 42F718 赋值的地方

根据输入不同的字母,给两处内存加上不同的值。

因为程序内有固定的表,所以也不用写注册机了,自己算一算就行了。

相关文件在我的 Github:https://github.com/UnreachableLove/160-Crackme/tree/master/Crackeme021

2019-09-23 21:55:50

转载于:https://www.cnblogs.com/white-album2/p/11575174.html

Crackeme021相关推荐

最新文章

  1. python函数type的用意_python之type函数
  2. 网络推广团队分享新手必看的长尾关键词挖掘技巧!
  3. WOrd ,excel实现打印功能
  4. iviewui php,Vue UI框架对比:Element UI、Ant Design Vue、iView
  5. python property方法_Python——property(使一个方法看起来就像类属性一样)
  6. java B2B2C Springboot电子商城系统
  7. 服务器上装filezilla server后,本地的ftp客户端连接不上去
  8. 为何有些程序员总是想要“干掉”产品经理?
  9. RE2正则表达式引擎资料
  10. Qt实现Areo效果_vortex_新浪博客
  11. php服务端setcookie()原理
  12. asc怎么用 linux zip_asc文件扩展名,asc文件怎么打开?
  13. 金蝶云星空根据采购价目表写入自定义采购入库单是否价目表字段
  14. Gradle简要教程
  15. 50 个实用小工具(图片处理、截屏录屏、格式转化、下载工具、浏览器、工具箱等)
  16. OSChina 周四乱弹 ——程序员们离职的理由。
  17. Windows和Mac系统盘瘦身的一些经验
  18. mysql求回购率_SQL-- 用户行为(复购率、回购率等)
  19. markdown语法简明教程(一)
  20. windows服务创建

热门文章

  1. vue router-view 匹配路由后,第一次可以点击,再次点击同一个路由无响应,如何处理?
  2. vscode中文_VS Code 中文社区正式成立啦!VS Code Day 圆满落幕!
  3. python谱聚类算法_谱聚类 - python挖掘 - 博客园
  4. spss与python和sql区别_Python/Excel/SPSS/SQL数据处理方法比较之2 - 数据查看
  5. mask属性是css3的吗_CSS滤镜之Mask属性
  6. 【HDOJ4699】Editor(对顶栈,模拟)
  7. 【JSOI2008】【bzoj1012】最大数maxnumber
  8. 【编译器】G++相关编译命令
  9. 塔设备设计手册_石油化工设备设计选用手册 塔器
  10. c语言有趣的编程代码,一个有趣的小程序