Crackme010

Posted white-album2

tags:

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

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的主要内容,如果未能解决你的问题,请参考以下文章

[CrackMe]160个CrackMe之19

[CrackMe]160个CrackMe之40

[CrackMe]160个CrackMe之40

[CrackMe]一个关于读取文件并进行运算判断的CrackMe

IOLI-crackme0x01-0x05 writeup

IOLI-crackme0x06-0x09 writeup