Как сокрушают протекторы Крис Касперски Хакер, номер #092, стр. 092-102-3 Распаковка: UPX содержит встроенный распаковщик, возвращающий исполняемые файлы в исходный вид (для этого достаточно указать ключ '-d' в командной строке), однако этому легко воспрепятствовать. Доступность исходных текстов позволяет модифицировать код упаковщика или изменять «раскладку» служебной информации в генерируемом файле. Еще проще затереть сигнатуру «UPX!», находящуюся в конце упакованного файла. Во всех этих случаях встроенный распаковщик склеивает ласты, поэтому распаковкой приходится заниматься самостоятельно. Нам потребуется утилита для снятия дампа с активных процессов PD, исходный код которой был опубликован в 63 номере электронного журнала Phrack (www.phrack.org/phrack/63/p63-0x0c_Process_Dump_and_Binary_Reconstruction.txt). Запускаем упакованную программу, открываем новую консоль и, определив идентификатор процесса с помощью штатной утилиты ps, передаем его программе PD. К сожалению, утилита PD еще довольно сыровата, и сдампленные программы очень часто оказываются неработоспособными. В некоторых случаях помогает ключ '-l', запрещающий трогать секцию .GOT, но чаще всего над полученным дампом приходится основательно поработать руками. Будем надеяться, что в следующих версиях PD этот недостаток будет преодолен. Burneye Происхождение: экспериментальный протектор, созданный хакером по кличке Scut, он же The Tower, который живет в Западной Германии и входит в группу TESO, известную своим отладчиком linice – аналогом soft-ice под *nix. Сначала исходные тексты протектора были недоступны, и он распространялся в виде уже откомпилированного файла на бесплатной основе: packetstorm.linuxsecurity.com/groups/teso/burneye-1.0-linux-static.tar.gz, но через некоторое время Scut отдал на растерзание ~30% от общего объема кода проекта: packetstorm.linuxsecurity.com/groups/teso/burneye-stripped.tar.gz, а затем и вовсе открыл все тексты целиком: packetstorm.linuxsecurity.com/groups/teso/burneye-1.0.1-src.tar.bz2. Описание: никакой это не упаковщик, а самый настоящий протектор, изначально нацеленный на борьбу с хакерами. Умеет шифровать файлы по алгоритмам SHA1 и RC4, требуя от пользователя пароля при запуске и при необходимости привязываясь к оборудованию, чтобы пират, купивший одну-единственную лицензионную копию, не выложил свой ключ на всеобщее обозрение. Содержит некоторые приемы против отладчиков и дизассемблеров (прыжки в середину команды и установка собственного обработчика для SIGTRAP), но они реализованы настолько неумело, что протектор без труда отлаживается даже gdb, не говоря уже про ядерные отладчики private-ice и linice. Некоторые защищенные программы падают под BSD, поэтому использовать этот протектор следует с большой долей скептицизма и осторожности. Снятие пароля: против криптографии, увы, не попрешь, и все, что может предложить нам хакерская общественность, — это незамысловатый bruteforce. Подходящий переборщик можно найти на byterage.hackaholic.org/source/UNFburninhell1.0c.tar.gz, однако заранее следует быть готовым к тому, что вскрыть длинные пароли все равно не удастся. Типичный сеанс работы с переборщиком выглядит так: |