Что такое эмуляция ?

Тема в разделе "WASM.RESEARCH", создана пользователем Entropy, 15 фев 2026.

  1. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    802
    GRAFik

    Это байт-кодовый интерпретатор, штатный цикл fetch-decode-execute и формально циклический поток наследования через указатель в байткод.

    Всем известная printf - хороший пример простой байткодовой вирты.
     
  2. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    291
    MaKsIm, я сделал вывод понятными мне словами
     
  3. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    802
    Entropy

    wtf, все по теме не просто формулировано, а введены годные понятия, теория наследования.

    Та трудность с введением дельты в modrm, IDP, разобрана. Что такое кодовый анклав.

    Позже выложу кодес.
     
  4. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    592
    Мой эмулятор вымышленной 16-битной машины с экстремально простой системой команд - SimpX:
    Попробовать в онлайн: https://aa-dav.github.io/
    Эмуляция работает сразу из ассемблерного кода - он транслируется в виртуальный образ машины при запуске и эмулятор включается на только что оттранслированный образ.
    Файлы с исходниками есть библиотечные и их бесполезно транслировать, надо выделить в левом списке файл с названием вида test-0X.asm и нажать меню Compile and Run.
    Исходники и описание архитектуры процессора тут: https://github.com/aa-dav/SimpX/blob/master/README_simpleton_ru.md
    Очень простая 16-битная трёхоперандная машина - каждая инструкция выполняет шаблон "назначение = операнд1 операция операнд2" с небольшими вариациями для оптимизации процесса.
     
    Application нравится это.
  5. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    291
    я хотел сказать мне в общих чертах понятно что такое эмуляция,а если углубляться, это надо разбирать исходники эмуляторов
     
  6. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    991
    https://github.com/mrexodia/sogen

    preview.jpg
     
  7. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    802
    Research

    Unicorn Engine

    Обработка системных событий в обычных фильтрах примитивна - ядро выполняет выборку аргументов, видимую в юзер.
     
  8. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    991
    А как надо?
     
  9. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    802
    При выборке аргумента, его проверке try-fetch-except или ProbeFor() происходит дереференс ссылки, это приводит к прокидыванию #guard и разблокировки страницы. Отсутствие этого механизма делает детект эмуляции сервисов элементарным, можно автоматикой накопить размеры всех аргументов любого сискола.

    Тупо фильтрация это бесполезная шляпа, юзер апи эмулируют обычно адресными ловушками if rIp = *Api: emulate(Api). В таком виде тела функции нет - его нельзя прочитать/переместить. Более продвинутая аверская метода это вставить шлюз(атом) if [rIp] = SignatureId(Api): emulate(Id).