Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
4-1144430576
Pojarnik
2006-04-07 21:22
2006.07.23
Ошибка при освобождении dll-ки(пример из Тейксеры и Пачеко)


2-1152013219
Juice
2006-07-04 15:40
2006.07.23
Опережающее описание


2-1151949191
Fantos
2006-07-03 21:53
2006.07.23
Мерцание png


2-1151858549
МишаК
2006-07-02 20:42
2006.07.23
форма


15-1150724493
Alien1769
2006-06-19 17:41
2006.07.23
Какой алгоритм использовать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский