C/C++教程

CrackMe01

本文主要是介绍CrackMe01,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 程序有明显弹框 猜测调用MessageBoxA 或者MessageBoxW 直接在这个函数下断点

加函数断点 bp MessageBoxA  在点击成功步入到断点位置 肯定是多调用 继续出函数看调用位置

 

 

或者直接看调用栈

 

 返回调用是成功发现 

 

知道了登录成功失败的调用call 直接还原代码

代码比较简单 几分钟看完

 

 

 

 

 

 

还原成c代码

 

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



int main(void)
{
    char name[255] = { 0 };
    char pass[255] = { 0 };
    int test = 0;
    scanf("%s %s", &name, &pass);

    if (strlen(name)<4)
    {
        printf("lose");
    }

    test = (int)name[0];
    test*= 41;
    test *= 2;

    sprintf(name, "CW-%d-CRACKED", test);

    if (strcmp(name, pass)==0)
    {
        printf("succeed");
    }
    else
    {
        printf("lose");
    }



}

 

 

 

这篇关于CrackMe01的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!