Всем здравствуйте.Инжект получился вышеуказанным способом (PETools->PeEditor).Версию проги только надо брать нормальную.
Добавлено через 18 минут
Длл внедрили в DrFish.exe. Этот модуль в ГУ отвечает за считывании данных ЖПС с портов и дальнейшей раздачи их остальным модулям или что то вроде этого...Задача ДЛЛ перехватить вышесказанные АПИ функции с подсунуть мои...делать это она будет при помощи редактирования таблиц импорта...Вот нарыл функцию которая это делает.Подскажите где берётся структура HDATA? Заранее всем спаибо!
Код:
DWORD XXX ( HANDLE hProc, DWORD dFind, DWORD dReplace )
{
DWORD ret = 0;
//GODMODE ON
BOOL bOldKMode = SetKMode ( TRUE );
DWORD dOldPerms = SetProcPermissions ( 0xFFFFFFFF );
//get process ptr prom handle
//Process pr;
HDATA * hProcHD = ( HDATA * ) ( 0x80000000 | ( ( DWORD ) hProc & HANDLE_ADDRESS_MASK ) );
PROCESS * prc = ( PROCESS * ) hProcHD->pvObj;
//get imports sections
struct ImpHdr * blockptr, * blockstart;
blockstart = ( struct ImpHdr * ) MapPtrProc ( prc->e32.e32_vbase + prc->e32.e32_unit[IMP].rva, prc );
//iterate thru imports sections
for ( blockptr = blockstart; blockptr->imp_lookup; ++blockptr )
{
DWORD dOldProtect, tmp;
//get vectors ptr
DWORD * vectors = ( DWORD * ) MapPtrProc ( prc->e32.e32_vbase + blockptr->imp_address, prc );
//count vectors
DWORD * vptr = vectors;
while ( * vptr ) ++vptr;
DWORD vcnt = ( vptr - vectors );
//try to unlock imports section memory
if ( VirtualProtect ( vectors, vcnt * sizeof ( DWORD ), PAGE_EXECUTE_READWRITE, &dOldProtect ) )
{
//find&replace
for ( UINT i = 0; i < vcnt; ++i )
{
if ( vectors[i] == dFind )
{
vectors[i] = dReplace;
++ret;
}
}
//lock back
VirtualProtect ( vectors, vcnt * sizeof ( DWORD ), dOldProtect, &tmp );
}
}
//GODMODE OFF
SetProcPermissions ( dOldPerms );
SetKMode ( bOldKMode );
return ret;
}