Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Программирование —› Запутывание кода в VM
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 00:06
· Личное сообщение · #1

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



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 16 октября 2007 00:11
· Личное сообщение · #2

DrSlonix
ога, щас тебе все раскажем, чтоб самим потом мучаться...



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 00:27
· Личное сообщение · #3

sniperZ, а кто будет мучатся, прот все равно опенсорсный.



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 00:27
· Личное сообщение · #4

sniperZ, а кто будет мучатся, прот все равно опенсорсный.




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 16 октября 2007 00:32
· Личное сообщение · #5

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

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...




Ранг: 30.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 октября 2007 00:36
· Личное сообщение · #6

а в чем смысл прота если он опенсорсный?




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 16 октября 2007 00:42
· Личное сообщение · #7

Crazy_Death пишет:
а в чем смысл прота если он опенсорсный?

В в чем смысл жизни?
Взять тот же yC, yodaProtecor, Morphine - оперносрсные, но очень даже неплохие разработки. Просто будет база для создания чего-то нового и интересного, так сказать концепт модель, что впринципе и не плохо.

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...




Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 00:48
· Личное сообщение · #8

tnt17 DANKE! Скажи, где можно взять подобную документацию по теории трансляции (линки, если мож - гугл не рулит).




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 16 октября 2007 00:50
· Личное сообщение · #9

DrSlonix
elena.od.ua/files/discp.html#6

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...




Ранг: 30.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 октября 2007 00:53
· Личное сообщение · #10

есть такая книга

"Языки программирования и методы трансляции"
Опаленко Э.А.
Самойленко В.П.



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 00:55
· Личное сообщение · #11

tnt17, еще раз спасибо.




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 16 октября 2007 01:58
· Личное сообщение · #12

tnt17 пишет:
Взять тот же yC, yodaProtecor, Morphine - оперносрсные


Да - уж лучше писать протектор на бае чегото имеющегося, например взять тот же GHF в сорцах
wasm.ru/tools/8/ghf_protector.zip

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 16 октября 2007 08:31
· Личное сообщение · #13

а по моему идея не плохая, вм то потом мона усложнить и такого наворотить... автор на чем пишешь?

-----
Лень - это подсознательная мудрость





Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 16 октября 2007 08:46
· Личное сообщение · #14

Вариантов усложнения логики ВМ очень много. Самый простой - обработка конечного исполнителя ВМ метаморфом.



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 10:24
· Личное сообщение · #15

depler
Пишу на банальном С++ и Asm, конечно.



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 10:47
· Личное сообщение · #16

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




Ранг: 116.9 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 16 октября 2007 11:33
· Личное сообщение · #17

DrSlonix пишет:
прот все равно опенсорсный


и где же сорцы?

-----
Nothing just happens. You choose it to happen.




Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2007 11:46
· Личное сообщение · #18

Viktoro
Как только прот доделаю, выложу его дистрибутив, а при установке он помимо прочих папок и файлов будет копировать на комп юзера и папку src. А там будут все нужные файлы + комментарии на русском. А сейчас что выкладывать, если идет разработка.



Ранг: 50.2 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 16 октября 2007 12:32
· Личное сообщение · #19

DrSlonix
hxxp://hades.ds1.agh.edu.pl/~woolf/www/stuff/rewolf.x86.virtualizer.so urce.code.zip



Ранг: 28.0 (посетитель)
Активность: 0.020
Статус: Участник
anarchist

Создано: 16 октября 2007 13:02
· Личное сообщение · #20

имхо дерматолог прав, другого способа усложнить анализ нет.




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 16 октября 2007 16:39
· Личное сообщение · #21

dermatolog пишет:
Вариантов усложнения логики ВМ очень много. Самый простой - обработка конечного исполнителя ВМ метаморфом.

vins пишет:
имхо дерматолог прав, другого способа усложнить анализ нет.

vins - и где же логика?
Способы есть, их много, а dermatolog назвал всего лишь один. Например,заставить некоторую часть кода движка, расшифровываться и выполняться самой же ВМ.
Ну и плюс метаморфические преобразования байткода, динамическое изменение байткода и логики реализации движка.

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...




Ранг: 28.0 (посетитель)
Активность: 0.020
Статус: Участник
anarchist

Создано: 16 октября 2007 19:05 · Поправил: vins
· Личное сообщение · #22

tnt17,логика в том, что нужно как можно сильнее спрятать саму вм, чтоб свести возможность написания декомпилера к минимуму.
Ну можно идти дургим путем и сначало преобразовывать код в специфический алгоритм, а потом на него вм вешать, как у рема в кейгенми было, хоть декомпиль и был написан но от гимора с анализом это не избавило +)




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 16 октября 2007 19:19
· Личное сообщение · #23

vins
задача спрятать вм, это немного другая задача, хоть она и кассается разработки прота. в данном случае немного другое задание - качественная реализация самой вм. т.е. максимально затруднить жизнь тому, кто будет ее разбирать и свести возможность автоматического разбора сторонним софтом к минимуму.

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...





Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 16 октября 2007 23:38
· Личное сообщение · #24

censor пишет:
DrSlonix
hxxp://hades.ds1.agh.edu.pl/~woolf/www/stuff/rewolf.x86.virtualizer.so urce.code.zip

Ых не качается : Форбидден он зис сервер (.
Тема в мазу сейчас хочу свою написать. Тема интересная

-----
Researcher





Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 17 октября 2007 05:34
· Личное сообщение · #25

tnt17 пишет:
в данном случае немного другое задание - качественная реализация самой вм. т.е. максимально затруднить жизнь тому, кто будет ее разбирать и свести возможность автоматического разбора сторонним софтом к минимуму

Независимо от того какая у ВМ будет архитектура конечным этапом перевода её в "нечитаемый" вид всё равно будет метаморф, т.к. метаморф непосредственно работает с командами процессора и не как не зависит от логики самой ВМ. Конечно затруднение анализа очень сильно зависит и от самой архитектуры ВМ (в том числе и все что связано с самим пи-кодом), но это нужно разрабатывать на самом первом этапе и готовых решений здесь никто предложить не сможет.



Ранг: 72.3 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 17 октября 2007 08:26
· Личное сообщение · #26

overwriter пишет:
hxxp://hades.ds1.agh.edu.pl/~woolf/www/stuff/rewolf.x86.virtualizer.so urce.code.zip


в слове so urce == source <-------------- убери пробел



Ранг: 129.7 (ветеран), 2thx
Активность: 0.070
Статус: Участник

Создано: 17 октября 2007 08:42
· Личное сообщение · #27

А никто не пробовал вделать метеморф не для ВМ, а для пикода? чтобы каждый раз генерировлася новый пикод...

З.Ы. Если идея глупая - сорри, если идея старая - тоже сорри...




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 17 октября 2007 08:45
· Личное сообщение · #28

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

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...





Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 17 октября 2007 08:58 · Поправил: dermatolog
· Личное сообщение · #29

Azur1d пишет:
А никто не пробовал вделать метеморф не для ВМ, а для пикода? чтобы каждый раз генерировлася новый пикод...


Пробывал )

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


Насчет "вм будет сама частично работать на пикоде" для этого достаточно завиртуализировать часть исполнителя одной ВМ чтобы она работала на другой ВМ (при этом скорость может упасть настолько, что она будет неприемлима для практического использования). Насчет создания уникальной ВМ для каждой копии программы - тут лучше смотреть в сторону макрокомандной ВМ, когда логику макрокоманд можно клепать уже в процессе виртуализации (но при этом "свернуть" пикод у макрокомандной ВМ будет намного легче чем у микрокомандной). При этом резко увеличивается количество лазеек для патча как в самом пикоде, так и в исполнителе.



Ранг: 39.4 (посетитель), 9thx
Активность: 0.01=0.01
Статус: Участник

Создано: 17 октября 2007 09:06
· Личное сообщение · #30

overwriter пишет:
Ых не качается : Форбидден он зис сервер (.

rapidshare.com/files/63123408/rewolf.x86.virtualizer.source.code.zip.html


. 1 . 2 . >>
 eXeL@B —› Программирование —› Запутывание кода в VM
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати