728x90
[Code]
main:
push rbp
mov rbp, rsp
mov esi, 0xf
mov rdi, 0x400500
call 0x400497 <write_n>
mov eax, 0x0
pop rbp
ret
write_n:
push rbp
mov rbp, rsp
mov QWORD PTR [rbp-0x8],rdi
mov DWORD PTR [rbp-0xc],esi
xor rdx, rdx
mov edx, DWORD PTR [rbp-0xc]
mov rsi,QWORD PTR [rbp-0x8]
mov rdi, 0x1
mov rax, 0x1
syscall
pop rbp
ret
==================================
[Memory]
0x400500 | 0x3037207964343372
0x400508 | 0x003f367562336420
한줄씩 천천히 풀어보겠다.
먼저 write_n 함수 실행 전까지이다.
[Code]
main:
push rbp // rbp를 스택 상단에 넣는다
mov rbp, rsp // rbp에 rsp 값을 대입
mov esi, 0xf // esi = 0xf
mov rdi, 0x400500 // rdi = 0x400500
call 0x400497 <write_n> // write_n 함수를 실행
mov eax, 0x0
pop rbp
ret
write_n:
push rbp
mov rbp, rsp
mov QWORD PTR [rbp-0x8],rdi
mov DWORD PTR [rbp-0xc],esi
xor rdx, rdx
mov edx, DWORD PTR [rbp-0xc]
mov rsi,QWORD PTR [rbp-0x8]
mov rdi, 0x1
mov rax, 0x1
syscall
pop rbp
ret
==================================
[Memory]
0x400500 | 0x3037207964343372
0x400508 | 0x003f367562336420
write_n 함수 실행 결과이다.
[Code]
main:
push rbp // rbp를 스택 상단에 넣는다
mov rbp, rsp // rbp에 rsp 값을 대입
mov esi, 0xf // esi = 0xf
mov rdi, 0x400500 // rdi = 0x400500
call 0x400497 <write_n> // write_n 함수를 실행
mov eax, 0x0 // eax = 0x0
pop rbp // 스택 상단값 제외
ret // 반환
write_n:
push rbp // rbp를 스택 상단에 넣는다
mov rbp, rsp // rbp = rsp
mov QWORD PTR [rbp-0x8],rdi // QWORD PTR [rbp-0x8] = 0x400500
mov DWORD PTR [rbp-0xc],esi // DWORD PTR [rbp-0xc] = 0xf
xor rdx, rdx // rdx = 0x0
mov edx, DWORD PTR [rbp-0xc] // edx = 0xf
mov rsi,QWORD PTR [rbp-0x8] // rsi = 0x400500
mov rdi, 0x1 // rdi = 0x1
mov rax, 0x1 // rax = 0x1
syscall // system call
pop rbp // 스택 상단값 제외
ret // 반환
==================================
[Memory]
0x400500 | 0x3037207964343372
0x400508 | 0x003f367562336420
근데 여기까지 하면은 메모리에는 아무런 변화가 없다는 것을 알 수 있었다... (허무)
그래서 메모리값을 아스키 값으로 바꿔주면 되는데 이때, 메모리가 리틀 엔디안 방식으로 되어있기에 오른쪽에서 왼쪽으로 읽어줘야한다.
(리틀 엔디안, 빅 엔디안)
https://code-lab1.tistory.com/179
그래서 아스키 값을 확인하면 r34dy 70 d3bu6? 이 나온다.
728x90
반응형
'Reversing > DreamHack' 카테고리의 다른 글
드림핵 rev-basic-3 풀이 (0) | 2023.12.01 |
---|---|
드림핵 Quiz: x86 Assembly 2 풀이 (0) | 2023.11.29 |