Как стать автором
Обновить

Комментарии 3

Спасибо: понятно, полезно.

Непонятно, где это может пригодиться.

Обычно, цель выполнить свой произвольный код, не привлекая внимания SIEM. Но мы уже выполняем свой код в контексте DllMain. Если нужно отложенно, можно создать таймер, система вызовет нашу функцию через некоторое время.

Как способ ставить хуки на функции другой DLL вообще не подходит. Статические иморты сразу отпадают. Допустим даже, нам повезло, приложение грузит OrigDll через LoadLibrary/GetProcAddress. Но если наша DLL-ка загрузилась раеньше, то OrigDll ещё нет в списке загрузчика, и патчить нечего. Если наша DLL-ка загрузилась позже, вероятно приложение уже сделало GetProcAddress и себе куда-то сохранило указатели на функции - надо их искать и патчить. Но тогда и в PEB лезть не надо.

Прямо какое-то "практическое" применение сложно представить, согласен. В целом, не обязательно приложение должно грузить библиотеку с помощью LoadLibrary. Достаточно, чтобы оно получило хэндл библиотеки с помощью GetModuleHandle. А такое иногда встречается. Возможно просто интересный способ исполнения при сайдлоадинге.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории