Hack The Planet

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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 61

[Anti-Reversing] IsDebuggerPresent() ๊ตฌํ˜„

Visual studio์˜ inline assembly๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„. bool isDebuggerPresent(){ bool returnValue = false; __asm{ push eax mov eax, fs:[0x30] //eax = &PEB mov eax, [eax+0x02] //eax = *(&(eax+0x02)) mov dword ptr [returnValue], eax pop eax } return returnValue; } IsDebuggerPresent() ํ•จ์ˆ˜์˜ ์ž‘๋™ ์›๋ฆฌ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค. ํ•ด๋‹น ํ•จ์ˆ˜๋Š” PEB ๊ตฌ์กฐ์ฒด์˜ ๋‘ ๋ฒˆ์งธ ๋ฉค๋ฒ„์ธ BeingDebugged ๊ฐ’์„ ์ฝ์–ด์˜ค๊ณ , ์ด ๊ฐ’์œผ๋กœ ๋””๋ฒ„๊น… ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. BeingDebugged != 0 ์ด๋ผ๋ฉด ๋””๋ฒ„๊น… ์ค‘, BeingDebugge..

reverse engineering 2022.08.09

[Visual Studio] Static-Link๋กœ ์ปดํŒŒ์ผ ํ•˜๋Š” ๋ฒ•

๋ชฉ์ฐจ ๊ธ€์„ ์“ฐ๋Š” ์ด์œ  ์ปดํŒŒ์ผ์ด๋ž€ DLL์ด๋ž€ Dynamic-Link๋ž€ Static-Link๋ž€ Static-Link ์˜ต์…˜์œผ๋กœ ์ปดํŒŒ์ผ ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋”ฐ๋ˆ๋”ฐ๋ˆํ•œ ์–ด์ œ์˜ ์ผ์ด๋‹ค. ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ(๋ง์ด ๊ฑฐ์ฐฝํ•˜์ง€ ์‚ฌ์‹ค์ƒ ๋งคํฌ๋กœ๋‹ค.)์„ ๋นŒ๋“œํ•˜๊ณ  ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์˜ฎ๊ฒผ๋”๋‹ˆ, ํŠน์ • dll์ด ์—†๋‹ค๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ฑ‰์–ด๋‚ด๋Š” ๋ฐ”๋žŒ์— ์ฒ˜์ฐธํžˆ ์‹คํŒจํ–ˆ๋‹ค. ๊ฒฐ๊ตญ ๊ณ ์น˜๊ธด ํ–ˆ์ง€๋งŒ ๋Šฆ์—ˆ์œผ๋‹ˆ... ์ด๊ฑธ ์ฐพ์•„๋ณด๋Š” ๋‹น์‹ ๋“ค๋„ ๋‚˜์™€ ๊ฐ™์€ ๋‚œํ•ญ์„ ๊ฒช์ง€ ์•Š์•˜์œผ๋ฉด ํ•ด์„œ ์ด๋ ‡๊ฒŒ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ปดํŒŒ์ผ์— ๊ด€ํ•ด ์ •๋ฆฌํ•œ๋‹ค. ๋ฐฉ๋ฒ•๋ก ์— ์•ž์„œ์„œ ์ปดํŒŒ์ผ๊ณผ ๋งํฌ ๋ฐฉ์‹์— ๊ด€ํ•ด ๊ฐ„๋‹จํžˆ ์ด์•ผ๊ธฐ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค. ๋ฐ”์˜๋ฉด ๋ฐ‘์œผ๋กœ ๋‚ด๋ ค์„œ ๋ถ‰์€ ๊ธ€์”จ๋กœ ์“ฐ์ธ '์ •์  ๋งํฌ ์˜ต์…˜์œผ๋กœ ์ปดํŒŒ์ผ ํ•˜๋Š” ๋ฒ•'๋ถ€ํ„ฐ ๋ณด์ž. ์ปดํŒŒ์ผ์ด๋ž€? ๋”๋ณด๊ธฐ ์ด ๊ธ€์€ ์ปดํŒŒ์ผ๊ณผ ์ปดํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•ด ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃจ์ง€..

programming 2022.06.11

์•”ํ˜ธํ•™ ๊ธฐ์ดˆ (1) ๊ณ ์ „ ์•”ํ˜ธ

์•”ํ˜ธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?์•”ํ˜ธ๋ž€ ์ •๋ณด๋ฅผ ์•Œ์•„๋ณผ ์ˆ˜ ์—†๋„๋ก ํŠน์ •ํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ์„œ ์ •๋ณด๋ฅผ ๊ฐ€๊ณตํ•˜๊ฑฐ๋‚˜, ๊ฐ€๊ณต๋œ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ํ•ด๋…ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ๋‹จ๊ณ„๋ฅผ ์ •์˜ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. [1] ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด, ์ •๋ณด์˜ ๋ณดํ˜ธ๋ฅผ ๋ชฉ์ ์œผ๋กœ ์‚ผ๊ณ  ์ œ 3์ž๊ฐ€ ์ •๋ณด๋ฅผ ์•Œ์•„๋ณผ ์ˆ˜ ์—†๊ฒŒ๋” ๊ฐ€๊ณตํ•˜๋Š” ๊ทธ ๋ฐฉ์‹์„ ๋œปํ•œ๋‹ค. ๊ณ ์ „ ์•”ํ˜ธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?    : ํ˜„๋Œ€์—๋Š” ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์˜› ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์ผ์ปซ๋Š” ๋ง์ด๋‹ค. ์•”ํ˜ธํ•™ ํ•™์Šต์— ์žˆ์–ด์„œ ๊ณ ์ „ ์•”ํ˜ธ๋ฅผ ๊ณต๋ถ€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ?    : ์ปดํ“จํ„ฐ ๊ฐœ๋ฐœ ์ด์ „, ์†์ด๋‚˜ ๊ฐ„๋‹จํ•œ ๋„๊ตฌ์— ์˜์กดํ•ด์„œ ์•”๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๋˜ ๋น„๊ต์  ์‰ฌ์šด ๋‚œ์ด๋„์˜ ์•”ํ˜ธ์ด๊ธฐ์— ์ดˆ๋ณด์ž๊ฐ€ ์•”ํ˜ธ์˜ ์›๋ฆฌ ๋ฐ ํŠน์„ฑ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์›๋ฆฌ๋ฅผ ์ฐจ์šฉํ•จ์œผ๋กœ์จ ์•”ํ˜ธ๋ฅผ ๊นŠ๊ฒŒ ์ ‘ํ•ด๋ณด์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ์ด ์•”ํ˜ธ์— ๋Œ€ํ•œ ๋„“์€ ์‹œ๊ฐ์„ ๊ฐ–๊ฒŒ ํ•œ๋‹ค.  ์•”ํ˜ธํ•™ ๊ธฐ์ดˆ ์šฉ์–ด ์ •๋ฆฌ..

cryptography 2022.05.20

[Suninatas] reversing - 11๋ฒˆ ๋ฌธ์ œํ’€์ด

๋ฌธ์ œ ํŒŒ์ผ์€ ์—ฌ๊ธฐ์—.... Game 11 suninatas.com ๋ธํŒŒ์ด๋กœ ๋งŒ๋“  ๋ฌธ์ œ๋‹ค. ๋ฌธ์ œ๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค. ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฐ’์„ ๋„ฃ์€ ๋’ค Register ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ž…๋ ฅ ์นธ์ด ์ดˆ๊ธฐํ™”๋œ๋‹ค. x32dbg๋กœ ์—ด์–ด๋ดค๋‹ค. ๋Œ€์ถฉ ์„ฑ๊ณต ์‹œ์— ๋œฐ๋ฒ•ํ•œ congratulation ์ด๋ผ๋Š” ๋ฌธ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋ถ„์„ ๋Œ€์ƒ์„ ํŠน์ •ํ–ˆ๋‹ค. 004050355 ์ฃผ์†Œ์—์„œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด 0์ด์–ด์•ผ ๋ฌด์‚ฌํžˆ ์„ฑ๊ณต ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฌธ์ œ์˜ ํŠน์„ฑ ์ƒ ์ถ”์ธกํ•˜๊ฑด๋Œ€ ์ด๋Š” ์ธ์ž๋กœ ๋“ค์–ด์˜ค๋Š” edx์™€ ebx๋ฅผ ๋น„๊ตํ•ด ๊ฐ™๋‹ค๋ฉด 0, ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ผ ๊ฒƒ์ด๋‹ค. (strcmp() ํ•จ์ˆ˜์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•  ๋“ฏ ํ•˜๋‹ค.) 004050355 ์ฃผ์†Œ์— bp๋ฅผ ๊ฑธ๊ณ  F9๋กœ ์—ฌ๊ธฐ๊นŒ์ง€ ์‹คํ–‰์‹œ์ผœ ๋ณด๊ฒ ๋‹ค. ์ž…๋ ฅ ๊ฐ’์œผ๋กœ๋Š” Hi๋ฅผ..