У меня есть сторонняя dll, которую я хочу изменить именами символов. Это возможно? Я не хочу, чтобы конкурс знал, какой компонент использует мой продукт. У меня нет источника для dll.Изменение экспорта dll (таблица символов). Я хочу обфускать имена функций
ответ
Не без изменения двоичного кода, и если DLL подписана, это приведет к аннулированию подписи.
Даже если он не подписан, он, вероятно, нарушит лицензионное соглашение, которое регулирует использование DLL.
Знаете ли вы какую-нибудь программу, которая это делает? Лицензия ничего не говорит, и я сомневаюсь, что это все равно. Я заплатил за лицензию. Изменение нескольких имен безвредно. – Memb
Я сомневаюсь, что для этого есть программы. «Самый простой» способ - это, вероятно, отредактировать таблицу экспорта DLL с шестнадцатеричным редактором и заменить имена на строки с одинаковой длиной. Вам также нужно будет отрегулировать экспортируемый lib, с которым вы также связываете. Весь инструмент, подобный http://texe.codeplex.com/, может помочь. –
Спасибо. Я попробую редактор hex. – Memb
Таблица символов обязательна для связывания исполняемого файла с dll во время связывания и времени выполнения. Он обычно содержит декорированные имена функций и ординалы. Можно использовать только ординалы. Если вы создаете библиотеку, вы можете определить файл .def для управления таблицами символов. Но если это предварительно построенная сторонняя библиотека, это может быть очень трудный путь. Конечно, все возможно, но я сомневаюсь, что это стоит ваших усилий.
Если вы отступаете, я бы попробовал изменить букву в имени украшенной функции в шестнадцатеричном редакторе, найти это значение ординальной функции, а затем попытаться использовать GetProcAddress с порядковым номером этой функции.
Вы можете посмотреть PE Explorer. Я не уверен, что он будет делать то, что вы хотите, но, может быть.
- 1. Как читать имена функций экспорта (родной) библиотеки DLL на C#?
- 2. Unmangling C++ DLL имена функций
- 3. Я хочу обфускать AndroidManifest.xml с Proguard
- 4. Странная таблица экспорта dumpbin
- 5. API Win32 для перечисления функций экспорта dll?
- 6. G ++ скомпилированная DLL имеет разные имена функций
- 7. Просмотр имен функций DLL, которые не имеют таблицы экспорта
- 8. имена функций DLL с помощью dumpbin.exe
- 9. Почему имена неэкпортируемых функций все еще указаны в MingW DLL?
- 10. Внутри DLL, как структурирована таблица функций?
- 11. Названия обфускации строк и имена функций
- 12. Могу ли я обфускать имена классов в JAR?
- 13. Как обфускать имена переменных в JavaScript?
- 14. Я хочу обернуть DLL в C#
- 15. Определение имен символов DLL
- 16. неудобный раздел экспорта DLL
- 17. C# Dll - функции экспорта
- 18. Таблица экспорта GWT
- 19. Есть ли встроенные функции просмотра функций DLL-экспорта?
- 20. C# Функция экспорта dll
- 21. Таблица функций
- 22. таблица экспорта с помощью ssh
- 23. C# получить список экспорта DLL неуправляемых C
- 24. изменение экспорта пакетов RPattern для скрытия функций Rcpp
- 25. команда dumpbin не перечисляет имена функций в dll
- 26. Экспортные имена функций из C++ Dll в Delphi
- 27. Shark не показывает имена функций
- 28. C++ DLL Export: Декорированные/Mangled имена
- 29. Каково название функций внутри DLL?
- 30. Перезаписать существующие имена функций?
Является ли это третьей стороной DLL, которую вы разрешили перераспределять, в соответствии с ее лицензией? –
Да. Они включают DLL для распространения. Дополнительная плата. – Memb
Я думаю, что ваш алгоритм и идеи в вашем приложении важнее, чем вы используете конкретную DLL или нет. Тратить много времени на запутывание чего-то просто не помогает, люди все равно поймут это, если захотят. –