Виртуальная машина в Winrar , RarVM и его хак.
Специалист по безопасности Тэвис Орманди покопался в коде архиватора WinRAR и разработал инструментарий для встроенной в архиватор виртуальной машины RarVM.
Мало кто знает, что внутри WinRAR есть примитивная x86-совместимая виртуальная машина. В ней всего около 50 инструкций, а вся виртуальная машина со стандартными фильтрами занимает чуть больше 1000 строк. Она реализована внутри архиватора с одной целью: улучшить сжатие x86-кода. Например, представим программу вроде такой. Код:
mov foo, bar До сих пор не существовало программ, которые бы использовали эту необычную функциональность, поэтому Тэвис Орманди разработал компоновщик и ассемблер, опубликовал документацию для работы с RarVM, в скором будущем планирует выпустить ещё дизассемблер и, может быть, портировать компилятор на основе llvm. Пример программы, которая выводит классическое “Hello, World!” за счёт CRC-компенсации в проверке CRC. Код:
$ cat sample.rs http://s56.radikal.ru/i154/1210/5e/9790f975859f.jpg Тема на ExeLab : http://exelab.ru/f/index.php?action=...=2&topic=20383 |
Текущее время: 04:46. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot