添加项目文件。
This commit is contained in:
102
dllmain.cpp
Normal file
102
dllmain.cpp
Normal file
@@ -0,0 +1,102 @@
|
||||
// dllmain.cpp : 定义 DLL 应用程序的入口点。
|
||||
#include "pch.h"
|
||||
#include "HookUi.hpp"
|
||||
#include "Hook.hpp"
|
||||
|
||||
|
||||
|
||||
void LenheartThread()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
Sleep(10);
|
||||
static int 可开始执行判断;
|
||||
if (DNFTOOL::GetHook(0x1A5FB4C, "0x14+0x28+",0) == 6)
|
||||
{
|
||||
可开始执行判断 = 1;
|
||||
}
|
||||
if (可开始执行判断 == 1)
|
||||
{
|
||||
//获取验证服务器ip
|
||||
std::string Rqip = DNFTOOL::GetIP();
|
||||
//获取用户IP
|
||||
std::string ippack = DNFTOOL::GetUserIp();
|
||||
|
||||
std::vector<std::string> IpArr;
|
||||
DNFTOOL::Split(Rqip, IpArr, "->");
|
||||
|
||||
for (auto it = IpArr.begin(); it != IpArr.end(); ++it) {
|
||||
//验证并请求加载脚本
|
||||
std::string Iname = *it;
|
||||
std::vector<std::string> YmArr;
|
||||
DNFTOOL::Split(Iname, YmArr, "$$");
|
||||
bool In = DNFTOOL::ReqIpLicense(ippack, YmArr[0], YmArr[1]);
|
||||
//std::cout << Iname << "连接状态:" << In << std::endl;
|
||||
if (In)return;
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//初始化入口
|
||||
void Init() {
|
||||
//是否加载百级UI
|
||||
FILE* file = fopen("ImagePacks2/!HUD_Yosin百级UI.NPK", "rb");
|
||||
if (file)
|
||||
{
|
||||
HookHudUi();
|
||||
fclose(file);
|
||||
}
|
||||
//是否开启控制台
|
||||
FILE* file2 = fopen("ip.txt", "rb");
|
||||
if (file2)
|
||||
{
|
||||
AllocConsole();
|
||||
SetConsoleTitleA("Rindro_Console");
|
||||
SetConsoleOutputCP(65001);
|
||||
freopen(("CONOUT$"), ("w"), stdout);
|
||||
freopen(("CONOUT$"), ("w"), stderr);
|
||||
freopen(("CONIN$"), ("r"), stdin);
|
||||
|
||||
*(BYTE*)0x006FCC7D = 0xEB;//双开jmp
|
||||
*(BYTE*)0x006FCC7E = 0x09;
|
||||
*(BYTE*)0x006FCC7F = 0x90;//双开nop
|
||||
*(BYTE*)0x01122DA1 = 0xEB;//双开jmp
|
||||
*(BYTE*)0x01162ACC = 0xEB;//双开jmp
|
||||
fclose(file2);
|
||||
}
|
||||
|
||||
//消息框黏贴
|
||||
*(WORD*)0x011C53B0 = 0x01B0;
|
||||
|
||||
|
||||
//注册HOOK
|
||||
RegisterHook();
|
||||
|
||||
//多线程验证
|
||||
DWORD threadID;
|
||||
HANDLE Thand = 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:
|
||||
Init();
|
||||
case DLL_THREAD_ATTACH:
|
||||
case DLL_THREAD_DETACH:
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user