๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Tried. Failed. Logged.
๐ŸดCTF/DreamHack

Dreamhack - ์›Œ๊ฒŒ์ž„, rev-basic-0 ํ’€์ด

by Janger 2021. 11. 30.
728x90

https://dreamhack.io/wargame/challenges/14/

 

rev-basic-0

Reversing Basic Challenge #0 ์ด ๋ฌธ์ œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ž์—ด ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ •ํ•ด์ง„ ๋ฐฉ๋ฒ•์œผ๋กœ ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜์—ฌ correct ๋˜๋Š” wrong์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜์—ฌ correct๋ฅผ ์ถœ

dreamhack.io

 

๋ฌธ์ œ์˜ ์‹คํ–‰ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋‹ˆ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž…๋ ฅ์„ ๋ฐ›์œผ๋ฉฐ, ์•„๋ฌด ๊ธ€์ž๋ฅผ ์ž…๋ ฅํ•˜๋‹ˆ Wrong์„ ์ถœ๋ ฅํ•˜๊ณ  ๋ฐ”๋กœ ๊บผ์ ธ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. 

๋ชฉํ‘œ๋Š” ์•Œ๋งž์€ ์ •๋‹ต์„ ์ž…๋ ฅํ•ด์„œ Correct๋ฅผ ์ถœ๋ ฅ์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. 

 

 

๋ฌธ์ œ์˜ ์‹คํ–‰ํŒŒ์ผ์„ ๋””๋ฒ„๊ฑฐ์— ๋„ฃ์–ด ์‹คํ–‰์‹œ์ผœ F9๋ฅผ ๋ˆŒ๋Ÿฌ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๋กœ ์ด๋™ํ•ด์ค๋‹ˆ๋‹ค. 

 

์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ์— ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š๊ณ  ํ•œ์ค„ํ•œ์ค„์”ฉ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ฝ˜์†” ์ฐฝ์ด ๋ณ€ํ™”ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. 

 

 

ํŒ์„ ๋“œ๋ฆฌ์ž๋ฉด ํ•œ์ค„ ํ•œ ์ค„์„ F8์„ ๋ˆ„๋ฅด๋ฉด์„œ ์ฝ˜์†” ์ฐฝ๊ณผ ๋น„๊ต๋ฅผ ํ•˜์ง€ ๋ง๊ณ , F8์„ ๊พน ๋ˆ„๋ฅด์‹œ๊ฑฐ๋‚˜ Ctrl+F8๋ฅผ ๋ˆŒ๋Ÿฌ ์ฝ˜์†” ์ฐฝ์ด ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ์ฐพ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. 

 

 

๊ทธ๋Ÿผ ๋”์ด์ƒ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰์ด ์•ˆ ๋˜๋Š” ๋ถ€๋ถ„์ด ์˜ฌ ๋•Œ์— ์ฝ˜์†” ์ฐฝ์„ ํ™•์ธํ•˜๋ฉด ์ž…๋ ฅ์„ ํ•˜๋ผ๊ณ  ํ™”๋ฉด์— ์ถœ๋ ฅ์ด ๋œ ๊ฒƒ์„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

์—ฌ๊ธฐ๋‹ค ์ž„์˜์˜ ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ๋””๋ฒ„๊ฑฐ์—๋„ ๋ณ€ํ™”๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. 

 

๊ทธ๋•Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ํ•œ์ค„ํ•œ์ค„ OP์ฝ”๋“œ๋ฅผ ์œ ์‹ฌํžˆ ์‚ดํŽด๋ณด๋ฉด์„œ "์กฐ๊ฑด๋ฌธ"๋ถ€๋ถ„์ด ์žˆ๋‚˜ ์ž˜ ์ฐพ์•„๋ด…๋‹ˆ๋‹ค. 

 

 

 

๊ทธ๋ ‡๊ฒŒ ํ•œ์ค„ํ•œ์ค„ ์˜์‹ฌ์ด ๊ฐ€๋Š” ์˜์—ญ์€ BP๋ฅผ ์ฃผ๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋˜ ์ค‘

 

call <JMP.&strcmp> ๋ถ€๋ถ„์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ์ €๊ณณ์—์„œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’๊ณผ ์ •๋‹ต์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์•„๋‹๊นŒ์š”? 

 

