Jastes 2022. 5. 17. 11:25

ํŒŒ์ผ ์‹คํ–‰

๋จผ์ € ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ์‹œ๋‹ค.
์ฐธ๊ณ ๋กœ ์œ„๊ฒŒ์ž„ ๋ฌธ์ œ์™€ ๊ฐ™์ด ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ(VM)์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด good!
๋งŒ์•ฝ ๋ฌธ์ œ ์ •๋ณด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘ ๋ฐฉ์‹์ด ์˜ˆ์ƒ์ด ๊ฐ„๋‹ค๋ฉด ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ •์ ๋ถ„์„์„ ๋จผ์ € ์‹œ๋„๋„ ์ข‹์€ ๋ฐฉ๋ฒ•

์œˆ๋„์šฐ OS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” Windows PowerShell์— ๋ฌธ์ œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•œ ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ์ž๋ฉด..

๋ฌธ์ œ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์˜ ์–ด๋–ค ๊ฒ€์ฆ๊ณผ์ •์„ ๊ฑฐ์ณ ์ž…๋ ฅํ•œ
๋ฌธ์ž์—ด์ด ๊ฒ€์ฆ์„ ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด Correct, ํ†ต๊ณผ ๋ชปํ•˜๋ฉด Wrong์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฑธ ์œ ์ถ”๊ฐ€๋Šฅ

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌธ์ œ์˜ ์ •๋‹ต(flag)์€ ๊ฒ€์ฆ๊ณผ์ •์„ ํ†ต๊ณผํ•˜์—ฌ Correct๊ฐ€ ์ถœ๋ ฅ๋˜๋„๋ก ํ•˜๋Š” ์ž…๋ ฅ๊ฐ’์ด ๋  ๊ฑฐ์ฃ 
์ง€๊ธˆ๋ถ€ํ„ฐ ์ •์ /๋™์  ๋ถ„์„์œผ๋กœ ํ™•์ธํ•ด๋ณด์ฃ 


๐Ÿ’ก์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ฃผ์˜

 ์ธํ„ฐ๋„ท์—์„œ ๋‹ค์šด๋„๋ฅด ๋ฐ›์€ ์ถœ์ฒ˜ ์•Œ ์ˆ˜ ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž PC์— ์น˜๋ช…์ ์ธ ์†์ƒ์„
๊ฐ€ํ•˜๋Š” ๊ณต๊ฒฉ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๊ธฐ์— ํ˜น์‹œ ๋ชจ๋ฅผ ๊ณต๊ฒฉ์„ ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฉ๋ฆฌ๋œ VM์‹คํ–‰ ๊ถŒ๊ณ 

์ •์  ๋ถ„์„


๋ฌธ์ž์—ด ํƒ์ƒ‰

ํŒŒ์ผ ์‹คํ–‰ ๊ณผ์ •์„ ํ†ตํ•ด ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์„ ๊ฒ€์ฆํ•œ ํ›„, Wrong์ด๋‚˜ Correct ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฑธ ์•Œ์•˜์ฃ 
๋”ฐ๋ผ์„œ ๊ฒ€์ฆํ•˜๋Š” ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„  ํŒŒ์ผ์ด ์‹คํ–‰๋  ๋•Œ ์ถœ๋ ฅ๋˜๋˜ ๋ฌธ์ž์—ด์„ ๋จผ์ € ๊ฒ€์ƒ‰ํ•ด๋ณผ๊นŒ์š”

์šฐ๋ฆฌ๋Š” ์•ž์„œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด๋ณด๋ฉด์„œ Input : ๊ณผ Wrong์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์ด ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด ๊ฒ€์ฆํ•˜๋Š” ๊ณณ๊ณผ ๊ฐ€๊นŒ์šธ ํ™•๋ฅ ์ด ๋†’์ฃ 
View - Open subviews → Strings๋ฅผ ํด๋ฆญ(Shift-F12)๋ฅผ ํด๋ฆญํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ์— ํฌํ•จ๋œ ๋ฌธ์ž์—ด ํ™•์ธํ•ฉ์‹œ๋‹ค.

