Windows Assembly Site |Новости| |О проекте| |Неофиту| |Эѳир| |Ссылки| |Ѳорум|

Комментарии к статье «Перехват API функций в Windows NT (часть 2). Методы внедрения кода.»

· Статьи
· Исходники
· Инструменты
· Документация

Статьи:
· Низкоуровневое программирование для дZенствующих
· Уроки Iczelion'а
· COM и OOP
· DirectX/OpenGL
· Секреты Win32
· Оптимизация
· Компиляторы
· Защита от отладки
· Вирусология
· Безопасность
· Сеть
· Программерский дZен
· Форматы файлов
· Процессоры
· Диски, приводы и электроника
· BIOS/CMOS
· DOS навсегда!
· Исследование программ
· Защищенный режим
· Алгоритмы
· Консоли и КПК
· Байт-код
· Linux/Unix
· Assembler.Ru
· Разное

iron_nomad /2005-05-16 23:40:16/
Исходники ко второй статье некачаются.:((( А все остальные качаются нормально!
iron_nomad /2005-05-17 23:34:53/
А аттачи, второй день уже не качаются! :(
iron_nomad /2005-05-17 23:38:44/
А аттачи, второй день уже не качаются! :(
Tim Sobolev /2005-05-18 01:58:14/
Подтверждаю...
Aquila /2005-05-18 15:36:13/
Исправлено.
Egor76 /2005-05-24 02:34:20/
Перехват через замену первых байт функции не гарантирует
корректную работу.
Вот пример:
Пусть есть функция, в первых 5 байтах которой поместилось
3 машинных инструкции. Некоторый поток успел выполнить
только 2 первых инструкции, и подключился мой код, который
записал jmp в начало функции. Потом опять подключился предыдущий поток, для которого следующие байты кода окажутся некорректными, и поток обязательно вылетит.
_BC_ /2005-05-26 17:04:14/
Проблема переключение потоков -- миф о загробной жизни.
Элементарно можно записать одной инструкцией в первые 2 байта EBFE, затем пропатчить остальные байты, затем опять-таки одной инструкцией пропатчить злополучные первые 2 байта.
SergeyM /2005-06-20 07:10:19/
Кстати, а почему может такое быть что ни один из 3 методов перехвата (в примерах) не работает для WinXP SP2.. ? ни для существующего процесса ни для вновь создаваемого :(
SergeyM /2005-06-20 07:11:09/
В предыдущем посте я имел ввиду explorer.exe ..
Nero /2005-08-26 12:59:09/
Ни одих из предложенных методов внедрения dll в адресное пространство explorer.exe не работает в Win 2003. Уже неделю бьюсь над этой проблемой. Может кто-нибудь помочь и сказать почему это происходит ? Реально ли вообще обойти эту ситуацию в 2003 ? Кстати, попытка подгрузить свою dll в адресное пространство explorer.exe в 2003 из известных разделов в реестре ни к чему не приводит. Explorer просто сразу выгружает такие dll. И еще, при попытке запустить в загружаемой dll дополнительный поток - explorer беззвучно падает, как будто и не было ничего. ИМХО, что-то с безопасностью - но пока не разобрался в чем трабл. Help...
Nero /2005-08-26 13:00:30/
Ни одих из предложенных методов внедрения dll в адресное пространство explorer.exe не работает в Win 2003. Уже неделю бьюсь над этой проблемой. Может кто-нибудь помочь и сказать почему это происходит ? Реально ли вообще обойти эту ситуацию в 2003 ? Кстати, попытка подгрузить свою dll в адресное пространство explorer.exe в 2003 из известных разделов в реестре ни к чему не приводит. Explorer просто сразу выгружает такие dll. И еще, при попытке запустить в загружаемой dll дополнительный поток - explorer беззвучно падает, как будто и не было ничего. ИМХО, что-то с безопасностью - но пока не разобрался в чем трабл. Help...
Nero /2005-08-26 13:00:35/
Ни одих из предложенных методов внедрения dll в адресное пространство explorer.exe не работает в Win 2003. Уже неделю бьюсь над этой проблемой. Может кто-нибудь помочь и сказать почему это происходит ? Реально ли вообще обойти эту ситуацию в 2003 ? Кстати, попытка подгрузить свою dll в адресное пространство explorer.exe в 2003 из известных разделов в реестре ни к чему не приводит. Explorer просто сразу выгружает такие dll. И еще, при попытке запустить в загружаемой dll дополнительный поток - explorer беззвучно падает, как будто и не было ничего. ИМХО, что-то с безопасностью - но пока не разобрался в чем трабл. Help...
Nero /2005-09-02 06:38:36/
Проблема решилась добавлением экспортируемой фейк-процедуры DllGetClassObject.
UnknownArtist /2006-10-04 14:48:36/
Перехватываемая функция имеет следующее начало:
push esi
push edi
call ffffe456

При использовании HookProc вызов "правильной" функции из перехваченной приводит к вылетанию программы, т.к. в первых пяти байтах, сохраненных черти-где, имеется переход по относительному смещению - относительно СТАРОГО положения команды CALL, потому это переход "в никуда". Я так понимаю, нужно HookCode дополнить кодом для проверки этих 5 байт на наличие относительных вызовов/переходов и их корректировки?
Tihon_K /2007-06-04 19:13:15/
При попытке закачать advapihook.rar был атакован вирусом...

Ниже лог NOD32 по этому поводу:

http://www.wasm.ru/pub/21/hles/advapihook.rar - множественные проникновения

http://www.wasm.ru/pub/21/tiles/advapihook.rar»RAR»
Compiled\DebugKillPtocess.exe - вероятно модифицированный Win32/KillAV.NAE троян

http://www.wasm.ru/pub/21/files/advapihook.rar»RAR»
Compiled\InjectCode.exe - вероятно неизвестный вирус

http://www.wasm.ru/pub/21 /files/advapihook.rar»RAR»
Compiled\lnjectDH.exe - вероятно неизвестный NewHeur_PE вирус

http://www.wasm.ru/pub/21/files/advapihook.rar»RAR»
Compiled\OpenProcessEx.exe - вероятно неизвестный NewHeur_PE вирус

Благодарю за внимание.
slow /2007-06-20 09:21:57/
Ошибка в определении функции LdrGetProcedureAddress,
Там приводится следующее определение:
function LdrGetProcedureAddress(
hModule : HANDLE;
dwOrdinal : ULONG;
psName : PSTRING;
var pProcedure : PVOID
): NTSTATUS; stdcall; ...

Должно быть так:
function LdrGetProcedureAddress(
hModule : HANDLE;
psName : PSTRING;
dwOrdinal : ULONG;
var pProcedure : PVOID
): NTSTATUS; stdcall; ...
_4epen /2010-07-28 09:35:57/
процедура - дизассемблер длин меня очень улыбнула
push 0x68C357F2$

что она вернет? :)
Clerk /2010-07-29 00:23:38/
_4epen

VirXasm32 v1.5b
http://www.eof-project.net/sources/Malum/VirXasm32_v1.5adv/src/VirXasm32b.asm
Пофиксеный тут http://files.virustech.org/indy/Code/XcptIp/VirXasm32b.asm

Логин:

Пароль:

Введите логин и пароль, под которыми вы зарегистрированы на θоруме WASM.RU.
Enter your login and password which you are using on WASM Θorum.





© 2002-2009 wasm.ru - all rights reserved and reversed