11.04.2015, 13:38
|
#1
|
Пользователь
Регистрация: 18.10.2010
Адрес: Харьков
Возраст: 30
Сообщений: 527
Отблагодарили 98 раз(а)
|
Хук функций Encrypt\Decrypt(558+)
В курсе кто сменились ли смещения функций Encrypt\Decrypt на протоколе выше 558? Ибо старый хук просто игнорируется. Видно что хук стал правильно но не каких сообщений о том что функции выполняются именно мои нет(MessageBox).
Свернуть ↑
bool SetEncryptHook()
{
(FARPROC &)EncryptFunc = (FARPROC)((DWORD)UNHandlerTable - 0x0C);
if (Hook::HookFunction(EncryptFunc, MyClientEncrypt) != Hook::HOOK_SUCCESS)
{
_log->error("Error hook Blowfish::Encrypt()");
return false;
}
return true;
}
bool SetDecryptHook()
{
(FARPROC &)DecryptFunc = (FARPROC)((DWORD)UNHandlerTable - 0x08);
if (Hook::HookFunction(DecryptFunc, MyClientDecrypt) != Hook::HOOK_SUCCESS)
{
_log->error("Error hook Blowfish::Decrypt()");
return false;
}
return true;
}Code: C++
Свернуть ↑Развернуть ↓
Свернуть ↑
HOOK_RESULT HookFunction(void* lpFunc, void* lpDetour)
{
DWORD p;
if (lpFunc == 0)
return HOOK_INVALID;
if (!VirtualProtect(*(void **) lpFunc, 10, PAGE_EXECUTE_READWRITE, &p))
return HOOK_FAILED;
*(void **) lpFunc = lpDetour;
return HOOK_SUCCESS;
}Code: C++
Свернуть ↑Развернуть ↓
Свернуть ↑
typedef int (WINAPI *Encrypt)(byte*, __int64*, signed int);
typedef int (WINAPI *Decrypt)(byte*, __int64*, signed int);Code: C++
Свернуть ↑Развернуть ↓
Свернуть ↑
int WINAPI MyClientEncrypt(byte* buffer, __int64 *key, signed int len)
{
_log->info("MyClientEncrypt");
return 0;
}
int WINAPI MyClientDecrypt(byte* buffer, __int64 *key, signed int len)
{
_log->info("MyClientDecrypt");
return 0;
}Code: C++
Свернуть ↑Развернуть ↓
|
|
|