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

Crackme010

时间:2019-09-10 19:29:16      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:难度   ascii   字符连接   tree   strong   bsp   target   就是   turn   

Crackme010 的逆向分析

1.程序观察

技术图片

 

 

程序只有一个输入 Key 值的地方,尝试输入 "123",程序和 008、009 一样出现的还是德语错误提示,因为这都是一个人制作的小程序。
虽然这个程序标注的是 3星难度,但是我感觉这个程序和 009 一样,只是稍微有一点不同,难度应该也是 1星 才对。

 

 

 

2.简单查壳

 

技术图片

 

 

 无壳。

 

3.程序分析

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

技术图片

 

 

 双击进入代码,可以看到,和 009 几乎是一模一样。

技术图片

 

 

技术图片

 

 

技术图片

 

 

 程序流程大概就是:

  1. 程序首先求得输入 Key 的长度。
  2. 建立循环,循环次数为 Key 的长度。
  3. 每次取我们输入的 Key 的一个字符。
  4. 将字符转换为 ASCII 再加上 0xA。
  5. 再次转换为字符形式。
  6. 将转换过的字符连接起来。

 

在最后程序将转换过的字符串和字符串 "kXy^rO|*yXo*m\kMuOn*+"进行比较,如果相同进提示正确,不相同就提示错误。

 

 4.写出注册机

既然已经知道了转换的步骤,也有了正确的转换后的字符串,那么反推出正确的 Key 就是很简单的了。

 

#include <stdio.h>
#include <string.h>


int Key()
{
    char szKey[30] = "kXy^rO|*yXo*m\\kMuOn*+";
    int NameLen = 0;

    NameLen = strlen(szKey);

    for (int i = 0; i < NameLen; i++)
    {
        szKey[i] -= 0xa;
    }
    printf("%s", szKey);
    return 0;
}

int main(int argc, char* argv[])
{
    Key();
    return 0;
}

技术图片

 

 

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

 2019-09-10 19:15:56

Crackme010

标签:难度   ascii   字符连接   tree   strong   bsp   target   就是   turn   

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

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