Thursday, July 10, 2008

Эльбрус-3М



Только мне кажется не очень понятным как выполняется эмуляция x86 если брать преобразовывать по одной команде(наиболее универсальный метод) то при возможности выполнить 24 команды одновременно будет выполнять только одна и выполнение не более трёхсот миллионов операция - так не возможно обогнать 500 МГц PIII так как простейшие операции выполняются на нем на RISC ядре(1команда менее или равна 1 такт). Если динамически блоки бинарного кода преобразуются в код другой выполнимый на другой архитектуре - появляются проблемы разбора сложных ветвлений адрес перехода может быть вычислен косвенно и в новом коде распределение адресов сложно поддерживать(пример переход вычисляется по какой-то формуле и выполняется прибавлением результата к текущему адресу - решение удаление функции с заменой ее на таблицу переходов). Вторая проблема определения частей кода являющимися данными - они могут быть внутри исполнимого кода. В общем полиморфные вирусы могут не заработать:-).