Files
anit-cheat/Anit-Cheat_DLL/client_comm_shared.cpp
T
2026-08-24 14:47:59 +08:00

149 lines
3.2 KiB
C++

#include "client_comm_shared.h"
#include "private_funcion.h"
#include "utils.h"
#include "client_palpit.h"
#include "driver_func.h"
HANDLE hMapHandle;
PMAPPING_USER_MEMORY pMapping_Memory;
namespace client_shared_mapping
{
auto open_shared_mapping() -> HANDLE
{
//尝试打开管道建立通信
//Anit-Server进程没有起来就就等死
static int break_byte_count = 0;
while (true)
{
if (break_byte_count > 10)
break;
auto hMap = OpenFileMappingA(FILE_MAP_ALL_ACCESS, FALSE, SHARED_NAME);
if (hMap)
return hMap;
break_byte_count++;
Sleep(1000);
}
return FALSE;
}
auto mapping_shared_memory(HANDLE hMap) -> PMAPPING_USER_MEMORY
{
auto pData = (_MAPPING_USER_MEMORY*)MapViewOfFile(
hMap,
FILE_MAP_ALL_ACCESS,
0, 0,
0
);
return pData;
}
auto StartServerProcess(CONST char* Path, PDWORD status)->BOOL
{
if (GetFileAttributesA(Path) != INVALID_FILE_ATTRIBUTES)
{
char buf[256]{ 0 };
sprintf_s(buf, "%s\\ESP Anit-Cheat.exe", Path);
if (private_funcion::create_start_process(buf))
{
/*hMapHandle = client_shared_mapping::open_shared_mapping();
if (hMapHandle)
{
pMapping_Memory = client_shared_mapping::mapping_shared_memory(hMapHandle);
if (pMapping_Memory)
{
client_palpit::create_papit_thread(pMapping_Memory);
return TRUE;
}
}*/
//启动成功
*status = 0;
return TRUE;
}
else
{
//进程启动失败 | 权限不足
*status = 100;
}
}
else
{
*status = 101;
//文件不存在
auto string = "[Anit-Cheat]系统运行发生致命错误,错误代码:" + to_string(GetLastError());
MessageBoxA(NULL, string.c_str(), "您似乎遇到了一些问题", MB_OK);
return FALSE;
}
}
//auto anit_cheat_create_process() -> BOOL
//{
// BOOL bIsSrc;
// CHAR* lastSlash;
// CONST char* path = "C:\\Program Files\\AnitCheatFile\\Anit-Seriver.exe";
// if (GetFileAttributesA(path) != INVALID_FILE_ATTRIBUTES)
// {
// DWORD size = 0;
// auto filebuff = utils::ReadBinaryFile(path, &size);
// if (!filebuff)
// return FALSE;
// auto pNThander = reinterpret_cast<PIMAGE_NT_HEADERS>(filebuff + reinterpret_cast<PIMAGE_DOS_HEADER>(filebuff)->e_lfanew);
// auto pFilehander = &pNThander->FileHeader;
// if (!pFilehander->TimeDateStamp)
// return FALSE;
// auto buff_doshander = reinterpret_cast<PIMAGE_DOS_HEADER>(Anit_Cheat_EXE);
// auto buff_nthander = reinterpret_cast<PIMAGE_NT_HEADERS>((DWORD64)buff_doshander + buff_doshander->e_lfanew);
// auto buff_FileHander = &buff_nthander->FileHeader;
// if (!buff_FileHander->TimeDateStamp)
// return FALSE;
// if (buff_FileHander->TimeDateStamp != pFilehander->TimeDateStamp)
// goto create;
// goto run;
// }
// else
// {
// create:
// char dirPath[MAX_PATH];
// strcpy_s(dirPath, path);
// lastSlash = strrchr(dirPath, '\\');
// if (lastSlash) {
// *lastSlash = '\0';
// // 2. 创建目录(如果不存在)
// if (!utils::CreateDirectoryRecursive(dirPath)) {
// return FALSE;
// }
// }
// bIsSrc = utils::WriteShellcodeToFile(path, Anit_Cheat_EXE, sizeof(Anit_Cheat_EXE));
// if (bIsSrc)
// {
// run:
// bIsSrc = private_funcion::create_start_process(path);
// if (bIsSrc)
// return TRUE;
// }
// }
// return FALSE;
//}
}