2015-09-24 5 views
-1

У меня есть DLL, которую я хочу использовать/debug. У меня нет источника.Добавление экспорта в DLL без повторной компиляции

Глядя на него с IDA, я нашел 3 вещи:

  1. DllMain ничего не делает
  2. код мне нужно самодостаточный в функции, которая только называет несколько Windows API. В этой DLL ничего не говорится.
  3. Это самодостаточная функция не экспортироваться

я мог бы извлечь код сборки и связать его с программой C, но я задаюсь вопрос:

Можно ли (и как я должен) добавить запись в таблицу экспорта существующей библиотеки DLL, не перекомпилируя ее?

ответ

1

Да, вы можете это сделать, но большинство инструментов не поддерживают это. Например, используя CFF Explorer, проще преобразовать существующий экспорт в то, что вы хотите. Просто отредактируйте функцию RVA и экспортированное имя. Поскольку вам нужно только одно, не должно быть проблемой, что вы удаляете другой экспорт.

Вы даже можете сделать это с помощью шестнадцатеричного редактора, так как он не предполагает перемещения чего-либо, восстанавливающего заголовок, это просто редактирование на месте.

+0

Я был готов к редактированию, но спасибо, что рассказал мне о [CFF Explorer] (http://www.ntcore.com/exsuite.php), делает его еще проще! – ixe013

Смежные вопросы