๋ฌธ์ž์—ด์—์„œ Input : ๋ฟ๋งŒ ์•„๋‹Œ Correct๋ผ๋Š” ๋ฌธ์ž์—ด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ฃ 
ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๊ณ  ์ž„์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ–ˆ์„ ๋• Wrong์ด ์ถœ๋ ฅ๋˜๋‹ˆ Correct๋Š” ๊ฒ€์ฆ๊ณผ์ •์ด ํ†ต๊ณผ๋ ๋•Œ๊ฒ ์ฃ 

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ์ž…๋ ฅ๊ฐ’์„ ์ž…๋ ฅํ•ด์•ผ Correct๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋ฉด flag๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.


ํ•จ์ˆ˜ ๋ถ„์„

์ƒํ˜ธ ์ฐธ์กฐ(Cross Reference; xref)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์–ด๋–ค ํ•จ์ˆ˜์— ์ฐธ์กฐ๋œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
View - Opensubviews → xref(x)๋ฅผ ํ†ตํ•ด Correct ๋ฌธ์ž์—ด์ด ์ฐธ์กฐ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ™•์ธํ•˜๋ฉด...
main์—์„œ ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดํ›„ ๋‹จ์ถ•ํ‚ค F5๋ฅผ ์ด์šฉํ•ด Correct ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์„ ๋””์ปดํŒŒ์ผํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค(IDA์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ )
๋””์ปดํŒŒ์ผ ๊ฒฐํ™”๋ฅผ ํ†ตํ•ด ์–ด๋–ค ์กฐ๊ฑด์ด ๋งŒ์กฑํ•ด์•ผ ์ •๋‹ต์ธ์ง€ ๋ถ„์„ํ•ด๋ด…์‹œ๋‹ค.

sub_14... ํ•จ์ˆ˜๋“ค์„ ๋ถ„์„ํ•ด์„œ ๋ฐ”๊ฟ”์•ผ๊ฒ ์ฃ 
printf ํ•จ์ˆ˜

๊ทธ์ „์—๋„ ๋ดค๋˜ ํ˜•์‹์ด์ฃ  printf ํ˜•์‹์œผ๋กœ์จ ์ธ์ž๋ฅผ ๋ฐ›๊ณ  ๋ฐ˜ํ™˜์„ rax๋กœ ๋ณด๋‚ด ์ถœ๋ ฅํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

scanf ํ•จ์ˆ˜

์ด์ „๊ฑฐ์ฒ˜๋Ÿผ ์ธ์ž๋ฅผ va_start๋ฅผ ํ†ตํ•ด ๋ฐ›์•„๋“œ๋ฆฌ๋ฉฐ _acrt_iob_func(0i64; 0)์ด๋ฏ€๋กœ ์ŠคํŠธ๋ฆผ์—์„œ stdin์ด๋ฏ€๋กœ
๊ฒฐ๊ตญ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋ถ€๋ถ„์ด๋ฏ€๋กœ ๋ฐ˜ํ™˜์„ stdin์œผ๋กœ scanf ํ•จ์ˆ˜๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ์ฃ  

์ฐธ๊ณ ๋กœ _acrt_iob_func๋Š” ์•„ํ‚คํ…์ฒ˜์˜ ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค!

์ด์ œ ์กฐ๊ฑด๋ฌธ๋งŒ ํ™•์ธํ•˜๋ฉด ๋˜๊ฒ ์ฃ  correct ํ™•์ธ์„ ํ• ๋ ค๋ฉด ์กฐ๊ฑด๋ฌธ์—์„œ ๋ฌด์Šจ ๋ฌธ์ž์—ด์„ ์น˜ํ™˜ํ•ด์•ผํ• ๊นŒ์š”?
์ด์ „ ํ•จ์ˆ˜์ธ printf์™€ scanf๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค๋Š” ๊ฑธ ์•Œ์•˜์œผ๋ฏ€๋กœ ๊ทธ ๋ถ€๋ถ„๋งŒ ํ™•์ธํ•˜๋ฉด ๋

