神罚灭世剑
展示如下代码:
// 包含万能头文件(涵盖大部分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;
}

浙公网安备 33010602011771号