// dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" #if defined LOCALHOSTS_SWITCH void LenheartThread(void) { // 下方写全局变量 static int Nut头地址; static int 属性头地址; static int 可开始执行判断; while (true) { Sleep(10); if (DNFTOOL::GetHook(0x1A5FB4C, "0x14+0x28+") == 6)可开始执行判断 = 1; if (可开始执行判断 == 1)//选频道界面 游戏初始化完毕 { //hook::InitGameScript(); while (true) { Sleep(10); if (DNFTOOL::GetExeNutWrtNum(61) != 0 && Nut头地址 == 0)Nut头地址 = DNFTOOL::GetExeNutWrtNum(61); //if (GetExeNutWrtNum(61 != 0))属性头地址 = GetExeNutWrtNum(61); if (DNFTOOL::GetExeNutWrtNum(0) == 666) { std::cout << u8"写成功" << std::endl;; DNFTOOL::SetExeNutWrtNum(0, 0); DNFTOOL::SetNutArrNum(Nut头地址 , 20, 0); } } } } } #else void LenheartThread() { static int 可开始执行判断; std::string Rqip = DNFTOOL::GetIP(); std::string MyIp; httplib::Client* IPCliObj = NULL;// http连接主体 IPCliObj = new httplib::Client("ip.json-json.com");//初始化 http 对象 auto res = IPCliObj->Get("/"); if (res->status == 200)//如果返回包正常 { MyIp = res->body;//取得date } while (true) { Sleep(10); if (DNFTOOL::GetHook(0x1A5FB4C, "0x14+0x28+") == 6)可开始执行判断 = 1; if (可开始执行判断 == 1) { std::string ippack; int gameip = *(int*)0x1AE9CEC; if (gameip == 3735601) { ippack = MyIp; } else { wchar_t* wgameip = (wchar_t*)0x1AE9CEC; DNFTOOL::Wchar_tToString(ippack, wgameip); } LenheartBase::CBASE64 bb; ippack += "nima"; std::string rsastring = bb.RsaPriEncrypt(ippack, Pri_key); std::string enstring = bb.encode(rsastring); httplib::Client* CliObj = NULL;// http连接主体 CliObj = new httplib::Client(Rqip + ":9007");//初始化 http 对象 httplib::Params ParamsObj;//新建 Params 对象 ParamsObj.emplace("zz", enstring.c_str());//加入账号数据进数据包 auto res = CliObj->Post("/zz", ParamsObj); if (res->status == 200)//如果返回包正常 { //res->status; std::string date = res->body;//取得date std::string base64code = bb.decode(date); std::string decrypt_text = bb.RsaPriDecrypt(base64code, Pri_key); long long redate = atoll(decrypt_text.c_str()) / 1000; time_t myt = time(0); long long nowdate = (long long)myt; __int64 absnum = abs(nowdate - redate); if (absnum < 18000) { //RegisterNut(); //RunNut(); hook::InitGameScript(); while (true) { Sleep(16000); } } else { ExitProcess(0); break; } } else { ExitProcess(0); break; } } } } #endif __declspec(dllexport) void Lenheart() { DWORD threadID; CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)LenheartThread, NULL, 0, &threadID); } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: //Sleep(5000); //std::cout << HOOK() << std::endl; hook::RegisterHook(); Lenheart(); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }