как узнать исходный код dll
Как просмотреть исходный код dll файлы?
Как просмотреть исходный код dll файлы?
12 ответов
вы можете сделать гамбургеры с коровой, но вы не можете сделать корову с гамбургерами.
процесс перехода от dll к исходному коду известен как декомпиляция. Это технология, специфичная для исходного языка. Можете ли вы дать нам больше информации об исходном языке, чтобы мы могли указать вам на данную технологию?
редактировать обновление
этот снимок экрана имеет реализацию основной библиотеки (я думаю)
вы не говорите, откуда пришли библиотеки DLL, но если вы их купили, Reflector не поможет вам, если продавец не хочет, чтобы вы заглядывали внутрь. И, наконец, имейте в виду, что если вы приобрели программное обеспечение, декомпиляция это (ли библиотеки скрыт) может нарушать лицензионное соглашение на программное обеспечение.
учитывая тот факт, что у меня был тот же вопрос, и поэтому другие люди тоже, имеет смысл только обновить то, что я нашел. Так.
Я нашел 2 бесплатных инструмента для этой цели:
Примечание: он показывает только код сборки, Если вы знаете язык сборки, хорошо.
то же самое с любым другим скомпилированным двоичным файлом.
вы либо смотрите на исходный источник, либо используете декомпилятор.
Если вы просто хотите узнать несколько основных внутри DLL-сборки, например, класса, метода и т. д.,
Я предлагаю дизассемблер Il инструмент, предоставленный Microsoft.
обычно находится по адресу:»C:\Program файлы (x86)\Microsoft SDKs\Windows\v7.0A\Bin«
часы для справочных руководств. вы получите основную идею.
примечание: Я не тестировал exe-сборки в Il Disassember.
используя программное обеспечение dot peek, вы можете просмотреть свой код в формате dll.
Как просмотреть исходный код DLL файлов?
Как просмотреть исходный код DLL файлов?
ОТВЕТЫ
Ответ 1
Вы можете приготовить гамбургеры с коровой, но вы не можете сделать корову с гамбургерами.
Ответ 2
Процесс перехода от dll к исходному коду называется декомпиляцией. Это технология, специфичная для исходного языка. Можете ли вы дать нам дополнительную информацию об исходном языке, чтобы мы могли указать вам на данную технологию?
ИЗМЕНИТЬ Обновить
Если С# является выбранным языком, лучшим способом увидеть источник является использование Reflector.exe. Обратите внимание, что это не даст вам 100% оригинального источника. Это скорее оценка того, чем был исходный источник. Он может и будет производить точный вывод в определенных обстоятельствах.
Ответ 3
Мне удалось извлечь код из DLL файла
Этот снимок экрана представляет собой реализацию основной библиотеки (я думаю)
Ответ 4
Существует исключение: некоторые компании применяют обфускатор, например Salamander.NET Obfuscator к их сборкам перед их отправкой. Результатом этого процесса является то, что декомпилированный код трудно понять, чем если бы обфускатор не использовался. Некоторые компании дошли до шифрования сборок. Обфускация и шифрование защищают интеллектуальную собственность от случайной атаки, но не могут предотвратить значительное, хорошо продуманное обратное проектирование. Учитывая эту реальность, не все компании даже стремятся к запутыванию, а тем более к шифрованию.
Вы не говорите, откуда пришли DLL, но если вы их купили, Reflector вам не поможет, если поставщик не хочет, чтобы вы заглядывали внутрь. И, наконец, имейте в виду, что, если вы приобрели программное обеспечение, декомпиляция (независимо от того, запущены ли DLL), может нарушить лицензионное соглашение на программное обеспечение.
Ответ 5
Ответ 6
Учитывая тот факт, что у меня был один и тот же вопрос, и поэтому другие люди тоже, имеет смысл только обновить то, что я нашел. Так что.
Я нашел 2 бесплатных инструмента для этой цели:
Ответ 7
Я знаю, что слишком поздно ответить, но может помочь кому-то в будущем. Чтобы просмотреть DLL-код, вы используете инструмент Red-gates.NET Reflector 7.6.
Ответ 8
Примечание: он показывает только код сборки, если вы знаете язык ассемблера, хорошо.
Ответ 9
Если вы просто хотите узнать несколько базовых элементов сборки dll, например. Классы, метод и т.д.,
Я предлагаю инструмент IL Disassembler, предоставленный Microsoft.
Обычно находится по адресу: C:\Program Files (x86)\Microsoft SDK\Windows\v7.0A\Bin «
Следите за справочными руководствами. вы получите основную идею.
Примечание. Я не тестировал сборки exe в IL Disassember.
Ответ 10
Ответ 11
Используя программное обеспечение «Точечный просмотр», вы можете просмотреть свой код в формате dll.
Шаги, чтобы следовать
Ответ 12
То же самое с любым другим скомпилированным двоичным кодом.
Вы либо смотрите исходный источник, либо используете декомпилятор.
Как посмотреть содержимое dll
Т.к. разработчики линивые люди и не любят писать инструкции, то приходится самим разбираться и искать то, чего они не написали.
Часто бывают случаи, когда есть dll, мы догадываемся, что она что-то умеет делать, но не знаем, какие у нее есть экспортные функции и какие нужно передавать туда входные параметры. Или еще хуже, когда есть инструкция, все делаем по ней, передаем нужное количество параметров, а она нам ругается, что либо не хватает параметров, либо тип не соответствует. Можно искать ответа у разработчиков, но это может затянуться на очень длительное время.
Идем в Exсel и открываем Visual Basic сочетанием клавиш Alt+F11
Далее идем Tool->References, в открывшемся окне ищем нашу dll, если она уже регистрировалась в реестре, и отмечаем галкой, или же нажимаем кнопку Browse и указываем путь к dll, программа сама добавит ее и отметит галку, если данная dll имеет интерфейс. Нажимаем ОК.
Если выделить процедуру в правов окне, то увидим ее параметры и описание
К примеру, если создадим не
То получим много интересных возможностей.
Дерзайте, инструмент показал, дальше дело за вами.
Как узнать исходный код dll
Хочу создать серьезный мод для Старика. Однако StarDraft и прочее не позволяют вносить серьезные изменения в игру. Можно ли как-то отредактировать DLL-файлы Старкрафта(да и вообще, любой программы?).
← →
Kerk © ( 2005-08-03 13:29 ) [1]
StarCarfter (03.08.05 13:24)
Можно ли как-то отредактировать DLL-файлы Старкрафта(да и вообще, любой программы?).
Можно.
Берешь hex-редактор, дизассемблер и вперед.
← →
StarCarfter ( 2005-08-03 13:32 ) [2]
← →
Kerk © ( 2005-08-03 13:33 ) [3]
Ух ты какой хитрый:)
Слушай, у меня установлена Delhpi 6. Есть ли там эта функция, а то вся справка на чертовом английском.
Это развод? Если так, то очень неоригинально.
← →
StarCafter ( 2005-08-03 13:37 ) [8]
← →
StarCarfter ( 2005-08-03 13:38 ) [9]
> [8] StarCafter (03.08.05 13:37)
Вот и я думаю.
Помимо всего прочего энтузиаст мог бы хоть название игры написать без ошибок. 😉
← →
StarCarfter ( 2005-08-03 13:39 ) [11]
← →
pasha_golub © ( 2005-08-03 13:40 ) [12]
StarCarfter (03.08.05 13:38) [9]
Есть преобразование a + b = c
Так вот, я тебе щас дам значение c, а ты мне найдешь значение a и b? Идет?
Если получится, то к завтрему напишу тебе доставальщик кода.
> [8] StarCafter (03.08.05 13:37)
> [11] StarCarfter (03.08.05 13:39)
Может мы уйдём, а вы тут поговорите? 😉
← →
StarCarfter ( 2005-08-03 13:41 ) [14]
Да, Skyle, в спешке чего только не наделаешь. Я ведь в инет-кафе. Так что же, ДЛЛ-редактировать получается нельзя? Я слышал о утилите Reostator.
← →
Игорь Шевченко © ( 2005-08-03 13:44 ) [16]
Можно. Но долго. Лучше за это время изобрести самодвижущееся пресс-папье или закончить архитектурный институт.
← →
имя ( 2005-08-03 13:44 ) [17]
← →
StarCarfter ( 2005-08-03 13:49 ) [19]
Спасибо, всем, хотя польза только от Skyle. А так хотелось заглянуть в исходники StarCarfta, может, тогда бы получился крутой мод :((
← →
pasha_golub © ( 2005-08-03 13:54 ) [20]
StarCarfter (03.08.05 13:49) [19]
Каждый видит пользу в своем. Кто-то паяльником шурупы закручивает.
> так хотелось заглянуть в исходники StarCarfta
← →
pasha_golub © ( 2005-08-03 14:03 ) [23]
Skyle © (03.08.05 14:00) [22]
А я почему-то думаю, что это неудавшаяся шутка. 🙂
> [23] pasha_golub © (03.08.05 14:03)
Ну дык я не над шуткой смеялся ([7]), а скорее над шутником..;-)
← →
Dok_3D © ( 2005-08-03 15:15 ) [25]
← →
evvcom © ( 2005-08-03 15:24 ) [26]
StarCarfter (03.08.05 13:32) [2]
Конечно же есть. Зовется MakerBestModForCtarCraft
Открываешь ддл-ку жмеш.
Мод\Создать В появившемся окошке выбираешь Серьезный (по умолчанию стоит НеСерьезный)
Все.
evvcom © (03.08.05 15:24) [26]
IDE? Или все же IDA имелся в виду?
да
← →
oldman © ( 2005-08-03 16:19 ) [29]
имхо (если память не изменяет) имена переменных не компиляться.
Если на форме одна кнопка и много-много мат.кода, то флаг вам в руки разобраться в полученной распечатке.
oldman © (03.08.05 16:19) [29]
а кто сказал, что StarCraft написан на делфи?
← →
evvcom © ( 2005-08-03 16:52 ) [31]
> а кто сказал, что StarCraft написан на делфи?
А кто вообще обсуждал StarCraft? Обсуждался StarCarft какой-то. 🙂
← →
evvcom © ( 2005-08-03 16:55 ) [32]
> имена переменных не компиляться.
Что значит не компилятся? Компилируется исходный код (текст), а имена переменных могут быть записаны в откомпилированный файл, а могут быть и не записаны.
> Если на форме одна кнопка и много-много мат.кода, то флаг
> вам в руки разобраться в полученной распечатке.
А печатать-то зачем? И зачем разбираться во всем коде?
← →
NeyroSpace © ( 2005-08-04 12:17 ) [33]
КЦ ацтой!
Пиши мод под BattleField 1942.
Там свой скриптовый язык + все тулзы разработчика есть.
← →
Е-клмн © ( 2005-08-04 23:27 ) [34]
← →
Юрий Зотов © ( 2005-08-05 01:02 ) [35]
Думаю, все же лучше потратить время на архитектурный институт.
← →
pasha_golub © ( 2005-08-05 01:13 ) [36]
Юрий Зотов © (05.08.05 01:02) [35]
Или цирковое училище.
← →
Petr V. Abramov © ( 2005-08-05 02:01 ) [37]
> Юрий Зотов © (05.08.05 01:02) [35]
> Думаю, все же лучше потратить время на архитектурный институт.
Должность «архитектор программного обеспечения» ныне востребована и оплачиваема 🙂
← →
yurique ( 2005-08-05 02:52 ) [38]
StarCarfter, ну и тему ты открыл. не думал, что такое можно обсуждать.
с процедурами, функциями и т.д. работаешь ты.. ну и все тут наверно 🙂 а вот проц работает с регистрами, простыми коммандами (скопировать значение, умножить, отнять и т.д.) над этими самыми регистрами и памятью, ну и ещё много с чем, но это уже не интереснро.. так вот компилятор переводит с языка, с которым работаешь ты, на язык, с которым работает проц.. и вместо
procedure add;
var x, y, zu: integer;
begin
x :=10;
y :=20;
zu=x+y;
end;
полчучается что-то такое:
mov eax,$0000000a
mov edx,$00000014
lea esi,[edx+eax]
ну как, восстановишь из второго первое? ; ) с названиями переменных и процедуры?
зы: а супер мод к старику ты тоже в и-нет кафе сделать надумал? ; )
← →
pasha_golub © ( 2005-08-05 03:00 ) [39]
yurique (05.08.05 02:52) [38]
Учитель, я так долго искал Вас. Вы открыли мне путь джедайа. :0)
Просмотр библиотек DLL и исполняемых файлов в окне «Модули» (C#, C++, Visual Basic, F#)
В процессе отладки в Visual Studio окно Модули отображает список используемых приложением библиотек DLL и исполняемых файлов ( .exe), а также сведения о них.
Окно «Модули» недоступно при отладке SQL и скриптов.
Использование окна модулей
Чтобы открыть окно «Модули» во время отладки, выберите Отладка > Окна > Модули или нажмите клавиши CTRL+ALT+U.
По умолчанию модули в окне Модули упорядочены в порядке загрузки. Чтобы выполнить сортировку по любому столбцу окна, щелкните заголовок соответствующего столбца.
Загрузить символы
В столбце Состояние символов в окне Модули показано, для каких модулей загружены отладочные символы. Если здесь указано состояние Загрузка символов пропущена, Невозможно найти или открыть PDB-файл или Загрузка отключена параметром включения и исключения, вы можете загрузить символы вручную. Дополнительные сведения о загрузке и использовании символов см. в статье Указание файлов символов (.pdb) и исходных файлов.
Загрузка символов вручную
В окне Модули щелкните правой кнопкой модуль, для которого не загружены символы.
Выберите Сведения о загрузке символов, чтобы узнать, почему символы не были загружены.
Щелкните Загрузить символы, чтобы загрузить символы вручную.
Если символы не загружаются, выберите Параметры символов, чтобы открыть диалоговое окно Параметры и указать или изменить расположение для загрузки символов.
Вы можете скачать символы с общедоступных серверов символов Майкрософт или других аналогичных серверов, а также загрузить их из локальной папки на компьютере. Дополнительные сведения см. в разделе об указании расположения символов и поведения при загрузке.
Изменение параметров поведения при загрузке символов
В окне Модули щелкните правой кнопкой мыши любой модуль.
Выберите Параметры символов.
Выберите Загрузить все символы или выберите конкретные модули.
Нажмите кнопку ОК. Изменения вступят в силу при следующем сеансе отладки.
Изменение поведения загрузки символов для конкретного модуля
В окне Модули щелкните правой кнопкой мыши требуемый модуль.
В контекстном меню установите или снимите флажок Всегда загружать автоматически. Изменения вступят в силу при следующем сеансе отладки.