Hack The Planet

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

reverse engineering 35

[RCE] PE file format (1)

๋ณธ๋ก ์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, PE๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. 1.PE๋ž€? PE(Portable Executable): ์œˆ๋„์šฐ ์ƒ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์ด๋‹ค. ์‹คํ–‰ ๊ณ„์—ด EXE, SCR ๋“œ๋ผ์ด๋ฒ„ ๊ณ„์—ด SYS, VXD ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด DLL, OCX, CPL, DRV ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ OBJ 2.PE์˜ ์ข…๋ฅ˜์—๋Š” ๋ฌด์—‡์ด ์žˆ๋Š”๊ฐ€? 1)์‹คํ–‰๊ณ„์—ด SCR: ์Šคํฌ๋ฆฐ ์„ธ์ด๋ฒ„์˜ ์•ฝ์ž๋กœ, ํ™”๋ฉด ๋ณดํ˜ธ๊ธฐ ํŒŒ์ผ์„ ์˜๋ฏธํ•œ๋‹ค. 2)๋“œ๋ผ์ด๋ฒ„ ๊ณ„์—ด SYS: ์‹œ์Šคํ…œ์˜ ์•ฝ์ž์ด๋ฉฐ ์šด์˜์ฒด์ œ ๊ด€๋ จ ํŒŒ์ผ์ด๋‹ค. VXD: Virtual Device Driver , ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋™์ž‘์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ€์ƒ ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ์ด๋‹ค. 3)๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด DLL: Dynamic Link Library์˜ ์•ฝ์ž. ๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ๋กœ, ๋‹ค๋ฅธ ..

reverse engineering 2021.05.02

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

์ฝ”๋“œ์—”์ง„ ์‚ฌ์ดํŠธ ๋ชฉํ‘œ๊ฐ’ : 'Cracked by: CodeEngn!'์ด ์ถœ๋ ฅ๋˜๊ฒŒ ํ•˜๋Š” ํŒŒ์ผ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ์‹คํ–‰์„ ์‹œ์ผœ๋„ ํฌ๊ฒŒ ๋ˆˆ์— ๋„๋Š” ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด์ œ ์—ฌ๊ธฐ์— Cracked by: CodeEngn! ๋ฌธ์ž์—ด์„ ๋„์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์œ„ ํ”„๋กœ๊ทธ๋žจ์„ ๋””๋ฒ„๊ฑฐ๋กœ ์—ด์–ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘๊ทผ๋‘๊ทผ ํŒจํ‚น์€ ๋˜์–ด์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณผ๊นŒ์š”? ๋จผ์ €, CreatFileA ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. CRACKME3.KEY ๋ผ๋Š” ํŒŒ์ผ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” CreateFileA ํ•จ์ˆ˜์˜ ๊ตฌ์กฐ์˜ˆ์š”. HANDLE CreateFileA( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD..

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

์ฝ”๋“œ์—”์ง„ ์‚ฌ์ดํŠธ ๋ชฉํ‘œ๊ฐ’ : ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์„ธ์ปจ๋“œ) ์‹คํ–‰์„ ์‹œ์ผœ๋ณด๋ฉด ๋ช‡ ์ดˆ ๋’ค ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์„ ์ง์ ‘ ์ธก์ •ํ•˜๊ธฐ๋Š” ์–ด๋ ค์šฐ๋‹ˆ ๋ถ„์„์„ ํ•ด ๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค. PEiD๋กœ ์—ด์–ด๋ณด๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด UPX๋กœ ํŒจํ‚น๋˜์–ด์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊ฑฐ๋กœ ์—ด์–ด๋ณผ๊ฒŒ์š”. pushad ๋ช…๋ น์ด ๋ณด์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ upx ํŒจํ‚น์ด๋‹ˆ ๊ฐ„๋‹จํžˆ ์–ธํŒจํ‚น ํ•ด ์ค๋‹ˆ๋‹ค. ๋”๋ณด๊ธฐ์–ธํŒจํ‚น ๋ฐฉ๋ฒ• [Ctrl + F]๋กœ popad ๋ช…๋ น์„ ์ฐพ์€ ๋’ค ๊ทธ ์ฃผ์†Œ๋กœ ์ด๋™ํ•œ๋‹ค.popad ๋ช…๋ น ๋ฐ‘ OEP๋กœ jmpํ•˜๋Š” ๋ช…๋ น์„ ์ฐพ์€ ๋’ค, ํ•ด๋‹น ๋ช…๋ น์— BP๋ฅผ ๊ฑธ๊ณ  F9์œผ๋กœ ์‹คํ–‰ํ•ด์ค€๋‹ค.F8 ํ‚ค๋ฅผ ํ•œ๋ฒˆ ๋ˆŒ๋Ÿฌ ์••์ถ•ํ•ด์ œ๋œ ์›๋ณธ ์ฝ”๋“œ๋กœ ์ด๋™ํ•œ๋‹ค.์•„๋ž˜๋Š” ์›๋ณธ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ทธ๋ƒฅ ์‹คํ–‰ํ•ด๋ณผ๊นŒ์š”? ์•ˆํ‹ฐ ๋””๋ฒ„๊น… ๊ธฐ๋ฒ•์ด ์ ์šฉ๋˜์—ˆ๋„ค์š”. ๋””๋ฒ„๊ฑฐ์— ์˜ฌ๋ ค ์‹คํ–‰ํ–ˆ..

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

์ฝ”๋“œ์—”์ง„ ์‚ฌ์ดํŠธ ๋ชฉํ‘œ๊ฐ’ : Name์ด CodeEngn์ผ ๋•Œ Serial๊ฐ’ ์‹คํ–‰์„ ์‹œ์ผœ๋ด…๋‹ˆ๋‹ค. ์ž…๋ ฅํ•œ ์ด๋ฆ„์ด ์ผ๋ จ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฑฐ์ณ์„œ ์‹œ๋ฆฌ์–ผ์ด ์ƒ์„ฑ๋˜๊ณ , ์ด์™€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋น„๊ตํ•˜๋Š” ์ต์ˆ™ํ•œ ์œ ํ˜•์˜ ํ”„๋กœ๊ทธ๋žจ ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊ฑฐ๋กœ ์—ด์–ด๋ณผ๊นŒ์š”? ๋ณ„๋‹ค๋ฅธ ํŒจํ‚น์€ ๋˜์–ด์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์‹œ๋ฆฌ์–ผ ๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ถ„๊ธฐ์ ์„ ๋จผ์ € ์ฐพ์•„์•ผ๊ฒ ์ฃ ? ์ƒ๋‹จ๋ฐ”์˜ Az ์•„์ด์ฝ˜์œผ๋กœ ์‹คํŒจ์‹œ ์ถœ๋ ฅ๋˜๋Š” Bad ๋ฉ”์„ธ์ง€๋ฐ•์Šค์˜ ์ฃผ์†Œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์•„๋ž˜์— ์„ฑ๊ณต ์‹œ ์ถœ๋ ฅ๋  ๋ฌธ์ž์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์‹คํŒจ ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋˜๋Š” ์ฃผ์†Œ์˜ ์œ„์— ๋ถ„๊ธฐ์ ์ด ์žˆ๊ณ , ๊ทธ ์กฐ๊ฑด๋ถ„๊ธฐ๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ์„ฑ๊ณตํ•  ๊ฒ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์œ„์˜ 004011F6 ์ฃผ์†Œ๊ฐ€ ๋ถ„๊ธฐ์ ์ž…๋‹ˆ๋‹ค. or eax, eax ์‹์˜ ๊ฐ’์ด 0์ด๋ผ๋ฉด (ZF = 0์ด 1์ด ๋œ๋‹ค๋ฉด) ์„ฑ๊ณต ๋ฉ”์„ธ์ง€๋ฐ•์Šค๋ฅผ ๋„์šฐ๋Š”..

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

๋ฌธ์ œ ํŒŒ์ผ >> ์ฝ”๋“œ์—”์ง„ ์‚ฌ์ดํŠธ ๋ชฉํ‘œ๊ฐ’ : Key ๊ฐ’์ด BEDA-2F56-BC4F4368-8A71-870B ์ผ๋•Œ Name์˜ MD5 ํ•ด์‰ฌ๊ฐ’ ์‹คํ–‰์„ ์‹œ์ผœ๋ด…๋‹ˆ๋‹ค. Name ๊ฐ’์€ ํ•œ์ž๋ฆฌ๋ผ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊ฑฐ๋กœ ์ด ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์ค์‹œ๋‹ค. ์šฐํด๋ฆญ -> All referenced text strings -> 'Please Enter More Chars...' ๋ฌธ์ž์—ด์„ ์ฐพ์•„๊ฐ€ ์ค๋‹ˆ๋‹ค. ์œ„์— cmp eax, 3 ๋ผ๋Š” ๋ฌธ์ž์—ด ๊ธธ์ด ๋น„๊ต ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ cmp eax, 1 ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ , ์šฐํด๋ฆญ -> Copy to Executable -> Save file ์œผ๋กœ ์ €์žฅํ•œ ๋’ค ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค. ์„ฑ๊ณต์‹œ ์ถœ๋ ฅ๋ ๋“ฏํ•œ ๋ฌธ์ž์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋™ํ•ด์„œ ํ™•์ธ์„ ํ•ด ๋ณธ ๊ฒฐ๊ณผ JNZ ๋ช…๋ น์ด ๋ถ„๊ธฐ์ ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์œ„์—์„œ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๋ฅผ ..

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

๋ฌธ์ œ๋Š” ์ฝ”๋“œ์—”์ง„ ์‚ฌ์ดํŠธ์—์„œ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชฉํ‘œ๊ฐ’ : Name ์ด CodeEngn ์ผ ๋•Œ์˜ Serial ๊ฐ’ ์‹คํ–‰์„ ์‹œ์ผœ๋ด…๋‹ˆ๋‹ค. ์ด๋ฆ„๊ฐ’๊ณผ ์‹œ๋ฆฌ์–ผ ๊ฐ’์„ ๋”ฐ๋กœ ๋ฐ›๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์•„ ์ด ์‹œ๋ฆฌ์–ผ ๊ฐ’์€ ์ด๋ฆ„์„ ์ด์šฉํ•ด ์ƒ์„ฑ๋˜์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค. ๋””๋ฒ„๊ฑฐ๋กœ ์—ด์–ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ์€ Wrong password! ๋ผ๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์•„ ์ด๋™ํ•ด์ค๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์œ„์— Good Job! ์ด๋ผ๋Š” ์„ฑ๊ณต ์‹œ ์ถœ๋ ฅ๋ ๋“ฏํ•œ ๋ฌธ์ž์—ด์ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ € ์œ„์— ๋ถ„๊ธฐ์ ์ด ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. jne ๋ช…๋ น์ด ์žˆ๋„ค์š”. ์ด ๋ช…๋ น์ด ์‹คํ–‰๋˜๋ฉด ์„ฑ๊ณต ๋ฉ”์„ธ์ง€๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด ์‹คํŒจ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฌธ์ด๋‹ˆ ์œ„์˜ ์กฐ๊ฑด์„ ์œ ์‹ฌํžˆ ๋ด…์‹œ๋‹ค. eax ์™€ ebp-0x3c ์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ถ„๊ธฐ๋ฌธ์€ jne ์ด๋‹ˆ ์ด๊ฒƒ์ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ์„ฑ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ’์ด ๊ฐ™์•„์•ผ ํ•ฉ..