Hack The Planet

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

reverse engineering 36

[๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ์›๋ฆฌ] DLL injection ์˜ˆ์ œ ์ฝ”๋“œ ํ•ด์„ค

Windows ๋ฉ”์‹œ์ง€ ํ›„ํ‚น Hookmain.cpp //HookMain.cpp #include "stdio.h" #include "conio.h" #include "windows.h" #define DEF_DLL_NAME "KeyHook.dll" #define DEF_HOOKSTART "HookStart" #define DEF_HOOKSTOP "HookStop" typedef void(*PFN_HOOKSTART)(); typedef void(*PFN_HOOKSTOP)(); void main() { HMODULE hDll = NULL; PFN_HOOKSTART HookStart = NULL; PFN_HOOKSTOP HookStop = NULL; char ch = 0; hDll = LoadLibraryA(DE..

reverse engineering 2021.07.11

[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 ๋ช…๋ น์ด ๋ถ„๊ธฐ์ ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์œ„์—์„œ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๋ฅผ ..