AIGC标识 神罚灭世剑

展示如下代码:

// 包含万能头文件(涵盖大部分C++标准库)
#include<bits/stdc++.h>
// Windows系统API头文件,用于窗口、睡眠、获取系统信息等
#include<windows.h>
// Windows Shell API,用于打开网页等操作
#include<shlobj.h>
// 时间相关函数头文件
#include<ctime>
// 使用标准命名空间,简化代码书写
using namespace std;

// ===================== 游戏全局变量定义 =====================
// 是否为管理员账号(false=普通玩家,true=管理员)
bool administrator=false;
// 玩家生命值
long long hp=150;
// 玩家金币/虚拟货币
long long crypto=300;
// 玩家经验值
long long xp=0;
// 玩家等级
long long lv=1;
// 物理每秒伤害
long long dps_p=20;
// 魔法每秒伤害
long long dps_m=100;
// 技能冷却时间
long long cd=20;
// 游戏关卡/阶段
unsigned char stg=10;

// ===================== 加密与验证相关函数 =====================
// 获取管理员密码(字符串拼接隐藏密码)
string getAdminPwd()
{
    string part1="60cacbf3d72e1e78";
    string part2="34203da608037b1bf83b40e8";
    return part1+part2;
}

// 生成64字节的随机数据块(用于加密种子)
void genUcDataBlock(unsigned char buf[64])
{
    unsigned char seed=0x6B;  // 初始种子
    for(int i=0;i<64;i++)
    {
        seed ^= (i*17)+0x23;       // 异或运算更新种子
        buf[i] = seed;             // 存入数据块
        seed = (seed<<3)|(seed>>5);// 循环移位,增加随机性
    }
}

// 获取假密钥(干扰逆向分析)
long long getFakeKey()
{
    return 0x8877665544332211;
}

// 获取隐藏的验证域名(字符串分段拼接)
string getHideDomain()
{
    string a="game.auth.";
    string b="key2026.";
    string c="com";
    return a+b+c;
}

// 计算域名哈希值(用于动态密钥生成)
long long getDomainHash()
{
    string dom=getHideDomain();
    long long h=0x3F8B2D7E1C5A9048;          // 初始哈希值
    for(char c:dom)
        h ^= (h<<5)+(h>>3)+c+0x27BD9135;     // 逐字符计算哈希
    return h;
}

// 计算程序路径哈希值
long long getPathHash()
{
    char path[256]={0};
    GetModuleFileNameA(NULL,path,256);      // 获取当前程序完整路径
    long long h=0x5E2947186A3B80CF;
    for(int i=0;path[i];i++)
        h ^= (h<<4)+path[i]+(h>>6);
    return h;
}

// 计算当前时间哈希值(时分)
long long getTimeHash()
{
    time_t now=time(0);                     // 获取当前时间戳
    tm* ltm=localtime(&now);                // 转换为本地时间
    long long t=ltm->tm_hour*60+ltm->tm_min;// 总分钟数
    return t ^ 0x927365184ACBDEF0;
}

// 计算Windows用户名哈希值
long long getUserNameHash()
{
    char un[128]={0};
    DWORD sz=128;
    GetUserNameA(un,&sz);                   // 获取当前登录用户名
    long long h=0x2D47915E386AC0BF;
    for(int i=0;un[i];i++)
        h ^= (h<<3)+un[i]+(h>>5);
    return h;
}

// 计算屏幕分辨率哈希值
long long getScreenHash()
{
    int w=GetSystemMetrics(SM_CXSCREEN);    // 屏幕宽度
    int h=GetSystemMetrics(SM_CYSCREEN);    // 屏幕高度
    return (long long)w<<32 | h ^ 0x4829AC71356FBD0E;
}

// 检测调试器/逆向工具是否运行(反作弊)
bool isToolsRunning()
{
    HWND h;
    // 检测常见逆向工具窗口
    h=FindWindowA("x64dbg",NULL);if(h)return true;
    h=FindWindowA("OllyDbg",NULL);if(h)return true;
    h=FindWindowA("IDA Pro",NULL);if(h)return true;
    BOOL dbg=FALSE;
    // 检测是否被调试器附加
    CheckRemoteDebuggerPresent(GetCurrentProcess(),&dbg);
    return dbg;
}

// 动态密钥三部分计算
long long calcKeyPart1(){return getDomainHash() ^ getPathHash();}
long long calcKeyPart2(){return getTimeHash() ^ getUserNameHash();}
long long calcKeyPart3(){return getScreenHash() ^ getFakeKey();}

// ===================== 存档加密/解密算法 =====================
// 加密算法A
void encodeA(long long &v,long long key)
{
    v^=key;v*=127;v+=0x55AA55AA55AA55AA;
    v^=key^0x123456789ABCDEF0;v=(v<<9)|(v>>(64-9));
}
// 加密算法B
void encodeB(long long &v,long long key)
{
    v=(v^key)+0x3377992244668811;v^=key<<4;v*=131;
}
// 加密算法C
void encodeC(long long &v,long long key)
{
    v^=key>>3;v-=0x28AC67BD1935EF40;v^=key;
}
// 解密算法A(对应encodeA)
void decodeA(long long &v,long long key)
{
    v=(v>>9)|(v<<(64-9));v^=key^0x123456789ABCDEF0;
    v-=0x55AA55AA55AA55AA;v/=127;v^=key;
}
// 解密算法B(对应encodeB)
void decodeB(long long &v,long long key)
{
    v/=131;v^=key<<4;v-=0x3377992244668811;v^=key;
}
// 解密算法C(对应encodeC)
void decodeC(long long &v,long long key)
{
    v^=key;v+=0x28AC67BD1935EF40;v^=key>>3;
}

// 生成动态加密密钥(多系统信息混合+反调试)
long long getDynamicKey()
{
    if(isToolsRunning()) exit(0);          // 发现调试直接退出
    unsigned char ucDataBlock[64];
    genUcDataBlock(ucDataBlock);

    long long k=0;
    for(int i=0;i<64;i++)
    {
        k ^= ucDataBlock[i] << (i%7);
        k += ucDataBlock[(i*13)%64];
    }
    // 多维度信息异或混合生成最终密钥
    k ^= calcKeyPart1();
    k ^= calcKeyPart2();
    k ^= calcKeyPart3();
    k ^= 0x7A19F3D52CB8E460;
    return k;
}

// 统一加密入口(自动选择算法)
void encode(long long &v,int algType)
{
    long long key=getDynamicKey();
    if(algType==1) encodeA(v,key);
    else if(algType==2) encodeB(v,key);
    else encodeC(v,key);
}
// 统一解密入口
void decode(long long &v,int algType)
{
    long long key=getDynamicKey();
    if(algType==1) decodeA(v,key);
    else if(algType==2) decodeB(v,key);
    else decodeC(v,key);
}

// ===================== 游戏存档功能 =====================
// 保存游戏到save.bin(加密存储)
void saveGame()
{
    long long buf[8];
    // 按顺序存入所有游戏属性
    buf[0]=administrator;
    buf[1]=hp;
    buf[2]=crypto;
    buf[3]=xp;
    buf[4]=lv;
    buf[5]=dps_p;
    buf[6]=dps_m;
    buf[7] = (hp+crypto) ^ (lv+xp) ^ (dps_p+dps_m); // 校验值

    int alg=rand()%3+1;                            // 随机选择加密算法
    for(int i=0;i<8;i++) encode(buf[i],alg);       // 全部加密
    buf[0] = buf[0] | ((long long)alg<<56);         // 将算法类型存入最高8位

    ofstream f("save.bin",ios::binary);            // 二进制写入文件
    f.write((char*)buf,64);
    f.close();
    cout<<"存档成功!"<<endl;
    Sleep(1500);
}

// 读取游戏存档(解密+校验)
bool loadGame()
{
    if(isToolsRunning()) exit(0);
    long long buf[8];
    ifstream f("save.bin",ios::binary);
    if(!f)return false;        // 文件不存在则失败
    f.read((char*)buf,64);
    f.close();

    int alg = (buf[0]>>56) & 0xFF;     // 提取加密算法类型
    buf[0] &= 0x00FFFFFFFFFFFFFFLL;    // 清除算法标识位

    for(int i=0;i<8;i++)decode(buf[i],alg); // 全部解密

    // 校验数据是否被篡改
    long long chk1 = (buf[1]+buf[2]) ^ (buf[4]+buf[3]) ^ (buf[5]+buf[6]);
    if(chk1 != buf[7]) return false;

    // 恢复游戏数据
    administrator=buf[0];
    hp=buf[1];
    crypto=buf[2];
    xp=buf[3];
    lv=buf[4];
    dps_p=buf[5];
    dps_m=buf[6];
    return true;
}

// ===================== 游戏动画与界面 =====================
// 模拟游戏下载动画
void pr(){
    system("cls");
    Sleep(1000);
    cout<<"游戏正在下载中……";
    Sleep(2000);
    for(int i=1;i<=100;i++){
        system("cls");
        cout<<i;
        Sleep(100);
    }
    Sleep(1000);
    cout<<"下载成功";
}

