Обработка SEH в 32 битных образах

Kernel32dll

Midle Weight
Регистрация
25 Мар 2024
Сообщения
44
Реакции
28
Депозит
0$
Всем привет. Назрел вопрос - как отработать SEH в самостоятельно смаппленном 32-битном PE-файле?
Сейчас известно, что студийным компилятором добавляется директория IMAGE_LOAD_CONFIG_DIRECTORY в PE-файл, которая содержит в себе поля SEHandlerTable и SEHandlerCount, которые соответственно являются адресом таблицы обработчиков, и их количеством.
Известно существование неэкспортируемой функции RtlInsertInvertedFunctionTable, и таблицы LdrpInvertedFunctionTable, стоит ли смотреть в их сторону? Или писать свой обработчик?

UPD: речь идет не о SEH, а о SafeSEH

IMAGE_LOAD_CONFIG_DIRECTORY32 (winnt.h) - Win32 apps
Contains the load configuration data of an image. (32 bit)
learn.microsoft.com
Последнее редактирование: 09.12.2023
 
salsa20 сказал(а):
в крипторе октавиана там где загрузчик посмотри, там было

Насколько я помню, там реализована обработка эксепшенов, генерируемых MSVC 2008 года, с того момента произошли изменения в структурах, добавляемых компилятором
“Данная реализация покрывает версии студий VC2008, VC2010.”
 
Kernel32dll сказал(а):
Возможно кто-то знает или слышал о технике инъекции PE-файла Module overloading - вкратце, полезная нагрузка размещается в памяти с атрибутом MEM_IMAGE, за счет другого, настоящего, смапленного PE-файла. Может ли в теории эта техника помочь избежать ручной обработки исключений?

GitHub - hasherezade/module_overloading: A more stealthy variant of "DLL hollowing"
A more stealthy variant of "DLL hollowing". Contribute to hasherezade/module_overloading development by creating an account on GitHub.
github.com

Даже если разместить полезную нагрузку в виртуальной памяти с атрибутом MEM_IMAGE, «безопасные» обработчики SafeSEH не смогут схэндлить исключения(исходя из статьи https://hackmag.com/uncategorized/exceptions-for-hardcore-users/)
 
Kernel32dll сказал(а):
Даже если разместить полезную нагрузку в виртуальной памяти с атрибутом MEM_IMAGE, «безопасные» обработчики SafeSEH не смогут схэндлить исключения(исходя из статьи https://hackmag.com/uncategorized/exceptions-for-hardcore-users/)

они действуют только в том случае, если обработчики исключений находятся в модулях, поддерживающих SafeSEH, и при этом модули сами являются "безопасными"
 
salsa20 сказал(а):
они действуют только в том случае, если обработчики исключений находятся в модулях, поддерживающих SafeSEH, и при этом модули сами являются "безопасными"

Не совсем понял мысль.
 
Обработка исключений зависит от кода внутри этой полезной нагрузки и, возможно, от того, какая часть кода модифицированного PE-файла управляет обработкой исключений.
 
Назад
Сверху