吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3485|回复: 12
收起左侧

[KeyGenMe] [求助]自己做的kengenme,自己解不出来

  [复制链接]
eureka0225 发表于 2019-12-21 11:07
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

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[MAX_LEN];
    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[md][/md]

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
bianfanggege + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zfzhhh 发表于 2019-12-21 12:33
这个cm太简单,会被打
https://www.bilibili.com/video/av80055819/

免费评分

参与人数 3吾爱币 +4 热心值 +2 收起 理由
hengtongwl + 2 + 1 热心回复!
Shuar耍耍 + 1 牛比
魂殇 + 1 + 1 牛b

查看全部评分

冥界3大法王 发表于 2019-12-21 12:17
[Asm] 纯文本查看 复制代码
#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[MAX_LEN];
    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;
}

代码 是不是有问题啊,好多的#
 楼主| eureka0225 发表于 2019-12-21 14:28
 楼主| eureka0225 发表于 2019-12-21 14:33
zfzhhh 发表于 2019-12-21 12:33
这个cm太简单,会被打
https://www.bilibili.com/video/av80055819/

这。。这是keygen
solly 发表于 2019-12-21 17:13

[C++] 纯文本查看 复制代码
#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[MAX_LEN];
    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;
}
涛之雨 发表于 2019-12-21 18:48
[C++] 纯文本查看 复制代码
//。。。。。。。以上省略
 if (kk==k){
        cout<<"Ok, you kengened me!"<<endl;
    }
//。。。。。。。以下省略


所以既然判断了,直接把kk输出不就好了。。。
去掉判断,直接输出kk,重新编译一下。
不就行了?还是楼主要分析出Keygen?那源码在这里,也没有意义啊。。。
zfzhhh 发表于 2019-12-21 21:02

不太明白规则,
你这个给的源码,里面有加密过程.
所以如果要keygen,最简单的是直接复制源码做出来.

你的意思是想通过编译后的exe,分析出来,而遇到困难是吗?
hao5205420 发表于 2019-12-22 09:42
大神还真多 在这扎堆了都
 楼主| eureka0225 发表于 2019-12-22 12:00
zfzhhh 发表于 2019-12-21 21:02
不太明白规则,
你这个给的源码,里面有加密过程.
所以如果要keygen,最简单的是直接复制源码做出来.

是这样的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表