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

Автоматизация создания прокси-dll

Время на прочтение1 мин
Количество просмотров6.2K
Приветствую!

Сегодня на хабре появилась статья, повествующая о том, как можно перехватывать вызовы DLL из программы и обрабатывать их нужным образом — в законных, а может быть, и не совсем, целях. Так или иначе, данная техника может пригодиться в разных случаях.

Для того, чтобы постоянно не совершать одни и те же действия, я решил автоматизировать процесс создания проекта Visual Studio на основе выбранной dll.

Сперва мной были скачаны исходники проекта из статьи. Для автоматизации взят скриптовый язык AutoIt, на нём набросан простенький GUI:



Чтобы не зависеть от утилиты dumpbin, было решено получать список экспорта напрямую из программы, благо что необходимый функционал уже был написан одним из пользователей форума AutoIt.

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

Собственно, рабочий цикл программы:
  • Из библиотеки извлекается список экспорта (если есть),
  • Из секции ресурсов извлекаются файлы проекта, в них заменяется имя библиотеки и добавляется необходимый код,
  • Если отмечен экспорт в формате VS 2008, то заменяется соответствующий файл,
  • Происходит поочерёдное сохранение файлов в выбранную папку.
Для тех, кто хочет опробовать сию программу в деле:
Исполняемый файл / исходники.
Единственное, что на данный момент не удалось сделать — это создание прокси dll для библиотеки с экспортом в стиле C++.

Спасибо за внимание!
Теги:
Хабы:
+21
Комментарии7

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн