Crackeme021

Posted white-album2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Crackeme021相关的知识,希望对你有一定的参考价值。

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

 

以上是关于Crackeme021的主要内容,如果未能解决你的问题,请参考以下文章

lc 753. Cracking the Safe

MATLAB的crack安装小曲

753. Cracking the Safe

crack|erosion|strip|

753. Cracking the Safe

Leetcode 753. Cracking the Safe