Форум: "Прочее";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Внизpe-cryptor. Найти похожие ветки
← →
Ketmar © (2006-06-25 18:40) [0]не спрашивайте, зачем. %-) скажите лучше, никто не встречал реализации нижеприведённой идеи:
=========================================
псевдо-полиморфик: пермутатор команд. т.е. после кодинга мы видим более-менее нормальный код (без мусора), но совершенно бессмысленный (ибо инструкции напрочь переставлены).
как вариант -- можно сделать эмулятор, который будет выполнять это. таким образом мы полчаем выполнение "шифрованого" кода.
плохо то, что переставлять можно только инструкции с одинаковыми длинами. это можно обойти, если код не просто переставлять, а пересобирать, как делают метаморфики.
проблема: для выполнения кода без восстановления его вида (равно как и для восстановления) надо иметь таблицу перестановок.
=========================================
зачем такое? чтобы декриптор не вызывал подозрений у эвристических сканеров.
зыж нет, это не для вируса. %-)
← →
default © (2006-06-25 20:00) [1]"проблема: для выполнения кода без восстановления его вида (равно как и для восстановления) надо иметь таблицу перестановок."
можно обойтись и без хранения таблицы перестановок, делая перестановку команд в зависимости от....,например, кода первой команды
← →
Ketmar © (2006-06-25 20:11) [2]да, это у меня дальше в документе с идеями записано. %-) я же не весь документ привёл, только то, что идею иллюстрирует. интересно другое: нет ли какого вируса, уже использующего эти идеи. т.е. не стараются ли AV обнаружить подобное. если есть, то писать бессмысленно. ибо главная цель -- чтобы антивирусы не принимали криптор за "unkwnown polymorphic virus".
зыж впрочем, эмулятор всё равно вещь полезная, так что, видимо, буду доделывать. проблема одна: учитывая, что я предпочитаю всё публиковать PD, то как сделать так, чтобы одноклеточные индивидуумы не юзали это в вирусах?
← →
Ketmar © (2006-06-25 20:19) [3]дополнение: без таблицы можно обойтись только если переставлять инструкции одинаковой длины. иначе надо каждую инструкцию искать с начала кода. скорость при этом... ну, не будем о грустном.
другое дело, что таблицу можно постороить после запуска -- один раз. и потом использовать. лишних 4-5 метров памяти -- это не так уж и критично в данном случае.
← →
Ketmar © (2006-06-25 20:24) [4]вдогон: никто не реализовывал эмуляторов кода? натурально, на асме. мой пока ещё даже толком не собирается. интересна техника типа:
разбираем инструкцию. копируем в sandbox. выполняем. и так далее. насколько это тормозит? понимаю, что можно рассчитать, исходя из количества команд на одну итерацию. получается медленно. как улучшить?
в голову приходят идеи типа анализа кода и исполнения по кускам (т.е. сразу нескольких инструкций). однако, с другой стороны, анализ тоже забирает время. и сама по себе задача далеко не тривиальная.
кто-нибудь знает, как это реализовано в программах, подобных VMWare? в QEmu этот код идёт без исходников, увы %-(
← →
default © (2006-06-25 20:26) [5]Ketmar © (25.06.06 20:11) [2]
можно выложить несколько перестановок кода на проверку разными антивирусами создав ветку в соответствующем ключе
тестить народ любит
← →
Юрий Зотов © (2006-06-25 20:36) [6]По DOSом нечто подобное делал. Там даже покруче было - при каждом проходе отладчиком по одним и тем же адресам каждый раз видишь разный код, но ни разу не видишь реально исполняемого.
Но то под DOSом, там попроще было... :-(
← →
default © (2006-06-25 20:49) [7]default © (25.06.06 20:26) [5]
хотя какое тестирование ты же ещё не написал...
"без таблицы можно обойтись только если переставлять инструкции одинаковой длины" - в этом сомневаюсь, технику как ты перестановку делаешь не знаю, ну да ладно
← →
Ketmar © (2006-06-25 20:52) [8]>Юрий Зотов © (25.06.06 20:36) [6]
вот именно, там ДОС... а тут под линейку NT надо. причём чтобы не конфликтовало с разными AV. вырубать их нельзя -- юзер будет нервничать и плакать. если при запуске софтины AV будут ругаться -- юзер тоже будет плакать. привилегий админа может и не быть вовсе. вот и думаю...
зыж под ДОСом, всё-таки, контроль можно взять на себя и развлекаться. а для NT это проблематично. особенно, если нет привилегий админа. и должно работать на NT4/2K/XP. и 2003, которую я в глаза не видел. %-)
← →
Ketmar © (2006-06-25 20:57) [9]>default © (25.06.06 20:49) [7]
перестановка проста (пермутатор как раз сделан в стадии альфы %-). узнаём длины инструкций и меняем местами то, что одинаковое. благо узнать длину -- это пара сотен байт кода. %-) а вот для "пересборки" кода надо делать таблицы и собирать новый код. таблицы нужны, как не извернись. а для исполнения без придания коду исходного вида нужны ещё большие таблицы. плюс -- потенциально будет исполняться не только мой код, пожтому обработкой мелкого подмножества команд обойтись сложно.
пока делается так: переставляем инструкции одинаковой длины, восстатанвливаем, исполняем.
вариант -- делать в переставленых инструкциях int3, а в обработчике эмулировать. думаю. делать такое не буду, наверное -- имо, глупо.
← →
Ketmar © (2006-06-25 21:02) [10]плюс -- для полного перестановщика полезно хранить таблицв перекрёстных ссылок, о которых я не подумал сразу... %-(
← →
Ketmar © (2006-06-26 15:45) [11]up на всякий случай. %-)
← →
ZeroDivide © (2006-06-26 16:15) [12]
> зачем такое? чтобы декриптор не вызывал подозрений у эвристических
> сканеров.
>
1. Сожми армадиллой и всего делов-то.
2. Писать эмулятор, для того чтобы он был второстепенной задачей, для каких-то других целей - дело неблагодарное.
У меня когда-то была идея написать эмулятор, для полной трассировки стека, но я, подумав, отказался и нашел способ проще.
← →
Ketmar © (2006-06-26 16:36) [13]1. армадила стоит денег. %-) вообще-то проект коммерческий, так что армадила не катит. %-)
2. эмулятор мне и потом пригодится. может, на его основе я снималку защит сделаю? %-)
← →
Игорь Шевченко © (2006-06-27 16:00) [14]
> вдогон: никто не реализовывал эмуляторов кода?
Реализовывал.
← →
Ketmar © (2006-06-27 16:19) [15]насколько полный? с анализатором? было очень грустно смотреть на скорость? %-)
← →
Игорь Шевченко © (2006-06-27 16:25) [16]Ketmar © (27.06.06 16:19) [15]
На скорость было грустно смотреть, но это был полностью программный эмулятор железа, так что скорость в данном случае не играла существенной роли.
> с анализатором?
Это куда ?
← →
Ketmar © (2006-06-27 16:32) [17]в смысле -- с анализом кода "на лету". т.е. то, о чём я упоминал: вполнение не просто покомандно, а выяснение, какую группу команд можно выполнить за раз толпой и выполнение группами.
ерунда в том, что декриптор сам по себе не столь уж прост, а если его эмулировать... впору рисовать окошко "думаю, прошу не мешать". и просить зайти послезавтра.
как вариант -- реализовать свою VM, что ли? %-)
← →
Игорь Шевченко © (2006-06-27 16:35) [18]Ketmar © (27.06.06 16:32) [17]
Еще раз - это был программный эмулятор реального железа.
> как вариант -- реализовать свою VM, что ли?
Java-машину реализуй, благо их уже готовых реализовано
← →
Ketmar © (2006-06-27 17:08) [19]да в том-то всё и дело, что не катит ВМ, на самом деле. потому что криптор генерируется рандомный, с кучей мусорного кода и прочей ерунды. если делать VM с толпой инструкций (чтобы затруднить ручной анализ), то это совсем не проще эмулятора. да и не намного быстрее. %-)
а вот идея с метаморфиком вполне может озадачить и иду (не знаю, только предполагаю) и того, кто будет код читать. а для отладчиков есть свои шутки.
зыж а что, эмулятор команд x86 -- не эмулятор железа? впрочем, я понял, кажется, о чём ты: там была полная эмуляция, а тут в силу конструктива можно скармливать камню его же инструкции, но немного поправленые. %-)
← →
Игорь Шевченко © (2006-06-27 17:10) [20]
> впрочем, я понял, кажется, о чём ты: там была полная эмуляция,
> а тут в силу конструктива можно скармливать камню его же
> инструкции, но немного поправленые
Ну да. Только если не секрет, вопрос такой - а нафига ?
← →
Ketmar © (2006-06-27 17:25) [21]дык я же где-то упоминал: хотят-с. %-)
"мусорный" код детектится эвристикой антивирусов как unknown polymorphic virus. а сие есть плохо. при метаморфике, в принципе, можно сохранять структуру кода похожей на нормальную. и при просмотре в дизассемблере даже будет на что-то похоже. только нерабочее. %-)
а эмулятор -- чтобы избегнуть сбора правильного кода в памяти и затруднить дампинг. плюс -- ручной трассировкой запаришься декодить. а простив (полу)автоматической там другие приёмы есть. плюс -- от копии к копии код мутирует, и не факт, что оттрассировав и расколов один вариант можно потом запросто расколоть другой -- придётся всё повторять.
зыж ну и интересно метаморфик сделать. %-)
← →
Игорь Шевченко © (2006-06-27 17:30) [22]
> дык я же где-то упоминал: хотят-с.
Странного.
> а эмулятор -- чтобы избегнуть сбора правильного кода в памяти
> и затруднить дампинг. плюс -- ручной трассировкой запаришься
> декодить. а простив (полу)автоматической там другие приёмы
> есть. плюс -- от копии к копии код мутирует, и не факт,
> что оттрассировав и расколов один вариант можно потом запросто
> расколоть другой -- придётся всё повторять.
"Жаба хитра, но маленький хрущ с винтом много хитрее ее" (с)
> ну и интересно метаморфик сделать
Ну так бы сразу и сказал :)
← →
Чародей © (2006-06-27 17:31) [23]
> никто не реализовывал эмуляторов кода?
Реализовывал только для основных инструкций х86. 30Kb файл упакованый UPX распаковывается за ~30-40сек, но алгоритм я не оптимизировал.
← →
Ketmar © (2006-06-27 17:41) [24]>Игорь Шевченко © (27.06.06 17:30) [22]
странного. но кто сейчас абсолютно нормален? %-)
>"Жаба хитра, но маленький хрущ с винтом много хитрее ее" (с)
не спорю. но не все винты одинаковые. %-)
>Ну так бы сразу и сказал :)
так если бы было неинтересно, я бы обосновал полную бесполезность этой фичи. может, так и сделаю. %-)
>Чародей © (27.06.06 17:31) [23]
что-то больно медленно. %-) думаю, если pure asm, да оптимизировать, да анализировать код и исполнять блочно -- можно добиться результатов намного лучших. только писать уж больно много. особенно нормальный анализатор.
← →
Чародей © (2006-06-27 17:45) [25]
> что-то больно медленно. %-) думаю, если pure asm, да оптимизировать,
> да анализировать
Я писал для изучения защит вирусов. Ошибка анализатора может оказаться очень!! не приятной
← →
Ketmar © (2006-06-27 17:50) [26]>Чародей © (27.06.06 17:45) [25]
вирусы проще в исходниках качать. с комментариями. читать и радоваться. %-)
я, например, у ребят из 29A кучу полезного кода попёр. а камраду Z0MBiE вообще респект на все времена за то, что мне не надо велосипеды строить.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.014 c