码迷,mamicode.com
首页 > 其他好文 > 详细

Crackme030

时间:2019-10-21 12:07:39      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:依次   str   异或   需要   href   ble   字符串   开头   mamicode   

Crackme030 的逆向分析 

1.程序观察

 技术图片
程序刚打开的界面是空白的,只有两个按钮。
 
点击 File,里面有个 Password 按钮,点击才会出现输入密码的界面
技术图片

 

技术图片

 

2.简单查壳

 技术图片

没有壳。

 

3.程序分析

 因为程序是使用 VB5 编写的,所以我们先使用 VB Decompiler 加载程序看一下

技术图片

 可以看到,程序有3个面板,6个点击事件。地址 4030F0 处的代码可能就是我们需要的。

 然后使用 OD 载入程序,搜索字符串

技术图片

 

进入代码处,可以看到上方不远处有一个比较函数

技术图片

 

运行到此处,查看函数的参数

技术图片

 

 技术图片

第一个参数本应该是我们输入的密码才对,我在此输入的是 123456,但现在却是一些莫名其妙的符号。
第二个参数应该就是正确的密码。

 

因为第一个参数不是我们原本输入的密码,所以我们猜想程序可能对我们输入的密码进行了一些处理之后,才进行的比较。所以我们要对上面的字符串进行相应的逆处理,才能得到真正的密码。

来到代码开头,也就是上面看到的地址 4030F0 处,下断点,运行程序

技术图片

 

 程序首先获取输入的密码,然后求得密码的长度

 

然后建立循环,循环次数为密码的长度。在循环中,程序每次取输入密码的一个字符,求得其 ASCII 值。然后依次和字符串 "2000" 的单个字符的 ASCII 值进行异或运算。也就是说,密码的第一个字符的 ASCII 值和 2 的 ASCII 值进行异或运算,密码的第二个字符对应 0进行运算,密码的第5个字符又再次和 2相对应进行运算。

技术图片

 

 技术图片

 循环完成之后,才会进行比较

技术图片

 

根据其方法,我们可以反推出其真正的密码

我们将字符串"qBQSYdXUe_B\V"再一次和字符串"2000"进行异或运算即可

技术图片

 

 技术图片

 

 

 

相关文件在我的 Github 

Crackme030

标签:依次   str   异或   需要   href   ble   字符串   开头   mamicode   

原文地址:https://www.cnblogs.com/white-album2/p/11712249.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!