Редактирование или создание связанного файла DLL - PullRequest
0 голосов
/ 03 августа 2020

У меня есть простой exe-файл, связанный с файлом dll, и он использует из него одну функцию - GetHour (которая просто возвращает текущее время). Я хочу изменить файл dll и вставить свою собственную функцию, чтобы каждый раз при запуске exe создавался новый файл с некоторым текстом в нем. К сожалению, у меня проблемы с этим. Я не могу открыть файл dll с помощью DotPeek, вероятно, потому, что это не так. NET (я не совсем понимаю, что это значит). Я попытался написать новый файл dll с собственной функцией GetHour, но не смог из-за следующей ошибки:

The application was unable to start correctly (0xc000007b)

Я действительно не знаю, как справиться с обеими своими проблемами, и действительно ценю некоторую помощь. Заранее спасибо.

1 Ответ

0 голосов
/ 03 августа 2020

. NET (я не совсем понимаю, что это значит).

На windows у вас есть два «типа» DLL. У вас есть «обычные» библиотеки DLL, которые содержат собственный код (= машинный код) и. NET библиотеки DLL, содержащие IL, который был сгенерирован C# -компилятором (например). Подробности см. Здесь

DLL-файлы - это PE-файлы , поэтому они следуют за специальным форматом файла, и если созданная вами DLL не совпадает, вы получите эту ошибку . Редактировать PE-файл в шестнадцатеричном редакторе довольно сложно и чревато ошибками.

Существуют такие инструменты, как PE-Explorer, которые помогут вам выполнить вашу задачу, но они часто требуют хороших знаний о формате PE-файла.

...