gdb ์ •๋ฆฌ
ยท
Study/Reversing
1. pwndbg ์„ค์น˜ (ubuntu 22.04) https://github.com/pwndbg/pwndbg GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made EasyExploit Development and Reverse Engineering with GDB Made Easy - pwndbg/pwndbggithub.com 2. ๋””๋ฒ„๊น…(1) ํŒŒ์ผ ์ƒ์„ฑ// Name: debugee.c// Compile: gcc -o debugee debugee.c -no-pie#include int main(void) { int sum = 0; int val1 = 1; int val2 = 2; sum = val1 + v..
๊ธฐ์ดˆ ์ •์  ๋ถ„์„
ยท
Study/Reversing
1. ์ •์  ๋ถ„์„ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ถ„์„ ์•…์„ฑ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ๋ฅผ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ถ„์„ํ•˜๋Š” ๊ณผ์ • ์ฃผ์š” ์‚ฌ์šฉ ๊ธฐ๋ฒ• ์•ˆํ‹ฐ๋ฐ”์ด๋Ÿฌ์Šค ๋„๊ตฌ ์‚ฌ์šฉ (ex. ๋ฐฑ์‹  ..) ์•…์„ฑ์ฝ”๋“œ๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ํ•ด์‹œ ์ •๋ณด ๊ฒ€์ฆ (๋ชจ๋“  exe ํŒŒ์ผ์€ ์ƒ์„ฑ๋  ๋•Œ ๊ณ ์œ ์˜ ๊ฐ’์„ ๊ฐ€์ง) ํŒŒ์ผ์˜ ๋ฌธ์ž์—ด, ํ•จ์ˆ˜, ํ—ค๋”์—์„œ ์ฃผ์š” ์ •๋ณด ์ˆ˜์ง‘ (e.g. PE viewer) 2. ์•ˆํ‹ฐ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ๋‹ ์•…์„ฑ์ฝ”๋“œ ํƒ์ง€ (๊ธฐ๋ณธ) ํŒจํ„ด ๋งค์นญ ๋ถ„์„(์ฃผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ): file signatures๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ฐพ๋Š” ๋ฐฉ๋ฒ• heuristic: ์•…์„ฑ์ฝ”๋“œ๋ฅผ ๋ณ€์กฐ์‹œํ‚ค๊ฑฐ๋‚˜, ์‹ ์ข…์„ ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ• VirusTotal : https://www.virustotal.com/gui/home/upload VirusTotal www.virust..
abex’ crackme #4, 5
ยท
Study/Reversing
1. abex’ crackme #4 ์‹คํ–‰ํ•ด๋ณด๋‹ˆ ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ์ฐฝ์ด ๋œฌ๋‹ค. ๊ฐ’์„ ์ œ๋Œ€๋กœ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด Registered ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, ์ด ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•œ๋‹ค. Immunity Debugger๋ฅผ ์ด์šฉํ•ด ๋””๋ฒ„๊น…ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. VB ์—”์ง„์˜ ๋ฉ”์ธํ•จ์ˆ˜(ThunRTMain)๋ฅผ ํ˜ธ์ถœ(CALL)๋˜๋Š” ๊ฒƒ์„ ๋ณด์•„ visual basicํŒŒ์ผ์ด๋‹ค. ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ํ™•์ธํ•ด๋ณด์•˜๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์˜ ๋ชฉ๋ก์„ ๋ณด๋ฉด __vbaStrCmp ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด ๋น„๊ต ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Variant (Integer)๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. https://learn.microsoft.com/en-us/office/vba/language/reference/use..
PE File Format (~ RVA to RAW)
ยท
Study/Reversing
*PE ํŒŒ์ผ์€ Windows ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ ํ˜•์‹์ด๋‹ค. - PE ํŒŒ์ผ์€ 32๋น„ํŠธ ํ˜•ํƒœ์˜ ์‹คํ–‰ ํŒŒ์ผ์„ ์˜๋ฏธํ•˜๋ฉฐ PE32๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. -> 64๋น„ํŠธ ํ˜•ํƒœ์˜ ์‹คํ–‰ํŒŒ์ผ์€ PE+ ๋˜๋Š” PE32+๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, PEํŒŒ์ผ์˜ ํ™•์žฅ ํ˜•ํƒœ์ด๋‹ค, // PE64 ์•„๋‹˜! 1. PE File Format (1) PE ํŒŒ์ผ์˜ ์ข…๋ฅ˜ ์ข…๋ฅ˜ ์ฃผ์š” ํ™•์žฅ์ž ์‹คํ–‰ ๊ณ„์—ด EXE, SCR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด DLL, OCX, CPL, DRV ๋“œ๋ผ์ด๋ฒ„ ๊ณ„์—ด SYS, VXD ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ๊ณ„์—ด OBJ - ์—„๋ฐ€ํžˆ ์ด์•ผ๊ธฐํ•˜๋ฉด, OBJ ํŒŒ์ผ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์ด๋‹ค. -> DLL, SYS ํŒŒ์ผ ๋“ฑ์€ ์…ธ(Explorer.exe)์—์„œ ์ง์ ‘ ์‹คํ–‰X But, ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ๋ฐฉ๋ฒ•(๋””๋ฒ„๊ฑฐ, ์„œ๋น„์Šค, ๊ธฐํƒ€)๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹คํ–‰์ด..
ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ/Lena's Reversing for Newbies
ยท
Study/Reversing
1. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ (1) Calling Convention(ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ) - 'ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ• ๊นŒ?'์— ๋Œ€ํ•œ ์ผ์ข…์˜ ์•ฝ์† - ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์Šคํƒ์„ ํ†ตํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค. - ์Šคํƒ์ด๋ž€ ํ”„๋กœ์„ธ์Šค์—์„œ ์ •์˜๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋ฉฐ ์•„๋ž˜ ๋ฐฉํ–ฅ(์ฃผ์†Œ๊ฐ€ ์ค„์–ด๋“œ๋Š” ๋ฐฉํ–ฅ)์œผ๋กœ ์ž๋ž€๋‹ค. ๋˜ํ•œ PE ํ—ค๋”์— ๊ทธ ํฌ๊ธฐ๊ฐ€ ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค. - ์ฆ‰, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค ๊ทธ๋ ‡๋‹ค๋ฉด, ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์Šคํƒ์— ๋“ค์–ด์žˆ๋˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค. ์Šคํƒ์— ์ €์žฅ๋œ ๊ฐ’์€ ์ž„์‹œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๊ฐ’์„ ์ง€์šฐ๊ฑฐ๋‚˜ ํ•˜๋ฉด ๋ถˆํ•„์š”ํ•˜๊ฒŒ CPU ์ž์›์„ ์†Œ๋ชจํ•œ๋‹ค. ์–ด์ฐจํ”ผ ๋‹ค์Œ์— ์Šคํƒ์— ๋‹ค๋ฅธ ๊ฐ’์„ ์ž…๋ ฅํ•  ๋•Œ ์ €์ ˆ๋กœ ๋ฎ์–ด์“ฐ์ด๋Š” ๋ฐ..
abex’ crackme #1, 2, 3
ยท
Study/Reversing
1. abex' crackme #1 ํŒŒ์ผ ์‹คํ–‰ -> 2๊ฐœ์˜ ๋ฉ”์‹œ์ง€ ์ฐฝ์„ ํ™•์ธ 3๊ฐœ์˜ ๋ฉ”์‹œ์ง€ ์ฐฝ์ด ๋œจ๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ํŒŒ์ผ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ฐฝ์ด ๋–ด๋˜ ๊ฒƒ์ด๊ณ , ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€์ฐฝ์„ ๋œฐ ๊ฒƒ์ด๋‹ค. ์‹œ์ž‘ ์ฃผ์†Œ์™€ EP๊ฐ€ ๋™์ผ : ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑ high language๋กœ ์ž‘์„ฑ๋˜์—ˆ์„ ๋•Œ ์•ž๋’ค์— ๋ถ™๋Š” stub code๊ฐ€ ์—†์Œ ์–ด์…ˆ๋ธ”๋ฆฌ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ - ๋ฉ”์‹œ์ง€์ฐฝ์— ์ ํ˜€์žˆ๋˜ ๋Œ€๋กœ GetDriveType() ํ•จ์ˆ˜์—์„œ CD-ROM ํƒ€์ž…์„ ์–ป์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. - ํ˜„์žฌ๋Š” root path๋ฅผ c๋กœ ํ–ˆ์œผ๋ฏ€๋กœ ํ•˜๋“œ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ๋˜์–ด์žˆ๋‹ค. - ExitProcess: ํ˜„์žฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๋ผ๋Š” ์˜๋ฏธ **ํ”„๋กœ์„ธ์Šค์™€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฐจ์ด : ์†Œํ”„ํŠธ์›จ์–ด๋กœ ํŒจํ‚ค์ง•๋œ ๋ชจ๋“  ๊ฑธ..
๋ฆฌํ‹€์—”๋””์–ธ ํ‘œ๊ธฐ๋ฒ• / ๋ ˆ์ง€์Šคํ„ฐ / ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด / ์Šคํƒ ํ”„๋ ˆ์ž„
ยท
Study/Reversing
1. ๋ฆฌํ‹€์—”๋””์–ธ ํ‘œ๊ธฐ๋ฒ• (1) ๋ฐ”์ดํŠธ ์˜ค๋”๋ง ์ปดํ“จํ„ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹ ๋น… ์—”๋””์–ธ(Big Endian)๊ณผ ๋ฆฌํ‹€ ์—”๋””์–ธ(Little Endian) ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์กด์žฌ ๋น…์—”๋””์–ธ - ์ˆœ์„œ๋Œ€๋กœ ํ‘œ๊ธฐ ๋ฆฌํ‹€ ์—”๋””์–ธ - ์—ญ์ˆœ์œผ๋กœ ํ‘œ๊ธฐ intel x86 CPU(Windows ๊ณ„์—ด)์ด ์‚ฌ์šฉ BYTE b = 0x12; //0x.. -> 16์ง„์ˆ˜ WORD w = 0x1234; DWORD dw = 0x12345678; char str[] = "abcde"; Type Name Size ๋น… ์—”๋””์–ธ ๋ฆฌํ‹€ ์—”๋””์–ธ BYTE b 1 [12] [12] WORD w 2 [12][34] [34][12] DWORD dw 4 [12][34][56][78] [78][56][34][12] char [] str 6 [61][62][..
๋ฆฌ๋ฒ„์‹ฑ ๊ธฐ์ดˆ / Hello World! ๋ฆฌ๋ฒ„์‹ฑ / ๋ฌธ์ž์—ด ํŒจ์น˜
ยท
Study/Reversing
0. ๋ฆฌ๋ฒ„์‹ฑ์ด๋ž€? - ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง: ์—ญ๊ณตํ•™ (1) ๋ฆฌ๋ฒ„์Šค ์ฝ”๋“œ ์—”์ง€๋‹ˆ์–ด๋ง - ์†Œํ”„ํŠธ์›จ์–ด ๋ถ„์•ผ์˜ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง (2) ๋ฆฌ๋ฒ„์‹ฑ ๋ถ„์„ ๋ฐฉ๋ฒ• ์ •์  ๋ถ„์„: ํŒŒ์ผ์˜ ๊ฒ‰๋ชจ์Šต์„ ๊ด€์ฐฐํ•˜์—ฌ ๋ถ„์„ ํŒŒ์ผ ์‹คํ–‰์—†์ด, ํŒŒ์ผ์˜ ์ข…๋ฅ˜๋‚˜ ํฌ๊ธฐ, ํ—ค๋” ์ •๋ณด ๋“ฑ์„ ํ†ตํ•ด ๋‚ด์šฉ์„ ํ™•์ธํ•œ๋‹ค ๋””์Šค์–ด์…ˆ๋ธ”๋Ÿฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ์ฝ”๋“œ์™€ ๊ทธ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ์ •์  ๋ถ„์„์˜ ๋ฒ”์ฃผ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋™์  ๋ถ„์„: ํŒŒ์ผ์„ ์ง์ ‘ ์‹คํ–‰์‹œ์ผœ, ๊ทธ ํ–‰์œ„๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๋””๋ฒ„๊น…์„ ํ†ตํ•˜์—ฌ ์ฝ”๋“œ ํ๋ฆ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋“ฑ์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋Š” ๋ฐฉ๋ฒ• ํŒŒ์ผ, ๋ ˆ์ง€์Šคํ† ๋ฆฌ, ๋„คํŠธ์›Œํฌ ๋“ฑ์„ ๊ด€์ฐฐํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ํ–‰์œ„๋ฅผ ๋ถ„์„ํ•œ๋‹ค ๋””๋ฒ„๊ฑฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค - ํ•„์ž๋Š” ๋จผ์ € ์ •์  ๋ถ„์„์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฉด์„œ ์˜ˆ์ธก ํ›„ ๋™์  ๋ถ„์„ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ..
mnzy๐ŸŒฑ
'Study/Reversing' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก
-->