и говорим. Читаем что по таблице? Сколько пропускать надо?
А что это за инструкции?
Это для ясности. Это? mov eax, dword [esp + 0xaae6] Можно с двойным условием, такое обрабатывать.
Так вот условий там сильно больше. И мы приходим к тому, о чём я сказал выше. У тебя есть таблица, в таблице есть флаги. Флаги говорят, читать ли модрмы, или там смещение фиксированного размера, зависит ли оно от префиксов (да, префиксы тоже обрабатывать приёдтся), и т. д. Длинная такая простыня. Дизассемблер длин в x86 не сводится к одному лукапу в таблице.
Но я ещё не сказал, каких размеров таблица выйдет. Для таких случаев, таблица может достигать больше 35716 байт, и конкретно эти опкоды там могут попасться.
66 67 2e 3e 90 хоба, и таблица уже в 4 гига не влазит. Или ты всё равно начинаешь парсить.
Так пропускаем 66, и всё :)
66 b8 01 00 90 90 и b8 01 00 90 90 ;-)
Обсуждают сегодня