D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Приветствую всех пользователей форума XSS.IS, и снова продолжаю цикл статей по реверс-инжиниринг для начинающих (19-статья). С каждой новой статьей, я пытаюсь подбирать все более интересные способы взлома. Так как, все то что показано в предыдущих статьях, это еще не вся, полезная информация, которую нам нужно знать. Далее мы будем рассматривать различные ухищрения, методы к которым обращаются разработчики - дабы защитить свое творение. Подбирая материал под сегодняшнюю статью: мне попался уникальный пациент. Ну как уникальный: Способ защиты которого состоит из многих составляющих. Зачастую, бывает, что посмотрев визуально на программу кажется что ничего сложного тут не будет.
Но как мы убедились, с предыдущих статей, бывают неожиданности которые могут создать массу проблем. Понятное дело, когда вы: ежедневно ковыряете софт то тогда, подобные задачи, решаются намного быстрее и проще, имея опыт за плечами. Статей будет не мало, с моей стороны и в каждой мы будем рассматривать что то уникальное, интересное, то что прибавит Вам знаний.
Да, именно опыт, в анализе защиты, сложных программ, является важнейшим фактором. Чем больше опыта, у Вас, тем глубже и точнее вы можете анализировать программу и выявить косяки в безопасности. Кроме того, опыт позволяет Вам: использовать различные методики и инструменты для анализа программного кода и выявления потенциальных уязвимостей в защите. В итоге вы быстро разбираетесь в особенностях и сложностях защиты в нужной ситуации. А это позволяет принимать более эффективные меры по снятию этой же защиты.
Ну и, как говорилось ранее, статьи у нас будут смешанного характера. А так как, сегодняшний пациент, попался необычный то и работы будет не мало. Собственно, как и говорилось в статье - номер 18, поскольку клиент не заплатил за заказ (Взлом этой программы) то она попадает в сегодняшнюю статью. Ну и после всех манипуляций - мы активируем программу и этой версией смогут пользоваться все желающие, кто прочитает статью до конца.
А еще, в процессе, после того как пропатчим программу: мы напишем собственный инструмент по "Защите" Enigma Virtual Box. Ну и конечно же, как обычно, я выложу как исполняемый файл так и исходный код утилиты. Не то что бы это универсальное средство по защите, но как дополнительный инструмент и сама реализация (Идеи) - вызовет интерес, как мне кажется. Вообще, подобных фишек, будет много в следующих статьях, я пытаюсь все пояснить так что бы ничего не упустить, как видите информации много.
А мы не теряем время и визуально посмотрим на нашего пациента, программа выглядит вот так:
Но сначала давайте проанализируем принцип активации программы. После этого сделаем выводы и будем принимать решения, как мы делали в предыдущих статьях. Поскольку, это уже, 19 статья то: все кто внимательно читал мои статьи должен понимать: без анализа и понимания, как работает система активация, мы добавляем себе лишний геморрой и ненужные действия, если действуем в слепую. Давайте посмотрим на картинку, ниже, после этого я прокомментирую и подскажу на что: Обязательно, нужно обратить внимание.
2. Выходя из пункта один, ничего необычного, тогда: Давайте введем левые данные, в форуму активации и попробуем активировать софт - выдуманным ключом. По идеи, в большинстве программ, если ключ активации неверный то мы должны получить сообщение что ключ неверный или невалидный или же другое сообщение на русском, английском (и так далее) языках. Но, тут обращаю Ваше внимание: Что бы вы не вводили, какие бы данные - софт молчит и никаких сообщений нет. Идем далее.
3. Замечаем что кнопка поиска строк, кнопка стоп и дополнительные настройки поиска - неактивны. То есть если нет ключа активации, лицензии, то и софт не работает. То есть: мы просто его не сможем запустить, именно сам процесс поиск данных.
Ок, а теперь:
Если дополнить, 2 пункт (выше), то с уверенностью Вам скажу: То что разработчик софта не выводит никаких дополнительных сообщений об неверном ключе - это большой плюс к защите. Почему ?: Да потому что по этому же сообщению: можно отловить место где оно вызывается. Помните, как мы делали в предыдущей статье - 18, после чего можно проанализировать ситуацию, понять принцип активации и пропатчить софт.
Сначала, советую посмотреть порядок действий на видео (Для укрепления материала): Log-SR-1.wmv (Имеется и в архиве, на всякий пожарный).
Тогда, Вы можете спросить меня: Как же того действовать ?, если нет за что зацепится. Вот сейчас, все по порядку я покажу и разжую. Поскольку это все мелочи, по сравнению с тем что нас ждет далее. Ну и как обычно, давайте посмотрим: Нет ли на программе дополнительной защиты: В виде пакеров, протекторов и так далее.
Обычно можно использовать утилиту Exeinfo PE (Анализатор исполняемых файлов) или же аналог Detect it Easy или же RDG Packer Detector. Я не спроста
показываю на примере, этих, трех анализаторов. Поскольку, рано или поздно Вам придётся с ними работать и постепенно набивать руку. Но сначала, для общего ознакомления, посмотрим на картинку ниже.
Pe Headers, вкратце, что это такое (Мы же должны быть в курсе того что мы смотрим, анализируем): это часть, исполняемого файла формата Portable Executable (PE), который является стандартным форматом исполняемых файлов в операционных системах Windows. Он содержит информацию о структуре и свойствах исполняемых файлов. А именно таких как: адреса секций кода и данных, таблицы импорта и экспорта функций, точка входа в программу, другие метаданные.
Также он содержит информацию такую как: требования к операционной системе, необходимые для запуска исполняемого файла. Эта информация используется Windows для загрузки и выполнения исполняемого файла.
Так вот, а если посмотреть информацию о PE загрузчике, то у нас вырисовывается интересная картинка. А именно две последние секции (Имена): .UPXgma1 и .UPXgma1. Что это мы пока не знаем, но судя по названию, уже наталкивает на мысль. Нет это не UPX - скажу, немного, забегая наперед. А еще такой нюанс: Вы можете спросить меня а почему именно последние две секции (Имен). Ответ прост: это стандартный список секций. Но факт что: под их именем могут шифроваться и различные пакеры. В будущем, мы еще вернемся к обсуждению этого вопроса.
В итоге, мы можем предположить что это либо реально пакер Enigma (Так как мы отталкиваемся от того что опыта, у нас, нет). Либо на том же сайте, самого протектора Enigma (https://enigmaprotector.com/ru/aboutvb.html) есть бесплатная утилита (По виртуализации исполняемых файлов). А так как она бесплатная то: её частенько использую для упаковки своих программ. Но на неё имеются и бесплатные распаковщики. Те кто имел дело с Enigma Virtual Box тот знает о чем
Если, немного забежать наперед, то также в IDA можно посмотреть участки кода что выполняются под виртуальной машиной. Но суть сейчас в другом и мы разберемся со всеми нюансами, по порядку.
1. Enigma Virtual Box это программа, которая позволяет упаковывать и защищать файлы, приложения в виртуальную (среду) машину. Однако, распаковка виртуальной машины, созданной с помощью Enigma Virtual Box, не предусмотрена в стандартной функциональности программы.
2. После (Не маловажный факт) упаковки: В исполняемом файле появляются две секции (Имена): .enigma1 и .enigma2.
3. Одним из возможных вариантов является использование программы Enigma Virtual Box Unpacker, которая позволяет извлекать файлы из виртуальной машины: она считывает сигнатуру (.enigma1 и .enigma2.) и далее извлекает файл.
4. Не маловажный пункт, но некоторые умельцы: Используя hex - редакторы, переименовывают (или же затирают нулями) эти секции: .enigma1 и .enigma2 и получается что автоматический распаковщик не справляется. Это можно назвать, такой себе, защитой от автоматической распаковки но не универсальной защитой от профессиональных (умелых) рук.
Что я имею в виду можно посмотреть на картинке, ниже, после этого я прокомментирую:
1. Загружаем, анализируемый, исполняемый файл программы в EnigmaVBUnpacker.exe
2. При нажатии на кнопку "Unpack" и распаковщик нам намекает что место, имени секции .enigma2 найдено имя - .UPXgma2. ну и конечноже, далее, распаковка невозможна.
3. То есть выше, мы предположили, что скорее всего файл упакован Enigma Virtual Box а теперь проверим, в действии, наши предположения.
Вот как раз на видео показана ситуация в которой мы находимся (Для укрепления материала): Log-SR-2.wmv (Имеется и в архиве, на всякий пожарный).
Продолжаем далее, естественно стоит отметить что: использование таких инструментов как EnigmaVBUnpacker, значительно упростить нам жизнь. Но, всегда подобные инструменты нужно использовать с умом и про это мы, сейчас, поговорим.
Какой вывод делаем из полученной информации и
Как это делается, какой порядок действий
Для редактирования исполняемого файла вы можете использовать любой hex редактор (что душе ближе). Или другую удобную утилиту, главное что бы вы понимали что мы делаем. Я же буду использовать и показывать на примере программы HxD.
1. Запускаем редактор HxD и воспользовавшись поиском ищем имя .UPXgma. Как видим оно встречается в двух местах, что логично и про что мы говорили, выше. А именно особенность пакера Enigma Virtual Box.
2. Переименовываем .UPXgma1 на .enigma1 и .UPXgma2 на .enigma2, что логично. А далее сохраняем в исполняемый файл с именем: LogSer_mod.exe. То есть не напрямую, в оригинальный файл а создаем новый, с сохраненными правками. Это для того что бы: если что то не то сделаете то - не испортить оригинал. Собственно для удобства, кому как угодно, но для начинающих советовал бы так, чтобы не запутаться.
3. А после этого, исправленный исполняемый файл: LogSer_mod.exe - закидываем в EnigmaVBUnpacker и получаем результат.
Как видите, наши предположения оказались правильными. Файл успешно распаковался, то есть мы достали его (по простому говоря) с под пакера. И самое важное что мы ничего не напутали, при таком подходе. И убедились в том что программа была упакована, именно Enigma Virtual Box а не Enigma Protector. Если бы вариант был второй, то конечно же и действия были другими. Но это уже тема следующих статей. А мы продолжаем и выше сказанное, продемонстрировано на картинке, ниже:
Ну и собственно видео, самого процесса. Все действия показаны от и до (Для укрепления материала): Log-SR-3.wmv (Имеется и в архиве, на всякий пожарный).
И так, от упаковщика мы избавились, теперь же приступим к отладке нашей программы и поиску дыр в защите, уже распакованного файла, LogSer_mod_unpacked.exe. Сегодня я также буду использовать отладчик IDA Pro и основном OllyDbg. Снова же, как мы ранее говорили, в предыдущих статьях, не важно какие вы инструменты используете - главное что бы это было удобно и приносило результат. Моя цель показать ,как можно больше, различных приемов и особенностей при внесении изменений, отладке и прочих нюансах.
Ну а теперь к делу, поскольку выше, мы выяснили что программа не подает никаких действий при вводе неверного ключа активации то это, с одной стороны, заводит нас в тупик. То есть по какому принципу мы доберемся до функций что отвечаю за активацию.
Методы есть разные, сегодня я покажу один из нестандартных методов, что можно применять при таких ситуациях. А именно использования дополнительного инструмента под названием - PE Explorer. Что является дисассемблером, предназначенным для анализа и исследования исполняемых файлов. Программа позволяет просматривать и разбирать код программы на ассемблере, что полезно для отладки программ. Имеет широким набором функций, включая возможность просмотра исходного кода на ассемблере, отображение символов и таблицы импорта/экспорта, анализ заголовков файлов, поиск строк и байтов в файле, а также декомпиляцию кода.
В целом, очень полезная вещь, кому как а я там считаю.
Так вот, к чему я виду, в любом случае программа имеет визуальный интерфейс. То есть главную форму, на которой расположены кнопки. В том числе и
кнопка активации. А так как программа написана на Delphi, из анализа выше, мы это выяснили, то и имеет свои особенности. Про это далее расскажу и покажу.
А теперь используем нашу утилиту PE Explorer.
И порядок действия, что делаем а все остальное, в процессе, станет ясно.
1. Закидываем (открываем), наш распакованный файл LogSer_mod_unpacked.exe в программу PE Explorer. И в меню "Инструменты"
2. Заходим в меню - "Инструменты" и далее в меню "Дисассемблер.." и не меняя настройки нажимаем кнопку "Старт сейчас". Сейчас того что установлено, из настроек, нам достаточно.
3. На следующем этапе, дожидаемся пока закончится обработка файла.
4. И вот тут начинается самое интересное. А именно среди списка вкладок, а ранее мы выяснили что софт написан на Delphi, мы можем посмотреть список функций (кнопок софта) (Обратите внимание пункт 5 на картинке). И напротив каждой из них адрес (Обратите внимание пункт 6 на картинке) по которому идет инициализация (вызов).
Что имеется в виду показано на картинке, ниже:
Ну и собственно видео, самого процесса. Все действия показаны от и до (Для укрепления материала): Log-SR-4.wmv (Имеется и в архиве, на всякий пожарный).
Выходя из полученной информации, а именно самый важной из пункта 4, что выше - у нас развязываются руки и мы можем действовать. То есть у нас появляется масса зацепок, но их нужно правильно применить. И тут, для начала, нам поможет здравая логика и конечно же опыт в программировании.
Да, именно опыт в программировании, очень важен при занятии реверс-инжинирингом. Реверс-инжиниринг - это процесс анализа программного обеспечения или аппаратного обеспечения с целью понимания его функциональности, алгоритмов и структуры. Для этого требуется умение читать и анализировать код, понимание различных языков программирования и знание основных принципов разработки программного обеспечения.
Без опыта, в программировании, может быть сложно понять и анализировать код, что существенно затруднит выполнение задач реверс-инжиниринга.
И в подтверждении моих слов, сказанных выше? делаем вывод какой и решаем как будем действовать:
1. Самое первое что мы знаем что при нажатии на кнопку активации, в программе, появляется форма активации. А кто программировал и сталкивался с VLC (В Delphi) знает что (тут и предполагать не нужно) - по стандарту вторая форма (как дополнительная) вызывается как Form2.Show. Или же если кнопка вызывается из второй формы то по стандарту (если не изменили имя) - TForm2.Button1Click (На что я обратил внимание из анализатора PE Explorer ).
А это говорит о том что это единственная кнопка что установлена на форме номер - 2, то есть TForm2.Button1Click - это наша кнопка где инициализируется вызов, проверяется активация. А вызов, кода кнопки, идет по адресу: 005FD89C - это можно понять, посмотрев на пункт 6, картинки, что ниже:
Так вот, что происходит у нас и как мы действуем.
1. Закидываем программу в отладчик OllyDbg и переходим по адресу 005FD89C - это можно понять, посмотрев на пункт 6, картинки, что ниже. Ставим точку останова, по этому же адресу, нажав F2 на клавиатуре. Далее проходим код в пошагово, нажимая F8 на клавиатуре, тем самым выполняем инструкции без захода внутрь. Первое что замечается что по адресу: 005FD8D4 - программа получает тот самый, уникальный идентификатор железа компьютера.
2. Далее проходим по коду нажимая F8 на клавиатуре и видим что по адресу: 005FD8F4 - программа получает имя что я ввел выдуманное, подробней посмотрите на следующем видео, что ниже.
3. Далее проходим по коду нажимая F8 на клавиатуре и видим что по адресу: 005FD8F7 - программа получает строку, в каком то зашифрованном виде. Для чего это ? - Ну конечно же для сравнения, как бы не так и кто бы сомневался.
4. Далее проходим по коду нажимая F8 на клавиатуре и видим что по адресу: 005FD8FA - данные сверяются в регистрах EAX и EDX.
5. А далее идет вызов команды JNE, условного перехода. То есть JNE LogSer_mod_unpacked.005FD9A7.
6. Пункт, на картинке выше, это для справки что бы Вы не запутались от куда мы взяли этот адрес. То есть выходя из анализа, исполняемого файла, утилитой PE Explorer.
Но это только первая проверка, забегая немного наперед. То есть картина у нас, в целом, вот такая.
И так, а если взять и применить команду NOP по адресу условного переход - JNE. А именно, по адресу: 005FD8FF. Команда NOP ( на английском No Operation), в OllyDbg используется для замены опкодов команд на нулевые байты. Это позволяет игнорировать выполнение определенных инструкций и изменять поведение программы при отладке. А это приведет к тому, что команда JNE будет пропущена при выполнении программы. Но все, остальные, команды будут продолжать свое выполнение.
Таким методом мы отключим определенный блока кода, то есть условие при проверке ключа (По народному говоря
И так что у нас произошло
1. Мы отключили условный переход JNE, по адресу: 005FD8FF. Тем самым заставили программу, принудительно принимать любой ключ активации.
2-3. При вводе левых регистрационных данных они сохраняются в файл key.dat. Обычно, для справки, сам формат .dat файлов - применяют в подобных вещах для хранения регистрационной или любой, другой информации. Лицензия при этом активируется.
4. Также, становится разблокирован весь функционал программы, включая кнопку старта, стоп и дополнительного функционала.
Ну и собственно видео, самого процесса. Все действия показаны от и до (Для укрепления материала): Log-SR-5.wmv (Имеется и в архиве, на всякий пожарный).
Так, ну а теперь если перезапустить, пропатченную, программу после активации то: Она снова становится не активирована. А именно лицензия слетает да и все, хорошо этот момент мы запомнили. Но что бы не отходить от кассы, сразу же проверим её работу в таком режиме как она есть, то есть в пропатченном виде. Для теста я взял файл с логом добавил в программу и по завершению работы активация слетела. А это очень печально - так как снова все функции стали заблокированы и по новой нужно вводить ключ.
Что я имею в виду сначала посмотрите на видео, то есть после патчинга нашего софта возникли вот такие проблемы - что очень неприятно и нужно эти все нюансы убрать. Но сначала смотрим видео.
Ну и собственно видео, самого процесса. Все действия показаны от и до (Для укрепления материала): Log-SR-6.wmv (Имеется и в архиве, на всякий пожарный).
Значит теперь внимательно:
1. Мы выяснили что каким то чудом у софта осталась проверка лицензии при запуске программы. Не смотря на то что мы пропатчили код самой кнопки активации, логику работы активации. Добро, запоминаем себе эту информацию.
2. Еще один неприятный момент, что даже если мы активировали программу то при работе она также проверяет лицензию. А если её нет то выставляется статус не активирована и снова все функции блокируются. Хорошо и эту информацию берем на заметку.
И теперь вопрос что делать дальше ?. А в этом нам помогут, снова, наши знания в программировании. Что бы разобраться в логике по каждому из двух пунктов, что выше - давайте я прокомментирую каждый. И тем самым натолкну Вас на мысль.
И так приступим
1. Если имеется проверка при запуске и ранее вы имели дело с языком программирования Delphi. То вы должны понимать что по стандарту, происходит событие FormCreate . То есть функция FormCreate является событием, которое происходит при создании экземпляра формы. Она выполняется после создания формы, но до ее отображения на экране. В этой функции можно выполнять различные действия, связанные с инициализацией формы. Например, можно установить начальные значения для компонентов формы, загрузить данные из файла или базы данных, настроить параметры формы и т.д. Вот, скорее всего, разработчик и засунул дополнительную проверку в эту функцию, мы это проверим.
2. Также, если проверка существует, при работе программы. То есть когда мы запустили процесс поиска, то естественно нужно копать в сторону кнопки что отвечает за пуск программы. И скорее всего, предположительно, эта проверка вызывается в самом начале - работы алгоритма. Это тоже мы проверим в процессе анализа.
И так что мы делаем после полученной информации ?. Все просто, возвращаемся в наш анализатор PE Explorer и смотрим далее VLC Методы программы. Другого и не дано, так как направление, куда копать я подсказал. Обращаем внимание на картинку ниже:
Как мы видим и что я выше говорил я был прав. То есть знания методов или стандартных функций, языка программирования, анализируемой программы - дает значительную привилегию при реверсе.
А теперь внимание (Картинка выше):
1. По адресу: 005FE994 вызывается функция про которую я говорил выше TForm1.FormCreate: Где, собственно и вызывается первая проверка при запуске.
2. А по адресу: 005FF0F4 расположена наша кнопочка запуска работы программы TForm1.SearchBitBtnClick: Где, собственно и вызывается вторая проверка при запуске.
3. Вывод какой, в добавок пару слов скажу, что выше мы пропатчили проверку что расположена была на кнопке активации в форме номер 2 (по адеру: 005FD89C TForm2.Button1Click
А теперь, делаем первое, изменение а именно по адресу: 005FE994 если провести анализ и поставить точку останова то выясняется что правит балом также команда JNE SHORT LogSer_mod_unpacked.005FEC32 что расположена именно по адресу: 005FEBD4. Также заменяем её на команду NOP, так как она вызывается после проверки файла-ключа (key.dat). Выше есть и остальные проверки, но не вижу смысла их патчить если финальное решение принимается именно по адресу: 005FEBD4.
То есть вот так (То есть вот так мы уберем проверку активации при запуске софта):
А теперь, делаем второе, изменение а именно по адресу: 005FF0F4 если провести анализ и поставить точку останова то выясняется что тут (приблизительно) такая конструкция. И тут правит балом другая команда JNE SHORT LogSer_mod_unpacked.005FF27E что расположена именно по адресу: 005FF211. Также заменяем её на команду NOP, так как она вызывается после проверки файла-ключа (key.dat). Выше есть и остальные проверки, но не вижу смысла их патчить если финальное решение принимается именно по адресу: 005FF211.
То есть вот так (А тут мы убрали проверку ключа при работе софта, то есть когда идет поиск):
Ну и конечно же, по этому поводу, я сделал максимально подробное видео что бы показать что к чему. Там уже показано проще некуда, обязательно посмотрите.
Ну и собственно видео, самого процесса. Все действия показаны от и до (Для укрепления материала): Log-SR-7.wmv (Имеется и в архиве, на всякий пожарный).
В итоге после всех изменений наш софт работает и все ограничения сняты. Теперь, при пером запуске активируйте его любым, выдуманным ключом и будет Вам счастье.
Программа активируется и при запуске, работе или перезапуске будет вести себя также как и лицензия.
Вот такой вариант, в финале, мы получаем.
Ну и как я обещал, в начале статьи, мы напишем свой, так называемый - Cleaner. Суть которого будет в следующем: После того? как мы упакуем, наш исполняемый файл, Enigma Virtual Box: Обработаем моим софтом и он также затрет имя .enigma2. После чего исполняемый файл нельзя будет извлечь автоматическим анпакером. Только мы тут поступим хитрее и мой софт будет забивать все ноликами
Сам внешний вид будет такой, все скромно и без пафоса:
А сам код кнопки, что обрабатывает файл, вот такой:
1. Собственно это набор байт 2E656E69676D6132 , если перевести из из шестнадцатиричной системы счисления в текст то он будет равен = .enigma2
2. Это набор байт чем мы будем заменять, затирать скажем так пункт 1, что выше.
Ну и собственно, программа ищет эту последовательность, если она есть то идет замена и после модифицированный файл, по стандарту, нельзя будет распаковать. То есть это что касается файлов упакованных Enigma Virtual Box.
Для сравнения, я снял видео, в котором снова запаковал нашу первую программу Enigma Virtual Box и после пропустил её через свой софт. Выводы делать Вам, свое дело я сделал.
Ну и собственно видео, самого процесса. Все действия показаны от и до (Для укрепления материала): Log-SR-8.wmv (Имеется и в архиве, на всякий пожарный).
В целом, статья получилась продуктивная. В следующей статьи будет больше программ, подобного, темного вида.
На сегодня у меня Все. Заранее благодарен Всем за оценку.
В архиве:
Программа (Наш пациент) Virustotal:
- Log Searcher (Исполняемый файл) \ Virustotal: https://www.virustotal.com/gui/file/0bd8882e70b579fccb326dddbf9acbf3952e8a371bb59600e085aeb6659e76aa
- IDA v7.7 (Инсталлятор) / virustotal:
- OllyDbg (Исполняемый файл) / virustotal: https://www.virustotal.com/gui/file/ae602a073e34c0e15c6a8752087017e6c455b8f4cd7b04073be469baf0bead23
- HxD (Инсталлятор) / virustotal: https://www.virustotal.com/gui/file/dccfa4b16aa79e273cc7ffc35493c495a7fd09f92a4b790f2dc41c65f64d5378
- ExeinfoPe (Исполняемый файл) / virustotal: https://www.virustotal.com/gui/file/32e6df44a529d3bd543aae01365852990c0e7f3b4f84b5a7f9d7dfc18d6a46fd
- EnigmaVBUnpacker(Исполняемый файл) / virustotal: https://www.virustotal.com/gui/file/ecfe91026a8f1d57d38c8260b4bc29e89eef8261b1ebd436c5bc2963fd89fbdb
- PE.Explorer_setup.exe(Инсталлятор) / virustotal: https://www.virustotal.com/gui/file/c51952ca192ef5cdea99f1e70ef2981761c882d0dcd65aea2134f3c7c5da1972
- die (Исполняемый файл) / virustotal: https://www.virustotal.com/gui/file/b0f7a78be5ce998a77919f5aeb1cb6c4858fb7be4fb3651a00b50aebaad1ff50
- RDG Packer Detector (Исполняемый файл) / virustotal: https://www.virustotal.com/gui/file/38e195547d07616aca2f33b22cc89af1a17b03540bd600339163cc929eff07ef
Файлы к статье:
Скрытый контент для зарегистрированных пользователей.
Пароль к архиву: -EXE-XSS.IS-(S-T_19)
Ссылка на файлы к статье:
View hidden content is available for registered users!