// 模拟检查更新动画
void cg(){
    system("cls");
    Sleep(1000);
    cout<<"检查更新中……";
    Sleep(2000);
    for(int i=1;i<=100;i++){
        system("cls");
        cout<<i;
        Sleep(50);
    }
    Sleep(1000);
    cout<<"无更新";
}

// 模拟加载游戏动画
void pj(){
    system("cls");
    Sleep(1000);
    cout<<"加载游戏中(此过程不耗费流量)……";
    Sleep(2000);
    for(int i=1;i<=100;i++){
        system("cls");
        cout<<i;
        Sleep(30);
    }
    Sleep(1000);
    system("cls");
    cout<<"进入游戏中……";
    Sleep(2000);
}

// 游戏启动LOGO展示
void qzbz(){
    system("cls");
    cout<<"神 罚 灭 世 剑"<<endl;
    cout<<"版本      1.0(超度版)"<<endl;
    Sleep(15000);
    system("cls");
}

// ===================== 账号与权限 =====================
// 管理员账号登录(满属性无敌模式)
void administrator_account(){
    cout<<"管理员登录成功!"<<endl;
    administrator=true;
    hp=9223372036854775806;
    crypto=9223372036854775806;
    xp=9223372036854775806;
    lv=9223372036854775806;
    dps_p=9223372036854775806;
    dps_m=9223372036854775806;
    cd=0;
    stg=250;
}

// 普通用户登录
void user_account(){
    cout<<"普通用户登录"<<endl;
    administrator=false;
}

// 用户登录选择界面
void user_admin(){
    cout<<"请输入用户指标数值:(administrator[0]/user[1]):";
    int cinuser;
    cin>>cinuser;
    if(cinuser==0){
        cout<<"输入密码:";
        string s;
        cin>>s;
        if(s==getAdminPwd()){
            cout<<"密码正确!"<<endl;
            administrator_account();
        }else{
            cout<<"密码错误!"<<endl;
        }
    }else if(cinuser==1){
        user_account();
    }else{
        cout<<"输入无效!"<<endl;
    }
    Sleep(2000);
}

// ===================== 主菜单 =====================
// 游戏主菜单循环
void menu(){
    while(1){
        system("cls");
        cout<<"===== 神罚灭世剑 =====\n";
        cout<<"1. 战役开始\n";
        cout<<"2. 查看属性\n";
        cout<<"3. 保存游戏\n";
        cout<<"4. 读取游戏\n";
        cout<<"5. 其他游戏\n";
        cout<<"6. 直接退出\n";
        cout<<"7. 退出并保存\n";
        cout<<"======================\n";
        cout<<"请选择:";
        int op;
        cin>>op;

        // 查看玩家属性
        if(op==2){
            system("cls");
            cout<<"HP: "<<hp<<"\n金币: "<<crypto<<"\n等级: "<<lv<<endl;
            system("pause");
        }
        // 手动保存
        if(op==3)saveGame();
        // 手动读档
        if(op==4){
            bool ok=loadGame();
            if(ok)cout<<"? 读档成功!\n";
            else cout<<"? 读档失败!\n";
            Sleep(2000);
        }
        // 打开其他游戏链接
        if(op==5){
            int yxxz;
            cout<<"1.战火英雄1,2,3\n";
            cin>>yxxz;
            if(yxxz==1){
                cout<<"地址:https://pan.baidu.com/s/18sGjlMJebmDKfOQJSZCpJw?pwd=0000";
                Sleep(100);
                ShellExecuteA(NULL, "open", "https://pan.baidu.com/s/18sGjlMJebmDKfOQJSZCpJw?pwd=000", NULL, NULL, SW_SHOWNORMAL);
            }
        }
        // 直接退出游戏
        if(op==6)exit(0);
        // 保存并退出
        if(op==7){
            saveGame();
            exit(0);
        }
    }
}

// ===================== 游戏启动流程 =====================
void start(){
    if(isToolsRunning()) exit(0);     // 反调试检测
    srand((unsigned)time(0));          // 初始化随机数种子
    loadGame();                       // 自动读取上次存档
    pr();     // 下载动画
    cg();     // 更新动画
    pj();     // 加载动画
    qzbz();   // LOGO展示
    user_admin(); // 账号登录
    menu();   // 进入主菜单
}

// ===================== 程序入口 =====================
int main(){
    system("chcp 936");       // 设置控制台编码为GBK,正常显示中文
    system("mode con cols=85 lines=30"); // 设置控制台窗口大小
    start();                  // 启动游戏
    return 0;
}
posted @ 2026-08-29 19:42  PHKLSA  阅读(27)  评论(0)    收藏  举报