Автоматическая обфускация инструкций x86

Я работаю над обфускатором asm x86, который использует Intel- код синтаксиса в виде строки и выводит эквивалентный набор запутанных кодов операций.

Вот пример:

mov eax, 0x5523
or eax, [ebx]
push eax
call someAPI

Примерно так:

mov eax, 0xFFFFFFFF ; mov eax, 0x5523
and eax, 0x5523     ;
push [ebx]          ; xor eax, [ebx]
or [esp], eax       ;
pop eax             ;
push 12345h         ; push eax
mov [esp], eax      ;
call getEIP         ; call someAPI
getEIP:             ;
add [esp], 9        ;
jmp someAPI         ;

Это всего лишь пример, я не проверял, не портит ли это флаги (вероятно, это так).

Прямо сейчас у меня есть XML-документ, в котором перечислены шаблоны инструкций (например, push e * x ) и список инструкций замены, которые можно использовать.

Я ищу способ автоматической генерации последовательностей кодов операций, которые дают тот же результат, что и ввод. Я не против использовать образованный брутфорс, но я не уверен, как бы подойти к этому.

7
задан Polynomial 30 October 2011 в 19:47
поделиться