// FakeProc.cpp part of RawPeApi Library
// Write by SunLine lisunlin0@yahoo.com.cn 2007.7
#include <windows.h>
#include "..\inc\RawPeApi.h"
#include "fakeproc.h"
FARPROC TrueProc[] = {
(FARPROC)FreeLibrary,
(FARPROC)FreeLibraryAndExitThread,
(FARPROC)GetModuleFileNameA,
(FARPROC)GetModuleFileNameW,
(FARPROC)GetModuleHandleA,
(FARPROC)GetModuleHandleW,
(FARPROC)GetProcAddress,
(FARPROC)LoadLibraryA,
(FARPROC)LoadLibraryW,
(FARPROC)LoadLibraryExA,
(FARPROC)LoadLibraryExW,
0
};
FARPROC FakeProc[] = {
(FARPROC)fFreeLibrary,
(FARPROC)fFreeLibraryAndExitThread,
(FARPROC)fGetModuleFileNameA,
(FARPROC)fGetModuleFileNameW,
(FARPROC)fGetModuleHandleA,
(FARPROC)fGetModuleHandleW,
(FARPROC)fGetProcAddress,
(FARPROC)fLoadLibraryA,
(FARPROC)fLoadLibraryW,
(FARPROC)fLoadLibraryExA,
(FARPROC)fLoadLibraryExW,
0
};
BOOL __stdcall fFreeLibrary(HMODULE hLibModule)
{
BOOL bRet;
bRet = _FreeLibrary(hLibModule);
if(GetLastError() == ERROR_MOD_NOT_FOUND)
bRet = FreeLibrary(hLibModule);
return bRet;
}
VOID __stdcall fFreeLibraryAndExitThread(HMODULE hLibModule, DWORD dwExitCode)
{
fFreeLibrary(hLibModule);
ExitThread(dwExitCode);
}
DWORD __stdcall fGetModuleFileNameA(HMODULE hModule, LPCH lpFilename, DWORD nSize)
{
ULONG nRet = 0;
nRet = _GetModuleFileNameA(hModule, lpFilename, nSize);
if((0 == nRet) && (ERROR_MOD_NOT_FOUND == GetLastError()))
nRet = GetModuleFileNameA(hModule, lpFilename, nSize);
return nRet;
}
DWORD __stdcall fGetModuleFileNameW(HMODULE hModule, LPWCH lpFilename, DWORD nSize)
{
ULONG nRet = 0;
nRet = _GetModuleFileNameW(hModule, lpFilename, nSize);
if((0 == nRet) && (ERROR_MOD_NOT_FOUND == GetLastError()))
nRet = GetModuleFileNameW(hModule, lpFilename, nSize);
return nRet;
}
HMODULE __stdcall fGetModuleHandleA(LPCSTR lpModuleName)
{
WCHAR pModuleName[MAX_PATH];
if(MultiByteToWideChar(CP_THREAD_ACP, 0, lpModuleName, -1, pModuleName, MAX_PATH))
return fGetModuleHandleW(pModuleName);
return NULL;
}
HMODULE __stdcall fGetModuleHandleW(LPCWSTR lpModuleName)
{
HMODULE hRet;
hRet = _GetModuleHandleW(lpModuleName);
if(NULL == hRet)
hRet = GetModuleHandleW(lpModuleName);
return hRet;
}
FARPROC __stdcall fGetProcAddress(HMODULE hModule, LPCSTR lpProcName)
{
FARPROC pRet = NULL;
UINT uNameLen = 0;
CHAR szModName[MAX_PATH];
uNameLen = _GetModuleFileNameA(hModule, szModName, MAX_PATH);
if(ERROR_MOD_NOT_FOUND == GetLastError())
{
FARPROC pf;
pRet = GetProcAddress(hModule, lpProcName);
for(int i = 0; pf = TrueProc[i]; i++)
if(pf == pRet)
{
pRet = FakeProc[i];
break;
}
}
else
pRet = _GetProcAddress(hModule, lpProcName);
return pRet;
}
HINSTANCE __stdcall fLoadLibraryA(LPCSTR lpLibFileName)
{
return fLoadLibraryExA(lpLibFileName, NULL, 0);
}
HINSTANCE __stdcall fLoadLibraryW(LPCWSTR lpLibFileName)
{
return fLoadLibraryExW(lpLibFileName, NULL, 0);
}
HINSTANCE __stdcall fLoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
{
HINSTANCE hRet = NULL;
WCHAR name[MAX_PATH];
if(MultiByteToWideChar(CP_THREAD_ACP, 0, lpLibFileName, -1, name, MAX_PATH))
hRet = fLoadLibraryExW(name, hFile, dwFlags);
return hRet;
}
HINSTANCE __stdcall fLoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
{
HINSTANCE hRet = NULL;
hRet = _LoadLibraryExW(NULL, lpLibFileName, hFile, dwFlags);
if(0 == hRet)
hRet = LoadLibraryExW(lpLibFileName, hFile, dwFlags);
return hRet;
};
没有合适的资源?快使用搜索试试~ 我知道了~
RawPeApi 3th
共79个文件
dll:27个
exe:26个
bat:5个
4星 · 超过85%的资源 需积分: 9 486 下载量 64 浏览量
2008-05-28
07:18:52
上传
评论 10
收藏 5.94MB RAR 举报
温馨提示
RawPeApi第三次更新.增加了64位支持。源代码中文档已经完成得差不多了,过一段时间会放出。
资源推荐
资源详情
资源评论
收起资源包目录
RawPeApi0.3.rar (79个子文件)
Test_Lib_LoadLibrary
resource.h 639B
Test_Lib_LoadLibrary.rc 2KB
Test_Lib_LoadLibrary.cpp 2KB
Test_Lib_LoadLibrary.dsp 4KB
Test_Lib_LoadLibrary.sln 899B
FakeProc.cpp 4KB
FakeProc.h 909B
Test_Lib_LoadLibrary.dsw 558B
Test_Lib_LoadLibrary.vcproj 6KB
Lib
RawPeApiR8.lib 63KB
RawPeApiD8.lib 76KB
RawPeApiR6.lib 74KB
RawPeApiD6.lib 74KB
Test_Lib_LoadPe
resource.h 639B
Test_Lib_LoadPe.cpp 3KB
Test_Lib_LoadPe.dsw 553B
Test_Lib_LoadPe.sln 894B
Test_Lib_LoadPe.rc 2KB
Test_Lib_LoadPe.dsp 4KB
Test_Lib_LoadPe.vcproj 5KB
Bin
Test_Lib_LoadLibrary.exe 436KB
dll_2.dll 3KB
SDK_U_R_8.exe 52KB
0clean.bat 27B
test.exe 356KB
SDK_A_D_6.exe 156KB
PeLoaderR.exe 6KB
msg_1.dll 28KB
SDK_U_D_8.exe 460KB
dll_3.dll 3KB
MFC_U_D_8.exe 2.93MB
msg.dll 28KB
SDKDLL_A_R_6.dll 32KB
SDK_U_R_6.exe 32KB
MFC_A_R_8.exe 476KB
dll_4096.dll 3KB
MfcDLL_U_D_6.dll 1.28MB
dll_32.dll 800B
msg_2.dll 28KB
TestMiniLoader.exe 488KB
SDK_A_D_8.exe 460KB
SDK_U_D_6.exe 156KB
MFC_U_R_8.exe 480KB
depend.dll 28KB
MfcDLL_A_R_8.dll 204KB
MfcDLL_A_D_8.dll 2.09MB
MfcDLL_U_R_8.dll 208KB
Test_Lib_LoadPe.exe 428KB
TestLoadLibrary.exe 380KB
SDKDLL_U_R_8.dll 52KB
MFC_U_D_6.exe 2.12MB
TestRawPeApiLib.exe 232KB
0TestAll_Upack.bat 259B
MfcDLL_A_D_6.dll 1.25MB
MFC_A_D_6.exe 2.09MB
MfcDLL_U_D_8.dll 2.08MB
MfcDLL_A_R_6.dll 96KB
SDKDLL_A_R_8.dll 52KB
dll_16.dll 784B
SDKDLL_U_D_8.dll 452KB
0use.bat 139B
PeLoaderD.exe 188KB
MFC_A_D_8.exe 2.94MB
SDK_A_R_6.exe 32KB
upx.exe 196KB
SDKDLL_A_D_8.dll 452KB
SDKDLL_U_R_6.dll 32KB
0TestAll.bat 173B
SDKDLL_U_D_6.dll 200KB
MFC_A_R_6.exe 352KB
0TestAll_Upx.bat 320B
MFC_U_R_6.exe 356KB
SDKDLL_A_D_6.dll 200KB
MfcDLL_U_R_6.dll 100KB
dll_1.dll 3KB
control.dll 62KB
Upack.exe 21KB
SDK_A_R_8.exe 52KB
Inc
RawPeApi.h 20KB
共 79 条
- 1
sunlin7
- 粉丝: 194
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页