Hack The Planet

๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค, cyalume์˜ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

reverse engineering/CodeEngn

[CodeEngn] Basic RCE L15 ๋ฌธ์ œํ’€์ด

cyalume 2020. 12. 15. 23:19

๋ฌธ์ œ ํŒŒ์ผ์€ ์ฝ”๋“œ์—”์ง„ ์‚ฌ์ดํŠธ์—์„œ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ชฉํ‘œ๊ฐ’ : Name ์ด CodeEngn ์ผ ๋•Œ Serial ๊ฐ’

 

์‹คํ–‰์„ ์‹œ์ผœ๋ณด๋ฉด ๋ฉ”์„ธ์ง€๋ฐ•์Šค๊ฐ€ ํ•˜๋‚˜ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

 

Name ๊ฐ’์„ ๋”ฐ๋กœ ๋ฐ›๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š” ๊ฑธ๋กœ ๋ณด์•„, ์ด๋ฅผ ์ผ๋ จ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๊ฐ€๊ณตํ•ด์„œ ์‹œ๋ฆฌ์–ผ์„ ๋งŒ๋“œ๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ฑฐ๋กœ ์—ด์–ด๋ด…์‹œ๋‹ค.

 

 

์ƒ๋‹จ๋ฐ”์˜ Az ์•„์ด์ฝ˜์„ ๋ˆŒ๋Ÿฌ Try Again! ์ด๋ผ๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์•„๊ฐ€๋ด…์‹œ๋‹ค.

 

 

์ญ‰ ๋‚ด๋ฆฌ๋‹ค ๋ณด๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”๋ธ”ํด๋ฆญ ํ•ด์„œ ํ•ด๋‹น ์ฃผ์†Œ๋กœ ์ด๋™ํ•ด์ค๋‹ˆ๋‹ค.

 

 

์œ„์— ์„ฑ๊ณต ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

00458837 ์ฃผ์†Œ์˜ jne ๋ช…๋ น์ด ์‹คํ–‰๋˜๋ฉด ์„ฑ๊ณต ๋ฌธ์ž์—ด ์ถœ๋ ฅ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹คํŒจ ๋ฌธ์ž์—ด๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ์œ„์—์„œ๋Š” cmp ๋กœ eax ์™€ ์–ด๋–ค ์ฃผ์†Œ์— ์ €์žฅ๋œ ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

eax ๊ฐ’์„ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด 00458831 ์ฃผ์†Œ์— BP ๋ฅผ ๊ฑธ๊ณ  ์—ฌ๊ธฐ๊นŒ์ง€ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์ด๋ฆ„์—๋Š” CodeEngn ์œผ๋กœ, ์‹œ๋ฆฌ์–ผ์œผ๋กœ๋Š” 1234 ๋ผ๋Š” ๊ฐ’์„ ๋„ฃ์–ด์คฌ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

eax ๋ ˆ์ง€์Šคํ„ฐ์— 0x4D2 ๋ผ๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐ€์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ–ˆ๋˜ ์‹œ๋ฆฌ์–ผ ๊ฐ’์ธ 1234๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

 

eax ๊ฐ’์ด ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ•œ ํŒจ์Šค์›Œ๋“œ๊ณ , cmp ๋ฌธ์˜ ๊ฒฐ๊ณผ๋กœ ์„ฑ๊ณต/์‹คํŒจ๊ฐ€ ๋‚˜๋‰˜์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ 45B844 ์ฃผ์†Œ์˜ ๊ฐ’์ด CodeEngn ์ด๋ผ๋Š” ์ด๋ฆ„์— ๋งž๊ฒŒ ์ƒ์„ฑ๋œ ์‹œ๋ฆฌ์–ผ ๊ฐ’์ผ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

์šฐํด๋ฆญ -> Follow in dump -> Constant [์ฃผ์†Œ] ๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

๋คํ”„ ์ฐฝ์„ ๋ณผ๊นŒ์š”?

 

 

0x6160 ์ด๋ผ๋Š” ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌํ‹€ ์—”๋””์–ธ ๋ฐฉ์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 0x6061 ์ด ์•„๋‹Œ 0x6160 ์ž…๋‹ˆ๋‹ค.

 

๋ฆฌํ‹€ ์—”๋””์–ธ์ด๋ž€?

 

๋”๋ณด๊ธฐ

๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ”์ดํŠธ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ, ์ด ๋ฐ”์ดํŠธ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด ์ˆœ์„œ๊ฐ€ ์—”๋””์–ธ ์ž…๋‹ˆ๋‹ค.

๋ฆฌํ‹€ ์—”๋””์–ธ์€ ์ด๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

ex)

 

์ข…๋ฅ˜ 0x1234 ์˜ ํ‘œํ˜„ ๋ฐฉ์‹ 0x135790 ์˜ ํ‘œํ˜„ ๋ฐฉ์‹
๋ฆฌํ‹€ ์—”๋””์–ธ 34 12 90 57 13
๋น… ์—”๋””์–ธ 12 34 13 57 90

 

์ด๋ฅผ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ํ†ต๊ณผํ•  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

(hex) 0x6160 = (dec) 24928

์ด๋ฅผ CodeEngn ์ด๋ผ๋Š” ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์ž…๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

์„ฑ๊ณต ๋ฉ”์„ธ์ง€๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ 24928 ์ด CodeEngn ์ด๋ผ๋Š” ์ด๋ฆ„์— ๋งž๋Š” ์‹œ๋ฆฌ์–ผ ์ž…๋‹ˆ๋‹ค.