Автор статьи: -EXE- (https://xss.pro/members/275453/)
Статья для форума: xss.pro
И снова приветствую всех пользователей форума, продолжая цикл статей по реверс-инжиниринг для начинающих (12 статья). В сегодняшней статье мы рассмотрим очень интересные нюансы, в защите, некоторых программ. Программа будет не одна и статья будет разделена на две части. Первая часть будет состоять с программирования, способа написания генератора лицензий. Но особенность в том что: этот генератор ключей будет универсальный, на основе того что я сегодня покажу. Информации будет не мало, главное все правильно воспринять. Как вы уже знаете, много кто сталкивался с защитой программ что упакованы протектором (пакером, упаковщиком по народному говоря). Особенно статья будет интересна тем кто вообще не вникал и не анализировал работу упаковщиков (навесных систем защиты). В этой статье, я покажу такие нюансы что мало кто знает. А те кто знает то не поделится информацией, так как в многих случаях это очень прибыльное дело. Но как я ранее говорил моя цель показать много чего интересного, не скрывая факты.
Программы к которым мы напишем, сегодня, KeyGen:
1. Passport RF версии 1.17 (Сайт где продают софт: http://n91142m2.beget.tech) - Программа для создания паспортов. Множество настроек и всяких плюшек позволяет
создавать неплохие подделки документов.
А еще, третий софт, что будет рассмотрен в конце статьи: AviParser 1.2 (Официальный сайт программы: https://aviparser.ru)
Ознакомится с полным списанием программ вы сможет на официальном сайте, хотя и по картинкам и так, все, предельно, понятно.
То есть первые, две программы, упакованы демонстрационной версией пакера: enigma (официальный сайт): https://enigmaprotector.com/ru/downloads.html. То что для защиты используется демо-версия, это еще ни про что не говорит. Сам по себе, этот протектор, может создать массу неприятностей не только начинающим реверсам.
Но речь сегодня пойдет не об этом, так как для создания генератор лицензий мы используем хитрость. В процессе вы все узнаете и поймете.
Но что бы информация воспринималась легче и все восприняли данный контент, я прокомментирую все действия, не упустив ни одной детали. В процессе анализа все части головоломки соединяться воедино и вы получите результат. А в финале работающий генератор лицензия не только под сегодняшние программы.
Но, в данном случае, спешить мы не соберемся, так как сначала нужно уловить смысл. Так как, в сегодняшней статье, я покажу вам, один из способов что основывается на логике событий.
Часть 1 (Этой статьи): Написание генератора лицензий для, первых, двух программ.
Пункт 1.1: Анализ, демонстрация чем упакованы софты
Для того, что бы приступить к каким либо действиям, сначала посмотрим что нам скажет утилита ExeInfo PE.
Версии пакера отличаются: 6.00 и 7.40. Стоит обратить внимание и на тот факт что если бы версии Енигмы были бы не Демо то наш, сегодняшний план, не сработал.
А еще обращаем внимание на то что эти две версии софта x32 (32-разрядные приложения), в нашем случае это тоже важные мелочи. В процессе демонстрации я покажу почему так и после уже сделаете выводы сами.
Пункт 1.2: Как вообще определить что это демо-версия пакера или нет.
Так как сегодня, в первой части, мы идем по пути программирования то самый простой способ это:
- Запустить софт упакованный этим пакером.
- Если это демо-версия пакера то - перед тем как запуститься регистрационный диалог (Защита нашей программы), загрузится окно в котором говорится что для защиты мы используем демонстрационную версию протектора (пакера). Далее по нажатию на кнопку у нас появится регистрационный диалог пакера.
То есть, для активации любой, из первых 2 - программ, нам нужны данные активации. Но это не просто данные активации в виде имени и ключа. Как вы замечаете вверху формы активации есть надпись Hardware ID. Это идентификатор оборудования пк на основе которого генерируются данные активации. На этот пункт стоит обратить особое внимание. Так как в будущем нам пригодится эта информация, идем далее и постепенно анализируем всю картину.
Пункт 1.3: Качаем демо версию протектора (Enigma) с официального сайта программы.
Поскольку мы выяснили, исходя из данных утилиты ExeInfo PE, что наши (две) программы являются x32, то качаем версию Enigma x32. Но скажу, немного забегая на перед, что это не непринципиально (в нашем случае). Почему так, все эти нюансы разберем в процессе, когда уже буду демонстрировать сам процесс написания KeyGen.
После того как мы скачали и установили Enigma Protector нам нужно, для удобства, в настройках перейти на русский язык. А после этого перейти в вкладку (меню) - Общие. И обратить внимание, обязательно, на Encryption Constant. Это константа шифрования что играет основную роль при использовании системы защиты Enigmа. Дело в том что: защищенное приложение шифруется, используя значение этой константы. Можно сказать: что это своего рода ключ, пароль,
последовательность цифр. И при загрузке защищенного приложения (программы), константа шифрования используется и хранится в регистрационном ключе, если значение константы неизвестно то запустить программу будет невозможно.
в демонстрационной версии enigma, не изменяется а остается стандартной. То есть по стандарту во всех своих защищенных проектах, мы имеем значение константы: 2113444489.
Так вот, зная эту информацию, зная тот факт что константа шифрование нам известна, можно перети к следующему пункту и рассмотреть логику написание KeyGen.
Как я говорил выше: первая часть статьи будет касаться только программирования. И разобравшись в логике работы, того или иного алгоритма, не всегда нужно что то ломать. И в этом деле нам поможет знание программирования. В нашем случае мы обратили внимание на основу, а далее разберем все остальные детали.
Пункт 1.5: Принцип создания генератора лицензий.
Если кто работал с пакерами (протекторами), понимает что: каждый из них имеют свои так называемые (Examples \ Примеры). То есть заготовки для разработчиков, на тот случай если разработчику мало стандартного функционала и он хочет расширить возможности протектора. К примеру написать како то плагин, для дополнительной защиты. Вот для таких случаев используются заготовки, с исходными кодами. Причем у каждого разработчика пакера, свой список примеров с исходниками. Есть и API вызовы функций про которые можно почитать в документации.
Конечно же рассматривать все мы не будем, так как это не обзор системы защиты, рассмотрим только то что нам нужно для написания KeyGen. В нашем случае, у Enigma, список примеров не маленький. Нас, конкретно, интересуют две папки. А именно KeyGen и KeyGenUnicode.
- KeyGen - это пример для генерации обычных ключей.
- KeyGenUnicode - это пример для генерации ключей что поддерживают юникод.
Первое: что бы не тягать за собой массу папок и библиотек что не нужны для генератора лицензий, лучше всего, папку Delphi_2009UP, переместить в удобное место.
И после переименовать как Вам удобно.
Второе: После тогда как откроем проект с примером, дополнить библиотеками, что нужны для полноценной работы.
И в данном случае давайте я продемонстрирую как это правильно сделать, после этого можно продолжить. Видео создано для общего понимания картины.
Видео обязательно к просмотру: Un_KeyGen-1.wmv (Видео есть также и в архиве, на всякий пожарный).
- И так, как заметно на видео, мы взяли нужную нам папку с примером (исходником, заготовкой) для генерации ключей.
- После этого переименовали её, как нам удобно.
- После этого попробовали скомпилировать (создать) и запустить исполняемый файл.
- Но получили ошибку так как, исходный файл модуля enigma_keygen_ide.pas не был найден по старому пути.
- Мы добавили этот файл в нашу папку и изменили путь на свой.
- После этого наш, будущий генератор ключей, скомпилировался и запустился.
Плюсы такого подхода в том что: у вас, в одной папке, только нужные библиотеки и модули а всего остальное, что не нужно, мы просто не таскаем с собой. Если
этого не сделать то будете тягать за собой папку, что содержит, как минимум 770 файлов и 137 папок. А это, сами понимаете, ой как неудобно
Пункт 1.6: Внешний вид, функции, убираем ненужное, активируем нужные значения, наводим порядок.
В итоге у нас, по стандарту, загружается вот такая заготовка. Если обычный человек посмотрит на всю эту кашу, та даже тот кто вообще не работал с Enigma, то
конечно же будет в небольшом шоке
понимание происходящего. А после всех манипуляций, все сократится до минимализма и добавляться новые функции.
Сейчас, я отмечу и прокомментирую, каждый визуальный компонент что нам будет нужен, для нашего полноценного KeyGen. После опишу логику событий, для чего мы сделали то или иное действие. А после уже перейдем к самому коду и функциям.
А для работы нам нужны не все визуальные компоненты, те что мы не будем использовать, мы спокойно можем скрыть. Но удалять, с формы, не советую, так как придется переписать значительную часть кода. Зачем себе усложнять жизнь, хотя и это сделать не так сложно.
Пояснение в визуальным компонентам, те что на форме, что нам нужны.
- Это поле для ввода регистрационного имени, пользователя.
- Ключи безопасности (алгоритм генерации) и его длина. Один из важных пунктов под наше дело.
- Секции шифрования, используются для разблокирования приложения регистрационными ключами, что сгенерированы, минимум с одним, включенным зашифрованным разделом. А вот если в в регистрационном ключе не будет разблокированных секций, приложение просто не запустится. Такой принцип у Enigma.
- Hardware ID - Идентификатор нашего оборудования, в 99% случаях используется в защищенных приложениях.
- Кнопка для генерации ключа и визуальный компонент, куда будет помешаться наш ключ, после генерации.
Основа у нас есть, теперь, нужно расставить все на свои места. На втором видео, я покажу, манипуляции что нужно проделать, что бы KeyGen выглядел вот так. Ну и собственно, компоненты которые будут задействованы. Но сразу скажу что это не финальный вариант, я не просто так обозначил версию как KeyGen | -EXE- | xss.pro | v1.0 .
После всех манипуляций, KeyGen будет выглядеть вот так, то есть: Заметно что много чего пропало с формы. Но это не совсем так, так как визуально я оставил то что нужно. Все для того что бы продемонстрировать вам дальнейшие действия, подводя, потихоньку к логике.
Видео обязательно к просмотру: Un_KeyGen-2.wmv (Видео есть также и в архиве, на всякий пожарный).
Пункт 1.7: Лезем в код и смотри на события происходящего.
В этом пункте, я покажу, на основе чего генерируются данные активации и что делаем далее. Не думайте что вот так, без логики, у нас уже рабочий генератор лицензии.
Это я на всякий случай подсказываю, так проще воспринимать информацию.
И так, для общего понимания: Исходный код генератора лицензий нам дан, разработчиком, не за того что бы мы его софт ломали
Давайте посмотрим на код и прощупаем логику событий. Скажу сразу что код очень длинный, потому: показывать буду, самые интересные моменты, то есть на то на что нужно обратить внимание. Как я уже говорил выше, что в демонстрационной версии протектора Enigma константа шифрования не изменяется.
Участки кода, кнопки "Cгенерировать".
Код идет по порядку, очистка визуального компонента, куда записывается сгенерированный ключ. Потом проверка на пустоту, визуального компонента, куда записывается имя пользователя (если нет то выход). И обращаем внимания на KeyMode и KeyBase. В следующем пункте, уже по факту, покажу для чего это все нужно. То есть, для общего понимание, структура кода такова что все идет по очередности, нет ничего сверхъестественного, главное понимать логику.
Так вот, зная её значение, ключ активации подобрать не сложно. Главное определится с значениями Key Mode и Key Base. То есть, типом криптографического алгоритма и
длиной ключа. Что я имею в виду ?. А все очень просто, немного математики:
- В RSA у нас 6 типов
- B Base у нас 5 типов
А все очень просто, запускаем программы Passport RF и Encoder Ioncube. Генерируем ключ и подбираем валидную пару RSA + Base, как только программа скажем нам что ключ подошел, записываем данные. После этого программируем keyGen на две программы, что бы наш генератор можно было использовать на два софта. Это в первую очередь удобно, ну и если слить такой генератор в сеть, то выглядит красиво. Я думаю суть моих слов, более чем, понятна.
По факту это все выглядит вот так:
Запускаем программу, в данном случае Passport RF и наш генератор. После этого генерируем ключ, если ключ не подошел то изменяем значение RSA и Base. Если перебрать все комбинации то у нас, как я выше говорил, получится не более 30 вариантов. Один из 30, 100% подойдет.
В итоге, как видите, правильной парой будет RSA 1024 и Base 32, это для программы Passport RF. Мы сгенерировали ключ, ввели и программа нас благодарит за регистрацию.
Для того что бы: статья была полноценна я сделал видео (Финальное под KeyGen). На видео вы сможете посмотреть на все нюансы, также и дополнительные функции, что были добавлены, в генератор лицензий.
Видео обязательно к просмотру: Un_KeyGen-3.wmv (Видео есть также и в архиве, на всякий пожарный).
Обратите внимание: Программы на видео, я запускаю через песочницу SandBoxies, это за того что бы лишний раз не мусорить в системе. Некоторые программы могут прописывать ключи в реестре Windows. Тут уже кому как удобно, для тестирования софта, можно и виртуалку использовать.
В финальном варианте, наш генератор ключей, выглядит вот так:
Теперь подведем итоги и скажу несколько, не маловажных, фактов.
1. Все программы что упакованы демо-версией Enigma Protector имеют не очень статистику в virustotal, при сканировании. Конкретно в этих двух программах, никаких вирусов, нет. Так что можете не переживать. Но я обязан был прокомментировать этот факт. Почему именно так?, за того что демо-версиями протектора пакую все и всюду, тем более что они доступны для скачивания на официальном сайте. От этого никуда не деться, так что факт остается фактом.
2. В первой части я показал вам что: Упаковывать хорошие проекты демонстрационными версиями, пакеров, для защиты - не есть хорошо. Так как такая защита обходится на раз два. В этой статье я показал чисто технические моменты (касающиеся программирования).
3. Может кто думал что: в сети нет таких софтов, разработчиков, кто так свой софт защищает. Поверьте есть и не один, просто информацию, что предоставлена выше, никто, ранее, не показывал.
4. Если при защите программы будет использоваться схема без юникода. То есть софт упакован будет без настройки:
Я имею в виду
То, у нас, также есть папка с исходником, примером, под названием KeyGen:
То есть, если птичка была снята и софт упакован при такой настройке. То бем папку KeyGen и по ней также пишем под себя генератор. Мое дело было показать Вам
как это вообще происходит, то есть хитрость (или правду, что есть по факту).
5. Можете, я советую, взять и по тренироваться на любом другом приложении. То есть упаковать демо версией пакера и после генератором подобрать ключ, в итоге сами убедитесь что - это работает.
6. И последний пункт, если сделаете свой KeyGen, к какой ни будь программе и захотите распространять по сети. То с основным, исполняемым файлом keygen.exe должна быть динамическая библиотека keygen.dll. Если её не будет то генератор не запуститься а вы получите сообщение об ошибке. Это за того что: в этой библиотеке расположены функции пакера Enigma, то есть вызываются с неё. Я имею в виду вот это:
На всякий случай, визуально на картинке, пример:
Надеюсь эта часть статьи понятна ?
И по этой части, у меня, все. Теперь переходим ко второй части нашей статьи. А именно:
Часть 2 (Этой статьи): Анализ защиты, программы AviParser 1.2 (Официальный сайт программы: https://aviparser.ru).
Программа для парсинга информации, объявлений с avito.ru. Из особенностей софта можно отметить: многопоточность, поддержку прокси с авторизацией, антибан, ну и множество настроек. Все перечислять нет смысла, так как есть сайт программы и можно там почитать про все подробно.
Остальные скриншоты, для наглядности, что собой представляет софт.
Такой нюанс, как видите что в архиве имеются дополнения при установке. Если что то, из списка, у вас есть то не спешите их устанавливать. Установите только AviParser.msi, так как при установке софт может попросить установить то что у вас уже установлено. Это так к слову, что бы зря не муссорить в системе. Если ранее компоненты были установлены то софт и так заведется.
И по факту, в логе программы, появляется сообщение, в котором говорится что софт не зарегистрирован.
- В телефонных номерах, последние цифры заменяются на слово DEMO.
- В ссылках на изображения также информация обрезается и добавляется слово DEMO.
- А когда программу снова запускаете, она загружает последний файл с результатами, и сама нам показывает что добавляется слово DEMO.
Собранной информации предостаточно, теперь можно приступить к анализу программы, под отладчиком. Но сначала, давайте проверим нет ли на программе какого нибудь паера, для дополнительной защиты. В этом нам поможет утилита ExeInfo PE.
2. Разрядность (x32 или x64): x32-Битное приложение Windows.
3. На чем написан софт \ обфускатор или пакер есть ли ?: Visual C# \ Обнаружен NET Reactor 6.x - 6.9. Но на самом деле версия реактора немного ниже, тут не совсем верно определила утилита.
4. Советы по использованию отладчика: но мы будем использовать, как обычно, DnSpy.
NET Reactor, при правильном использовании, может принести массу неудобств. Но в нашем случае, с ним справился, заточенный под него деобфускатор. Для того чтобы очистить программу от реактора нужно:
1. Перетащить исполняемый файл программы AviParser.exe на de4dot.exe
2. После этого запуститься окно, файл обработается и вы получите максимально читаемый код. То есть очищенный файл: AviParser-cleaned.exe
Вот, как раз, этот файл и будем анализировать в отладчике, заменив оригинальный файл. Закидываем его в отладчик DnSpy и сразу же переходим к точке входа. Мы оценим ситуацию - логически, что бы не делать лишних движений. При запуске программы, очевидно, срабатывает проверка на то активированная она или нет. В этой ситуации можно действовать по разному.
В точке входа, мы видим, что некоторые функции программы, все таки остались не читаемые. В том смысле что: часть из еще под одним обфускатором (Dotfuscator),
но нас это не останавливает, будем анализировать программу как есть. Ну и сразу же обращаем внимание на Application.Run(new i()), где идет запуск чего то, я
осмелюсь предположить что это главная форма программы. Что бы это проверить, мы можем перейти и посмотреть, никаких преград нет.
Имена классов и функций выглядят не знакомо, это естественно так как мы не полностью очистили код от обфускатора (Каши что образовалась, но это не страшно).
Переходим в new i() и смотрим, мои предположения оказались правильными. Мы оказались в главной форме, если пролистать код и посмотреть по функциям. А теперь нужно подумать как будем действовать, так как вариантов разогнаться у нас не мало
Давайте поищем в коде, по слову Demo, если надпись найдем то у нас будет за что зацепиться и уже в процессе выясним логику. В режиме поиска, мы находим в коде желаемое, причем, надпись встречается: не в одном месте. Конкретно в этом случае, мы видим что при срабатывании if (this.bool_3) у нас начинает работать алгоритм демо (последовательность, скажем так). Но это еще не все, идем далее.
Код очень длинный, потому я покажу только важные участки, после чего, мы будем переходить - к действиям. Стоит сказать что: часть этих ограничений, срабатывают в method_6 (Но не совсем так, есть своя логика), что бы легче было сориентироваться.
Далее находиться еще условия this.bool_0 и this.bool_3 (в паре). Ну и уже, как заметно, надпись что нужно продлить срок лицензии. Где то уже мы это видели ?
Правильно, когда проверяли программу в работе, эта надпись отображалась в логе программы.
Логика событий такова, в method_6, то есть как работает код: Начинается работа программы, если bool_0 и bool_3 = False (то есть запретить) то срабатывает режим демо. То есть условия, при которых, программа обрезает строки и добавляет к ним слово Demo. Причем эти условия вызываются как вместе, так и по отдельности. Тут главное - уловить смысл, не так все сложно как кажется. Я специально показываю Вам: точечные изменения, при которых программа заработает, не всегда нужно перелопатить весь код, что бы добиться успеха.
Так вот, сейчас мы пройдем по коду и изменим условия на обратные, то есть True (то есть разрешить). А что бы показать как это все происходит, для укрепления материала, продемонстрирую весь процесс на видео. А после уже прокомментирую, так будет намного интересней.
Видео обязательно к просмотру: Avito-1.wmv и Avito-2.wmv (Видео есть также и в архиве, на всякий пожарный).
Демонстрация взлома программы:
Ну и тут демонстрация работы софта:
Демонстрация взлома программы:
Ну и тут демонстрация работы софта:
Кстати, обращаю ваше внимание: все изменения (инструкций) производились в режиме IL. Вот можно спросить почему ?. Все дело в том что после деофцускации код стал не совсем правильный. Некоторые инструкции приняли нестандартный вид. Поэтому декомпилятор (в отладчике) не может разобрать (правильно) все инструкции.
В следствии чего, если редактировать метод или класс (C#) то отладчик выдаст много исключений (условно говоря - ошибок). Потому, в таких случаях, лучше всего применить редактирование в режиме IL.
Я имею в виду вот что:
Ну и собственно, несколько слов, что произошло на видео, по мимо активации программы (изменения флагов False На True):
Вы увидели, в какой раз, как добавляются копирайты в софт (реклама, авторство). А участок кода, где идет проверка ключа активации, мы не тронули, не смотрели даже на логику. Просто изменили текст, для красоты. Сломать софт можно было по разному, к примеру поковырять принцип активации или повырезать условия (все) - Demo. Но это путь длинее и зачем тратить время, если можно поступить - намного проще, там где это возможно.
Еще интересный факт: если проверить стучит ли софт на сайт разработчика, для проверки ключа, то ответ - да. Но могу сказать что: ничего страшного в этом нет, так как с сайта разработчика он проверяет только - ключ. Мы то активировали софт по другому, так что можете за это не переживать. Тем более что: если даже убрать эту проверку или вырезать ссылку, то софт - все равно будет работать. Так что на работу софта это никак не повлияет.
Для примера, это то: про что я говорил выше. Когда запускаете парсинг, то идет проверка ключа (запрос на сайт разработчика) а после - парсинг с авито. Это так для справки.
Ну и в финале, наш софт работает как нужно. Если выставить побольше потоков, добавить прокси (я же работал без проксей, на видео) то скорость вполне себе нормальная. Софт делает свою работу не хуже лицензии (ограничения по количеству строк снято, никаких надписей демо, все ровно работает). Финальный вариант выглядит так:
В результате всех манипуляций, вы получили: три, работающих, софта. Я старался максимально доступно показать вам - все нюансы. И последнее, что хотелось бы сказать: никогда не нужно спешить, главное вникать в суть дела и все получится 100%.
На сегодня, у меня, все. Желаю хорошего дня, надеюсь статья понравилась. 
В архиве, скриншот:
Инсталляторы:
Virustotal:
AviParser (Установщик с официального сайта) / virustotal : https://www.virustotal.com/gui/file/0f53aa0d5240abd961e814d744b2ec4fda5a43cc2fbadb8b16ef0ea28191ccb7
********** ВНИМАНИЕ ***********
Софт, про который я говорил в статье (Два первых), так как он накрыт DEMO версией ENIGMA то вирусототал будет не очень. Почему так - я написал в статье! (Обратите на ЭТО внимание). Но вирусов нет - ГАРАНТИРОВАНО!
Launch_protected.exe (Что запускает IonCube Encoder) / virustotal : Launch_protected.exe: https://www.virustotal.com/gui/file/56f66c693253d31a827238dc4dacb37e2a32d4d198f268d0504fc05998890f61
Паспорт RF 1.17 Win 7-10.exe / virustotal:
https://www.virustotal.com/gui/file/1c2a6d57e20002e27ba6f42ea553c42ac0973b314017236179371617ae08759e
********** ВНИМАНИЕ ***********
KeyGen (Для первых двух программ, исполняемый файл):
https://www.virustotal.com/gui/file/d039f2a6b7e36089567d305c680946d4474d1279854aa5ee99ee260b0c57b1a3
Инструменты для анализа:
de4dot-x32.exe (NET Reactor) / virustotal:https://www.virustotal.com/gui/file/3b933166bc1d4a2efd1945c2fb76292095a4f8f3274204a5494f43432f04781a
de4dot-x64.exe (NET Reactor) / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
HttpAnalyzer / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
HttpAnalyzer / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
DnSpy x32 / virustotal: https://www.virustotal.com/gui/file/7ce05f1aafaaa87d046bbad1b07801777e724251b084bc7f70cef71c98b08105
DnSpy x64 / virustotal: https://www.virustotal.com/gui/file/cc15f3f7836f5c976e058aabdd55af8635b484a6b9a5e94a2cb048856965f9e2
ExeinfoPe / virustotal: https://www.virustotal.com/gui/file/32e6df44a529d3bd543aae01365852990c0e7f3b4f84b5a7f9d7dfc18d6a46fd
Файлы к статье:

В архиве, скриншот:
Инсталляторы:
Virustotal:
AviParser (Установщик с официального сайта) / virustotal : https://www.virustotal.com/gui/file/0f53aa0d5240abd961e814d744b2ec4fda5a43cc2fbadb8b16ef0ea28191ccb7
********** ВНИМАНИЕ ***********
Софт, про который я говорил в статье (Два первых), так как он накрыт DEMO версией ENIGMA то вирусототал будет не очень. Почему так - я написал в статье! (Обратите на ЭТО внимание). Но вирусов нет - ГАРАНТИРОВАНО!

Launch_protected.exe (Что запускает IonCube Encoder) / virustotal : Launch_protected.exe: https://www.virustotal.com/gui/file/56f66c693253d31a827238dc4dacb37e2a32d4d198f268d0504fc05998890f61
Паспорт RF 1.17 Win 7-10.exe / virustotal:
https://www.virustotal.com/gui/file/1c2a6d57e20002e27ba6f42ea553c42ac0973b314017236179371617ae08759e
********** ВНИМАНИЕ ***********
KeyGen (Для первых двух программ, исполняемый файл):
https://www.virustotal.com/gui/file/d039f2a6b7e36089567d305c680946d4474d1279854aa5ee99ee260b0c57b1a3
Инструменты для анализа:
de4dot-x32.exe (NET Reactor) / virustotal:https://www.virustotal.com/gui/file/3b933166bc1d4a2efd1945c2fb76292095a4f8f3274204a5494f43432f04781a
de4dot-x64.exe (NET Reactor) / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
HttpAnalyzer / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
HttpAnalyzer / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
DnSpy x32 / virustotal: https://www.virustotal.com/gui/file/7ce05f1aafaaa87d046bbad1b07801777e724251b084bc7f70cef71c98b08105
DnSpy x64 / virustotal: https://www.virustotal.com/gui/file/cc15f3f7836f5c976e058aabdd55af8635b484a6b9a5e94a2cb048856965f9e2
ExeinfoPe / virustotal: https://www.virustotal.com/gui/file/32e6df44a529d3bd543aae01365852990c0e7f3b4f84b5a7f9d7dfc18d6a46fd
Файлы к статье:
Скрытый контент для зарегистрированных пользователей.




. Such info in public is truly insane