видя, как часть инструментов была покрыта, вот кое-что для методов.
В зависимости от того, что вам нужно перехватить, и независимо от того, включена ли защита, существует несколько методов:
Относительное исправление вызовов / jmp в виртуализированном двоичном файле: это самая простая, но также большая работа, если вы не можете автоматически найти все ссылки на функцию, это, вероятно, не сработает в этом случае из-за ваших критериев.
Перехват IAT / EAT: это используется для импорта (IAT) и экспорта (EAT), отлично подходит, если вы ориентируетесь на известный импортированный / экспортированный набор функций API.хороший пример этого можно найти здесь или здесь
Hot-Patching: в Windows XP SP2 введено так называемое «hot-patch»(используется для обновления системных функций в реальном времени), где все его функции (WinAPI) начинаются с 'mov edi, edi', что позволяет устанавливать относительный переход в свободное пространство, создаваемое над каждой функцией с возможностью горячего исправления ( one)может сделать это тоже ).это обычно используется для программ, которые имеют контрольную сумму IAT или имеют другие забавные формы защиты, дополнительную информацию можно найти здесь и здесь
Code-Caving: захват потока выполнения путем размещения перенаправлений в произвольном кодовом пространстве.см. здесь , здесь или здесь
Перенаправление VFT / COM: в основном перезаписывает записи в таблице виртуальных функций объектов, полезно для приложений на базе ООП / СОМ.см. this
Существует множество сторонних библиотек, наиболее известными из которых могут быть MS Detours , также можно посмотреть APIHijack или движок мини-хука .
Конечно, ничто не заменит первоначального тычка, который вам понадобится отладчику, например ollydbg но знание метода, который вы собираетесь использовать, может резко сократить их количество времени, потраченного на копание