Пишу простенький протектор. Возникла идея по аналогии со "взрослыми" протекторами реализовать исполнение критичных участков кода (или даже весь код распаковщика) на вирт. машине . Составить корректный вопрос к гуглу я не смог, в статьях пространно пишут о машинах Тьюринга и стрелках Пирса.. Бросьте, пожалуйста, в меня линками по теме.
Если проблема алгоритмически разрешима, то есть машина Тьюринга, которая ее решает=) Ну, а действительно, как создается и исполняется байт код? Больше интересно как исполняется))
А в чём вопрос-то? Придумаешь систему команд. Кодируешь в байт-код. Эмулятор считываешь и в зависимости от команды исполняешь то, что она должна делать.
Я не понимаю принципа работы. Закодировал, считал, раскодировал.. Получил, скажем mov eax, 1 и что? Чем это лучше шифровки/дешифровки?
Как я понимаю, не в экономии счастье.. А в том, что реверсеру надо будет понять алгоритм машины.. Неужели никто не встречал статей по сабжу?
На RE-сайтах. Тема уже лет 10 обсуждается. Но я бы посоветовал начать с учебника по Forth - шитый код.
mazay Посмотри исходники обычных виртуальных машин процессора. НА аналогии можеш создать чтонибудь свое. В обработчики своих опкодов добавляеш метаморф и будет табе щястьё.