Перехват вызова функций заменой байтов заголовка инструкциями JMP или CALL

Добавлено 14 Января 2012

В одной из предыдущих статей я описывал метод перехвата функций используя таблицу импорта. Данный метод более универсален, так как дает возможность перехватывать почти любые (ограничения приведены ниже) вызовы. Однако он и более сложен, поскольку как дальше будет показано, требует от кода модифицирования заголовка функции навыков дизассемблирования.

Суть метода в прописывании инструкции JMP или CALL в первые несколько (5 байт, если прописывается инструкция перехода или вызова с 32-битным смещением относительно EIP) байт заголовка функции с адресом функции перехвата.

API DLL или COM объект? Создание COM объектов без регистрации

Добавлено 13 Января 2012

При создании многокомпонентных проектов одним из основных вопросов, стоящих перед проектировщиком, является вопрос о том, каким собственно образом компоненты будут взаимодействовать друг с другом. Если мы говорим о компонентах, экспортирующим некий набор функций (по сути библиотеках), то механизмом взаимодействия может быть использование COM интерфейсов и традиционный импорт/экспорт функций и классов.

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

А что если регистрировать COM компонент и не придется?