Архитектура x86-64 под скальпелем ассемблерщика


Рисунок9 реакция 32-битной Windows на попытку запуска 64-битного PE-файла


Вдоволь наигравшись нашем первым x86-64 файлом, загрузим его в дизассемблер (например, в IDA Pro 4.7. Она хоть и материться, предлагая использовать специальную 64-битную версию, но при нажатии на "yes" все конкретно дизассемблирует, во всяком случае до тех пор пока не столкнется с подлинным 64-битным адресом или операндом, с которым произойдет обрезание, в частности mov r9,1234567890h дизассемблируется как mov r9, 34567890h, так что переход на 64-битную версию IDA все же очень желателен, тем более, что начиная с IDA 4.9 она входит в базовую поставку). Посмотрим, что у него внутри?

А внутри у него вот что:

 

.code:0000000000401000 41 B9 00 00 00 00 mov    r9d, 0

.code:0000000000401006 4C 8D 05 F3 0F 00 00     lea    r8, aPENUMBRA

.code:000000000040100D 48 8D 15 03 10 00 00     lea    rdx, aHelloWorld ; "Hello World!"

.code:0000000000401014 48 C7 C1 00 00 00 00     mov    rcx, 0

.code:000000000040101B FF 15 2B 20 00 00 call   cs:MessageBoxA

.code:0000000000401021 89 C1                    mov    ecx, eax

.code:0000000000401023 FF 15 13 20 00 00 call   cs:ExitProcess




Начало  Назад  Вперед