๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„๋กœ์ ํŠธ/์‹œ์Šคํ…œ ํ•ดํ‚น

[์‹œ์Šคํ…œ ํ•ดํ‚น] ๋””๋ฒ„๊น…

728x90

 

https://youtu.be/SVw0VnG5UDM

์œ ํŠœ๋ธŒ๋ฅผ ๋ณด๋ฉด์„œ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค.

starce, pwndbg ํ™œ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.


๋””๋ฒ„๊น…์€ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์„ ๋•Œ, ์—ญ์œผ๋กœ ์ถ”์ ํ•ด์„œ ์–ด๋–ป๊ฒŒ

ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

$sudo apt-get install strace

sudo ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด strace๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

strace ๋ช…๋ น์–ด๋Š” ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ ์‹ค๊ธฐ ์ค€๋น„ํ•  ๋•Œ๋„ ๋งŽ์ด ๋ดค์—ˆ๋‹ค.

์นœ์ง€ ์–ผ๋งˆ๋๋‹ค๊ณ  ๋ฒŒ์จ ๊ฐ€๋ฌผ๊ฐ€๋ฌผํ•˜์ง€๋งŒ..

 

$strace -ifx ./echo

2023.01.13 - [ํ”„๋กœ์ ํŠธ/์‹œ์Šคํ…œ ํ•ดํ‚น] - [์‹œ์Šคํ…œ ํ•ดํ‚น] ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์—์ฝ” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

 

[์‹œ์Šคํ…œ ํ•ดํ‚น] ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์—์ฝ” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

https://youtu.be/Z3QuFbsnqMc ์˜ค๋Š˜๋„ ์œ ํŠœ๋ธŒ๋ฅผ ๋ณด๋ฉด์„œ ๊ณต๋ถ€๋ฅผ ํ•ด๋ด…์‹œ๋‹ค! $nano echo.s ๋‚˜๋…ธ๋ฅผ ์ด์šฉํ•ด ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์ž…์ถœ๋ ฅ์„ ๋‹ค๋ฃจ๋Š” ์—์ฝ”ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค. section .text global _start _start: xor rax, rax mov rbx, rax

dangsdangs.tistory.com

์„ค์น˜๊ฐ€ ๋‹ค๋˜๋ฉด ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ด์ „์— ์ž‘์„ฑํ–ˆ๋˜

์—์ฝ” ํ”„๋กœ๊ทธ๋žจ์„ ๋„ฃ์–ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ค ์‹œ์Šคํ…œ ์ฝœ์„ ์ด์šฉํ•˜์—ฌ

์ž‘๋™ํ•˜๋Š”์ง€ ๋ณด์—ฌ์ค€๋‹ค.

ํ˜„์žฌ๋Š” read ์ƒํƒœ์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ €๊ณณ์— HelloWorld๋ฅผ ์ž…๋ ฅํ•˜๋ฉด,

์ฝ๊ฒŒ ๋˜๊ณ  ๊ทธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์•„์Šคํ‚ค ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋“ค์–ด๊ฐ€๊ณ  ์ดˆ๋ฐ˜์—๋Š” HelloWorld, 

๊ทธ ์ดํ›„์—๋Š” ๋‹ค null๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. ์ด ์ด์œ ๋Š” ์ด 63๋ฐ”์ดํŠธ๋งŒํผ ์ž…๋ ฅ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 


๋˜ ๋‹ค๋ฅธ ๋””๋ฒ„๊น… ํˆด์„ ์„ค์น˜ํ•ด๋ณด์ž.

$git clone https://github.com/pwndbg/pwndbg

ํ•ด๋‹น ๋ช…๋ น์–ด๋กœ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋ฐ›์•„์ค€๋‹ค.

์ฐธ๊ณ ๋กœ, ์•„๊นŒ ๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ๋ฅผ ์ž˜๋ชป ์ƒ์„ฑํ•ด์„œ ํŒŒ์ผ ๋ณต์ œ๋ฅผ ๋ชปํ–ˆ๋Š”๋ฐ,

๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ํ•˜์œ„ ํŒŒ์ผ์„ ๋‹ค ์ง€์šฐ๋Š” ๋ช…๋ น์–ด๋Š”

$rm -r pwndbg/

์ด๋‹ค.

์•„๋ฌดํŠผ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์„ฑ๊ณตํ•˜๋ฉด ์œ„์ฒ˜๋Ÿผ ๋œฌ๋‹ค.

$cd pwndbg

๊ทธ๋Ÿฌ๋ฉด pwndbg ์•ˆ์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด cd ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด

$./setup.sh

๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ค€๋‹ค.

์„ค์น˜์‹œ root ์•”ํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๊ณ , ์ด์ „์— ์„ค์ •ํ–ˆ๋˜ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ

๋‹ค์šด๋ฐ›๋„๋ก ํ•˜์ž.

๋‹ค์šด๋ฐ›๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๋ญ˜ ๋งŽ์ด ๋‹ค์šด๋ฐ›๋Š”๋‹ค.

 

$cd ..

์„ค์น˜๊ฐ€ ๋‹ค ๋˜๋ฉด ์—์ฝ” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋˜ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋น ์ ธ ๋‚˜์˜จ๋‹ค.

 

$gdb echo

gdb ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด echo ํ”„๋กœ๊ทธ๋žจ์„ ๋””๋ฒ„๊น… ๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•œ๋‹ค. 

startํ•จ์ˆ˜์—์„œ๋ถ€ํ„ฐ ๋””๋ฒ„๊น…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ํŠน์ •ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๊ฐ€ ๊ฑธ๋ ธ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ ํ›„ run ์„ ์ž…๋ ฅํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.

ํ•ด๋‹น ๋ถ€๋ถ„ ์œ„์— ๋ณด๋ฉด DISASM์ด๋ผ๊ณ  ๋‚˜์™€์žˆ๋Š”๋ฐ,

์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ฆฌ๋ฒ„์‹ฑ์„ ๋œปํ•œ๋‹ค.

๊ทธ ๋ฐ‘์€ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋„ ๋‚˜์™€์žˆ๋‹ค.

pwndbg> ni

ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•จ์œผ๋กœ์จ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด mov rbx, rax์— ๋ถˆ๋น›์ด ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.

quit ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด pwndbg ๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค.

2023.01.16 - [ํ”„๋กœ์ ํŠธ/์‹œ์Šคํ…œ ํ•ดํ‚น] - [์‹œ์Šคํ…œ ํ•ดํ‚น] ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ๋ฐ˜๋ณต๋ฌธ ๊ตฌํ˜„

 

[์‹œ์Šคํ…œ ํ•ดํ‚น] ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ๋ฐ˜๋ณต๋ฌธ ๊ตฌํ˜„

https://youtu.be/aUCzNzBO6Hg ์˜ค๋Š˜์€ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์œ ํŠœ๋ธŒ๋ฅผ ๋ณด๋ฉด์„œ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. $nano loop.s loop๋ผ๋Š” ์ด๋ฆ„์˜ ์–ด์…ˆ๋ธ”๋ฆฌ ์†Œ์Šค์ฝ”๋“œ๋ฅผ nano๋กœ ์ž‘์„ฑํ•œ๋‹ค. section .data msg db "A" secti

dangsdangs.tistory.com