strcmp์€ ๋ฌธ์ž์—ด ๋น„๊ต์ด๋ฉฐ ํ•ด๋‹น ๋น„๊ต ๋ฌธ์ž์—ด์€ "Compar3_the str1ng"์ž…๋‹ˆ๋‹ค.

flag{Compar3_the str1ng}

์•„๋ž˜ ์ •๋ฆฌ๋Š” ๊ธฐ๋ณธ ์šฉ์–ด์ด๋ฏ€๋กœ ์ˆ™์ง€ํ•ด์ฃผ์„ธ์š”

  • CTF (Capture The Flag): ๊นƒ๋ฐœ์„ ์Ÿ์ทจํ•˜๋Š” ํŒ€์ด ์ด๊ธฐ๋Š” ๊ฒŒ์ž„์—์„œ ์œ ๋ž˜ํ•œ ๋‹จ์–ด๋กœ, ๋ฌธ์ œ์—์„œ ๋‹ต(flag)๋ฅผ ์ฐพ์•„ ์ธ์ฆํ•˜์—ฌ ํฌ์ธํŠธ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ํ•ดํ‚น๋ฐฉ์–ด๋Œ€ํšŒ๋ฅผ ํ†ต์นญ.
  • ํ”Œ๋ž˜๊ทธ (Flag): CTF์—์„œ ๋ฌธ์ œ ์†์— ์ˆจ๊ฒจ์ง„ ๋‹ต. ์ธ์ฆํ•˜๋ฉด ํฌ์ธํŠธ๋ฅผ ํš๋“.
  • ์ฑŒ๋ฆฐ์ง€ (Challenge): CTF์—์„œ ๋ฌธ์ œ์— ํ•ด๋‹น. ์ฃผ๋กœ ์›น, ๋ฆฌ๋ฒ„์‹ฑ, ํฌ๋„ˆ๋ธ”์„ ์ค‘์‹ฌ์œผ๋กœ ์ถœ์ œ๋˜๊ณ  CTF์— ๋”ฐ๋ผ ํฌ๋ Œ์‹, ์•”ํ˜ธ, ๋„คํŠธ์›Œํฌ๋“ฑ์ด ์ถ”๊ฐ€๋˜๊ธฐ๋„ ํ•จ.
  • ์›Œ๊ฒŒ์ž„ (Wargame): CTF์™€ ๋น„์Šทํ•˜๊ฒŒ ์ทจ์•ฝํ•œ ํ™˜๊ฒฝ์„ ๋ฌธ์ œ์˜ ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๋‚˜, CTF์ฒ˜๋Ÿผ ์ผํšŒ์„ฑ ๋Œ€ํšŒ๊ฐ€ ์•„๋‹ˆ๋ผ ์ง€์†์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณต.โ€‹

 

๋‚˜๋จธ์ง€๋„ ์ •๋ฆฌํ• ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์†”์งํžˆ ๋„ˆ๋ฌด ๊ท€์ฐฎ๊ณ  ์ปค๋ฆฌํ˜๋Ÿผ์— ๋” ์ž์„ธํžˆ ๋‚˜์™€์„œ ๊ตณ์ด..
๊ทธ ๋ถ€๋ถ„์—์„œ ๋” ์ž์„ธํžˆ ์ ์„ ๋‚ด์šฉ๋„ ๋งŽ์•„ ๋ณด์ด์ง€๋„ ์•Š๊ธฐ์— ๋‚˜๋จธ์ง„ ๋„˜์–ด๊ฐˆ๊ป˜์š” ์ด์   ์—ฌ๊ธด ๋ฆฌ๋ฒ„์‹ฑ ์›Œ๊ฒŒ์ž„๋งŒ!


์ฐธ๊ณ  ์ž๋ฃŒ

 

Exercise: rev-basic-0

์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉฐ, ์กฐ๊ฑด๊ฐ’์„ ์ฐพ์•„๋ด…๋‹ˆ๋‹ค.

dreamhack.io

์ฐธ๊ณ  ์ด๋ฏธ์ง€

 

Exercise: rev-basic-0

์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉฐ, ์กฐ๊ฑด๊ฐ’์„ ์ฐพ์•„๋ด…๋‹ˆ๋‹ค.

dreamhack.io