์ค๋์ ์ ํ๋ธ๋ฅผ ๋ฐ๋ผ์ Hello World๋ฅผ ์ถ๋ ฅํด๋ณด๋ ค๊ณ ํ๋ค.

๋จผ์ cmd ์ฐฝ์ ์ด์ด์ค๋ค.
$nano helloworld.s
๊ทธ ํ ์์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋ค.
nano๊ฐ์ ๊ฒฝ์ฐ๋ ๋ํ์ ์ธ ์๋ํฐ ํ๋ก๊ทธ๋จ์ด๋ค.
๋ฉ๋ชจ์ฅ๊ณผ ๊ฐ์ ํ๋ก๊ทธ๋จ์ด๋ค.
.s๋ ์ด์ ๋ธ๋ฆฌ ์์ค์ฝ๋ ํ์ผ ์์ฑ์ ๋ปํ๋ค.

๋ช ๋ น์ด ์คํ์ ํ๋ฉด ์์ ๊ฐ์ ์ฐฝ์ด ์ถ๋ ฅ๋๋ค.
section .data
msg db "Hello World"
๋ฅผ ๋จผ์ ์ ๋ ฅํด์ค๋ค.
.data์ ๊ฐ์ ๊ฒ์ ํํ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๋ฌธ์์ด๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ ๋ปํ๋ค.
section .text
global _start
.text๋ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ฝ์ด๊ฐ๋ฉฐ ๋ด๋ ค๊ฐ๋ ์์ค์ฝ๋ ์์ฒด๋ฅผ ์๋ฏธํ๋ค.

_start:๋ ํจ์ ์ด๋ฆ์ ๋ปํ๋ฉฐ
C์ธ์ด์ mainํจ์๋ณด๋ค ๋ ๋จผ์ ์คํ๋๋ ํจ์๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
_start:
mov rax,1
mov rdi, 1
mov rsi,msg
mov rdx, 12
syscall
mov rax,60
mov rdi,0
syscall
mov๋ ๋ ์ง์คํฐ ์์ ํน์ ๊ฐ์ ๋ฃ๋ ๋ช ๋ น์ด์ด๋ค.
rax๋ผ๋ ๋ ์ง์คํฐ ์์ 1์ด๋ผ๋ ๊ฐ์ ๋ฃ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๋ ์ง์คํฐ๋ 64๋นํธ ์ฒด์ ์์ ๋ค์ํ ์กด์ฌํ๊ฒ ๋์ง๋ง ์ฌ์ฉ๋๋ ์ฉ๋๊ฐ ๋ค ๋ค๋ฅด๋ค.
์์ ๊ฐ์ด ๋ค ์ ๋ ฅํ๋ฉด Ctrl+X๋ฅผ ๋๋ฌ Y๋ฅผ ๋๋ฌ ์ํฐ๋ฅผ ๋๋ฅด๊ณ ๋์จ๋ค.
cat helloworld.s

์์ค์ฝ๋ ๊ฐ์ ๊ฒฝ์ฐ๋ cat๋ช ๋ น์ด๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
$ nasm -f elf64 -o helloworld.o helloworld.s
$ ld -o helloworld helloworld.o
์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋๋ฅผ ์ค์ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฐ๊พธ์ด์ฃผ๋ ๋ช ๋ น์ด์ด๋ค.
๋ชฉ์ ์ฝ๋๋ก ๋ณํํ ํ, ์ค์ ์คํํ ์ ์๋ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ณ๊ฒฝํ๋ค.

๊ทธ ํ ls๋ช ๋ น์ด๋ฅผ ํตํด ํ์ธํ๋ฉด helloworld๋ฅผ ๋ณผ ์ ์๋ค.
$./helloworld

์ด๋ฅผ ํตํด Hello World๋ฅผ ์ถ๋ ฅํ ์ ์๋ค.
2023.01.08 - [ํ๋ก์ ํธ/์์คํ ํดํน] - [์์คํ ํดํน] kali Linux ํ๊ธ ์ค์
[์์คํ ํดํน] kali Linux ํ๊ธ ์ค์
ํฐ๋ฏธ๋์ ๋๋ฌ ํ๊ธ์ ์ค์นํด๋ณด์. $sudo passwd ํด๋น ๋ช ๋ น์ ์คํํ๋ฉด ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ๋ค. ํ๊ธ์ด ๊นจ์ง ์ํ๋ผ ์์์์ง๋ง ์ด 3๋ฒ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค. $su ๊ทธ ํ su ๋ช ๋ น์ด๋ฅผ ํตํ์ฌ root
dangsdangs.tistory.com
'ํ๋ก์ ํธ > ์์คํ ํดํน' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์์คํ ํดํน] ์คํ ํ๋ ์ (0) | 2023.01.12 |
|---|---|
| [์์คํ ํดํน] ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (0) | 2023.01.11 |
| [์์คํ ํดํน] ๋ ์ง์คํฐ ์ฉ๋์ ์์คํ ์ฝ (3) | 2023.01.10 |
| [์์คํ ํดํน] kali Linux ํ๊ธ ์ค์ (0) | 2023.01.08 |
| [์์คํ ํดํน] ์นผ๋ฆฌ ๋ฆฌ๋ ์ค(Kali Linux) ์ค์น (0) | 2023.01.07 |