LINUX.ORG.RU

Ещё одна идея защиты исполняемых файлов от зловредов.

 ,


0

1

Вообщем,для начала - имеем процессор, и соответственно его систему комманд. Если система комманд известна всем, а точнее КОД каждой инструкции этой системы комманд(к примеру инструкция NOP имеет код 00, MOV - 01 , RETi - 02 и т.д.), то любой компилятор способен сгененрировать код , который будет исполняться на любом процессоре. Если систему комманд сделать изменчивой по шифрующему ключу (ключ у разаработчика ПО) т.е. к примеру инструкция NOP имеет для начала код 3 ,затем в следующий такт(такты) (такты необходимые на исполнение одной инструкции) процессора она имеет код 8 и так до бесконечности рандомный код для инструкции NOP (и так для всех инструкций системы команд).Проще говоря, система команд процессора, обновляется на каждый такт(такты) произвольным образом, согласно ключу шифрования. И следовательно только компилятор с правильным ключом (ключ не идентичен тому что скормлен CPU,это может быть взаимосвязанная пара ключей) создаст для данного CPU (возможно конкретно только для данного CPU ) верно исполняемый код. Ну и у каждого из официальных разработчиков ПО будет свой ключ(или пара ключей). Можно оставить возможность исполнения кода программам ( по станадартной системе комманд) не требующих административных привилегий. Вообще идею можно развивать до бесконечности. К примеру код 3 , код 8 может быть по типу как 00 , 01 и т.д. а может быть и произвольной длины и вида по типу HASH.

зачем на каждый такт ?? засем создавать лишние сущности на пустом месте ??
напиши новую прошивку для процессора с отличными от привычных опкодами и программку конвертации бинарей в новый опкод и профит !! ни один неконвертированный бинарь не смогет тупо выполнится.
ключ сдвига опкодов обновляй раз в месяц и переконвертируй бинари и хрен кто к тебе влезет.
дырка будет только в скриптовых червях и остальных «небинарных» лазейках

pfg ★★★★★
()
20 марта 2024 г.
команда         код команды

nop             f96a54815defb584eba9e1b51837e5baa96c8697
mov eax,4       e24505f94db2b5df4c7c2596b0788e720e073021
mov ecx,eax     42f85ce11988618b3538fdde986c8f47da7fbe0f
nop             eb3c79e640ec5ce60c970ddff46e079a9bffd43b
nop             a59e2c2429fe7a881f566ff87bafa6c5e37337d3
ret             dfbc8ab8d3af2ad296937afbb3c3020fddb4b218
cmp eax,0       9931a73fa0bd9c1164eb0f13a827913fa91bf7c5

Готово я написал.

Kenta
()
Ответ на: комментарий от mky

Для каждого процессора будет иметься собственный ключ, позволяющий только на конкретном экземпляре, только для данного процессора генерировать код программы, который возможен для исполнения лишь на этом проце. (ключ пусть будет находиться прямо на крышке процессора(гравировкой), а лучше под ней :) ). Официальные разработчики ПО, будут они,( или специальные службы) иметь ключи для возможности исполнения кода на любых процессорах, или же лишь её части процессоров, по предположим, критерию государственных границ. Создатели ПО всегда продадут свой товар, плагиат не возможен, пиратство тоже, НИКАКОГО читерства в играх, хакера «идут лесом», антивирусы не нужны. У каждого разработчика ПО свой ключ. Разные типы ключей, возможно, для разного же уровня привилегий цпу исполнения кода.

Kenta
()
Ответ на: комментарий от shTigrits

Хорошо, будем раздавать такой ключ только по заявлению, чтобы каждый смог на своем проце делать, что ему угодно, а то на крышке - это действительно опасно. И чтобы никаких баз таких ключей. Пусть думают как такое реализовать.

Kenta
()
Ответ на: комментарий от Kenta

Главно, как раздавать, так «будем», то есть «МЫ», а как «никаких баз», то «пусть думают», то есть «ОНИ», без вашего участия.

Главное, откуда вобще возмутся разработчики ПО под это чудо? Тут вон производителям видеокарт лень писать/обновлять драйвер для старых карт под новые ядра линукса, а вы хотите, чтобы они где-то регестрировались, получали ключи, за что-то там отвечали...

mky ★★★★★
()

Это делается по-другому. В процессоре зашит закрытый ключ. Перед запуском программы ОС загружает в процессор ключ шифрования, зашифрованный соответствующим открытым ключом. Далее процессор автоматически расшифровывает инструкции по мере выполнения программы. Ключ уникален для процессора.

vbr ★★★
()

Зачем вы это откопали? Закопайте обратно или лучше вообще удалите — не давайте власть имущим идей. Им же понравится, они придумают суверенные процессоры, работающие именно так, а остальные запретят.

CrX ★★★
()

Ну вообще противников у такой идеи будет достаточно. Разве что банковский сектор, военпром, космос, авиа таким заинтересуются. В массовом сегменте эти возможности можно внедрить только как ДОПОЛНИТЕЛЬНЫЙ функционал и любые доверенные издатели, если захотят могут им воспользоваться.

Kenta
()