首页 > 其他 > 详细

Crackme029

时间:2019-10-18 12:41:07      阅读:60      评论:0      收藏:0      [点我收藏+]

Crackme029 的逆向分析 

1.程序观察

 技术分享图片
从界面上来看,和 Crackme028没有区别,但是这个并不会自动退出。

 

2.简单查壳

 技术分享图片

没有壳。

 

3.程序分析

技术分享图片

前面的流程和 Crackme028 差不多,都是先比较用户名和序列号的长度,小于6就弹窗提示错误。然后获取输入的用户名和序列号。

 

后面的流程就和 Crackme028 不一样了

技术分享图片

程序有3个循环。第一个循环分别将用户名的每个字符进行异或。
第二个循环分别将序列号的每个字符进行异或。
第三个循环比较用户名和序列号的每个字符是否相同,不同则错误。

 

 4.注册机

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


int Keygen()
{
    char szName[20] = { 0 };
    char szSerial[120] = { 0 };
    int NameLen = 0;

    printf("请输入用户名:");
    scanf_s("%s", szName, 20);
    NameLen = strlen(szName);

    for (int i = 0x0; i < NameLen; i++)
    {
        szName[i] ^= (i + 0x1);
        szSerial[i] = szName[i] ^ (i + 0xA);
    }


    printf("%s", szSerial);

    return 0;
}


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

 技术分享图片

 

 

 

相关文件在我的 Github 

Crackme029

原文:https://www.cnblogs.com/white-album2/p/11697495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!