Когда-то давно я смеха ради решил доказать обратимость процесса и научиться генерировать JavaScript (а точнее, Asm.js) из машинного кода. Для эксперимента был выбран QEMU, некоторое время спустя была написана статья на Хабр. В комментариях мне посоветовали переделать проект на WebAssembly, да и самому бросать почти законченный проект как-то не хотелось… Работа шла, но уж очень медленно, и вот, недавно в той статье появился комментарий на тему «Так и чем всё закончилось?». На мой развёрнутый ответ я услышал «Это тянет на статью». Ну, раз тянет, то будет статья. Может, кому пригодится. Из неё читатель узнает некоторые факты про устройство бекендов кодогенерации QEMU, а также как написать Just-in-Time компилятор для веб-приложения.
Рубрика «qemu» - 4
QEMU.js: теперь по-серьёзному и с WASM
2019-05-12 в 15:31, admin, рубрики: C, javascript, jit, qemu, qemu.js, tcg, wasm, webassembly, виртуализация, ненормальное программированиеРазворачиваем виртуалку с Windows с пробросом виртуальной видеокарты с помощью QEMU и Intel GVT-g
2019-01-23 в 15:21, admin, рубрики: GVT-g, intel, qemu, виртуализацияКак заставить Intel GVT-g работать
Всем привет! Intel предложили отличное решение извечной проблемы: "у меня есть ноутбук на Linux и мне надо запускать Windows с аппаратным ускорением, но у меня нет тяжеленного ноутбука с двумя GPU и жидкостным охлаждением". С помощью архитектуры своих GPU или чего-то ещё им удалось сделать так, что вы можете разбить свой встроенный Intel GPU на два или более GPU.
К сожалению, это отнюдь не так просто… Документация слегка устарела, и некоторые вещи ломаются непонятным образом без очевидной причины. Поэтому в данном посте я расскажу вам, как настроить аппаратно ускоренную виртуальную машину с Windows с крутыми быстрыми драйверами virtio и Intel GVT-g.
Для этого вам понадобится более-менее современный GPU (Примечание переводчика: согласно официальной документации, GVT-g поддерживают интегрированные видеокарты, начиная с пятого поколения Intel Core и с четвёртого поколения Xeon).

Клиентский Интернет в изолированной виртуальной машине QEMU с помощью туннелирования портов через SPICE-канал
2018-11-21 в 5:48, admin, рубрики: kvm, qemu, spice, vdi, виртуализация, майнинг, туннелирование, я пиарюсьОбычный подход к подключению виртуальной машины к сети Интернет схож с подключением к сети любого другого устройства и заключается в подключении виртуального или проброса реального сетевого интерфейса, a также в настройке и проверке сетевых подключений, служб, правил маршрутизации и фильтрации трафика и так далее.
В случае если виртуальная машина является сервером или является виртуальным десктопом и закреплена за конкретным пользователем такой подход вполне оправдан, но что делать если виртуальная машина является публичным виртуальным десктопом и любой желающий может к ней бесплатно подключится?
Блочные устройства QEMU
2018-05-31 в 22:19, admin, рубрики: drbd, glusterfs, nbd, qemu, raid, sheepdog, виртуализация, файловые системы, Форматы данных, хранение данных
В QEMU есть несколько способов подключить блочное устройство для виртуальной машины. Изначально это было реализованно следующим способом:
-hda /dev/sda1
Таким образом виртуальные диски подключались в давние дни виртуализации. Его можно использовать и сегодня, если мы просто хотим протестировать некоторые liveCD. К сожалению, он имеет свои недостаткиЧитать полностью »
Sheepdog
2018-05-31 в 10:52, admin, рубрики: nbd, qemu, sheepdog, блочные устройства, виртуализация, кластеризация, кластерные файловые системы, Облачные вычисления, облачные технологии, распределенные файловые системы, файловые системы, хранение данных, хранилища данных
Sheepdog — масштабируемая система, которая предоставляет виртуальным машинам распределенные блочные устройства. Его развитие началось в 2009 году разработчиками из японских компаний Nippon Telegraph и Telephone Corporation. Sheepdog — это приложение с открытым исходным кодом под лицензией GPL2. Последняя версия 0.9.3, выпущенная в ноябре 2015 года станет наследиком версии 1.0, пригодной для коммерческого испрользования1. (уже стала — прим.пер.)
Чисто ради интереса, первая версия (0.1.0), была выпущена разработчиками в августе 2010 года — и в то же время поддержка sheepdog была включена в основную ветку разработки QEMU. Первые испытания над sheepdog я провел в ноябре 2011 года2 и результаты были неплохими для операций ввода-вывода. Однако тогда еще система Sheepdog имела проблемы с восстановлением упавшей ноды. Вероятно эта проблема вскоре была устранена, так как разработка приложения довольно живая, но на тот момент я использовал другое решение.
Читать полностью »
Виртуальная сетевая среда для тестирования сетевых протоколов. Используем QEMU+YOCTO+TAP
2017-08-07 в 7:45, admin, рубрики: GRE, linux, qemu, tap, Тестирование IT-систем
Идея создания сетевой тестовой среды возникла когда пришла необходимость запускать и отлаживать устройства с IPsec и GRE протоколами. С похожими проблемами сталкивались и разработчики strongSwan. Проблема была с прогоном unit тестов. Они приготовили виртуальную сеть на базе UML (user mode linux). В этом документе описано в общих чертах, что это такое и как работает. Подносить виртуальную сеть под UML буду при первой возможности, a на первом этапе тестовая среда была поднята на QEMU и на дистрибуциях приготовленных под YOCTO. Итак даная статья описывает: как создать свою дистрибуцию linux, поднять и настроить несколько инстанций QEMU, настроить виртуальную сеть и как пример поставить GRE туннель. Получается очень полезная штука для отладки и тестирования маршрутизаторов. Так, что всех заинтересованных приглашаю ниже.
Читать полностью »
Hard Reverse или особенности реверса файлов для архитектуры PowerPC Big-Endian
2017-06-15 в 6:08, admin, рубрики: big endian, ctf, hackquest, neoquest, neoquest2017, old school, powerpc, qemu, reverse engineering, Блог компании НеоБИТ, Занимательные задачки, информационная безопасность, реверс-инжиниринг
Задания на reverse engineering — обязательная часть любых CTF, и NeoQUEST в этом плане не исключение. В каждое задание мы добавляем «изюминку», которая, с одной стороны, несколько затрудняет участникам прохождение задания, а с другой — позволяет на практике разобраться с тем, с чем еще не приходилось работать.
Если говорить об «изюминках», то задание online-этапа NeoQUEST-2017 планеты Endian «Спасение экипажа» — практически кекс! Добро пожаловать под кат, в самые дебри реверса: поговорим об архитектуре PowerPC Big-Endian и немного — о QEMU!
А мы напоминаем, что 29 июня в Петербурге состоится «Очная ставка» NeoQUEST-2017: доклады, воркшопы, конкурсы, призы, отличное времяпровождение и свободный вход при регистрации на сайте — всё для тебя! Подробнее о том, что войдет в программу «Очной ставки», читай тут и на сайте!
Читать полностью »
QEMU-KVM под LXC
2017-06-01 в 17:29, admin, рубрики: kvm, libvirt, lxc, qemu, qemu-kvm, виртуализацияКак обычно — обстоятельства диктуют правила.
На этот раз мы ставим Proxmox и Libvirt на один тот же сервер.

Столкнулись с очередной задачей — заказчик поставил условие развернуть стенд на уже имеющейся, конфликтующей инфраструктуре. У него кластер Proxmox, у нас Libvirt
Решение в лоб — не помогло, попытка установить libvirtd потребовала удаления proxmox. Не долго думая решили скреативить. Смотрите под катом элегантное решение как и на ёлку залезть и ничего не ободрать.
Читать полностью »
Как удалённо отлаживать через WinDbg не включая отладочный режим Windows
2017-05-02 в 5:37, admin, рубрики: qemu, windbg, информационная безопасность, отладка, разработка под windows, реверс-инжиниринг, системное программирование
Иногда при анализе какой-нибудь платной программы малвари случается так, что она не хочет нормально работать, если в памяти есть отладчик или включён отладочный режим Windows.
В таких ситуациях помогает использование виртуальной машины с подключённым к ней отладчиком (например, GDB или IDA). Это если программа не пытается «сломаться» и в виртуальной машине тоже.
Читать полностью »
NeoQuest 2017: Выбираемся из додекаэдра, не запуская ничего в qemu
2017-03-13 в 13:37, admin, рубрики: ctf, neoquest, neoquest2017, qemu, reverse engineering, информационная безопасность, реверс-инжиниринг«Затерянные в додекаэдре»
На Земле – египетские пирамиды, а на этой планете – один (зато какой!) гигантский додекаэдр, левитирующий в воздухе на высоте порядка десяти метров. Должно быть, именно в нём и кроется вся загадка этой планеты. Сама фигура как бы приглашает исследовать ее – одна из граней отсутствует, обозначая вход, и оттуда до земли свивает веревочная лестница. Разумеется, мы туда полезли.
«Вот так и пропадают неизвестно куда космические экспедиции…» – уныло говорили мы, уже третий час безуспешно пытаясь выбраться из дурацкого додекаэдра, дверь которого моментально заблокировалась, как только последний из нас забрался внутрь. Выломать дверь не удавалось, единственным выходом было блуждание по лабиринту объемной фигуры. Трудно сказать, сколько прошло времени, но наши поиски увенчались успехом: в одном из закоулков мы обнаружили вполне себе земной древний компьютер! Недовольно урча и подтормаживая, он все-таки загрузился. Всё, что удалось обнаружить – один файлик. Хорошо, что у меня с собой был ноутбук и флешка, я перекинул файл на ноут и стал внимательно его изучать.
