 |
Dll inject - Скрипты и перехват пакетов - Скрипты и перехват пакетов |
02.11.2013, 11:25
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 16.10.2012
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Dll inject
Всем хай)
Тут пробую перехватить ?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPa cket@@@Z методом сплайсинга, затереть 5 байт получается, подтсавная ф-ция выполняется, а дальше вылетает с general protection, но если криво было и до этого что то сделать тоже был general protection.
Сам код dll, думаю кто что то подобное реализовывал, той прочтёт без проблем.
 |
Цитата: |
 |
|
|
|
|
|
|
|
BYTE old[5];
DWORD dwProtect;
BYTE * fptr;
size_t _CalculateDispacement(void* lpFirst, void* lpSecond)
{
return reinterpret_cast<char*>(lpSecond) - (reinterpret_cast<char*>(lpFirst) + 5);
}
#pragma pack(push, 1)
struct jmp_near
{
BYTE opcode;
DWORD addr;
};
#pragma pack(pop)
#pragma pack(push, 1)
struct jmp_org
{
BYTE old[5];
struct jmp_near jmp;
};
#pragma pack(pop)
struct jmp_org org;
void splice()
{
MessageBox(0, "Hello from splice", "OK", MB_OK);
BYTE * go = (BYTE*)&org;
__asm
{
jmp go
}
}
void Intercept(void)
{
MessageBox(0, "Ready!?", "", MB_OK);
struct jmp_near jmp;
fptr = (BYTE *)GetProcAddress(GetModuleHandle(TEXT("engine.dll" )), "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkP acket@@@Z");
jmp.opcode = 0xE9;
jmp.addr = _CalculateDispacement(fptr, splice);
memcpy(old, fptr, 5);
VirtualProtect(fptr, 5, PAGE_EXECUTE_READWRITE, &dwProtect);
WriteProcessMemory(GetCurrentProcess(), (void*)fptr, (void*)&jmp, 5, 0);
VirtualProtect(fptr, 5, dwProtect, &dwProtect);
memcpy(org.old, old, 5);
org.jmp.opcode = 0xE9;
org.jmp.addr = (BYTE)fptr + 6;
MessageBox(0, "End", "OK", MB_OK);
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Intercept, NULL, NULL, NULL);
}
break;
case DLL_THREAD_ATTACH: break;
case DLL_THREAD_DETACH: break;
case DLL_PROCESS_DETACH: break;
}
return TRUE;
} |
|
 |
|
 |
|
Можно грубо и прямо в лицо, но косяк наверное где то в коде, раз подставная функция выполняется, а дальше не, буду благодарен за любые подсказки.
Последний раз редактировалось MickeyBlueEyes; 02.11.2013 в 11:54.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
inject 7 x64?
|
Rock*n*roll |
Общение и обсуждение, архив Point Blank |
11 |
10.06.2012 13:34 |
[Информация] Apb inject
|
Deestap |
Прочее |
0 |
10.03.2012 17:32 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:20.
|
 |