F7๋ฅผ ๋ˆŒ๋Ÿฌ ํ•จ์ˆ˜ ์•ˆ์„ ๋“ค์—ฌ๋‹ค๋ด…๋‹ˆ๋‹ค. 

 

 

 

์ž ํ•จ์ˆ˜ ์•ˆ์„ ๋ณด๋‹ˆ ๊ทธ ์•ˆ์— ๋˜ strcmpํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ์‹œ์ผœ ๋‘ ์ธ์ž๋“ค์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์„ ๋ณด์‹ค ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ 

์ด๋ฏธ ๋””๋ฒ„๊ฑฐ์˜ ์ฃผ์„์—์„œ๋„ ์จ์ ธ์žˆ๋“ฏ์ด "Compar3_the_str1ng"์™€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’์„ ์„œ๋กœ ๋น„๊ตํ•˜๊ณ  ์žˆ๋„ค์š”. 

 

์ •๋‹ต์€ ์‹ฑ๊ฒ๊ฒŒ ์•Œ์•„๋‚ด์—ˆ์ง€๋งŒ, 

๋” ์ค‘์š”ํ•œ ๊ฑด ์–ด๋–ป๊ฒŒ ํ•ด์„œ Correct ํ˜น์€ Wrong์ด ์ถœ๋ ฅ์ด ๋˜๋Š”์ง€๊ฐ€ ๋” ์ค‘์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

 

 

๋‹ค์‹œ ์œ„ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ 

lea rdx..., ds:[7FFA0CB2220]๋Š” ์ •๋‹ต์„ ๊ฐ€์ง„ ๋ณ€์ˆ˜("Compar3_the_str1ng")์˜ ์ฃผ์†Œ ๊ฐ’์„ strcmp์˜ ์ธ์ž๋กœ ๋ณด๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

 

strcmp ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ 0 ํ˜น์€ 1, -1์ด ๋‚˜์˜ค๋Š”๋ฐ

๊ฐ๊ฐ 0์€ ์„œ๋กœ ๋˜‘๊ฐ™์€ ๋ฌธ์ž๋ฅผ ๋œปํ•˜๊ณ  

1์€ ์™ผ์ชฝ์ด ๋” ํฌ๋‹ค, -1์€ ์˜ค๋ฅธ์ชฝ์ด ๋” ํฌ๋‹ค์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

 

์ € strcmp์—๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’๊ณผ "Compar3_the_str1ng"๋ฅผ ๋น„๊ตํ•ด์„œ 0, 1, -1 ์ด ์…‹ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ ‡๊ฒŒ ๋ฐ˜ํ™˜ํ•œ ๊ฐ’์€ ๋ฆฌํ„ด์ด ๋˜์–ด ๋ฐ”๋กœ ์•„๋ž˜์—

test eax, eax๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ 

test๋Š” ์กฐ๊ฑด ๋ช…๋ น์–ด๋กœ EAX๊ฐ€ 0์ด๋ƒ ์•„๋‹ˆ๋ƒ๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ strcmp๋ฅผ ๊ฑฐ์ณ์„œ ๋‘ ๋ฌธ์ž๊ฐ€ ๊ฐ™๋‹ค๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•ด์„œ

test eax, eax ๊ณ„์‚ฐ์„ ๊ฑฐ์ณ 

๋ฐ”๋กœ ์•„๋ž˜์— jne์˜ ์กฐ๊ฑด์— ์„ฑ๋ฆฝ์„ ํ•ด correct๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜๊ฐ€ ์žˆ๋˜ ๊ฒƒ์ด๋ฉฐ, 

 

0์ด ์•„๋‹Œ ๊ฐ’์ด ๋ฆฌํ„ด์ด ๋˜์—ˆ๋‹ค๋ฉด 

jne ์กฐ๊ฑด ๋ถ€๋ถ„์„ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์•„ wrong์ด ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

( 0์„ NOT์œผ๋กœ ๋งŒ๋“ค์–ด 1๋กœ ๋ฐ˜ํ™˜ํ•ด ์ฐธ์ด ๋‚˜์˜ด | 1์„ NOT์œผ๋กœ ๋งŒ๋“ค์–ด 0์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด ๊ฑฐ์ง“์ด ๋‚˜์˜ด)

728x90