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

๋ชฉ๋ก2019/04 (45)

KoreanFoodie's Study

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