Hook engine. Может кому-то пригодится

11 апр 2022

Hook engine Движок для перехвата функций. Подойдет как для ring3 перехватов, так и для ring0. Проблемы могут возникнуть при копировании call в тело функции, но я думаю этого не будет. Функции аллока и освобождения памяти намеренно убраны, т.к. для разных ring свои функции аллока памяти. Работает так: дизассемблирует начальный код функции, и копирует в буфер столько кода, чтобы заместо него поместился call. После копирования, начало функции заменяется на call <> + nop для добивки остатков....
Читать далее
Лайков +3 Комментариев2 Просмотров1.750

Для любителей натива (часть 3) Работа с dll

9 янв 2018

Cogitations poenam nemo patitur (лат.) Никто не несет наказания за мысли © sysenter 2006 JID: sysenter@jabber.no Теперь о памяти и динамических библиотеках в нативе Дергаем функцию из любой библиотеки: bool WINAPI GetProcAdrLibFunc(wchar_t* wcLibName, wchar_t* pFunc ,char* FunName,WORD Ordinal) { UNICODE_STRING wmP; HMODULE NTDLL; if(!NTDLL) { RtlInitUnicodeString(&wmP,wcLibName); if((!NT_SUCCESS(LdrGetDllHandle(0,0,&wmP,&NTDLL)))|| NTDLL==NULL)...
Читать далее
Лайков +1 Комментариев0 Просмотров2.203

Для любителей натива (часть 2) Игры с драйверами

9 янв 2018

Cogitations poenam nemo patitur (лат.) Никто не несет наказания за мысли © sysenter 2004 JID: sysenter@jabber.no Как продолжение 1 части Динамический запуск и выгрузка драйвера, используя, естественно, только нативные технологии Для начала получаем привилегии работы с дровами: BOOL EnableLoadDriverPrivilege(BOOL fEnable) { BOOL fOk = FALSE; HANDLE hToken; if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES,&hToken)) { TOKEN_PRIVILEGES tp;...
Читать далее
Лайков +3 Комментариев2 Просмотров3.102

Для любителей натива (часть 1) Не удаляемая директория

9 янв 2018

Cogitations poenam nemo patitur (лат.) Никто не несет наказания за мысли © sysenter 2004 JID: sysenter@jabber.no Не удаляемая директория Хидер, который будет необходим под все эти выкрутасы в дальнейшем и сама либа ― в аттаче. В общем, запланировал небольшой цикл статей, для тех, кто любит юзермод. Часть будет на Си, часть на Fasm, часть на masm32. Но в том плане, что это не совсем юзермод, а именно самую низкую его часть, "приближенную к ядру" ― функции native (нативные) из библиотеки...
Читать далее
Лайков +5 Комментариев11 Просмотров4.756

Сплайс (сорцы)

20 дек 2017

Выложу тут, мож пригодится кому, мож нет. Думаю нет смысла тут демогогию разводить. Сорец мой старый без юзания дизасма длинн префиксов. Если что дополню. Токо сначала InitializeCriticalSection(&CS); volatile static BYTE rehook[9][9]; volatile static DWORD hcount=0;//Хуки счетчик volatile static DWORD readdr[9]={0};//Хуки - адреса возврата static HMODULE NTDLL=0; HANDLE hNamedPipe=NULL; //Если f_splice=false - снять перехват //Тогда в параметре lpNewFunc - адрес True-функции LPVOID...
Читать далее
Лайков +1 Комментариев0 Просмотров1.859

Активная антиотладка и антиинжект

7 сен 2017

И вновь продолжается бой И сердцу тревожно в груди.. (Из песни времен СССР.) Активная антиотладка и антиинжект по Рихтеру Далее будет использован синтаксис Microsoft Си. Проекты в конце статьи – под Microsoft Visual Studio v.6.0 . Разговор далее пойдет только о Ring3. Недавно работая над написанием плагина под Sysinternals Process Explorer, стлучайно столкнулся с функцией RtlQueryProcessDebugInformation из ntdll.dll, которая оказывается использует удаленные потоки для получения информации о...
Читать далее
Лайков +2 Комментариев3 Просмотров3.992