У меня есть файл, содержимое которого представляет машинный код x64 в шестнадцатеричном формате.
48 c7 c0 7b 00 00 00 48 c7 c1 59 01 00 00 48 01 c8 c3
Пример выше можно разобрать на:
0: 48 c7 c0 7b 00 00 00 mov rax,0x7b
7: 48 c7 c1 59 01 00 00 mov rcx,0x159
e: 48 01 c8 add rax,rcx
11: c3 ret
Этот машинный код генерируется напрямую, поэтому приведенный выше ассемблер приведен в качестве примера. У меня нет доступа к нему вообще.
Что я хочу сделать, так это преобразовать этот шестнадцатеричный файл в исполняемый файл и сделать его наиболее прямым из возможных. Я попытался использовать xxd -r
, но, похоже, это не создает хорошо отформатированный исполняемый файл, так как я получаю Exec format error
при попытке его запустить.
Как мне сгенерировать исполняемый файл из шестнадцатеричного кода в Linux * * 1013