Проблема Ассемблер. Вопрос по поводу виртуализатора

Gemfory

Green Team
03.01.2026
20
7
День добрый вновь. Активно погружаюсь в разработку виртуализаторов. Написал каркас для виртуализатора, то есть присутствует диспетчер с хендлерами. Хендлеров немного, в частности работа с базовыми инструкциями mov/nop/add/SSE. Также реализовал XOR-шифрование каждого байт-кода, чтобы в отладчике все не отображалось. Метка которая хранит байт-код на выполнение выглядит так:
1774879614882.webp

Добавил замену простых математических операций на сложные алгоритмы где результат один и тот же.
Также реализована техника jump table, чтобы программа проходила нормально по таблице перехода.
C:
    cmp    rax, 255
    ja     op_error
    push   rax
    jmp    qword [dispatch_table + rax*8]
Результат выполнения:
1774879841766.webp

Но есть проблема, которую поймут только более опытные люди - я не понимаю, как еще можно усложнить анализ ВМ. Придерживаюсь мнения, что если сделать единую точку входа (условно, как у того же VMProtect), это будет легко палиться потому-что есть паттерн который всем известен. Мой вопрос заключается в том, как наиболее логично поступить? Чтобы хоть как-то усложнить анализ ВМ, а то в отладчике все прекрасно видно:
1774880035779.webp

На скрине прекрасно видно, где инициализируется VM, видно, как принимается один байт-код, ну и MBA-обфускация как на ладони видна.
Был бы благодарен, если бы люди опытнее что-то посоветовали, заранее спасибо.
 
Смотри тему по вм-крэкми cracklab.team/index.php?threads/1406/page-3#post-17921

Бот решает защиту. Он умеет символическое исполнение, тоесть сворачивать код, вот твой блок, ии не обучен при этом.
Во вторых он умеет taint analysis, тоесть видит зависимости от байткода в к/д-флоу. Причем тут ии - передать ему рутину, уже не то время что бы в отладчик на это втыкать.

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

Защита статик, динамик, от каких инструментов ?

Статика - можно морфить, динамика - распространять ключ между хэндлерами, что бы их скрыть(тело/ЕП), фактически.

Вопрос на столько обширный, что на него невозможно ответить, без четких требований. Может вам нужно вовсе не дать память прочитать..
 

Вложения

Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD

Популярный контент