программа запускается, даже если раздел не является исполняемым - PullRequest
0 голосов
/ 03 октября 2019

Мой основной раздел определен как section .code write

Я намеренно удалил параметр exec и заметил, что после сборки и компоновки программа работает нормально.

objdump -d myprogramпустой. И GDB не может отладить его: break _start говорит "Функция _start не определена", но info variables показывает _start.

Но программа все еще работает. Как это возможно?

Архитектура Intel 32-битная, на Linux (Ubuntu 12).

Пробрам делает execve системный вызов, открывая оболочку / bin / sh.

Насм программа:

global _start

section .code write

_start:
        jmp short call_shellcode

shellcode:
        pop esi

        xor ebx, ebx
        mov byte [esi +7], bl
        mov dword [esi +8], esi
        mov dword [esi +12], ebx

        lea ebx, [esi]
        lea ecx, [esi +8]
        lea edx, [esi +12]

        xor eax, eax
        mov al, 0xb
        int 0x80

call_shellcode:
        call shellcode
        message db "/bin/shABBBBCCCC"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...