📄 loginser.cpp
字号:
// LoginSer.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
#include "LoginSer.h"
#include "AllMyInclude.h"
#ifdef _MANAGED
#pragma managed(push, off)
#endif
extern BYTE LeaClientIPToEbx[];
extern BYTE LeaMovSelGateSerIPToEbx[];
extern HANDLE Write_Mutex;
HHOOK MainWndHook;
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
////////////////////////////////////////////////
//-----------------建立全局互斥对象----------目的是防止多线程同时修改目标地址
Write_Mutex = ::CreateMutex( NULL, false, _T("SelGateIPChange"));
//::MessageBox( NULL,_T("DLL_PROCESS_ATTACH"),_T("提示"),NULL);
DetourMyCode( 0x00406408,7, (DWORD)(DWORD_PTR)GetClientIP, LeaClientIPToEbx, 3 );
DetourMyCode( 0x00409A9D,5, (DWORD)(DWORD_PTR)GetSelGateIPAddr, LeaMovSelGateSerIPToEbx, 5 );
DetourGame(0x00406418, 5,(DWORD)(DWORD_PTR)DomainToIP);
//DetourGame(0x004063FD, 7,(DWORD)(DWORD_PTR)CallWaitMutex);
//DetourGame(0x00407033, 6,(DWORD)(DWORD_PTR)ReleaseExMutex);
MainWndHook = ::SetWindowsHookEx( WH_CALLWNDPROC, (HOOKPROC)MyWindProc,hModule ,GetCurrentThreadId() );
break;
case DLL_THREAD_ATTACH:
//::MessageBox( NULL,_T("DLL_THREAD_ATTACH"),_T("提示"),NULL);
break;
case DLL_THREAD_DETACH:
//::MessageBox( NULL,_T("DLL_THREAD_DETACH"),_T("提示"),NULL);
break;
case DLL_PROCESS_DETACH:
//::MessageBox( NULL,_T("DLL_PROCESS_DETACH"),_T("提示"),NULL);
::CloseHandle( Write_Mutex );
break;
}
return TRUE;
}
#ifdef _MANAGED
#pragma managed(pop)
#endif
// 这是导出变量的一个示例
LOGINSER_API int nLoginSer=0;
// 这是导出函数的一个示例。
LOGINSER_API int fnLoginSer(void)
{
return 42;
}
// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 LoginSer.h
CLoginSer::CLoginSer()
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -