De4ot [ Мануал на русском ]

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

Moden

Участник

Moden

Участник
20 Окт 2020
3
2
Привет всем .
Много кто ищет как пользоваться известной программой de4ot .
На GitHub есть мануал , но проблема в том что он на английском .
Поэтому я решил сэкономить ваше время и перевести весь мануал .
Буду благодарен если прокомментируете эту тему и оставите реакцию .
Сам мануал
================================================================================================
Описание
===========

de4dot - это деобфускатор и распаковщик .NET с открытым
исходным кодом (GPLv3), написанный на C #. Он будет изо всех сил стараться
восстановить запакованную и запутанную сборку почти до исходной сборки. Большая
часть обфускации может быть полностью восстановлена (например, строковое шифрование),
но переименование символа невозможно восстановить, поскольку исходные имена (обычно) не являются частью запутанной сборки.

Он использует [dnlib] (
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
) для чтения и записи сборок,
поэтому убедитесь, что вы его получили, иначе он не будет компилироваться.

Двоичные файлы
========

Получите двоичные файлы с сервера сборки [! [] (
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
)] (
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
).

Это БЕСПЛАТНО, но НЕТ ПОДДЕРЖКИ
================================

Нет поддержки. Не пишите мне, если вы не можете его использовать или
если он не может деобфускировать файл, запутанный обновленным обфускатором.

Вместо этого попробуйте обновить de4dot самостоятельно. Это намного проще,
чем вы думаете. Если вы не можете, поищите в Интернете, и вы найдете пару форумов,
где вы можете задать свой вопрос.

Характеристики
========

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

* Встроенные методы. Некоторые обфускаторы перемещают небольшие части метода
в другой статический метод и вызывают его.
* Расшифровывать строки статически или динамически
* Расшифровать другие константы. Некоторые обфускаторы могут также шифровать другие константы, такие как все целые числа, все двойные числа и т. Д.
* Расшифровывать методы статически или динамически
* Убрать прокси-методы. Многие обфускаторы заменяют большинство / все инструкции вызова вызовом делегата. Этот делегат,
в свою очередь, вызывает настоящий метод.
* Переименовать символы. Несмотря на то, что большинство символов невозможно восстановить, он переименует их в строки,
удобочитаемые человеком. Тем не менее, иногда некоторые оригинальные имена можно восстановить.
* Девиртуализация виртуализированного кода
* Расшифровать ресурсы. Многие обфускаторы имеют возможность шифровать ресурсы .NET.
* Расшифровать встроенные файлы. Многие обфускаторы имеют возможность встраивать и, возможно, шифровать / сжимать другие сборки.
* Удалить код обнаружения несанкционированного доступа
* Удалить код анти-отладки
* Деобфускация потока управления. Многие обфускаторы модифицируют код IL так, что он выглядит как спагетти-код, что очень затрудняет понимание кода.
* Восстановить поля класса. Некоторые обфускаторы могут перемещать поля из одного класса в другой, созданный обфускатором.
* Преобразование PE exe в .NET exe. Некоторые обфускаторы оборачивают сборку .NET внутри Win32 PE, поэтому декомпилятор .NET не может прочитать файл.
* Удаляет большинство / все ненужные классы, добавленные обфускатором.
* Исправляет некоторые ошибки peverify. Многие из обфускаторов содержат ошибки и по ошибке создают непроверяемый код.
* Восстановить типы параметров и полей метода


Поддерживаемые обфускаторы / упаковщики
=============================

* Agile.NET (также известный как CliSecure)
* Babel.NET
* CodeFort
* CodeVeil
* CodeWall
* Криптообфускатор
* DeepSea Obfuscator
* Dotfuscator
* .NET Reactor
* Eazfuscator.NET
* Goliath.NET
* ILProtector
* MaxtoCode
* МПРЕСС
* Рыться
* Skater.NET
* SmartAssembly
* Spices.Net
* Ксенокод

Некоторые из вышеперечисленных обфускаторов используются редко (например, Goliath.NET),
поэтому они прошли гораздо меньше испытаний. Помогите мне, сообщая об обнаруженных вами ошибках или проблемах.

Предупреждение
=======

Иногда обфусцированная сборка и все ее зависимости загружаются в память для выполнения. Используйте
безопасную среду песочницы, если вы подозреваете, что сборка или сборки являются вредоносными.

Даже если текущая версия de4dot не загружает определенную сборку в память для выполнения, будущая
версия может.

Как использовать de4dot
=================

Пользователи N00b
----------

Перетащите файл (ы) на de4dot.exe и подождите несколько секунд.

Деобфускировать более одного файла за раз
----------------------------------------

Если было запутано более одной сборки, весьма вероятно, что вам придется деобфускировать их все одновременно,
если вы не отключите переименование символов. Причина в том, что если сборка A имеет ссылку на класс C в сборке B,
и вы переименовываете символы только в сборке B, тогда класс C можно переименовать, например, в. Class0, но ссылка в
сборке A по-прежнему ссылается на класс с именем C в сборке B. Если вы деобфускируете обе сборки одновременно,
все ссылки также будут обновлены.

Найдите все запутанные файлы и деобфусцируйте их
----------------------------------------------

Следующая командная строка деобфускирует все сборки, которые были запутаны поддерживаемым обфускатором,
и сохранит сборки в `c: \ output`

de4dot -r c: \ ввод -ru -ro c: \ вывод

`-r` означает рекурсивный поиск. `-ru` означает, что он должен игнорировать неизвестные файлы. `-ro` означает,
что выходные файлы должны быть помещены в следующий каталог. Обычно вы сначала копируете `c: \ input` в` c: \ output`,
а затем запускаете команду. Таким образом,
все файлы будут находиться в c: \ output, даже не сборки и необработанные сборки. Когда de4dot закончит,
вы просто дважды щелкните основную сборку в `c: \ output`, и она,
надеюсь, должна запуститься.

Обфускатор
-----------------

Используйте опцию `-d` для обнаружения обфускатора без деобфускации какой-либо сборки.

Найдите все сборки .NET и обнаружите обфускатор. Если это неподдерживаемый обфускатор или он не запутан, он напечатает «Неизвестный обфускатор».

de4dot -d -r c: \ input

То же, что и выше, за исключением того, что он покажет только, какие файлы были запутаны поддерживаемым обфускатором.

de4dot -d -r c: \ input -ru

Обфускатор
----------------
Иногда, в редких случаях, вам может понадобиться сохранить токены метаданных.
Используйте --preserve-tokens или --preserve-table. Также рассмотрите возможность использования `--keep-types`,
поскольку он не удалит какие-либо типы и методы, добавленные обфускатором. Еще одна полезная опция - `--dont-create-params`. Если используется,
средство переименования не будет создавать строки Param для параметров метода, у которых нет строки Param. Таким образом,
таблица ParamPtr не будет добавлена в ваши сборки. В Peverify есть ошибка,
но она не поддерживается (вы увидите много «ошибок»).

Кучи #Strings, #US и #Blob также можно сохранить,
используя соответственно `--preserve-strings`,` --preserve-us` и `--preserve-blob`. Из этих трех `--preserve-us` является наиболее полезным,
поскольку инструкция` ldstr` и `module.ResolveString ()` напрямую ссылаются на кучу #US.

`--preserve-sig-data` следует использовать, если обфускатор добавляет дополнительные данные в конце подписей,
которые он использует для своих собственных целей, например. в качестве ключей дешифрования. Confuser - это один из обфускаторов, который это делает.

`--preserve-tokens` сохраняет все важные токены, но также включает` --preserve-us`, `--preserve-blob` и` --preserve-sig-data`.

Если он определяется как неизвестный (неподдерживаемый) обфускатор (или если вы вызываете его с помощью `-p un`),
все токены сохраняются, включая кучу #US и любые дополнительные данные в конце подписей. Кроме того, не удаляются никакие типы, поля или методы обфускатора.

Сохраните все важные токены, #US, #Blob, дополнительные данные сигнатуры.

de4dot --preserve-tokens file1.dll

Сохраните все важные токены, #US, #Blob, дополнительные данные sig и не удаляйте типы / поля, добавленные обфускатором

de4dot --keep-types --preserve-tokens file1.dll

Сохраните все важные токены, #US, #Blob, дополнительные данные sig и не создавайте лишние строки Param, чтобы предотвратить создание таблицы ParamPtr.

de4dot --dont-create-params --preserve-tokens file1.dll

