[求助]自己做的kengenme,自己解不出来
code:```
#include <bits/stdc++.h>
#include <iostream>
#include <string>
#ifdef linux
#include <unistd.h>
#include <pwd.h>
#endif
#ifdef _WIN32
#include<Windows.h>
#endif
using namespace std;
#include<stdio.h>
#include<string.h>
string xxooxxxoooxooxoooxo()
{
#if defined linux //linux system
uid_t userid;
struct passwd* pwd;
userid=getuid();
pwd=getpwuid(userid);
return pwd->pw_name;
#elif defined _WIN32
const int MAX_LEN = 100;
char szBuffer;
DWORD len = MAX_LEN;
if( GetUserName(szBuffer, &len) )
return szBuffer;
#else
return "";
#endif
}
int main()
{
hash<string> h;
string xxxooxx=xxooxxxoooxooxoooxo();
string n;
string k;
cout<<"Name:";
cin>>n;
string xxooxx=n+xxxooxx;
size_t kkk=h(xxooxx);
string kk=to_string(kkk);
cout<<"Key:";
cin>>k;
if(xxooxx.length()>17)
{
cout<<"Too Long!"<<endl;
return 0;
}
if(kk==k){
cout<<"Ok, you kengened me!"<<endl;
}else{
cout<<"Key error!"<<endl;
}
system("pause");
return 0;
}```
自制keygenme拿来练手的,自己解不出来了,求大神帮忙
可能大家理解有误,我的意思是试图通过逆向等方式从编译出来的exe中获取key 这个cm太简单,会被打
https://www.bilibili.com/video/av80055819/ #include <bits/stdc++.h>
#include <iostream>
#include <string>
#ifdef linux
#include <unistd.h>
#include <pwd.h>
#endif
#ifdef _WIN32
#include<Windows.h>
#endif
using namespace std;
#include<stdio.h>
#include<string.h>
string xxooxxxoooxooxoooxo()
{
#if defined linux //linux system
uid_t userid;
struct passwd* pwd;
userid=getuid();
pwd=getpwuid(userid);
return pwd->pw_name;
#elif defined _WIN32
const int MAX_LEN = 100;
char szBuffer;
DWORD len = MAX_LEN;
if( GetUserName(szBuffer, &len) )
return szBuffer;
#else
return "";
#endif
}
int main()
{
hash<string> h;
string xxxooxx=xxooxxxoooxooxoooxo();
string n;
string k;
cout<<"Name:";
cin>>n;
string xxooxx=n+xxxooxx;
size_t kkk=h(xxooxx);
string kk=to_string(kkk);
cout<<"Key:";
cin>>k;
if(xxooxx.length()>17)
{
cout<<"Too Long!"<<endl;
return 0;
}
if(kk==k){
cout<<"Ok, you kengened me!"<<endl;
}else{
cout<<"Key error!"<<endl;
}
system("pause");
return 0;
}
代码 是不是有问题啊,好多的# 冥界3大法王 发表于 2019-12-21 12:17
#include
#include
#include
代码能过.. zfzhhh 发表于 2019-12-21 12:33
这个cm太简单,会被打
https://www.bilibili.com/video/av80055819/
这。。这是keygen{:1_937:} eureka0225 发表于 2019-12-21 14:33
这。。这是keygen
#include <bits/stdc++.h>
#include <iostream>
#include <string>
#ifdef linux
#include <unistd.h>
#include <pwd.h>
#endif
#ifdef _WIN32
#include<Windows.h>
#endif
using namespace std;
#include<stdio.h>
#include<string.h>
string xxooxxxoooxooxoooxo()
{
#if defined linux //linux system
uid_t userid;
struct passwd* pwd;
userid=getuid();
pwd=getpwuid(userid);
return pwd->pw_name;
#elif defined _WIN32
const int MAX_LEN = 100;
char szBuffer;
DWORD len = MAX_LEN;
if( GetUserName(szBuffer, &len) )
return szBuffer;
#else
return "";
#endif
}
int main()
{
hash<string> h;
string xxxooxx=xxooxxxoooxooxoooxo();
string n;
string k;
cout<<"Name: ";
cin>>n;
string xxooxx=n+xxxooxx;
size_t kkk=h(xxooxx);
string kk=to_string(kkk);
cout<<" Key: "<<kk.c_str()<<endl;
//system("pause");
return 0;
}
//。。。。。。。以上省略
if (kk==k){
cout<<"Ok, you kengened me!"<<endl;
}
//。。。。。。。以下省略
所以既然判断了,直接把kk输出不就好了。。。
去掉判断,直接输出kk,重新编译一下。
不就行了?还是楼主要分析出Keygen?那源码在这里,也没有意义啊。。。 eureka0225 发表于 2019-12-21 14:33
这。。这是keygen
不太明白规则,
你这个给的源码,里面有加密过程.
所以如果要keygen,最简单的是直接复制源码做出来.
你的意思是想通过编译后的exe,分析出来,而遇到困难是吗? 大神还真多 在这扎堆了都 zfzhhh 发表于 2019-12-21 21:02
不太明白规则,
你这个给的源码,里面有加密过程.
所以如果要keygen,最简单的是直接复制源码做出来.
是这样的
页:
[1]
2