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

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

KoreanFoodie's Study

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
Reversecore chap 7 - ์Šคํƒ ํ”„๋ ˆ์ž„

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์Šคํƒ ํ”„๋กœ์„ธ์Šค์—์„œ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ญํ• ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. A. ํ•จ์ˆ˜ ๋‚ด์˜ ๋กœ์ปฌ ๋ณ€์ˆ˜ ์ž„์‹œ ์ €์žฅ B. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ C. ๋ณต๊ท€ ์ฃผ์†Œ(return address)์ €์žฅ ํ”„๋กœ์„ธ์Šค์—์„œ ์Šคํƒ ํฌ์ธํ„ฐ(ESP)์˜ ์ดˆ๊ธฐ ๊ฐ’์€ Stack Bottom์ชฝ(๊ทธ๋ฆผ ์•„๋ž˜์ชฝ)์— ๊ฐ€๊น๋‹ค. PUSH ๋ช…๋ น์œผ๋กœ ์Šคํƒ์— ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์Šคํƒ ํฌ์ธํ„ฐ(ESP)๋Š” ๊ฐ์†Œํ•˜๊ณ , POP ๋ช…๋ น์œผ๋กœ ์Šคํƒ์—์„œ ๊ฐ’์„ ๊บผ๋‚ด๋ฉด ์Šคํƒํฌ์ธํ„ฐ๋Š” ์ฆ๊ฐ€ํ•œ๋‹ค. ์ฆ‰, ์Šคํƒ์€ ๊ฑฐ๊พธ๋กœ ์ž๋ž€๋‹ค! POP EBP ๋ฅผ ํ•˜๋ฉด EBP ๊ฐ’์ด ๋ณ€ํ•˜๋Š”๋ฐ, PUSH ์˜ ๊ฒฝ์šฐ์—๋Š” PUSH EBP ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด๋„, ํ˜„์žฌ์˜ EBP ๊ฐ’(์˜ˆ: 0019FF38) ๊ฐ’๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์ง€ EBP ์ž์ฒด์˜ ๊ฐ’์€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค. POP EBP ..

Ethical Hacking/Reversing 2019. 4. 24. 17:22
Reversecore chap 4 - IA-32 Register ๊ธฐ๋ณธ ์„ค๋ช…

'๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ ์›๋ฆฌ'์˜ ๋‚ด์šฉ ๋ฐ ์ด์Šˆ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. 1. CPU ๋ ˆ์ง€์Šคํ„ฐ๋ž€? ๋ ˆ์ง€์Šคํ„ฐ(Register)๋ž€ CPU ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ๋‹ค๋ชฉ์  ์ €์žฅ ๊ณต๊ฐ„์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ผ๊ณ  ์–˜๊ธฐํ•˜๋Š” RAM(Random Access Memory)๊ณผ๋Š” ์กฐ๊ธˆ ์„ฑ๊ฒฉ์ด ๋‹ค๋ฅด๋‹ค. CPU๊ฐ€ RAM์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—‘์„ธ์Šค(Access)ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋จผ ๊ธธ์„ ๋Œ์•„๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ํ•˜์ง€๋งŒ ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU์™€ ํ•œ ๋ชธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์†์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ข…๋ฅ˜ Basic program execution registers x87 FPU registers MMX registers XMM registers Control registers Memory management regis..

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