Print This Post Распаковываем Perl-скрипты, обработанные PerlApp

Воскресенье, 7. Август 2011
Раздел: C/C++, Perl, автор:

Как известно, для Perl, впрочем, как и для других скриптовых языков, существуют утилиты, позволяющие создавать из скрипта полноценный exe-файл, который можно переносить на другие компьютеры и запускать, даже если интерпретатор языка на них не установлен. В случае с perl'ом наиболее популярными утилитами являются Perl2Exe и PerlApp.
Принцип работы этих утилит довольно прост и состоит в упаковке внутрь результирующего exe-файла библиотеки перла, основного скрипта и зависимых модулей. Содержимое, естественно, сжимается, шифруется (с помощью XOR) и не хранится в открытом виде внутри файла. Исследуем чуть подробнее внутреннее устройство результирующих exe-файлов, которые получаются с помощью PerlApp.
Для начала, определим с помощью чего сжимаются данные. Это сделать довольно просто, например, с помощью PeID (с плагином Krypto Analyzer) или какого-нибудь hex-редактора. В случае с PeID все тривиально: указываем путь к файлу, запускаем плагин и получаем список найденных крипто-сигнатур.

С hex-редактором тоже просто: открываем нужный файл, нажимаем Alt+F6 (справедливо для Hiew), получаем список строковых ресурсов, гуглим эти строки.

Таким образом определяем, что для сжатия используется библиотека zlib, причем довольно старая версия - 1.1.4. Конечно, можно начать искать, где именно в файле хранятся сжатые данные, но мне захотелось пойти другим путем.
Читать дальше »

Print This Post PE-формат. Часть 2 — Немного практики: выводим информацию о секциях исполняемого файла

Вторник, 2. Август 2011
Раздел: C/C++, Windows, Для новичков, автор:

Тем, кто мало знаком с PE-форматом, или совсем с ним не знаком, наверное, было непросто понять то море информации, которое было излито в моей предыдущей статье, поэтому я решил пока немного отложить изучение экспортов, импортов и прочих служебных таблиц в PE-файлах. В этой статье мы займемся практикой: напишем программку, которая выведет список секций произвольного исполняемого файла и некоторую информацию о них. Впоследствии, когда дойдет дело до написания упаковщика, этим кодом мы воспользуемся, ведь упаковывать мы будем как раз данные секций.

Читать дальше »

Print This Post Класс-инжектор на C++

Среда, 13. Июль 2011
Раздел: C/C++, автор:

Давеча наелся всяких плацебо"витаминчиков" и захотелось странного, а именно - выучить C++ за неделю. Начинание примечательно тем, что это первый раз, когда я изучаю что-то, связанное с программированием, по книге (обычно руководствовался примерами из гугла). Да и подобные языки мне до этого не приходилось изучать, в общем-то. Книжку выбрал первую попавшуюся на Amazon - Herbert Schildt "C++: The Complete Reference".
Результат своего непродолжительного изучения оформил в следующий класс, который позволяет грузить DLL или произвольный код в 32- и 64- разрядные процессы. Код, правда, написан не в соответствии с модным стандартом C++0x, и в нем не используется такая мощная вещь как шаблоны (хотя сомневаюсь, что они тут серьезно пригодились бы), но, тем не менее, базовые возможности языка я постарался задействовать.
Использовать класс довольно просто, например:

Доступные методы:

Для работы с 64-разрядными процессами достаточно просто скомпилировать класс под соответствующую архитектуру.

Скачать: cpp-injector-class
GitHub: cpp-injector-class

Print This Post LSSender, detours и боянный сплайсинг

Вторник, 3. Май 2011
Раздел: C/C++, Windows, Социальные сети, автор:


Давно ничего не писал в связи с отсутствием интересных идей, поэтому решил написать эту статью, чтобы развеять пустоту.
Люди, пишущие софт на продажу, любят накрывать свои продукты протекторами, однако редко собственноручно проверяют качество защиты. Они, конечно, по-своему правы, так как обычный человек вряд ли примется читать статьи, например, на wasm, чтобы убрать защиту с программы. Рассмотрим способы "обмана" защиты одной из программ для всеми любимых социалочек.
Программа называется LSSender, последние версии которой накрыты DotFix NiceProtect от небезызвестного GPcH. В сети существуют мануалы по снятию этого протектора, но это слегка занудно, и поэтому мы займемся более детальным изучением системы привязки.
Читать дальше »

Print This Post Генератор аккаунтов

Воскресенье, 6. Февраль 2011
Раздел: C/C++, Софт, автор:

Пару дней назад в асю стукнул человек с просьбой написать программку для генерации списков невалидных аккаунтов, составляя их из паролей, логинов и доменов, которые он предоставит. Узнав, что дальнейшая судьба софта его не интересует, я решил выложить исходники в блог и немного прокомментировать их.
Для начала, возможности софта:
[+] Генерация заданного количества [email protected]:password из заданных списков логинов, доменов и паролей.
[+] Возможность задать файл с префиксами и постфиксами для логинов и паролей и указать вероятности их использования в логине и пароле.
[+] Возможность задать разделитель логина и пароля.
[+] Фильтрация списков логинов и паролей по заданным регулярным выражениям.
[+] Возможность переводить логины в нижний регистр.
[+] Возможность включить проверку, чтобы повторные [email protected] не генерировались.

Все это написано на C++ с использованием замечательной бесплатной библиотеки boost.
Читать дальше »

Print This Post Пишем на русском в Native Mode

Среда, 26. Январь 2011
Раздел: C/C++, Windows, автор:

Недавно у меня возникла необходимость писать на русском в нативном приложении, но, как оказалось, добиться этого не так-то просто.
Для того, чтобы получить возможность вывода русских букв, нужно разобраться, где и в каком формате хранятся глифы символов, которые отображаются на экране. Если подробнее рассмотреть функцию winx_printf (в своем проекте я использовал ZenWINX и NDK для упрощения разработки приложения), то мы увидим, что она в свою очередь вызывает winx_print, далее вызывается NtDisplayString, которая преобразует входящую строку с помощью RtlUnicodeStringToOemString, далее идет вызов функции InbvDisplayString, которая обращается к VGA Boot Driver (bootvid.dll).
Читать дальше »

Print This Post SSH Bruteforce

Воскресенье, 26. Декабрь 2010
Раздел: C/C++, автор:

Написал небольшой брутфорс учетных записей SSH.

Возможности:
[+] Многопоточность
[+] Три режима перебора: по списку логинов, по списку паролей, по списку логин;пароль
[+] Перебор IP по диапазону или по списку из файла
[+] Возможность установки таймаута соединения при проверке порта

Подобранные данные сохраняются в файл brute_good.txt. Распараллеливание идет по IP-адресам, т.е. если в диапазоне 1 IP и в настройках стоит 100 потоков, то фактически перебор идет в 1 поток.

Скачать: sshb.zip (пароль на архив: kaimi-ru)
Говноисходники: sshb_src.zip

Update (22.01.14): Немного поправил код, устранил утечку памяти, добавил дополнительную проверку на успешную авторизацию, сделал сборку с libssh 0.6.0 и OpenSSL 1.0.1f.
Собранная версия
Проект для MSVC 2010+
GitHub: ssh-bruteforce

Print This Post Шифрующий архиватор с автораспаковщиком

Воскресенье, 24. Октябрь 2010
Раздел: C/C++, Windows, Это интересно, автор:

Написал несложную программку - архиватор, позволяющий создавать запароленные зашифрованные архивы и прикреплять к ним автораспаковщик. Интерфейс архиватора выглядит так:

Как видно, архиватор позволяет добавить произвольное количество файлов в архив, при случайном добавлении лишних - удалить их или вообще очистить список файлов. Если добавить файлы в архив из разных директорий, архиватор автоматически вычислит самую общую для них и сохранит структуру расположения файлов. Пустые файлы и папки в архив не добавятся. Можно задать заголовок архива и текст, который отобразится в распаковщике перед полем ввода пароля. Также есть возможность задать уровень сжатия и сам пароль для шифрования файлов. Можно создавать архив с автораспаковщиком (формат exe), в этом случае не следует добавлять в него файлов больше, чем на 4 Гб. При создании архива без распаковщика (формат dxa) ограничений на размеры файлов или архива не накладываются, но такой архив можно будет распаковать, только имея разархиватор. Вот как он выглядит:

Распаковываться будут только выбранные в списке файлы. Если файл в папке разархивирования уже существует, распаковщик спросит, заменить ли его. Кроме того, распаковщик создаст все необходимые папки для разархивирования, если это необходимо.

Архивирование производится с помощью zlib, а шифрование - AES256.

Как все это можно использовать? Достаточно вспомнить о большом количестве файловых партнерок и понять, что теперь можно и самим делать платные архивы и распространять их, завися только от биллинга.
А еще это просто хороший архиватор :)

UPD: добавлена возможность создавать просто архивы без пароля.

Скачать: ZIP
Исходн говнокоды: source

Print This Post VIP v2

Воскресенье, 3. Октябрь 2010
Раздел: C/C++, Социальные сети, автор:

И снова здравствуйте. Представляю вам очередной продукт анализа «защищенности» продукта Vkontakte Inviter Pro v2, выполненного на заказ.
Как пользоваться:
1. Качаем этот архив (включает в себя дистрибутив VIP v2 2.9.3.0).
2. Запускаем serv.exe, ждем появления в окне строки «Server started».
3. Запускаем инвайтер (если у вас 64-битная ОС, то сначала прочтите примечание снизу), но не авторизуемся. Смотрим PID процесса инвайтера через диспетчер задач, нужная строка будет выглядеть как-то так:

Если у вас по каким-либо причинам не отображается PID процесса, то в окне диспетчера нажимаем Вид->Выбрать Столбцы и в появившемся окне ставим галочку рядом со строкой "Идентификатор процесса (PID)". Вводим PID в поле в инжекторе и нажимаем "Inject!".
4. Должен появиться MessageBox с сообщением "Attached!".
5. В качестве логина вводите: weehr
6. Пользуйтесь инвайтером бесплатно.
Читать дальше »

Print This Post Tetris

Среда, 15. Сентябрь 2010
Раздел: C/C++, Windows, Жизнь, Это интересно, автор:

В связи с недавним юбилеем серии игр Mario, отдыхом от изучения WinDDK и появлением свободного времени решил написать свою реализацию олдскульной игры Тетрис.

Реализация обладает всеми или практически всеми фишками старых тетрисов:
[+] Хардкорная музыка (спасибки Kaimi)
[+] DOS-style интерфейс (консоль)
[+] Пауза, подсчет очков, различные сложности и т.д.
[+] После достижения 9-го уровня сложности открывается новый набор фигурок

Скачать: ZIP (исходники, ресурсы, exe в архиве).

Ностальгируйте на здоровье!

И напоследок: