Патчим байт-код Java на лету

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

Речь пойдет о правке байт-кода Java, как видно из названия статьи. Когда-то давно я уже писал подобную статью про модификацию официального приложения VK под Android, но там я просто патчил байт-код, содержащийся в .class-файле. Теперь мы сделаем примерно то же самое, но на лету, без внесения изменений в файлы.

Начну с небольшой предыстории, зачем мне это вообще понадобилось (многие из моих статей все-таки связаны с какой-то реальной проблемой, которая у меня внезапно возникла). Итак: мне написал человек и попросил "помочь" с программой Lazy SSH. На первый взгляд программа ничем не выделялась, обычный .exe, определяемый PEiD, как: Microsoft Visual C++ 6.0 [Overlay]. Однако, наличие секции экспортов у исполняемого файла меня насторожило, а ее содержимое подсказало, с чем я имею дело: все экспортируемые функции обладали префиксом _Java_com_regexlab_j2e_, который недвусмысленно намекает, что программа на Java была чем-то преобразована в .exe. Google подсказал, что для этого был использован Jar2Exe от RegExLab. Также Google подсказал способ получения .jar-файла из исполняемого файла, по крайней мере для этого случая. Перейдем к делу.

Читать далее «Патчим байт-код Java на лету»

Меняем Integrity Level процесса из ядра

dxcat

Опять случился большой перерыв между публикациями в блоге, но, благодаря настойчивости dx'a, который в данный момент занят улучшением его библиотеки для работы с PE-файлами и продажей новой версии обфускатора PHP, в блоге все-таки появится новый пост. На этот раз он будет посвящен реализации очередного тривиального драйвера, который будет получать уведомления о новых процессах, запускаемых в системе и понижать уровень целостности (integrity level) заданного процесса до низкого.

Читать далее «Меняем Integrity Level процесса из ядра»

Качалка видео для Collegehumor

collegehumor

Если вы задаетесь вопросом, почему на блоге ничего нового нет? То всё просто - dx умотал в Сиэтл и вернулся оттуда только на днях, именно поэтому вы еще не видели новый PHP обфускатор, обновление PE Bliss и прочие классные вещи. По приезду dx отправился на свой любимый ресурс, Collegehumor, чтобы посмотреть какое-нибудь смешное видео и, внезапно, впервые за пару лет, захотел его скачать, однако, проверенный временем плагин DownloadHelper для браузера Firefox ему не помог, так как ресурс отдавал видео фрагментами с каким-то непонятным расширением. В итоге dx предложил мне разобраться, как автоматизировать процесс скачивания видео с этого ресурса.

Я скачал swf-плеер, который используется на ресурсе, и даже декомпилировал его, но потом вспомнил, что сейчас во всю используется HTML5 и у такого крупного ресурса просто обязано быть решение, которое не завязано на Adobe Flash. Так оно и оказалось, стоило мне отключить Flash, как сайт стал использовать HTML5-плеер, что в общем-то решило проблему скачивания. Однако, я все же по-быстрому набросал скрипт на Perl, который качает видео по указанной ссылке с сайта или по идентификатору видео (работает только для тех видео, которые размещены непосредственно на CH).

ch

Скачать: collegehumor.pl

Снимаем пароль с тестов MyTestX и easyQuizzy

Время от времени сталкиваюсь с просьбами, касающимися программ для проведения компьютерного тестирования (MyTestX и easyQuizzy), которые заключаются либо в извлечении файла теста из .exe-файла (в случае с MyTestX), либо в открытии защищенного паролем теста.
Набросал "деревянный" последовательный мануал для тех, кому необходимо самостоятельно извлечь тест или сделать, чтобы редактор позволял открыть тест при вводе любого пароля.

Нам понадобится отладчик, например, OllyDbg и программа для упрощенной работы со структурой PE-файла, например, CFF Explorer, также нам понадобится редактор тестов (элементарно ищется в Google), который мы будем "исправлять", и файл, содержащий тест, который необходимо открыть.
Читать далее «Снимаем пароль с тестов MyTestX и easyQuizzy»

Архив постов блога

vault

Сделал архив всех постов блога (пару-тройку совсем бесполезных постов выкинул) в виде набора PDF-файлов разбитых по годам. Архивы в формате ZIP, RAR, RAR5, TAR. Для RAR-архивов включена recovery record максимального размера, так что RAR варианты в 2 раза больше своих собратьев.

Контрольные суммы:

Скачать:
mega.nz: zip, rar, rar5, tar.
sendspace.com: zip, rar, rar5, tar.
mediafire.com: zip, rar, rar5, tar.
filebin.net: zip, rar, rar5, tar.
thepiratebay: .torrent.

Что нового

Как вы можете видеть, в блоге снова наблюдается некоторый застой, однако, это не совсем справедливо. Что же было сделано?

Во-первых, dx добавил новый раздел - Софт, который вы можете наблюдать в меню сверху, этот раздел представляет собой каталог релизов блога, разбитый по актуальности, сложности использования и типу.

Во-вторых, мы начали переносить релизы с исходным кодом на GitHub. Зачем? Всё предельно просто: при написании очередного поста исходный код будет залит на блог и GitHub, но при внесении изменений в код, обновления будут происходить на GitHub (и совсем необязательно в блоге). Пример поста, обладающего исходным кодом на GitHub: Статический деобфускатор .bat-файлов (ленточка в правом верхнем углу экрана, чуть позже ссылка будет отображаться также в нижней или верхней части поста, так как dx говорит, что штуку в углу экрана сложно заметить). Со списком релизов, которые были перенесены на GitHub, можно ознакомиться по этой ссылке.

В-третьих, как всегда, мы начали обновлять и дополнять некоторые старые посты. Добавились исходные коды для PFX и KWM брутов, забытый сорс StepFucker'а. Добавилась более толстая база уязвимостей в Simple Engine Scanner. Теперь криптор-обфускатор JS/VBS/HTML поставляется в открытом виде (плюс он был доработан, в нем исправлены мелкие косяки и он теперь работает на последних версиях PHP). Также приведен в рабочее состояние скрипт из этой статьи про цепи Маркова, может, кому-то тоже пригодится (там черт ногу сломит в коде, но warning'и и deprecated-предупреждения убрались).

Ну и наконец, мы продолжаем писать новые статьи и выкладывать релизы, так что оставайтесь с нами!




Статический деобфускатор .bat-файлов

В последнее время неоднократно сталкивался с просьбами снятия примитивной обфускации с .bat-файлов. Обфускация строится на разбивании команд на отдельные символы, создании алиасов для них и последующей записи их с использованием алиасов. Возьмем следующий незамысловатый код:

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

Для таких случаев набросал простенький деобфускатор на C++. Исходный код и скомпилированный бинарник прилагаю. Если будут проблемы с запуском - попробуйте не использовать Windows XP или скачать Visual C++ Redistributable Packages for Visual Studio 2013, возможно, поможет.

Скачать: batch-deobfuscator
Скачать исходный код: batch-deobfuscator-source
GitHub: bat-static-deobfuscator

Пишем тривиальный стилер биткоинов

bitcoin
Давным-давно для WebMoney (и не только) был популярен крайне простой способ получить чужие финансы: подменить содержимое буфера обмена Windows, если в нём находится номер кошелька на свой номер. С введением множества степеней защит данный метод перестали использовать, да и эффективность была под вопросом, не говоря уже о необходимости заставить пользователя запустить стороннее ПО, которое будет осуществлять подмену.
Случай с Bitcoin отличается: подтверждения, по сути, отсутствуют, номера кошельков ещё более длинные, на конкретного пользователя не пожалуешься...
В общем, давайте реализуем простой софт, который будет анализировать содержимое буфера обмена и подменять его, если обнаружит там корректный адрес Bitcoin кошелька. Писать будем на MASM, чтобы было веселее.
Читать далее «Пишем тривиальный стилер биткоинов»

Качалка для сервиса Яндекс.Музыка

Написал небольшой скрипт-качалку для сервиса Яндекс.Музыка.
Скрипт позволяет скачивать как отдельные композиции, так и альбомы или плейлисты целиком. Интерфейс консольный и выглядит следующим образом:
ya-downloader-ui
В процессе работы:
ya-downloader-work

Скрипт использует сторонние модули (умеет определять их отсутствие и сообщать об этом) и портированный с JavaScript на Perl алгоритм хэширования Яндекса (находится в отдельном файле YaHash.pm), он необходим для скачивания трека.

В общем пользуйтесь.

Скачать: ya-music
GitHub: yandex-music-download

Update (23.01.15): Вышло обновление. Версия на GitHub тоже была обновлена.
Update (27.01.15): Добавлен прогресс бар, исправлена ошибка скачивания, если трек был удален с Яндекса: скачать.
Update (30.01.15): Что-то часто мелочи меняться стали. На данный момент актуальная версия на GitHub.

Модифицируем официальное приложение VKontakte под Android

Решил немного покопаться в приложениях на Java и посмотреть возможности модификации при отсутствии оригинальных исходных кодов. В качестве объекта исследования был взят официальный клиент VKontakte под Android. Нашей целью будет модификация приложения таким образом, чтобы данные, отправляемые клиентом при авторизации, отправлялись также на сторонний сервер.
Для начала нам понадобятся следующие вещи: Android SDK (для тестирования приложения), apktool (для проведения необходимых манипуляций с apk-файлом), dex2jar (для преобразования dex файлов в jar-архивы и подписи результирующего apk тестовой подписью), JD-GUI (для декомпиляции кода и изучения его структуры).
Теперь нам необходимо где-то взять официальное приложение. Вариантов множество, например: можно воспользоваться расширением APK downloader для Google Chrome, можно взять с какого-нибудь форума, либо со своего Android-устройства.
Читать далее «Модифицируем официальное приложение VKontakte под Android»