hello, je vais une dll de hook et j'obtient sa :
MON CODE :
#include <windows.h>
FARPROC fpRegQueryValueEx; // Buffer de l'adresse de la fonction
FARPROC fpRegOpenKey; // Buffer de l'adresse de la fonction
FARPROC fpRegCreateKeyEx; // Buffer de l'adresse de la fonction
FARPROC fpRegOpenKeyEx; // Buffer de l'adresse de la fonction
HMODULE Advapi32;
void *DetourFunc(BYTE *src, const BYTE *dst, const int len)
{
BYTE *jmp = (BYTE*)malloc(len+5);
DWORD dwback;
VirtualProtect(src, len, PAGE_READWRITE, &dwback);
memcpy(jmp, src, len); jmp += len;
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = (DWORD)(src+len - jmp) - 5;
src[0] = 0xE9;
*(DWORD*)(src+1) = (DWORD)(dst - src) - 5;
VirtualProtect(src, len, dwback, &dwback);
return (jmp-len);
}
bool RetourFunc(BYTE *src, BYTE *restore, const int len)
{
DWORD dwback;
if(!VirtualProtect(src, len, PAGE_READWRITE, &dwback)) { return false; }
if(!memcpy(src, restore, len)) { return false; }
restore[0] = 0xE9;
*(DWORD*)(restore+1) = (DWORD)(src - restore) - 5;
if(!VirtualProtect(src, len, dwback, &dwback)) { return false; }
return true;
}
WINADVAPI LONG hkRegQueryValueEx(HKEY hKey,LPCTSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData)
{
return 0;
}
WINADVAPI LONG hkRegOpenKey(HKEY hKey,LPCTSTR lpSubKey,PHKEY phkResult)
{
return 0;
}
WINADVAPI LONG hkRegCreateKeyEx(HKEY hKey,LPCTSTR lpSubKey,DWORD Reserved,LPTSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition)
{
return 0;
}
WINADVAPI LONG hkRegOpenKeyEx(HKEY hKey,LPCTSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult)
{
return 0;
}
WINAPI DllMain(HANDLE hProc,DWORD reason,LPVOID reserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
HMODULE advapi32 = LoadLibrary("Advapi32.dll");
fpRegQueryValueEx = GetProcAddress(advapi32,"RegQueryValueEx"); // Adresse de la fonction
fpRegOpenKey = GetProcAddress(advapi32,"RegOpenKey"); // Adresse de la fonction
fpRegCreateKeyEx = GetProcAddress(advapi32,"RegCreateKeyEx"); // Adresse de la fonction
fpRegOpenKeyEx = GetProcAddress(advapi32,"RegOpenKeyEx"); // Adresse de la fonction
DetourFunc((BYTE*) fpRegQueryValueEx,(BYTE*) &hkRegQueryValueEx,5); // Hook avec jmp 5
DetourFunc((BYTE*) fpRegOpenKey,(BYTE*) &hkRegOpenKey,5); // Idem
DetourFunc((BYTE*) fpRegCreateKeyEx,(BYTE*) &hkRegCreateKeyEx,5); // Idem
DetourFunc((BYTE*) fpRegOpenKeyEx,(BYTE*) &hkRegOpenKeyEx,5); // Idem
return true;
}
}
MON LOG :
| | Compilation... main.cpp c:\Documents and Settings\Jean.PCTEK\Bureau\RegSpy\RegSpyDll\main.cpp(45) : error C2491: 'hkRegQueryValueEx' : définition de dllimport fonction non autorisée c:\Documents and Settings\Jean.PCTEK\Bureau\RegSpy\RegSpyDll\main.cpp(50) : error C2491: 'hkRegOpenKey' : définition de dllimport fonction non autorisée c:\Documents and Settings\Jean.PCTEK\Bureau\RegSpy\RegSpyDll\main.cpp(55) : error C2491: 'hkRegCreateKeyEx' : définition de dllimport fonction non autorisée c:\Documents and Settings\Jean.PCTEK\Bureau\RegSpy\RegSpyDll\main.cpp(60) : error C2491: 'hkRegOpenKeyEx' : définition de dllimport fonction non autorisée
|
ou est le probleme ?
merci
