📄 forcelib.h
字号:
/*
-> ForceLib.h
This is a small header file to make the usage of ForceLibrary.dll easier
with C/C++.
Just include this file and you can start using the functions.
by yoda
*/
#ifndef __ForceLibraryHeader__
#define __ForceLibraryHeader__
// the dll prototypes
typedef DWORD (WINAPI* fForceLibrary)(CHAR* szLibraryPath,PROCESS_INFORMATION* pProcInfo);
typedef BOOL (WINAPI* fTrapEntry)(DWORD dwEntryPoint,PROCESS_INFORMATION *pPI);
typedef BOOL (WINAPI* fForceLibraryDBG)(CHAR* szTargetLib,DWORD dwEntryPoint,PROCESS_INFORMATION *pPI);
typedef DWORD (WINAPI* fPerformCleanup)(DWORD dwEntryPoint,PROCESS_INFORMATION *pPI);
// functions
BOOL LoadFL();
DWORD ForceLibrary(CHAR* szLibraryPath,PROCESS_INFORMATION* pProcInfo);
BOOL TrapEntry(DWORD dwEntryPoint,PROCESS_INFORMATION *pPI);
BOOL ForceLibraryDBG(CHAR* szTargetLib,DWORD dwEntryPoint,PROCESS_INFORMATION *pPI);
DWORD PerformCleanup(DWORD dwEntryPoint,PROCESS_INFORMATION *pPI);
// constants
const CHAR* szDllName = "ForceLibrary.dll";
const PSTR szFunctNameFL = "ForceLibrary";
const PSTR szFunctNameTE = "TrapEntry";
const PSTR szFunctNameFLDBG = "ForceLibraryDBG";
const PSTR szFunctNamePC = "PerformCleanup";
const CHAR* szError = "ERROR";
const DWORD dwMsgFlags = MB_ICONERROR | MB_TASKMODAL;
const CHAR* szDllNotFound = "ForceLibrary.dll wasn't found !";
const CHAR* szGetProcError = "Error during Dll initialization !";
// variables
fForceLibrary _ForceLibrary;
fTrapEntry _TrapEntry;
fForceLibraryDBG _ForceLibraryDBG;
fPerformCleanup _PerformCleanup;
HANDLE hFL = 0;
BOOL LoadFL()
{
hFL = LoadLibrary(szDllName);
if (!hFL)
{
MessageBox(0,szDllNotFound,szError,dwMsgFlags);
return FALSE;
}
_ForceLibrary = (fForceLibrary)GetProcAddress((HMODULE)hFL,szFunctNameFL);
_TrapEntry = (fTrapEntry)GetProcAddress((HMODULE)hFL,szFunctNameTE);
_ForceLibraryDBG = (fForceLibraryDBG)GetProcAddress((HMODULE)hFL,szFunctNameFLDBG);
_PerformCleanup = (fPerformCleanup)GetProcAddress((HMODULE)hFL,szFunctNamePC);
if (!_ForceLibrary ||
!_TrapEntry ||
!_ForceLibraryDBG ||
!_PerformCleanup)
{
MessageBox(0,szGetProcError,szDllName,dwMsgFlags);
return FALSE;
}
return TRUE;
}
BOOL TrapEntry(DWORD dwEntryPoint,PROCESS_INFORMATION *pPI)
{
if (!hFL)
if (!LoadFL())
return FALSE;
return _TrapEntry(dwEntryPoint,pPI);
}
BOOL ForceLibraryDBG(CHAR* szTargetLib,DWORD dwEntryPoint,PROCESS_INFORMATION *pPI)
{
if (!hFL)
if (!LoadFL())
return FALSE;
return _ForceLibraryDBG(szTargetLib,dwEntryPoint,pPI);
}
DWORD PerformCleanup(DWORD dwEntryPoint,PROCESS_INFORMATION *pPI)
{
if (!hFL)
if (!LoadFL())
return 0;
return _PerformCleanup(dwEntryPoint,pPI);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -