В процессе обратной разработки прошивок иногда возникает задача по ее эмуляции, например, для фаззинг тестирования или детального изучения поведения в динамике. На практике обычно для этого хватает фреймворков avatar2, unicorn, qiling и подобных. Однако они поддерживают далеко не все платформы и имеют ряд ограничений для решения таких задач. При разработке эмулятора PLC я столкнулся с тем, что ни один фреймворк для эмуляции не поддерживал требуемую платформу.
Рубрика «qemu» - 2
Реализации машины в qemu
2021-12-05 в 12:16, admin, рубрики: development, emulation, hardware, machine, qemu, информационная безопасность, системное программированиеПосле года разработки вышел эмулятор QEMU 6.0
2021-04-30 в 16:29, admin, рубрики: qemu, Блог компании Selectel, виртуализация, разработка, системное администрирование, Софт, эмуляция
Прошел ровно год с момента выхода эмулятора QEMU 5.0, и сейчас разработчики представили новую версию. Проект дает возможность запустить программное обеспечение, подготовленное для одной архитектуры, на аппаратной платформе с другой архитектурой.
Пример — выполнение приложения для ARM на ПК с процессором x86. Благодаря особенностям эмулятора приложение в изолированном окружении выполняется почти с той же эффективностью, что и в нативном окружении. Достигается это, в частности, за счет прямого выполнения инструкций на процессоре, а также за счет применения гипервизора Xen или модуля KVM. Сейчас эмулятор поддерживает 14 аппаратных архитектур и может эмулировать около 400 разных устройств. За год разработчики внесли свыше 3 тысяч изменений от 268 разработчиков.
Читать полностью »
Проверка QEMU с помощью PVS-Studio
2020-09-04 в 6:53, admin, рубрики: C, c++, open source, programming, qemu, virtual machine, Блог компании PVS-Studio, Программирование, С++
QEMU – достаточно известное приложение для эмуляции. Статический анализ может помочь разработчикам таких сложных проектов, как QEMU, отлавливать ошибки на раннем этапе и в целом повысить его качество и надёжность. В этой статье будет проверен исходный код приложения QEMU на потенциальные уязвимости и ошибки с помощью инструмента статического анализа PVS-Studio.
Читать полностью »
Mikrotik RouterOS в Docker
2020-04-19 в 16:31, admin, рубрики: docker, mikrotik, open source, qemu, routeros, япиарюсьВсем доброго времени суток! В данной статье я хочу рассказать об одном OpenSource проекте под названием Docker RouterOS, изначально он был создан в качестве полигона для прогонки интеграционных тестов и ничего более, но со временем, по просьбе пользователей, был добавлен ряд улучшений расширяющих спектр возможностей.
Рассказывать буду о причинах появления проекта, его первоначальных итерациях, а так же о проблемах с которыми пришлось столкнуться.
Продолжение под катом.
Ускорение дисковой подсистемы Qemu KVM в Linux
2020-03-25 в 11:48, admin, рубрики: hyper-v, kvm, linux, LVM, qemu, qemu-kvm, spdk, Ubuntu, Блог компании RUVDS.com, виртуализация, высокая производительность, Накопители, Настройка LinuxИногда я берусь за различные задачи по настройке серверов. Некоторое время назад ко мне обратился владелец небольшой хостинговой компании, с интересной проблемой. Он хотел бы на своих серверах, где уже стоял Ubuntu 18.04, запускать виртуальные машины с Windows под KVM.
Однако проведённое им тестирование показало, что дисковая система KVM прилично отставала от показателей, которые у него были под Hyper-V. Он хотел раскочегарить qemu на своих Ubuntu серверах, чтобы избежать закупок дорогих серверных лицензий Windows (бесплатная версия Microsoft Hyper-V Server не устраивала из-за своих ограничений).
Читать полностью »
Устанавливаем Kali Linux с графическим интерфейсом на виртуальный сервер
2019-11-05 в 12:30, admin, рубрики: kali linux, qemu, remote iso, vds, vnc, vps, Блог компании Хостинг-технологии, виртуальный сервер, Серверное администрирование, системное администрированиеTL;DR в статье описывается установка Kali Linux с графической средой на виртуальный сервер с ISO-образа по VNC. Такой системой можно пользоваться как полноценным десктопом.
Большинство хостеров предоставляют только консольный доступ к виртуальным серверам и ограниченный выбор образов операционных систем. Но что, если вы хотите установить собственную ОС со своего диска, например что-то экзотическое вроде Kali Linux? У нас вы можете подключить собственный ISO-образ и установить с него любую операционную систему, которая поддерживается гипервизором.
С момента установки- управление сервером происходит по VNC в графическом окружении, точно так же, как на десктопной виртуальной машине вроде VirtualBox или Vmwarе. Пользоваться таким сервером можно прямо в браузере без установки дополнительных программ.
Читать полностью »
Общие принципы работы QEMU-KVM
2019-09-06 в 20:30, admin, рубрики: amd, emulation, hardware, intel, kernel, kvm, linux, paravirtualization, qemu, SVM, virtualization, vt-x, виртуализация, виртуальная машина, Компьютерное железо, паравиртуализация, эмуляцияМое текущее понимание:
1) KVM
KVM (Kernel-based Virtual Machine) – гипервизор (VMM – Virtual Machine Manager), работающий в виде модуля на ОС Linux. Гипервизор нужен для того, чтобы запускать некий софт в несуществующей (виртуальной) среде и при этом, скрывать от этого софта реальное физическое железо, на котором этот софт работает. Гипервизор работает в роли «прокладки» между физическим железом (хостом) и виртуальной ОС (гостем).
Поскольку KVM является стандартным модулем ядра Linux, он получает от ядра все положенные ништяки (работа с памятью, планировщик и пр.). А соответственно, в конечном итоге, все эти преимущества достаются и гостям (т.к. гости работают на гипервизоре, которые работает на/в ядре ОС Linux).
KVM очень быстрый, но его самого по себе недостаточно для запуска виртуальной ОС, т.к. для этого нужна эмуляция I/O. Для I/O (процессор, диски, сеть, видео, PCI, USB, серийные порты и т.д.) KVM использует QEMU.
Читать полностью »
IP-KVM через QEMU
2019-08-26 в 9:12, admin, рубрики: ipkvm, qemu, Блог компании Selectel, виртуализация, системное администрированиеУстранение неисправностей при загрузке операционной системы на серверах без KVM — непростое занятие. Создаем себе KVM-over-IP через образ восстановления и виртуальную машину.
В случае возникновения проблем с операционной системой на удаленном сервере, администратор загружает образ восстановления и проводит необходимые работы. Такой способ отлично работает, когда причина сбоя известна, а образ восстановления и установленная на сервере операционная система из одного семейства. Если причина сбоя еще не известна, необходимо понаблюдать за ходом загрузки операционной системы.
Читать полностью »
RISC-V с нуля
2019-05-30 в 17:40, admin, рубрики: gdb, jal, open source, openocd, qemu, risc-v, ассемблер, безусловный переход, отладка, Процессоры, псевдоинструкцииВ этой статье мы исследуем различные низкоуровневые концепции (компиляция и компоновка, примитивные среды выполнения, ассемблер и многое другое) через призму архитектуры RISC-V и её экосистемы. Я сам веб-разработчик, на работе ничем таким не занимаюсь, но мне это очень интересно, отсюда и родилась статья! Присоединяйтесь ко мне в этом беспорядочном путешествии в глубины низкоуровневого хаоса.
Сначала немного обсудим RISC-V и важность этой архитектуры, настроим цепочку инструментов RISC-V и запустим простую программу C на эмулированном оборудовании RISC-V.
Читать полностью »
QEMU.js: теперь по-серьёзному и с WASM
2019-05-12 в 15:31, admin, рубрики: C, javascript, jit, qemu, qemu.js, tcg, wasm, webassembly, виртуализация, ненормальное программированиеКогда-то давно я смеха ради решил доказать обратимость процесса и научиться генерировать JavaScript (а точнее, Asm.js) из машинного кода. Для эксперимента был выбран QEMU, некоторое время спустя была написана статья на Хабр. В комментариях мне посоветовали переделать проект на WebAssembly, да и самому бросать почти законченный проект как-то не хотелось… Работа шла, но уж очень медленно, и вот, недавно в той статье появился комментарий на тему «Так и чем всё закончилось?». На мой развёрнутый ответ я услышал «Это тянет на статью». Ну, раз тянет, то будет статья. Может, кому пригодится. Из неё читатель узнает некоторые факты про устройство бекендов кодогенерации QEMU, а также как написать Just-in-Time компилятор для веб-приложения.