Декомпилятор dll: dotPeek — бесплатный инструмент для декомпиляции и исследования сборок .NET от JetBrains
Как декомпилировать c++ dll? — CodeRoad
Я занимаюсь исследованиями в области обратного инжиниринга. Я могу декомпилировать файлы .net dll с помощью рефлектора. Но в reflector мы не можем декомпилировать файлы c++ dll. Существует ли какой-либо другой декомпилятор, доступный для декомпиляции файлов c++ dll?
c#
c++
.net
reverse-engineering
decompiling
Поделиться
Источник
Praveen Kumar
30 сентября 2013 в 06:33
2 ответа
1
Это не так просто. C++ переводится в (Иногда) очень оптимизированный машинный код.
Там есть подробная статья о http://www.codeproject.com/Articles/4210/C-Reverse-Disassembly , содержащая дополнительную информацию.
Edit: или действительно, проверьте ссылки, размещенные в комментариях других людей.
Поделиться
Jensen
30 сентября 2013 в 06:45
1
В отличие от CLR языков, C++ не компилируется в CIL или любой другой байт-код. Кроме того, компиляторы C++ не хранят метаданные, поэтому восстановить исходный код (пользовательские типы, классы и т. д.) практически невозможно. Машинный код также может быть сильно оптимизирован.
Однако вы можете попробовать воссоздать чистый код C с помощью HexRays для IDA Pro (хотя это не бесплатно).
Поделиться
Roman Zavalov
30 сентября 2013 в 06:48
Похожие вопросы:
Как декомпилировать файл .dll?
У меня есть .dll, который я хотел бы декомпилировать, чтобы внести некоторые улучшения в код. Какие существуют инструменты, которые позволят мне сделать это? Кажется, это написано в 28-м году.
Как декомпилировать / скомпилировать файлы dll?
У меня есть приложение, написанное в C#. он уже был скомпилирован. Там есть много файлов dll, и я не мог их открыть, декомпилировать их не могу видеть и получить доступ к коду C#, который их. ..
Как декомпилировать файл .dll, созданный в VS.net
Мне нужно декомпилировать файл dll, созданный в VS.net. Есть ли какой-либо инструмент, доступный для этого? Или у меня может быть какой-то код для этого? Пожалуйста помочь.
Какой инструмент может декомпилировать исходный код DLL в C++?
У меня есть старый DLL, который перестал работать (log2vis.dll), и я хочу заглянуть внутрь него, чтобы увидеть, какие объекты он использует. DLL был написан на языке C++ (нет .NET). Есть ли…
Можно ли декомпилировать DLL, написанное в C?
Я хочу декомпилировать DLL, который, как мне кажется, был написан в C. Как я могу это сделать?
Можем ли мы декомпилировать C# dll в VB.NET
Я разработал dll в C#.net. мы можем декомпилировать то же самое в VB.net. Если да, то как это сделать?
я хочу декомпилировать файл dll, созданный с помощью visual studio c#, но не .NET dll. . NET отражатель объявления
Я хочу декомпилировать dll, созданный с помощью visual studio c#, но не .NET dll. .NET Reflector объявляет не декомпилятор .NET. IS существует ли какой-либо другой декомпилятор?
Декомпилировать JAVA DLL
Я получил файл java dll с приложением, которое я скачал. Этот файл DLL был написан в Java, и теперь я хочу его декомпилировать. Вот как я называю этот dll, который содержит jar: new…
Декомпилировать обфусцированный dll
Я должен декомпилировать запутанный dll, который был написан в Microsoft Visual C++ 6.0 DLL? Как я могу это сделать? Я пробовал так много программного обеспечения .Net Reflector, JetBrains dotPeeks,…
Как декомпилировать файл DLL, созданный MATLAB, в файл mat
Я знаю, что мы не можем декомпилировать из файла DLL (сделанный MATLAB) в файл .mat. Но теперь у меня есть DLL, созданный MATLAB (загруженный сюда ). Пожалуйста, попробуйте конвертировать его в файл. ..
Устойчивая к декомпиляции DLL (Delphi)
В дополнение к сказаномому @Alekcvp и @cpp_user могу вот, что добавить:
Вариант №1.
Вырезаем всю отладочную инфу и компилим в релиз версии. В добавок вырезаем весь rtti. Это делает ваш код относительно «чистым». Ну тут есть не большие «огрешности»:
- Компилятор все равно вставит rtti от стадартных библеотек. Это можно вылечить перекомпилацией rtl, но это сложно.
- В коде могут использоваться такие процедуры как SetLength/New/Dispose и тд. Всем им нужен rtti типа передаваемой переменой, то есть rtti для таких переменых будет в бинарнике.
- Сами классы внутри бинарников имеют некую информацию без rtti, такие как имя класса, список полей(без имен) для авто освобождения.
Какие плюсы:
Какие минусы:
- Разбирающейся хоть немного спец разберет бинарник без всяких проблем
Вариант №2
Берем другой язык. Например С++ или подобный. Мало чем отличается от предыдущего в плане взлома но, инфы в бинарнике как правило на порядок меньше, поумолчанию.
Какие плюсы:
Какие минусы:
Вариант №3
Берем стороние средства защиты. Тут нужно выбирать средства, которые реализуют защиту посредством виртуальной машины в ядре операционки. Всё остальные(шифраторы или упаковщики) ломаются очень лекго.
Это пожалуй самый надежный метод если защита строится локально. Но тут нужно понимать, что такое решение для всего своего кода может очень сильно снизить производительность.
Какие плюсы:
- Для взлома понадобится очень не плохой спец и это спецу понадобится
возможно много времени, а это много денег и есть шанс, что ломать
изза этого не станут.
Какие минусы:
Стоит денег(может даже не мальньких).
Если виртуалка была взломана(и особенно метод взлома лежит в
интернэтах) все пиши пропало.
Вариант №4
Можно постараться реализовать секретную логику на своем сервере. Тут правда нужен свой сервер и если клиентов много, то нужен мощный сервер.
Какие плюсы:
- Локальный взлом бесполезен, а чтоб пролезть на сервак нужен
хороший(дорогой) спец.
Какие минусы:
- Стоит денег(при большой кол-во клиентов стоит бешеных денег).
Delphi Decompiler — StudioGM Software
Delphi Decompiler
Текущая версия: 1.7 (сборка 929) бета версия
Дата последнего обновления: 24 Апреля 2014
Поддерживаемые форматы файлов: EXE, DLL, BPL, DCU
Описание
Данная программа предназначена для частичного восстановления утерянного исходного кода программ сделанных с помощью компилятора Delphi.
Загрузка
Имя файла | Размер | Описание | Ссылка |
DelphiDecompiler. zip | 2,24Мб | Архив с программой | Скачать |
История изменений
Версия 1.7 сборка 929 (24.04.2014)
* Исправлены критические ошибки в DCUDumper
Версия 1.6 сборка 911 (23.04.2014)
* Добавлена декомпиляция DCU для Delphi XE-X5
Версия 1.5 сборка 888 (24.07.2012)
* Исправлены критические ошибки при дампировании програм скомпилированных в Delphi 2010,XE и XE2
* Исправлены мелкие ошибки в окне «Select Process»
Версия 1.4 сборка 808 (19.07.2012)
* Исправлена критическая ошибка в получении списка процессов в окне «Select Process»
+ Добавлено определение программ скомпилированных в Delphi XE2
Версия 1.3 сборка 777 (18.07.2012)
* Данная версия предназначена только для тестирования
+ Частичная поддержка Delphi XE and Delphi XE2
+ Полная поддержка декомпиляции DCU для Delphi XE и Delphi XE2
+ Полный рефакторинг интерфейса программы
— Удалена поддержка языков, теперь только английский язык
* Исправлено много ошибок в окне «Select Process»
+ Добавлены привилегии отладки
* Исправлено много других ошибок
Версия 1. 1 сборка 211 (26.03.2010)
* Исправлено определение программ откомпилированных в Delphi 7 (cпасибо GPcH)
+ Добавлена возможность перетаскивать файлы на главное окно программы (drag & drop)
Версия 1.1 сборка 195 (04.03.2010)
+ Доработан DSF редактор
* Исправлено исчезновение DSF редактора при парсинге
+ В DSF редакторе добавлена поддержка Delphi 2007, 2009, 2010 (пока работает только для парсинга .bpl)
* Оптимизирован код для отрисовки ассемблерного кода
* Полная реконструктизация проекта для ускорения работы по выпечке сборок и последующего тестирования
Версия 1.1 сборка 191 (08.02.2010)
+ Доработан PE редактор
+ Доработано окно «Настройки»
+ Добавлена возможность изменения шрифтов:
— в DFM редакторе
— в списках ListView
— в дизассемблере
* уменьшена задержка таймера на окно заставки
Версия 1.1 сборка 187
+ исправлен PE редактор
+ добавлена возможность дампирования проектов Delphi 2007
+ добавлена возможность дампирования проектов Delphi 2009
+ добавлена возможность дампирования проектов Delphi 2010
Версия 1. 1 сборка 180
+ присвоен статус «бета»
Версия 1.1 сборка 177
+ Переписан движок декомпиляции DCU
+ Переписан движок анализа EXE
+ Новый формат doi и dsf
+ Полностью изменен интерфейс
+ Возможность полноценного сохранения проекта (полноценная загрузка проекта на стадии доработки)
+ полноценная поддержка программ написанных на Delphi 2 — 7
Коммандная строка
nosplash | не показывать заставку при запуске |
openfile:»» | при запуске открыть файл |
top
Обратная инженерия с помощью Reflector. Часть 1
Обратная инженерия с помощью Reflector. Часть 1
Целью данной работы было объяснить и научить вас сложным техникам обратной инженерии (в основном, с использованием Red Gate Reflector). В данной статье я шаг за шагом развею миф о невозможности дизассемблирования и взлома .NET файлов для получения конфиденциальной информации.
Автор: Ajay Yadav
Краткое содержание
Целью данной работы было объяснить и научить вас сложным техникам обратной инженерии (в основном, с использованием Red Gate Reflector). В данной статье я шаг за шагом развею миф о невозможности дизассемблирования и взлома .NET файлов для получения конфиденциальной информации. Я покажу, как осуществлять поиск точек входа, лицензионных ключей, паролей и серийных ключей. В предыдущих статьях было рассмотрено много вариантов обратной инженерии с использованием таких средств, как, например, CFF и ILDASM. Reflector упрощает дизассемблирование или декомпилирование .NET файлов. Он является признанным средством обратной инженерии в кругу профессионалов по безопасности.
Предпосылки
Исследователь безопасности должен иметь представление о языках программирования, поддерживаемых . NET. В наши дни – помимо IL и шестнадцатеричного кода – мы постоянно сталкиваемся с исходниками на C# и vb.net. Работа с исходным кодом гораздо проще, чем с байт-кодом и кодами операций. На компьютере исследователя безопасности должны быть установлены следующие продукты:
- Red Gate Reflector
- .NET Framework 2.x version
- VC 2010 IDE
- ILDASM.exe (не обязательно)
Reflector
Reflector относится к средствам дизассемблирования. Он разработан компанией Red Gate. Хотя раньше эта программа распространялась бесплатно, теперь разработчик коммерциализировал ее. Reflector используется для декомпиляции или дизассемблирования .NET файлов (к которым могут относиться как исполняемый файлы, так и DLL).
Функционал данной программы ограничен, и она может применяться только к файлам, созданным под CLR, она не сможет декомпилировать прочие неизвестные ей сборки. Но ограничение становится преимуществом, если мы можем легко предсказать фреймворк DLL или EXE. Если бинарный файл открыт или декомпилирован в Reflector IDE, тогда он является сборкой .NET.
Для профессионалов в сфере обратной инженерии Reflector имеет ряд преимуществ. Он предоставляет возможность по IL дизассемблированию. Открывать ILDASM.EXE отдельно нет необходимости. Он может быть интегрирован с Visual Studio 2010 или 2012 в качестве дополнения, которое может конвертировать декомпилированный код к другим языкам, поддерживаемым .NET, например VB.NET или Delphi. Мы можем запустить командную строку Visual Studio прямо из Reflector’а для тестирования или выполнения файла прямо из программы после декомпиляции сборки. И наконец, мы можем просмотреть декомпилированный код любого NET framework от версии 4.5 до 1.0.
После того, как вы скачаете и установите IDE, вы увидите нечто похожее:
Примечание:
Помимо описания преимуществ и возможностей, я бы хотел упомянуть об общем заблуждении, что Reflector не может редактировать исходный код или коды операций. NET. В отличие от других дизассемблеров (CFF, IDA pro или Ollydbg), он не может сохранять свой проект в качестве сборки, он может только декомпилировать. Что касается редактирования .NET-файлов, появляется необходимость в установке открытого дополнения в среду разработки Reflector’а. Можно найти много разных полезных дополнений, позволяющих, например, редактировать шестнадцатеричный код или коды операций. Изменения можно будет сохранить в отдельный файл.
Целевое ПО
В статье мы не будем полагаться на уже готовое ПО или прочие сторонние файлы для демонстрации дизассемблированного исходного кода. Вместо этого, мы разработали свое приложение.
Я назвал его «Champu» в честь домашнего питомца моего сына. Программу можно запустить, когда инициируется тест, и она будет работать в триальном режиме 15 дней. Это первая особенность, касающаяся безопасности. Второй же особенностью является то, что для доступа в приложение необходимо ввести имя пользователя, пароль и лицензионный ключ. Это позволяет защититься от пиратов. Начальное окно триальной версии выглядит следующим образом.
Пользователь может запустить ознакомительная версию, нажав кнопку «Continue». Далее вы должны будете задать имя пользователя и пароль.
Если пользователь захочет приобрести полную версию продукта, он должен перейти на сайт производителя и получить там лицензионный ключ. Этот ключ должен вводиться в следующем окне:
Вы спросите, есть ли другой способ получить полную версию, без оплаты? Да, обратная инженерия – лучший способ для взлома проприетарной программы.
Дизассемблирование.
Как можно заметить, в диалоговом окне кнопка «Continue» неактивна и показано сообщение об истечении пробного периода. У нас нет исходного кода программы, чтобы мы могли модифицировать его для получения полной версии. Остается только купить ключ…
Что ж, пришло время действовать! Все что у нас есть – это champu.exe, а большего нам и не надо. Запустим Reflector IDE и откроем в нем Champu.exe. Когда файл будет открыт, вы увидите следующий график. Мы знаем, что файл был создан с помощью .NET фреймворка, так как мы смогли его открыть.
Исполняемый файл автоматически преобразуется в соответствующие файлы исходного кода. В нем есть начальная информация о сборке, типе приложения, версии, криптографическом ключе, копирайте, GUID’е и используемом фреймворке.
Также мы можем получить дополнительную информацию о внешних ссылках .NET сборки данного файла, как и о использованных изображениях.
Достаточно просто можно получить большое количество информации о программе. Далее кликнем правой кнопкой мыши по файлу champu.exe, и среда разработки предложит вам различные инструменты для работы, как, например, анализатор, ILDASM, командная строка и запуск приложения.
Можно заметить, что champu.exe содержит пространства имен, которое в свою очередь содержит классы C_Trial, Login и Register и статические классы Program и gData. Можно предположить, что данные классы реализуют весь функционал и ответственны за логику работы программы.
Сборка может содержать множество классов, и они будут содержать два разных типа реализованной логики. Таким образом, очень сложно определить точку входа для трассировки, но нам необходимо это сделать. Нужно кликнуть правой кнопкой мыши на champu.exe, а затем перейти по ссылке «Go To Entry Point». Справа отобразится функция сборки Main(), и будет загружен класс C_Trail.
Теперь мы определили точку входа – класс C_Trail, в котором реализована логика триального срока действия. Выбираем нужный класс в левой панели при раскрытии пространства имен Champu. Он позволит нам определить логику контроля лицензии, используемую в программе. Этот класс содержит два метода: RegisteredUser() и TrailCheck().
Перейдем в тело метода TrailCheck(). Здесь находится часть, отвечающая за логику триального периода. Можно понять, что программа будет работать 15 дней с 5. 10.2013. Кроме того, в исходном коде мы можем найти сообщение об истечении пробного периода пользования программой.
Вот и код этого метода. Нельзя с уверенностью сказать о срабатывании основного условия. Выберем TrailCheck() в левой панели и воспользуемся анализатором. Здесь я покажу кое-какую полезную информацию, такую как условие срабатывания (On_Load()) и зависимости.
По умолчанию Reflector показывает код программы на C#. Некоторые программисты не очень хорошо знают этот язык, специально для них существует возможность изменить язык на другой, поддерживаемый .NET, например, VB.NET.
Если вы хотите изучить инструкции кодов операций MSIL, вы можете использовать соответствующий IL код. Использовать ILDASM нет необходимости.
Reflector также предоставляет возможность экспорта/импорта исходного кода в/из XML файла.
Иногда нам необходимо видеть состояние глобального кэша сборок – хранилища всех .NET сборок. Утилита GAC в Reflector предоставляет нам такую возможность, как показано ниже.
Итоги
Данная статья показывает процесс дизассемблирования кода с помощью Reflector. Как уже говорилось ранее, эта программа не является средством изменения кода, она лишь проводит декомпиляцию для последующего анализа логики работы программы. Кроме того, в данной работе рассматриваются несколько возможностей Reflector’а, например экспорт/импорт сборки, GAC, анализатор, а также конвертация кода (очень полезная в ходе дизассемблирования особенность). Также в целях поиска интересующей нас информации был проанализирован класс C_Trail. В следующей статье мы проведем анализ остальных классов для последующего взлома приложения.
Чем можно распаковать и запаковать обратно DLL? — Вопросы на DTF
Чем можно распаковать и запаковать обратно DLL? — Вопросы на DTF
Доброго времени суток, заранее извиняюсь что задаю вопрос здесь, но надеюсь кто нибудь подскажет как это сделать.
Собстно есть игра под названием Re:Legend, захотел сделать перевод интерфейса, попробовал такую штуку как UnityEX посмотрев все assets и resource пришел к выводу что текста ни там, ни там, нету, но в программе есть функция благодаря которой я понял что весь текст к моему удивлению лежит не в ресурсах, а в dll, а конкретно — Assembly-CSharp.dll и Assembly-CSharp-firstpass, задавшись вопросом как это дело открыть, я нашел примерно ничего, а точнее вообще никакой информации о том как это сделать, единственное мне повезло наткнутся на 2 программы ildasm и ilasm (Была просто ссылка на архив с ними без описания того как они работают, разбирался методом тыка), никогда ранее о них не слышал, беглый поиск дал понять что и гугл об этом особо ничего не знает, нашел разве что какие то статьи от Microsoft по этим программам, и за одно параметры для батника.
Что в итоге получилось?
Я смог распаковать dll в формат il, и рядом с ним еще появился файл с расширением res весом 1кб, с помощью программы ScanIL я смог открыть файл il, нашел там нужные мне строки, и изменил их, кстати о самой программе ScanIL гугл вообще ничего не знает, выдавал вообще левые сайты, далее когда пришло время запаковать это все обратно, я столкнулся с непонятной мне проблемой, я перетаскивал 2 файла в батник который должен был запаковать, он около 20-30с что-то делал, в конце писал что закончил работу и. . ничего не появлялось и не происходило, и собранного обратно Assembly-CSharp.dll тоже не было, найти новую версию программы ildasm&ilasm у меня получилось, но вот к положительному результату это не привело, она тоже не запихивает файлы обратно.
Прошу у знающих пользователей DTF помощи в этом вопросе, или подсказок, сам в этом не разберусь т.к никогда ранее не трогал dll файлы и не представляю как они устроены, если необходимо то могу прикрепить те 2 файла и программы которые использовал.
1156
просмотров
{
«author_name»: «Tomoe Mikage»,
«author_type»: «self»,
«tags»: [],
«comments»: 39,
«likes»: 4,
«favorites»: 14,
«is_advertisement»: false,
«subsite_label»: «ask»,
«id»: 110381,
«is_wide»: true,
«is_ugc»: true,
«date»: «Sat, 07 Mar 2020 17:13:42 +0300»,
«is_special»: false }
{«id»:106610,»url»:»https:\/\/dtf. ru\/u\/106610-tomoe-mikage»,»name»:»Tomoe Mikage»,»avatar»:»9829cd80-c175-6bad-e378-4c5e46ff8829″,»karma»:643,»description»:»»,»isMe»:false,»isPlus»:false,»isVerified»:false,»isSubscribed»:false,»isNotificationsEnabled»:false,»isShowMessengerButton»:false}
{«url»:»https:\/\/booster.osnova.io\/a\/relevant?site=dtf»,»place»:»entry»,»site»:»dtf»,»settings»:{«modes»:{«externalLink»:{«buttonLabels»:[«\u0423\u0437\u043d\u0430\u0442\u044c»,»\u0427\u0438\u0442\u0430\u0442\u044c»,»\u041d\u0430\u0447\u0430\u0442\u044c»,»\u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c»,»\u041a\u0443\u043f\u0438\u0442\u044c»,»\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c»,»\u0421\u043a\u0430\u0447\u0430\u0442\u044c»,»\u041f\u0435\u0440\u0435\u0439\u0442\u0438″]}},»deviceList»:{«desktop»:»\u0414\u0435\u0441\u043a\u0442\u043e\u043f»,»smartphone»:»\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b»,»tablet»:»\u041f\u043b\u0430\u043d\u0448\u0435\u0442\u044b»}},»isModerator»:false}
Еженедельная рассылка
Одно письмо с лучшим за неделю
Проверьте почту
Отправили письмо для подтверждения
[
{
«id»: 1,
«label»: «100%×150_Branding_desktop»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«adfox_method»: «createAdaptive»,
«auto_reload»: true,
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «ezfl»
}
}
},
{
«id»: 2,
«label»: «1200х400»,
«provider»: «adfox»,
«adaptive»: [
«phone»
],
«auto_reload»: true,
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «ezfn»
}
}
},
{
«id»: 3,
«label»: «240х200 _ТГБ_desktop»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fizc»
}
}
},
{
«id»: 4,
«label»: «Article Branding»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«p1»: «cfovz»,
«p2»: «glug»
}
}
},
{
«id»: 5,
«label»: «300x500_desktop»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «ezfk»
}
}
},
{
«id»: 6,
«label»: «1180х250_Interpool_баннер над комментариями_Desktop»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «h»,
«ps»: «clmf»,
«p2»: «ffyh»
}
}
},
{
«id»: 7,
«label»: «Article Footer 100%_desktop_mobile»,
«provider»: «adfox»,
«adaptive»: [
«tablet»,
«phone»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«p1»: «bwral»,
«p2»: «fjxb»
}
}
},
{
«id»: 8,
«label»: «Fullscreen Desktop»,
«provider»: «adfox»,
«adaptive»: [
«desktop»,
«tablet»
],
«auto_reload»: true,
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fjoh»
}
}
},
{
«id»: 9,
«label»: «Fullscreen Mobile»,
«provider»: «adfox»,
«adaptive»: [
«phone»
],
«auto_reload»: true,
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fjog»
}
}
},
{
«id»: 10,
«disable»: true,
«label»: «Native Partner Desktop»,
«provider»: «adfox»,
«adaptive»: [
«desktop»,
«tablet»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fmyb»
}
}
},
{
«id»: 11,
«disable»: true,
«label»: «Native Partner Mobile»,
«provider»: «adfox»,
«adaptive»: [
«phone»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fmyc»
}
}
},
{
«id»: 12,
«label»: «Кнопка в шапке»,
«provider»: «adfox»,
«adaptive»: [
«desktop»,
«tablet»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fdhx»
}
}
},
{
«id»: 13,
«label»: «DM InPage Video PartnerCode»,
«provider»: «adfox»,
«adaptive»: [
«desktop»,
«tablet»,
«phone»
],
«adfox_method»: «createAdaptive»,
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «h»,
«ps»: «clmf»,
«p2»: «flvn»
}
}
},
{
«id»: 14,
«label»: «Yandex context video banner»,
«provider»: «yandex»,
«yandex»: {
«block_id»: «VI-250597-0»,
«render_to»: «inpage_VI-250597-0-1134314964»,
«adfox_url»: «//ads. adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=»
}
},
{
«id»: 15,
«label»: «Баннер в ленте на главной»,
«provider»: «adfox»,
«adaptive»: [
«desktop»,
«tablet»,
«phone»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«p1»: «byudo»,
«p2»: «ftjf»
}
}
},
{
«id»: 16,
«label»: «Кнопка в шапке мобайл»,
«provider»: «adfox»,
«adaptive»: [
«tablet»,
«phone»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«p1»: «chvjx»,
«p2»: «ftwx»
}
}
},
{
«id»: 17,
«label»: «Stratum Desktop»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«auto_reload»: true,
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fzvb»
}
}
},
{
«id»: 18,
«label»: «Stratum Mobile»,
«provider»: «adfox»,
«adaptive»: [
«tablet»,
«phone»
],
«auto_reload»: true,
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «fzvc»
}
}
},
{
«id»: 19,
«label»: «Тизер на главной 2»,
«provider»: «adfox»,
«adaptive»: [
«desktop»,
«tablet»,
«phone»
],
«auto_reload»: true,
«adfox»: {
«ownerId»: 228129,
«params»: {
«p1»: «cmtwg»,
«p2»: «gazs»
}
}
},
{
«id»: 20,
«label»: «Кнопка в сайдбаре»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«p1»: «chfbl»,
«p2»: «gnwc»
}
}
},
{
«id»: 21,
«label»: «Ультратизер»,
«provider»: «adfox»,
«adaptive»: [
«desktop»
],
«adfox»: {
«ownerId»: 228129,
«params»: {
«pp»: «g»,
«ps»: «clmf»,
«p2»: «gtjk»
}
}
}
]
{«token»:»eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJwcm9qZWN0SWQiOiI1ZTRmZjUyNjYyOGE2Yzc4NDQxNWY0ZGMiLCJpYXQiOjE1ODI1MzY0Nzd9.BFsYFBgalfu_3oH9Fj-oBhiEgVx976VQfprRahAELFQ»,»release»:»0c0dfc83″}
{
«jsPath»: «/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020»,
«cssPath»: «/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020»,
«fontsPath»: «https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic»
}
null
DLL — формат файла. Чем открыть DLL?
Файлы формата DLL открываются специальными программами. Существует 2 типа форматов DLL, каждый из которых открывается разными программами. Чтобы открыть нужный тип формата, изучите описания файлов и скачайте одну из предложенных программ.
Найти и установить любую недостающую или поврежденную DLL библиотеку поможет программа HELPER.DLL.
В файлах формата DLL содержатся настройки ссылки на различные ресурсы, используемые программой, например, иконки. DLL предназначены исключительно для ОС Windows. На других операционных системах открыть такие файлы можно только с помощью эмуляторов (исключением являются кроссплатформенные приложения для Mac OS). Нужно помнить, что современные программы не поддерживают файлы для 16-ти битной архитектуры.
Меры предосторожности
В большинстве случаев пользователю не требуется открывать файлы формата DLL, поскольку они предназначены исключительно для разработчиков. Редактирование данного файла может негативно сказаться на работоспособности отдельных программ и операционной системы, по этой причине нужно найти файл Dll и сделать его копию.
Программы для открытия файлов DLL
Просмотр исходного кода
Одним из самых распространенных способов, чтобы просмотреть расширение Dll, является ResourceHacker. Программа имеет встроенные функции декомпиляции некоторых файлов, поэтому можно заниматься отладкой dll, а главное, она полностью бесплатна. Разумеется, гарантировать корректное отображение кода для всех файлов невозможно.
В качестве альтернативы можно использовать декомпилятор dotPeek. Он также бесплатен, однако способен работать исключительно с программами, написанными на C#.
Настройка интерфейса программы
Для этой цели лучше всего подходит Resource Tuner. С помощью данной программы можно легко сменить иконки, диалоги или установить собственную анимацию. К сожалению, программа является платной даже для некоммерческого использования. Следует обратить внимание, что могут возникнуть проблемы с файлами больших размеров (около 1 ГБ и более).
Отладка
Самым простым способом является использование Visual Studio от Microsoft. Это довольно функциональный инструмент, в число возможностей которого входит отладка программы, но поможет он только в случае, если на файле нет защиты.
Если же нужно просто скачать DLL взамен битого файла (или отсутствует Dll), то здесь поможет DLL-helper — полностью бесплатная программа.
Динамические web-страницы
Существует и другой формат DLL – файлы, генерирующие код для сайтов. Такие библиотеки можно открыть в любой удобной среде разработки, например, Visual Studio. Протестировать их в действии поможет браузер. Лучше использовать последние версии популярных обозревателей, в противном случае файл может отображаться некорректно.
КАК ОТКРЫТЬ ФАЙЛЫ DLL: 10 ШАГОВ (С ИЗОБРАЖЕНИЯМИ) — ЧАЕВЫЕ
«Библиотека динамической компоновки», или файлы DLL, являются частью традиционного программирования для Window. Эти файлы используются приложениями для получения дополнительных функций и биб
«Библиотека динамической компоновки», или файлы DLL, являются частью традиционного программирования для Windows. Эти файлы используются приложениями для получения дополнительных функций и библиотек, не встраивая их в саму программу. Обычно они используются разным программным обеспечением. Для большинства пользователей библиотеки DLL работают в фоновом режиме, и вам редко придется иметь с ними дело. Однако время от времени может возникнуть необходимость зарегистрировать элемент в этом формате для программы, которую вы установили, чтобы она работала правильно. Если вас интересует кодирование, вам может очень помочь изучение того, как создаются библиотеки DLL.
меры
Метод 1 из 2: использование файлов DLL
Узнайте, что такое файл DLL. Акроним означает «Библиотека динамической компоновки», то есть библиотеки динамической компоновки, показывая, что файл Windows используется программой для использования существующих функций. Фактически, они позволяют Windows и другим программам получать функциональные возможности без их встроенной функции.- Файлы DLL являются неотъемлемой частью программирования Windows, благодаря чему программное обеспечение работает более эффективно и быстрее.
Знайте, что большинству пользователей даже не нужно открывать файлы DLL или взаимодействовать с ними. Большинство из них работают в фоновом режиме, и программы устанавливаются и получают к ним доступ автоматически. Их перемещение может вызвать серьезные проблемы с системой.- Иногда вас могут попросить поместить файл DLL в определенное место при установке программ, созданных сообществом. Прежде чем делать это, убедитесь, что приложение надежно, поскольку библиотеки DLL могут быть вредоносными.
- Если вам интересно узнать, как создаются файлы DLL, прочтите следующий раздел.
Зарегистрируйте новую DLL. Если вам нужно вручную скопировать файл DLL в папку для использования программой, вам может потребоваться поместить его в реестр Windows, прежде чем его можно будет использовать. Прочтите документацию к программе, чтобы определить, нужно ли вам делать этот шаг (это очень необычно для большинства программ Windows).- Откройте командную строку. Программу можно найти, открыв меню Пуск или нажав клавиши ⊞ Победа+р и печатать CMD, Перейдите в расположение нового файла DLL.
- Если вы используете Windows 7 или более новую версию, откройте папку, содержащую новый файл DLL, удерживайте клавишу ⇧ Shift, щелкните папку правой кнопкой мыши и выберите «Открыть окно команд здесь». Командная строка откроется непосредственно в этой папке.
- введи это regsvr32 прозвище.dll и нажмите ↵ Enter, Это добавит файл DLL в реестр Windows.
- Войти regsvr32 -u прозвище.dll удалить DLL-файл из реестра Windows.
Метод 2 из 2: декомпиляция файлов DLL
Скачайте и установите декомпилятор. Это программа, которая позволяет вам видеть исходный код, который использовался для создания файла или программы, в данном случае файла DLL. Чтобы увидеть код, который дает функциональные возможности DLL, необходимо будет использовать «декомпилятор», чтобы вернуть его к читаемому коду. Открытие файла DLL без декомпилятора (как в Блокноте) приведет к появлению экрана с беспорядочными символами и совершенно бессмысленным.
- DotPeek — один из самых популярных бесплатных декомпиляторов, доступный на сайте jetBrains.
Откройте файл DLL в декомпиляторе. Если вы используете dotPeek, просто нажмите «Файл» → «Открыть» и найдите DLL, которую хотите декомпилировать. Можно будет исследовать содержимое файлов DLL, не затрагивая вашу систему.
Используйте «Обозреватель сборок» для просмотра узлов DLL. Файлы этого формата состоят из «узлов» или модулей кода, которые работают вместе, чтобы сформировать весь файл DLL. Вы можете развернуть каждый из них, чтобы увидеть любые подузлы, которые могут содержаться.
Дважды щелкните узелки, чтобы увидеть код. Он появится в правом углу dotPeek. Просмотрите код, чтобы просмотреть его. DotPeek покажет его на C # или загрузит дополнительные библиотеки для просмотра исходного исходного кода.
- Если узлу нужно просмотреть больше библиотек, dotPeek попытается загрузить их автоматически.
Уточните новые фрагменты кода. Если вы нашли фрагмент кода, который вам не понятен, воспользуйтесь функцией «Быстрая документация», чтобы узнать, что делает команда.
- Поместите курсор на ту часть кода, для которой требуется документация, в поле «Средство просмотра кода».
- Нажмите Ctrl+Q для загрузки окна «Быстрая документация».
- Перейдите по гиперссылкам, чтобы узнать больше о каждом аспекте исследуемого кода.
Экспортируйте код в Visual Basic. Если вы хотите самостоятельно манипулировать, редактировать и создавать файл, его можно экспортировать в Visual Studio. Экспортированный код будет на C #, даже если он изначально был написан на совершенно другом языке.
- Щелкните правой кнопкой мыши файл DLL проводника сборок.
- Выберите «Экспорт в проект».
- Выберите один из вариантов экспорта. Если вы хотите немедленно приступить к работе, проект можно сразу открыть в Visual Studio.
Отредактируйте код Visual Studio. Когда у вас есть проект, загруженный в Visual Studio, у вас будет полный контроль над редактированием и построением библиотеки DLL в вашем собственном творении. Щелкните здесь, чтобы получить более подробные инструкции по использованию Visual Studio.
Декомпилировать сборку на C #
Иногда нам нужно декомпилировать файлы .dll и .exe, созданные на C # или VB.NET. Существует несколько причин, по которым нам необходимо скомпилировать файлы .NET .dll и .exe.
Мы можем декомпилировать его, чтобы узнать структуру кода или поведение класса или интерфейса, используемого внутри этой сборки.
Примерно 2 года назад мой друг пришел ко мне и сказал, что он создал веб-сайт в ASP.NET с C # и разместил его на сервере, но он случайно удалил исходный код и имел только сборки, но не исходный код.Я помог ему декомпилировать код и каким-то образом разместил сайт, построенный из декомпилированного исходного кода.
Если вы ищете какое-то решение или ищете внутреннее поведение любого .NET-класса, много раз люди говорят, что они декомпилировали код, и говорят о своем открытии.
Для декомпиляции сборки .NET нам понадобится декомпилятор, вот и все. На рынке доступно множество декомпиляторов.
Вот некоторые популярные декомпиляторы: И еще много декомпиляторов доступно на рынке.
Но я собираюсь объяснить только 2 декомпилятора ILDasm и dotpeek. Потому что оба очень популярны и широко используются.
ILDASM
Дизассемблер IL (Ildasm.exe) — это продукт Microsoft и встроенный дизассемблер для .NET, который автоматически устанавливается вместе с Visual Studio.
Откройте командную строку разработчика для Visual Studio 2013 или 2015 и введите ILDASM:
Нажмите Enter, откроется новое окно,
Зайдите в меню «Файл», откройте — выберите.dll или .exe, который вы хотите открыть. Он загрузит dll, как показано на следующем рисунке.
Вы можете развернуть и изучить здесь пространства имен, классы, интерфейсы, классы значений, перечисления, методы, статические методы, поля, статические поля, события, свойства и т. Д.
Вы можете найти полный список символов здесь.
Декомпилируйте DLL с помощью dotPeek
dotPeek — это бесплатный декомпилятор .NET и обозреватель сборок от JetBrains.Загрузите и установите dotPeek отсюда.
Откройте dotPeek и выберите любую сборку, которую я выбрал System.Data.dll.
Щелкните правой кнопкой мыши и выберите — Перейти к реализации (Ctrl + F12),
Вы также можете извлечь из него исходный код.
Создадим консольное приложение. Полный исходный код консольного приложения:
.
Укажите полный путь, куда вы хотите его извлечь.
Нажмите на экспорт. Ниже приведен декомпилированный код:
VB Decompiler — Products — Visual Basic 6.0 декомпилятор и дизассемблер .
NET
на японском на немецком на французском на испанском на русском на китайском
VB Decompiler — это расширенный инструмент, который может декомпилировать программы (EXE, DLL или OCX), написанные на Visual Basic 5.0 / 6.0, и дизассемблировать программы на основе технологии .NET. Как вы знаете, программы, написанные на Visual Basic, можно скомпилировать в интерпретируемый p-код или в собственный код, а сборка .NET всегда компилируется в промежуточный язык Microsoft (MSIL).
Поскольку p-код состоит из команд высокого уровня, большую часть кода можно декомпилировать в исходный код (без имен переменных и некоторых функций). VB Decompiler поддерживает до 1400 команд p-code и максимально точно восстанавливает исходный код. Затем вы можете вручную завершить этот исходный код и попытаться скомпилировать его снова.
Пример P-кода
В случае, если программа скомпилирована в машинный код, VB Decompiler восстановит как можно больше исходного кода; он достигает более высокого уровня успеха, чем любой конкурентный продукт. Даже в этой ситуации VB Decompiler может помочь вам проанализировать программу. Он содержит мощный дизассемблер / эмулятор, который попытается декодировать как можно больше инструкций ассемблера для наиболее вероятных команд VB. Конечно, VB Decompiler может дать сбой при оптимизации некоторых ассемблерных кодов и не сможет восстановить какой-то код. Однако в настоящее время он обеспечивает лучший подход к анализу приложений с машинным кодом.
Пример собственного кода
В случае, если программа скомпилирована в.NET, VB Decompiler восстановит все таблицы и модули из управляемой сборки и дизассемблирует все методы, функции и события с помощью дизассемблера IL. Декомпиляция в исходный исходный код в настоящее время невозможна, но мы предоставляем услугу декомпиляции. VB Decompiler не требует установки .NET Framework для декомпиляции. Декомпиляция поддерживается во всех 32-битных операционных системах Windows.
.NET, пример
Декомпилятор VB может декомпилировать все формы графического интерфейса пользователя и пользовательские элементы управления из файла.Он также может отображать смещение каждого элемента управления.
Пример формы
Как видите, VB Decompiler — отличный инструмент для анализа программ. Это может спасти вам жизнь, если вы случайно потеряли исходный код и вам нужно частично восстановить свой проект.
Мы предлагаем 5 различных лицензий для VB Decompiler: Lite, Personal, Business, Business с функциями трассировки и Business с аналитическими функциями
Возможности декомпилятора VB | Lite | Personal Educational Home | Business | Business с функциями трассировки | Business with Analytic Features |
Декомпиляция форм (frm и frx) и пользовательских элементов управления (ctl, ctx) | |||||
Декомпиляция кода для приложений, скомпилированных с помощью P-Code. Восстановление псевдокода до стандартных инструкций Visual Basic с наибольшей вероятностью успеха. Обработка COM OLE-объектов, вызовов API и т. Д. | |||||
Дизассемблирование процедур Native Code (с мощным дизассемблером Pentium Pro, с поддержкой наборов инструкций MMX и FPU) | |||||
Декомпиляция частично собственного кода (с использованием механизма эмуляции кода) | |||||
Дизассемблирование Visual Studio.NET (VB, C # и т. Д.) Приложения | |||||
Универсальный распаковщик x86 для упакованных приложений (поддерживаются UPX, NSPack и другие популярные инструменты сжатия) | |||||
Две схемы декомпиляции (с парсингом стека и без него) | |||||
Восстановление и редактирование строковых ссылок с поддержкой Unicode | |||||
Раскраска синтаксиса в декомпилированном коде | |||||
Вызовы API восстановления. Прототипы восстановления большинства стандартных API Win32 | |||||
Схема быстрой декомпиляции | |||||
Функции защиты от декомпиляции для защиты вашего программного обеспечения (обфускатор) | |||||
Мощный HEX-редактор с функциями копирования / вставки и отмены / повтора | |||||
Сохранить декомпилированные данные в один файл | |||||
Сохранение списка процедур в файл MAP, сценарий IDA или файл имен HIEW | |||||
Использование VB Decompiler для декомпиляции защищенного авторским правом кода, коммерческого кода, анализа вредоносных программ и / или декомпиляции кода для любого коммерческого проекта | |||||
Активация и использование VB Decompiler в компании (одна лицензия на одного разработчика) | |||||
Отслеживание кода из процедур и функций Native Code, скомпилированного Visual Basic 5. 0 / 6.0. Код не запускается и будет эмулирован VB Decompiler. | |||||
Получить аналитический отчет об областях (процедурах и функциях) программы, выполняющих различные манипуляции с файлами, реестром, окнами, процессами, а также об использовании служебных функций Visual Basic для вызова функций по имени (CallByName) и прямого доступ к адресам памяти (VarPtr). | |||||
Цена |
Минимальные системные требования (для v8.4 или старше): Pentium 166, 32 МБ ОЗУ, Windows 95/98 / ME / 2k / XP / 2003 / Vista / 2008/7/8 / 8.1 / 10
Минимальные системные требования (для версии 9.0 или более поздней): Процессор 1,3 ГГц x86, 1 ГБ ОЗУ, Windows XP / 2003 / Vista / 2008/7/8 / 8.1 / 10
Скриншоты VB Decompiler Pro:
* Microsoft, Windows и Visual Basic являются зарегистрированными товарными знаками Microsoft Corporation.
Not Just My Code: Как отлаживать сторонние библиотеки без их декомпиляции | by Jack Spektor
Примечание. По соображениям производительности я бы посоветовал размещать информацию о символах только для сборок в проводнике сборок.
Шаг 2. Настройте Visual Studio с новым источником символов
Теперь, когда наш сервер символов запущен, нам нужно добавить его в Visual Studio. Тогда Visual Studio будет знать, где искать символы, когда мы отлаживаем процесс.
Нам также необходимо отключить «Just My Code», чтобы включить отладку сторонних библиотек. Также нам нужно включить «Поддержка исходного сервера».
Нам также необходимо добавить новый источник символа на вкладке «Символы».
Примечание. По соображениям производительности я бы посоветовал указать каталог кэша символов, а также явно указать модули, которые должны быть загружены с сервера символов.Это ускорит загрузку символов с сервера символов.
Шаг 3. Загрузка символов
Итак, теперь все готово, и мы можем отлаживать сторонние библиотеки DLL. Но у нас нет доступа к их исходному коду — как мы можем их отладить?
У нас есть несколько вариантов в зависимости от того, есть у вас Resharper или нет. Но сначала приступим к отладке.
В качестве примера я взял код, который интегрирован в Sitecore (.NET CMS).
Как видите, этот класс унаследован от класса OpenExperienceEditor, который является сторонней библиотекой Sitecore — Sitecore.ExperienceEditor.dll.
Я добавил Sitecore.ExperienceEditor.dll в dotPeek, чтобы декомпилировать исходный код. Это также будет означать, что символы будут доступны на сервере символов.
Теперь приступим к отладке!
Я присоединяюсь к w3wp.exe, который представляет собой процесс IIS, на котором размещен мой веб-сайт.
Теперь мы перейдем в Debug -> Windows -> Modules, чтобы перечислить модули, которые мы используем в нашем решении.
Чтобы иметь возможность отлаживать модуль, нам нужно загрузить символы. Это укажет Visual Studio пройти источников символов и найти символы библиотеки.
Примечание. Если символы были загружены успешно, мы увидим, что «Статус символа» изменился на «Символы загружены».
Шаг 4 — С чего начинается все самое интересное
Хорошо… Итак, давайте подведем итоги. Сервер символов запущен. Visual Studio знает, где его найти, и мы успешно загрузили символы, необходимые для отладки стороннего кода.
Теперь нам нужно добавить точку останова.
Вариант 1 — без Resharper.
Откройте Debug -> Windows -> Breakpoints и создайте новую «Function Breakpoint»
Нам нужно будет указать полный путь, включая пространство имен, имя класса и имя функции в диалоговом окне.
Теперь каждый раз, когда вызывается эта функция, мы достигаем точки останова!
Вариант 2 — С Resharper
Это простой. Настройте Resharper для перехода к источнику вместо объявления.
Теперь вы можете просто перейти к декомпилированному коду класса и, как обычно, поставить точку останова.
Удачной отладки!
Дизассемблер PE Explorer. Обратный инжиниринг asm исходного кода exe 32-разрядной dll Параметры процедуры экспорта Delphi.
Дизассемблер PE Explorer разработан таким образом, чтобы упростить его использование по сравнению с другими дизассемблерами.С этой целью некоторые функции других продуктов были опущены, чтобы процесс был простым, , быстрым, и простым в использовании, .
Дизассемблер PE Explorer предполагает, что потребуется ручное редактирование воспроизведенного кода. Однако, чтобы облегчить дополнительное ручное кодирование, дизассемблер использует качественный алгоритм, предназначенный для восстановления исходного кода целевых файлов на языке ассемблера с максимально возможной степенью точности.Будучи столь же мощным, как и более дорогие специализированные дизассемблеры, PE Explorer фокусируется на простоте использования, ясности и навигации. Просто сделали хороший дизассемблер по разумной цене. Он сэкономит вам часы времени и прост в использовании!
Дизассемблер открывает второе окно. Перед процессом разборки в окне Options отображаются следующие параметры:
После того, как вы нажали Начать сейчас , процесс дизассемблирования начинается с определения компилятора, используемого для построения целевого файла.Предварительное знание того, как компилятор собирает файлы, улучшает работу наугад при определении шаблонов распределения данных в целевом файле. Более того, с учетом этой информации идентификация большинства объектов, процедур, переменных, типов и т. Д. Целевого файла может быть достигнута с очень высокой степенью точности.
В настоящее время определены только различные компиляторы Borland . Дизассемблер также декомпилирует файлы, созданные с помощью других компиляторов. Однако в настоящее время он будет отображать только специально идентифицированные внутренние элементы для файлов, скомпилированных с помощью компиляторов Borland / CodeGear. Во время процесса разборки в окне Processing Info отображается следующая информация:
Разборка файлов размером более 1 Мб может занять несколько минут в зависимости от возможностей вашей системы. Обычно для обработки каждого байта целевого файла требуется 40 байтов памяти. Например, для файла размером 1 Мбайт потребуется 40 Мбайт оперативной памяти, для файла 2 Мбайт — 80 Мбайт и так далее.
Главное окно дизассемблера появляется после завершения процесса разборки:
После завершения всей обработки дизассемблер отображает результирующий исходный код для целевого файла.Этот вывод можно отредактировать вручную или сохранить на диск для дальнейшего использования.
Хотя настраиваемое моделирование, выполняемое дизассемблером PE Explorer, действительно увеличивает время обработки, в результате резко сокращается количество неправильных преобразований кода операции. Мы думаем, вы согласитесь с тем, что дополнительное время, необходимое для достижения такого высокого уровня точности, справедливо компенсируется временем, сэкономленным при ручной корректировке вывода.
В настоящее время функции в реализации дизассемблирования не позволяют создавать исходный код, который можно было бы перекомпилировать как есть.Разделы файлов, в которых физический размер равен 0, а данные находятся за границами физического размера раздела, не могут быть точно переведены. Дизассемблер помечает эти элементы [DB Count DUP (??)] и не помещает метки внутри этих областей. Такие разделы возникают из-за того, что программисты часто запрашивают память, а затем не могут правильно ею управлять, полностью полагаясь на операционную систему или компилятор в освобождении ресурсов памяти. Например (на Паскале):
Var MyData: массив [СЛОВО] байтов;
В этом случае пространство для хранения переменной MyData не будет физически выделено в разделе данных, но виртуальный размер раздела данных, содержащего его, будет увеличен на значение WORD.Также случается, что переменные, объявленные таким образом, приводят к потере мегабайт виртуального пространства для раздела, содержащего данные.
В настоящее время из-за особенностей внутренних структур данных в PE Explorer и по причинам, указанным выше, неправильно управляемое распределение памяти исключено из дизассемблирования. В противном случае расход памяти, необходимый для обработки целевых файлов, может астрономически вырасти. В настоящее время для обработки каждого байта входящих данных требуется 30-40 байтов памяти.
предыдущая | следующая>
Загрузите PE Explorer и узнайте, как он может повысить вашу продуктивность.
PE Explorer, техническое описание (PDF) 320 Кб
Восстановление исходного кода после сбоев и преобразование исполняемых файлов .NET в C #, VB.Net, J #, Delphi.Net и управляемый C ++. Spices.Net Decompiler предлагает пакет повышения производительности для разработчиков программного обеспечения . NET, который является исключительным в отрасли по простоте использования и максимальной производительности. Spices.Net Decompiler — это эффективный и гибкий инструмент, который преобразует двоичные файлы .NET (.EXE или .DLL) из двоичного формата в красиво отформатированный, оптимизированный и прокомментированный исходный код, генерирует эквивалентный и перекомпилируемый код, который очень близок к исходному. исходный код, продукт известного семейства продуктов Spices.Net. .Net Decompiler полностью интегрирован со Spices.NET и предлагает инструменты для декомпиляции или визуального представления кода .Net, помогает восстанавливать или конвертировать.Net-код на один из шести поддерживаемых языков: MSIL, C #, VB.NET, Delphi.NET, J # или управляемый C ++). Spices.Net Decompiler включает следующие модули:
Вот список функций:
Попробуйте бесплатную ознакомительную версиюЕсли вы хотите попробовать специи.Net Decompiler вы можете попробовать бесплатную пробную копию. Мы будем рады услышать ваши отзывы. Есть вопросы?Возможно, после прочтения этой темы у вас остались вопросы, на которые не ответили. Spices.NET имеет отличный документ с часто задаваемыми вопросами, который отвечает на многие часто задаваемые вопросы о продуктах Spices. NET. |
Visual Studio предоставляет обычный инструмент, который в определенной степени зависит от миссии. Интерфейс просмотра сборок |
Ресурсный хакер
Resource Hacker
TM
… бесплатный компилятор и декомпилятор ресурсов для приложений Windows®
Версия 5.1,8 (360)
Последнее изменение: 20 ноября 2020 г.
Авторские права © 1999-2020 Angus Johnson
Бесплатное ПО — без пилинга, без рекламы и полностью функциональное.
Загрузить
Обзор:
Resource Hacker — это редактор ресурсов для 32- и 64-разрядных приложений Windows®. Это и компилятор ресурсов (для файлов * .rc), и декомпилятор , позволяющий просматривать и редактировать ресурсы в исполняемых файлах (* .exe; * .dll; * .scr и т. Д.) И скомпилированных библиотеках ресурсов (* .res, * .mui). Хотя Resource Hacker — это в первую очередь приложение с графическим интерфейсом пользователя, оно также предоставляет множество опций для компиляции и декомпиляции ресурсов из командной строки.
Составление:
Компиляция может быть инициирована либо открытием существующего файла сценария ресурсов, либо созданием его с нуля с помощью редактора Resource Hacker.
Полный список операторов определения ресурсов можно найти здесь.
Дополнительные возможности компилятора Resource Hacker включают: Директива #INCLUDE (для доступа к операторам определения в файлах заголовков и т. Д.) Может быть вложена на несколько уровней, как и директивы #IF и #IFDEF.
Поддерживаются директивы #DEFINE, #UNDEF, #IF, #ELIF, #ELSE, #IFDEF, #IFNDEF, #INCLUDE и #PRAGMA.Строки, заключенные между символами двойных кавычек («), могут содержать типичные символы стиля ‘C’ с обратной косой чертой ‘экранированные’ символы \ t, \ n, \\, \», \ x, \ u и \ 377 (восьмеричные). Двойные кавычки внутри строки должны быть «экранированы» с помощью либо предшествующей обратной косой черты, либо другой двойной кавычки. Комментарии к скрипту предваряются двойными косыми чертами (//) или точкой с запятой (;). Допускаются имена файлов с относительными путями. Имена файлов, содержащие пробелы, должны быть заключены в двойные кавычки.
Сообщается об ошибках компилятора, даже об ошибках, вложенных в операторы INCLUDE…
Просмотр и редактирование ресурсов:
После открытия файла ресурсов его ресурсы обычно отображаются либо как изображение (или группа изображений), либо как декомпилированный текст. Двоичные ресурсы, обычно изображения, нельзя редактировать напрямую с помощью Resource Hacker, но их все равно можно очень легко экспортировать и импортировать после того, как они были изменены внешним редактором изображений. (Я не вижу преимуществ в дублировании того, что сторонние редакторы изображений делают так хорошо.)
Типы ресурсов меню и диалогов имеют собственные конструкторы WYSIWYG:
Двоичные ресурсы с неизвестными форматами будут отображаться как двоичный текст только для чтения.(При желании можно просмотреть любой ресурс. )
Другие действия:
Синтаксис командной строки:
Практически все функции Resource Hacker доступны из командной строки без необходимости открывать графический интерфейс Resource Hacker.
Инструкции командной строки и сценарии Resource Hacker могут избавить от утомительной работы, связанной с повторением задач Resource Hacker.
Инструкции командной строки представляют собой комбинацию операторов switch, за которыми следуют параметры переключателя, как описано в следующей таблице:
Операторы командной строки:
Switch | Параметр | |
---|---|---|
-открытый | filename — имя файла, который необходимо изменить.Это должен быть файл Windows PE (* .exe, * .dll и т. Д.) Или скомпилированный или некомпилированный файл ресурсов (* .res или * .rc) | |
-сохранить | обычно имя файла для нового или измененного файла, но также может быть папкой при извлечении нескольких ресурсов | |
-ресурс | filename — содержит ресурс, добавляемый в открытый файл. | |
— действие | действие, которое необходимо выполнить для открытого файла
| |
-маска | — Тип, Имя, Язык Запятые являются обязательными, но каждый из Типа, Имя и Язык являются необязательными | |
— журнал | Filename или CONSOLE или NUL CONSOLE может быть сокращено до CON Регистрирует подробную информацию о выполненной операции Если этот переключатель не указан, журнал будет записан в resourcehacker. журнал | |
-скрипт | filename — содержит сценарий с несколькими командами, НЕ сценарий ресурсов для получения дополнительной информации: -help script | |
— помощь | — командная строка или сценарий (всегда регистрируемый в КОНСОЛИ), другие параметры игнорируются. |
Заметки:
- Идентификаторы переключателя (кроме -script) могут быть сокращены до одного символа (например, -res или -r).
- Инструкции по переключению не обязательно должны быть в каком-либо определенном порядке.
- Имена файлов, содержащие пробелы, должны быть заключены в двойные кавычки.
Примеры командного файла (с использованием rh.exe вместо ResourceHacker.exe в некоторых местах для краткости)
reshack_help.bat:
ResourceHacker.exe -help @pause ::, чтобы увидеть вывод консоли до закрытия окна CMD.
reshack_compile_res_script. bat:
rh.exe -open. \ in \ resources.rc -save. \ out \ resources.res -action compile -log NUL
reshack_add_icon_to_old.летучая мышь:
rh.exe -open old.exe -save new.exe -action Addkip -res my.ico -mask ICONGROUP, MAINICON,
reshack_extract_all_source_icons_to_icons_folder.bat:
rh.exe -open source.exe -save. \ icons -action extract -mask ICONGROUP`` -log CON @pause
reshack_extract_all_dialogs.bat:
rh.exe -open source.exe -save. \ dialogs.rc -action extract -mask DIALOG`` -log rh.log
reshack_execute_my_script.bat:
ResourceHacker.exe -script myscript.txt
Сценарии хакера ресурсов:
Сценарии хакера ресурсов выполняются из командной строки с использованием следующего синтаксиса:
ResourceHacker.exe -script ScriptFile
Скрипты Resource Hacker Scripts представляют собой текстовые файлы следующего формата:
// комментариям предшествуют двойные косые черты [FILENAMES] Открыть = Сохранить = Журнал = [КОМАНДЫ] // одна или несколько из следующих команд . .. -добавить SourceFile, ResourceMask -addskip Исходный файл, ResourceMask -addoverwrite SourceFile, ResourceMask -addoverwrite SourceFile, ResourceMask -modify SourceFile, ResourceMask -extract TargetFile или TargetFolder, ResourceMask -удалить ResourceMask -changelanguage (langID)
Примечание. Имена файлов, содержащие пробелы, должны быть заключены в двойные кавычки.
Примеры скриптов Resource Hacker Script:
rh_script_myprog_rus.txt —
// Этот скрипт удаляет все нейтральные языки (0) // строковая таблица, меню и элементы ресурсов диалога // в MyProg.exe перед их заменой // с русскими (1049) элементами ... [FILENAMES] Exe = MyProg.exe SaveAs = MyProg_Rus.exe Журнал = MyProg_Rus.log [КОМАНДЫ] -удалить МЕНЮ ,, 0 -удалить ДИАЛОГ ,, 0 -удалить STRINGTABLE ,, 0 -добавить MyProg_Rus.res, МЕНЮ ,, 1049 -добавить MyProg_Rus.res, ДИАЛОГ ,, 1049 -добавить MyProg_Rus.res, STRINGTABLE ,, 1049
rh_script_myprog_upd_images. txt —
// Этот скрипт обновляет 2 растровых изображения и // значок в MyProg.exe ... [FILENAMES] Exe = MyProg.exe SaveAs = MyProg_Updated.exe [КОМАНДЫ] -addoverwrite Bitmap128.bmp, BITMAP, 128, -addoverwrite Bitmap129.bmp, BITMAP, 129,0 -addoverwrite MainIcon.ico, ICONGROUP, MAINICON, 0
rh_script_myprog_upd_all.txt —
// Этот скрипт заменяет все ресурсы // в MyProg.exe со всеми ресурсами // в MyProgNew.res [FILENAMES] Exe = MyProg.exe SaveAs = MyProg_Updated.exe [КОМАНДЫ] -delete ,,, // удаляем все ресурсы перед ... -add MyProgNew.res ,,, // добавление всех новых ресурсов
«Упакованные» или «сжатые» исполняемые файлы:
Некоторые исполняемые файлы «упаковываются» или «сжимаются» с использованием алгоритмов сжатия. Это не только уменьшает размер файла, но и несколько затрудняет просмотр и изменение ресурсов. Я подозреваю, что это «сокрытие» ресурса является (или было) общей целью в этом процессе.Во всяком случае, из уважения к этим авторам, я решил не распаковывать файлы с помощью Resource Hacker. Кстати, кажется, что «упакованные» исполняемые файлы стали довольно редкостью за последние 20 лет, и авторы программного обеспечения раскрывают больше, чем меньше информации в исполняемых ресурсах. Я подозреваю, что прежние опасения по поводу потери интеллектуальной собственности в результате реверс-инжиниринга развеялись.
Лицензия на использование — Условия и положения:
Это программное обеспечение Resource Hacker TM распространяется как бесплатное ПО при условии, что вы соглашаетесь со следующими положениями и условиями:
- Это программное обеспечение не должно распространяться через какой-либо домен веб-сайта или
другие носители без предварительного письменного разрешения правообладателя. - Запрещается использовать это программное обеспечение для незаконного изменения программного обеспечения.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Пользователь этого программного обеспечения Resource Hacker TM признает, что он или она получает это программное обеспечение на условиях «как есть», и пользователь не полагается на точность или функциональность программного обеспечения для каких-либо целей. Пользователь также признает, что любое использование этого программного обеспечения будет осуществляться на свой страх и риск, и владелец авторских прав не принимает на себя никакой ответственности, связанной с использованием или применением программного обеспечения.
Приведенные выше условия лицензии представляют собой «информацию об управлении авторскими правами» в значении Раздела 1202 Раздела 17 Кодекса США и не могут быть изменены или удалены из лицензионных произведений. Их изменение или удаление из лицензионных произведений, а также распространение лицензированных произведений без всех вышеуказанных условий лицензии в неизменном виде может противоречить разделу 1202 и повлечь за собой гражданские и / или уголовные последствия.
Скачать версию 5.1.8:
Установка EXE (4 МБ)
Установка ZIP (3 МБ)
Изменения в 5.1,8 (360):
Исправление ошибки: | Некоторые файлы PNG больше не отображались. |
Изменения в 5.