Сохраните все важные токены, кроме токенов Param.

de4dot --preserve-table all, -pd file1.dll

Динамическое дешифрование строк
------------------------------


Хотя de4dot поддерживает множество обфускаторов, некоторые из них не поддерживаются.
Чтобы расшифровать строки, вам сначала нужно выяснить, какой метод или методы расшифровывают строки.
Чтобы получить токен метода этих дешифраторов строк, вы можете использовать ILDASM с включенной опцией «показать токены метаданных».
Токен метода - это 32-битное число, которое начинается с 06, например. 06012345.

Эта команда загрузит сборку file1.dll в память путем вызова ʻAssembly.Load () `.
Когда он обнаруживает вызовы двух дешифраторов строк (06012345 и 060ABCDE), он вызывает их,
создавая динамический метод, и сохраняет результат (расшифрованную строку). Вызов дешифратора строк будет удален,
и расшифрованная строка будет на своем месте.

de4dot file1.dll - делегат strtyp --strtok 06012345 --strtok 060ABCDE

Поскольку сборка загружается и выполняется, убедитесь, что вы запустили ее в песочнице, если подозреваете, что файл является вредоносным.

Принудительное обнаружение определенного обфускатора
-----------------------------------------

de4dot не идеален. Если ему не удается обнаружить обфускатор, вы можете использовать опцию `-p`, чтобы заставить его предположить, что он был им запутан.

Принудительная сборка SmartAssembly

de4dot file1.dll -p sa

Принудительно использовать неподдерживаемый обфускатор

de4dot file1.dll -p un

Для других типов обфускаторов см. Экран справки.

Отключение переименования символа
-------------------------

de4dot -d file1.dll file2.dll file3.dll

Сохранение токенов метаданных

Переименование символов не так просто, как переименование A в B, когда задействовано отражение.
de4dot в настоящее время не поддерживает переименование XAML, поэтому, если вы подозреваете, что он использует WPF (или если это приложение Silverlight),
вам следует отключить переименование, если сборка не запускается.

de4dot --dont-rename file1.dll file2.dll

`--keep-names` также может использоваться для указания` de4dot` не переименовывать определенные символы, например. «не переименовывать поля».

Переименуйте все, что нужно переименовать, кроме свойств, событий и методов.

de4dot --keep-names pem file1.dll

Использование другого регулярного выражения переименования
------------------------------

Регулярных выражений по умолчанию должно быть достаточно, за исключением, возможно, того,
которое используется при обнаружении неподдерживаемого обфускатора. Чтобы увидеть все регулярные выражения по умолчанию,
запустите de4dot без аргументов, и он перечислит все параметры и все значения по умолчанию.

Например, в настоящее время следующее регулярное выражение по умолчанию используется при обнаружении Dotfuscator.

! ^ [az] [a-z0-9] {0,2} $ &! ^ A_ [0-9] + $ & ^ [\ u2E80- \ u9FFFa-zA-Z _ <{$] [\ u2E80- \ u9FFFa-zA-Z_0-9 <> {} $. `-] * $

Как видите, это не одно регулярное выражение, а несколько. Каждый из них разделяется символом `&`, и каждое регулярное выражение может быть отменено,
используя перед ним символ `!`. Чтобы показать это более наглядно, используются следующие регулярные выражения:

(отменено) ^ [a-z] [a-z0-9] {0,2} $
(инвертировано) ^ A_ [0-9] + $
^ [\ u2E80- \ u9FFFa-zA-Z _ <{$] [\ u2E80- \ u9FFFa-zA-Z_0-9 <> {} $. `-] * $

Чтобы изменить регулярное выражение (а), вы должны знать краткое имя типа обфускатора (см. Экран справки).
Например. это `sa`, если это SmartAssembly, и ʻun`, если это неподдерживаемый / неизвестный обфускатор.
Используемый параметр - `--TYPE-name` (например,` --sa-name` для SmartAssembly и `--un-name` для неизвестных / неподдерживаемых обфускаторов):

de4dot --un-name "^ [a-zA-Z] \ w * $" file1.dll

Другие варианты
-------------

Запустите `de4dot` без аргументов, и он покажет все варианты.
 
Последнее редактирование модератором:
  • Лайк
Reactions: mix21 and AnGel

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя