Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.04 c
3-1148184412
Аркадий
2006-05-21 08:06
2006.07.23
добавление поля в таблице


2-1151873123
Deny20
2006-07-03 00:45
2006.07.23
помогите чем могите разобраться с печатью Курсак горит!!!


15-1150880370
Layner
2006-06-21 12:59
2006.07.23
Отправка SMS от любого номера


15-1151054575
be_love
2006-06-23 13:22
2006.07.23
текст разделить на слова


15-1151396372
Dok
2006-06-27 12:19
2006.07.23
Кто как дебажит юникод?