Здравствуйте, Oleg.
Вы писали 12.10.2006, 16:35:32:
>> Самое надежное - аппаратные ключи, в которых храниться контейнер с
>> ключами расшифровки кода.
OL>
OL> Здесь иная поставнока. Как можно больше гимора при "отлаживании такого
кода".
OL> Решается наличием множества виртуальных машин с разными виртуальными
OL> процессорами на каждый скрамблируемый участок кода. У меня был опытный
вариант
OL> шифрования аппартным ключём - очень медленно если шифровать всё. Правда
OL> вариант с шифрованием только к примеру первых восьми байт от упакованной
OL> rle-последовательности записи (или её дельты) вполне роботоспособен.
Я имел ввиду ключи на дешифрование кода приложения на лету.
В таком случае взломать программу, не имея такого ключа даже
теоретически очень и очень сложно. А защищать таким шифрованием
можно как VM, так и псевдо-код самой программы. Особых тормозов
при этом нет.
>> По поводу нескольких VM на каждый кусок - такого пока нигде не
>> встречал. Да, в ASP есть отдельные VM для простых инструкций (cmp,
>> условные переходы), для вызовов функций, для вызовов API. Но они
>> не меняются для каждого сегмента.
OL> Фемида может плодить виртуальные процессоры как горячие пирожки ;-)
А где на нее можно взглянуть?
>>>> Достаточно получить дамп программы с вызовами в протектор,
>>>> заменить в нем вызовы в VM протектора на то, что было до этого,
OL> Проблема в том чобы получить то что было то "этого"? А что у тебя
OL> было если оригинального кода вообще нет, есть только набор
OL> мутирующих псевдокинструкций реализующих алгоритм исходного кода.
Ну, с этим бороться можно. Анализом кода VM. Собственно в случае с
ASP я так и делал.
>> Ну, я то говорил о двух-трех часах на распакованной
>> программе. Про распаковку я писал выше. :-)
OL> Дык после распаковки будет кучка виртуальных машин с набором
OL> псевдокоманд для выполнения. Велкам как говорится разбираться с
OL> каждой по отдельности. Здесь не то что часами, тут неделями
OL> будешь сидеть. А большего и не надо.
Олег, не забывай, что теперь в отладчиках есть скрипты. :-)
И много рутинной работы перекладывается на них.
Да, задача будет не простой. Но в конечном итоге все-таки
решаемой. И, если посидеть потом над анализом составляющих VM,
можно найти алгоритм по переводу всего этого добра в нормальный
код. То есть, теоретически, могут появиться универсальные
программы-распаковщики для таких защит.
--
С уважением,
Jerry mailto:[EMAIL PROTECTED]