Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1103)

KoreanFoodie's Study

Reversecore chap 20 - ์ธ๋ผ์ธ ํŒจ์น˜ ์‹ค์Šต

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์‹คํ–‰ ์••์ถ•๋˜๊ฑฐ๋‚˜ ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ์„ ํŒจ์น˜ํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ธ๋ผ์ธ ํŒจ์น˜(Inline Patch) ๊ธฐ๋ฒ•์„ ์‹ค์Šตํ•ด ๋ณด์ž. ์ธ๋ผ์ธ ํŒจ์น˜ ์ธ๋ผ์ธ ์ฝ”๋“œ ํŒจ์น˜(Inline Code Patch) ํ˜น์€ ์ค„์—ฌ์„œ ์ธ๋ผ์ธ ํŒจ์น˜(Inline Patch)๋ผ๊ณ  ํ•˜๋Š” ๊ธฐ๋ฒ•์€ ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ธฐ ์–ด๋ ค์šธ ๋•Œ ๊ฐ„๋‹จํžˆ ์ฝ”๋“œ ์ผ€์ด๋ธŒ(Code Cave)๋ผ๊ณ  ํ•˜๋Š” ํŒจ์น˜ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•œ ํ›„ ์‹คํ–‰ํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ํŒจ์น˜์‹œํ‚ค๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์ฃผ๋กœ ๋Œ€์ƒ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์••์ถ•(ํ˜น์€ ์•”ํ˜ธํ™”)๋˜์–ด ์žˆ์–ด์„œ ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ „ํ˜•์ ์ธ ์‹คํ–‰ ์••์ถ•(๋˜๋Š” ์•”ํ˜ธํ™”) ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด ๋ณด์ž. EP(Entry Point)์ฝ”๋“œ๋Š” ์•”ํ˜ธํ™”๋œ OEP(Original ..

Ethical Hacking/Reversing 2019. 4. 25. 14:50
Reversecore chap 19 - UPack ๋””๋ฒ„๊น…, OEP ์ฐพ๊ธฐ!

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. UPack ํŒจ์ปค๋ฅผ ์ด์šฉํ•˜์—ฌ ์••์ถ•ํ•œ notepad.exe ํŒŒ์ผ์˜ EP(Entry Point)๋ฅผ ์ฐพ์•„ ๋””๋ฒ„๊น… ํ•ด๋ณด์ž. OllyDbg ๋””๋ฒ„๊น… ์—๋Ÿฌ Stud_PE๋ฅผ ์ด์šฉํ•˜์—ฌ EP์˜ VA๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค. RVA ๊ฐ’์ด 1018์ด๊ณ  ImageBase๊ฐ€ 01000000์ด๋ฏ€๋กœ, 01001018์ด ์‹ค์ œ EP์˜ ์ฃผ์†Œ๊ฐ’์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ OllyDbg๋ฅผ ์‹คํ–‰ํ•˜์—ฌ 01001018 ์ฃผ์†Œ๋ฅผ EP๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค! ๋””์ฝ”๋”ฉ ๋ฃจํ”„ EP๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๋””์ฝ”๋”ฉ์„ ํ•ด ๋ณด์ž. ์ฒ˜์Œ ๋‘ ๋ช…๋ น์€ 010011B0 ์ฃผ์†Œ์—์„œ 4 ๋ฐ”์ดํŠธ๋ฅผ ์ฝ์–ด EAX์— ์ €์žฅํ•˜๋Š” ๋ช…๋ น์ด๋‹ค. EAX๋Š” 0100739D ๊ฐ’์„ ๊ฐ€์ง€๋Š”๋ฐ, ์ด๋Š” ์›๋ณธ notepad์˜ OEP(Original Entry Poi..

Ethical Hacking/Reversing 2019. 4. 25. 14:49
Reversecore chap 18 - UPack PE ํ—ค๋” ์ƒ์„ธ ๋ถ„์„

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. UPack ํŒจ์ปค๋ฅผ ์ด์šฉํ•œ notepad.exe์˜ PE ํ—ค๋” ๊ตฌ์กฐ๋ฅผ ํŒŒํ—ค์ณ ๋ณด์ž. ์ค€๋น„๋ฌผ UPack Stud_PE notepad.exe (32bit ver.) UPack์˜ PE ํ—ค๋” ๋ถ„์„ ํ—ค๋” ๊ฒน์ณ์“ฐ๊ธฐ ์ด๋Š” ๋‹ค๋ฅธ ํŒจ์ปค์—์„œ๋„ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์ด๋Š” MZ ํ—ค๋”(IMAGE_DOS_HEADER)์™€ PE ํ—ค๋”(IMAGE_NT_HEADERS)๋ฅผ ๊ต๋ฌ˜ํ•˜๊ฒŒ ๊ฒน์ณ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค. ํ—ค๋”๋ฅผ ๊ฒน์ณ์”€์œผ๋กœ ํ•ด์„œ ํ—ค๋” ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ถ€๊ฐ€์ ์œผ๋กœ ๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œ์ผœ ๋ถ„์„์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ํšจ๊ณผ๋„ ์žˆ๋‹ค. Stud_PE๋ฅผ ์ด์šฉํ•ด์„œ MZ ํ—ค๋”๋ฅผ ์‚ดํŽด๋ณด์ž. ('Headers' ํƒญ์˜ [Basic HEADERS tree view in hexeditor] ๋ฒ„ํŠผ) MZ ํ—ค๋”(IMA..

Ethical Hacking/Reversing 2019. 4. 24. 17:28
Reversecore chap 17 - ์‹คํ–‰ ํŒŒ์ผ์—์„œ .reloc ์„น์…˜ ์ œ๊ฑฐํ•˜๊ธฐ

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. PE ํŒŒ์ผ์—์„œ .reloc ์„น์…˜์„ ์ˆ˜๋™์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ์‹ค์Šต์„ ํ•ด ๋ณด์ž. .reloc ์„น์…˜ EXE ํ˜•์‹์˜ PE ํŒŒ์ผ์—์„œ Base Reloaction Table ํ•ญ๋ชฉ์€ ์‹คํ–‰์— ํฐ ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋Š”๋‹ค(DLL, SYS ํ˜•์‹์˜ ํŒŒ์ผ์€ ๊ฑฐ์˜ ํ•„์ˆ˜!). VC++ ์—์„œ ์ƒ์„ฑ๋œ PE ํŒŒ์ผ์˜ Relocation ์„น์…˜ ์ด๋ฆ„์€ '.reloc'์ด๋‹ค. .reloc ์„น์…˜์ด ์ œ๊ฑฐ๋˜๋ฉด PE ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ์•ฝ๊ฐ„ ์ค„์–ด๋“œ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ, .reloc ์„น์…˜์€ ๋ณดํ†ต ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ๋‹ค. reloc.exe '.reloc' ์„น์…˜ ์ œ๊ฑฐ๋Š” ์•„๋ž˜์˜ 4 ๋‹จ๊ณ„์˜ ์ž‘์—…์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. .reloc ์„น์…˜ ํ—ค๋” ์ •๋ฆฌ .reloc ์„น์…˜ ์ œ๊ฑฐ IMAGE_FILE_HEADER ์ˆ˜์ • IMAGE_OP..

Ethical Hacking/Reversing 2019. 4. 24. 17:27
Reversecore chap 16 - Base Relocation Table

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. PE ํŒŒ์ผ์˜ ์žฌ๋ฐฐ์น˜(Relocation)๊ณผ์ •์— ์‚ฌ์šฉ๋˜๋Š” Base Relocation Table์˜ ๊ตฌ์กฐ์™€ ๋™์ž‘ ์›๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. PE ์žฌ๋ฐฐ์น˜ PE ํŒŒ์ผ(EXE/DLL/SYS)์ด ํ”„๋กœ์„ธ์Šค ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋ ๋•Œ PEํ—ค๋”์˜ ImageBase ์ฃผ์†Œ์— ๋กœ๋”ฉ๋œ๋‹ค. DLL(SYS)ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ImageBase ์œ„์น˜์— ์ด๋ฏธ ๋‹ค๋ฅธ DLL(SYS) ํŒŒ์ผ์ด ๋กœ๋”ฉ๋˜์–ด ์žˆ๋‹ค๋ฉด ๋‹ค๋ฅธ ๋น„์–ด ์žˆ๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋กœ๋”ฉ๋œ๋‹ค. ์ด๊ฒƒ์„ PE ํŒŒ์ผ ์žฌ๋ฐฐ์น˜๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰ PE ์žฌ๋ฐฐ์น˜๋ž€ PE ํŒŒ์ผ์ด ImageBase์— ๋กœ๋”ฉ๋˜์ง€ ๋ชปํ•˜๊ณ  ๋‹ค๋ฅธ ์ฃผ์†Œ์— ๋กœ๋”ฉ๋  ๋•Œ ์ˆ˜ํ–‰๋˜๋Š” ์ผ๋ จ์˜ ์ž‘์—…๋“ค์„ ์˜๋ฏธํ•œ๋‹ค. SDK(Software Development Kit) ๋˜๋Š” Visual C++๋กœ PE ํŒŒ..

Ethical Hacking/Reversing 2019. 4. 24. 17:27
Reversecore chap 15 - UPX ์‹คํ–‰ ์••์ถ•๋œ notepad.exe ๋””๋ฒ„๊น…

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฑ•ํ„ฐ๋Š” UPX๋ฅผ ์ด์šฉํ•ด notepad.exe๋ฅผ ์••์ถ•ํ•œ ํ›„, ์›๋ณธ EP (OEP; Original Entry Point)๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค. ๊ผญ ๋‹ค์‹œ ์‹ค์Šต ํ•ด๋ณผ ๊ฒƒ! UPX ํŒจ์ปค์˜ ํŠน์ง• ๋ช‡ ๊ฐ€์ง€๋ฅผ ์•Œ์•„๋ณด์ž. UPX ํŒจ์ปค๋Š” PUSHAD ๋ช…๋ น์œผ๋กœ EAX ~ EDI ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ์Šคํƒ์— ์ €์žฅํ•˜๊ณ , ESI์™€ EDI ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ๊ฐ ๋‘ ๋ฒˆ์งธ ์„น์…˜ ์‹œ์ž‘ ์ฃผ์†Œ(010110000)์™€ ์ฒซ ๋ฒˆ์งธ ์„น์…˜ ์‹œ์ž‘ ์ฃผ์†Œ(01001000)๋กœ ์„ธํŒ…ํ•œ๋‹ค. ๋””๋ฒ„๊น…ํ•  ๋•Œ ์ด์ฒ˜๋Ÿผ ESI์™€ EDI๊ฐ€ ๋™์‹œ์— ์„ธํŒ…๋˜๋ฉด ESI๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒ„ํผ์—์„œ EDI๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒ„ํผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ณต์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๊ฑฐ๋ผ๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋ ˆ์ด์Šค(Trace)๋ž€ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์‹คํ–‰ํ•˜๋ฉด์„œ ์ซ“์•„๊ฐ€๋Š” ๊ฒƒ์„ ..

Ethical Hacking/Reversing 2019. 4. 24. 17:26
Reversecore chap 14 - ์‹คํ–‰ ์••์ถ•

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์‹คํ–‰ ์••์ถ•์ด๋ž€ ๋ง ๊ทธ๋Œ€๋กœ ์‹คํ–‰(PE: Portable Executable)ํŒŒ์ผ์„ ๋Œ€์ƒ์œผ๋กœ ํŒŒ์ผ ๋‚ด๋ถ€์— ์••์ถ•ํ•ด์ œ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์„œ ์‹คํ–‰๋˜๋Š” ์ˆœ๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์••์ถ•์„ ํ•ด์ œ์‹œํ‚จ ์ˆ˜ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์‹คํ–‰ ์••์ถ•๋œ ํŒŒ์ผ ์—ญ์‹œ PE ํŒŒ์ผ์ด๋ฉฐ, ๋‚ด๋ถ€์— ์›๋ณธ PE ํŒŒ์ผ๊ณผ decoding ๋ฃจํ‹ด์ด ์กด์žฌํ•œ๋‹ค. EP(Entry Point) ์ฝ”๋“œ์— decoding ๋ฃจํ‹ด์ด ์‹คํ–‰๋˜๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์••์ถ•์„ ํ•ด์ œ์‹œํ‚จ ํ›„ ์‹คํ–‰๋œ๋‹ค. ์ผ๋ฐ˜์ ์ธ ZIP ์••์ถ•๊ณผ ์‹คํ–‰ ์••์ถ•์˜ ์ฐจ์ด ํ•ญ๋ชฉ | ์ผ๋ฐ˜ ์••์ถ• | ์‹คํ–‰ ์••์ถ• |:-----|:--------|:------| ๋Œ€์ƒ ํŒŒ์ผ | ๋ชจ๋“  ํŒŒ์ผ | PE ํŒŒ์ผ(exe, dll, sys) ์••์ถ• ๊ฒฐ๊ณผ๋ฌผ | ์••์ถ•(zip, rar) ํŒŒ์ผ | P..

Ethical Hacking/Reversing 2019. 4. 24. 17:24
Reversecore chap 13 - PE File Format

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. PE(Portable Executable) ํŒŒ์ผ์€ Windows ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ ํ˜•์‹์ด๋‹ค. ๊ธฐ์กด UNIX์—์„œ ์‚ฌ์šฉ๋˜๋Š” COFF(Common Object File Format)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Microsoft์—์„œ ๋งŒ๋“ค์—ˆ๋‹ค. ์• ์ดˆ์—๋Š” ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ์— ์ด์‹์„ฑ์„ ์ข‹๊ฒŒ ํ•˜๋ ค๊ณ  ๋งŒ๋“ค์—ˆ์œผ๋‚˜ ํ˜„์žฌ๋Š” Windows ๊ณ„์—ด์˜ OS์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. PE File Format ๋ณธ๊ฒฉ์ ์œผ๋กœ PE ํŒŒ์ผ์˜ ์ข…๋ฅ˜๋ฅผ ์•Œ์•„๋ณด์ž. ์ข…๋ฅ˜ | ์ฃผ์š” ํ™•์žฅ์ž |:-----|:------| ์‹คํ–‰ ๊ณ„์—ด | EXE, SCR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด | DLL, OCX, CPL, DRV ๋“œ๋ผ์ด๋ฒ„ ๊ณ„์—ด | SYS, VXD ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ๊ณ„์—ด | OBJ ์—„๋ฐ€ํžˆ ์–˜๊ธฐํ•˜๋ฉด OBJ(์˜ค๋ธŒ์ ํŠธ) ํŒŒ..

Ethical Hacking/Reversing 2019. 4. 24. 17:23
Reversecore chap 10 - ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ ์ฑ•ํ„ฐ 10์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ(Calling Convention)์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ๋‹ค. ์ด๋Š” 'ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์ „๋‹ฌํ•˜๋Š”์ง€'์— ๋Œ€ํ•œ ์ผ์ข…์˜ ์•ฝ์†์ด๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ์€ cdecl, stdcall, fastcall์œผ๋กœ ํฌ๊ฒŒ 3 ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค. ๊ฐ„๋‹จํ•œ ์šฉ์–ด ์„ค๋ช… Caller(ํ˜ธ์ถœ์ž) - ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ์ชฝ Callee(ํ”ผํ˜ธ์ถœ์ž) - ํ˜ธ์ถœ์„ ๋‹นํ•œ ํ•จ์ˆ˜ cdecl ๋ฐฉ์‹ cdecl๋ฐฉ์‹์€ ์ฃผ๋กœ C ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, Caller์—์„œ ์Šคํƒ์„ ์ •๋ฆฌํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. #include "studio.h" int add(int a, int b) { return (a + b); } int main (int argc, c..

Ethical Hacking/Reversing 2019. 4. 24. 17:23