์ค๋๋ ์ ํ๋ธ๋ฅผ ๋ณด๋ฉด์ ๊ณต๋ถ๋ฅผ ํด๋ด ์๋ค!
$nano echo.s
๋๋ ธ๋ฅผ ์ด์ฉํด ์ด์ ๋ธ๋ฆฌ์ด ์ ์ถ๋ ฅ์ ๋ค๋ฃจ๋ ์์ฝํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค.
section .text
global _start
_start:
xor rax, rax
mov rbx, rax
mov rcx, rax
mov rdx, rax
sub rsp, 64
mov rdi, 0
mov rsi, rsp
mov rdx, 63
syscall
mov rax, 1
mov rdi, 1
mov rsi,rsp
mov rdx, 63
syscall
mov rax, 60
syscall
sub rsp, 64๋ ์ด์ ์๊ฐ์ ํ๋ ๊ฒ ์ฒ๋ผ ์คํ ๊ณต๊ฐ์ 64๋งํผ ํ๋ณดํ๋ ๊ฒ์ด๋ค.
์ด๋ฐ์ mov rbx, rax ๋ฑ๊ณผ ๊ฐ์ ๊ฒ์ ๋ค rbx๋ฅผ rax๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๋ ๊ฒ์ด๋ค. ์ฆ 0์ผ๋ก ๋ง๋ ๋ค.
rax์๋ 0์ด ๋ค์ด๊ฐ๋ฏ๋ก sys_read๋ฅผ ํ๋ ๊ฒ์ ์ ์ ์๋ค.
rdi๋ fd๊ฐ์ผ๋ก ์ฝ๋ ๊ฒฝ์ฐ ๊ฐ์ 0, ์ฐ๋ ๊ฒฝ์ฐ ๊ฐ์ 1์ด ๋ค์ด๊ฐ๋ค.
rsi๊ฐ์ ๊ฒฝ์ฐ๋ ๋ฌธ์์ด์ด ์๋ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด๋ฉฐ, rdx๋ ์ผ๋ง๋ ์ฝ์์ง ์ ํ๋ ๊ฒ์ด๋ค.
mov rax,60์ ํ๋ก๊ทธ๋จ ์ข ๋ฃ๋ฅผ ๋ปํ๋ค.
$nasm -f elf64 -o echo.o echo.s
$ ld -o echo echo.o
ํด๋น ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด echo ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ค.
๊ฐ์ ์ ๋ ฅํ๋ฉด ๋๊ฐ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
2023.01.12 - [ํ๋ก์ ํธ/์์คํ ํดํน] - [์์คํ ํดํน] ์คํ ํ๋ ์
[์์คํ ํดํน] ์คํ ํ๋ ์
https://youtu.be/ZFOHvzXcao0 ์ค๋๋ ๋๋น๋๋์ ๊ฐ์๋ก ๊ณต๋ถ๋ฅผ ํด๋ณด์. $ nano sum.c ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ์ง๊ธฐ ์ํด nano๋ฅผ ์คํํ๋ค. sum์ด๋ผ๋ ์ด๋ฆ์ C์ธ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋ ๋ค. ๊ทธ ํ ๋ด์ฉ์๋ ๋ค์๊ณผ ๊ฐ์
dangsdangs.tistory.com
'ํ๋ก์ ํธ > ์์คํ ํดํน' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ฐ๋ณต๋ฌธ ๊ตฌํ (0) | 2023.01.16 |
---|---|
[์์คํ ํดํน] ์ด์ ๋ธ๋ฆฌ์ด ๊ธฐ๋ณธ ๋ฌธ๋ฒ (0) | 2023.01.15 |
[์์คํ ํดํน] ์คํ ํ๋ ์ (0) | 2023.01.12 |
[์์คํ ํดํน] ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (0) | 2023.01.11 |
[์์คํ ํดํน] ๋ ์ง์คํฐ ์ฉ๋์ ์์คํ ์ฝ (3) | 2023.01.10 |