ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

сплайсинг GetProcAddress + получение RetEIP
  #1  
Старый 26.03.2008, 15:37
Аватар для sn0w
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию сплайсинг GetProcAddress + получение RetEIP

вот с какой задачей столкнулся, нужно перехватывать GetProcAddress в целях реверсирования одной байды. итак имеем следующее:

FARPROC (__stdcall* gGetProcAddress)(HMODULE,LPCSTR); - указатель на оригинальную функцию которая вызывается в конце, и собсна сам перехватчик:

FARPROC __stdcall fGetProcAddress(HMODULE hmod, LPCSTR proc)
{
DWORD io;
DWORD ret_eip;
char buf[200];

__asm{ // вот хз как получить RetEIP
push eax;
mov eax,[esp+4]; //тут ясен хер в стеке переменные перехватчика
mov ret_eip,eax;
pop eax;
}

g_dwCallnum++;

itoa(g_dwCallnum, buf, 10);
WriteFile(g_hLog, buf, lstrlenA(buf), &io, 0);
WriteFile(g_hLog, ") GetProcAddress: ", 18, &io, 0);
WriteFile(g_hLog, proc, lstrlenA(proc), &io, 0);
WriteFile(g_hLog, " RetEIP: ", 9, &io, 0);
itoa(ret_eip, buf, 16);
WriteFile(g_hLog, buf, lstrlenA(buf), &io, 0);
WriteFile(g_hLog, "\r\n", 2, &io, 0);

// В лог пишется таким образом: 1) GetProcAddress: ExitWindowsEx RetEIP: 40178A
// Но ессна по вставке асма ясно что RetEIP будет полнейшим бредом.

return gGetProcAddress(hmod,proc);
}

Какбы сделать так чтобы извлекать адрес возврата?

была мысль оформить тело перехватчика в стиле

__declspec(naked) __stdcall fGetProcAddress(HMODULE hmod, LPCSTR proc)
{
__asm {
// тут код записи лога
jmp gGetProcAddress;
}
}

но этож заебешься писать.
кто что может посоветовать?
__________________


snow white world wide
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