๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Study/study17

PE ๊ตฌ์กฐ ํŒŒ์‹ฑ (PE Structure Parsing) ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” PE ๊ตฌ์กฐ๋ฅผ ํŒŒ์‹ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ตฌ์กฐ์ฒด์ธ PEB(Process Environment Block)๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ๋กœ๋“œ๋œ ๋ชจ๋“ˆ(DLL)์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค._PEB ํ•„๋“œ Ldr์€ _PEB_LDR_DATA ๊ตฌ์กฐ์ฒด์˜ ํฌ์ธํ„ฐ์ž…๋‹ˆ๋‹ค. _PEB_LDR_DATA ๊ตฌ์กฐ์ฒด๋Š” ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๋กœ๋“œ๋œ ๋ชจ๋“ˆ๋“ค์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ์ฒด์—๋Š” _LIST_ENTRY ํƒ€์ž…์˜ ๋ฉค๋ฒ„(InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค._LIST_ENTRY ํƒ€์ž…์€ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๋‘ ํฌ์ธํ„ฐ Flink, Blink๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํฌ์ธํ„ฐ๋ฅผ ํ†ต.. 2025. 6. 11.
COM(Component Object Model)์˜ ๊ฐœ๋… ์˜ค๋Š˜์€ COM(Component Object Model) ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. โ—‹ COM(Component Object Model) ๊ฐœ๋…Microsoft์—์„œ ๊ฐœ๋ฐœํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„, RPC, ๋ถ„์‚ฐ ๊ฐ์ฒด์™€ ๊ฐ™์€ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ๋ชจ๋ธ์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์–ธ์–ด๋กœ๋“  COM ๊ฐ์ฒด๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ ๊ธฐ๋Šฅ์„ ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ—‹ COM ๊ตฌ์กฐ์˜ ํ•ต์‹ฌ ์š”์†ŒCOM ๊ฐ์ฒด์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์ธ์Šคํ„ด์Šค(instance)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.์ตœ์†Œํ•œ IUnknown ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์˜ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.IUnknown์€ ๋ชจ๋“  COM ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋ฏ€๋กœ COM์˜ ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•ด์•ผ๋˜๋Š”.. 2025. 4. 21.
์œ„ํ˜‘ ํ–‰์œ„์ž ๋ถ„๋ฅ˜ ์ฒด๊ณ„ ๋ฐ ๋ช…๋ช…๋ฒ• ์˜ค๋Š˜์€ ์œ„ํ˜‘ ํ–‰์œ„์ž ๋˜๋Š” ๊ณต๊ฒฉ ๊ทธ๋ฃน์˜ ๋ถ„๋ฅ˜ ์ฒด๊ณ„์™€ ๋ช…๋ช…๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.   ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ(Microsoft)์ดˆ๊ธฐ์—๋Š” THALLIUM(ํƒˆ๋ฅจ), CERIUM(์„ธ๋ฅจ). ZINC(์•„์—ฐ), OSMIUM(์˜ค์Šค๋ฎด)๊ณผ ๊ฐ™์€ ์›์†Œ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฆ„์„ ๋ช…๋ช…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ๋Š” ๋‚ ์”จ ์ฃผ์ œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ช…๋ช… ๋ถ„๋ฅ˜๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.Microsoft๋Š” ์œ„ํ˜‘ ํ–‰์œ„์ž๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 5๊ฐ€์ง€ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๊ตญ๊ฐ€ ์ง€์› ํ–‰์œ„์ž(Nation-state actors)๊ตญ๊ฐ€ ์ง€์›(nation/state)์„ ๋ฐ›์œผ๋ฉฐ ํ–‰๋™ํ•˜๋Š” ์œ„ํ˜‘ ํ–‰์œ„์ž์ž…๋‹ˆ๋‹ค.์ด ์œ„ํ˜‘ ํ–‰์œ„์ž๋Š” ๋Œ€๋ถ€๋ถ„ ๊ฐ„์ฒฉ ๋˜๋Š” ๊ฐ์‹œ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋ฉฐ ์ •๋ถ€ ๊ธฐ๊ด€, ์ •๋ถ€ ๊ด€๋ จ ์กฐ์ง, ๋น„์ •๋ถ€ ์กฐ์ง ๋˜๋Š” ์‹ฑํฌ ํƒฑํฌ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ž‘์ „๊ณผ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.์žฌ์ •์  ๋™๊ธฐ์˜ ํ–‰์œ„์ž(Fin.. 2025. 4. 2.
Managed code / Unmanaged code / Native code ์ฐจ์ด Managed code[์ •์˜]๊ด€๋ฆฌํ˜• ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ [ํŠน์ง•]CLR(Common Language Runtime)์—์„œ ์‹คํ–‰๋˜๋ฉฐ CLR์€ ๋‹ค์–‘ํ•œ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection)์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ํ•ด์ œ๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜ํ•œ ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.์ฝ”๋“œ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๊ด€๋ฆฌํ˜• ํ™˜๊ฒฝ์ด ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค..NET Framework๋‚˜ Java ๊ฐ™์€ ๊ด€๋ฆฌํ˜• ๋Ÿฐํƒ€์ž„์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.CLR์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋””๋ฒ„๊น…๊ณผ ํ”„๋กœํŒŒ์ผ๋ง์„ ์ง€์›ํ•ด์ค๋‹ˆ๋‹ค. [์˜ˆ์‹œ]C#VB.NET  Unmanaged code[์ •์˜]์šด์˜์ฒด์ œ๋‚˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์˜ ์ž๋™ ๊ด€๋ฆฌ ์—†์ด ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ [ํŠน์ง•]์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜.. 2025. 2. 27.
๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ์•”ํ˜ธํ™”๋œ ๋ฌธ์ž์—ด ์ถ”์ถœ(๋ณตํ˜ธํ™”)ํ•˜๊ธฐ ์•…์„ฑ์ฝ”๋“œ๋Š” ํ”ํžˆ XOR ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๋‚œ๋…ํ™”ํ•˜๊ณ  ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊น๋‹ˆ๋‹ค.์ด๋ฅผ ๋ณตํ˜ธํ™”ํ•˜๋Š” python ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (์Šคํฌ๋ฆฝํŠธ๋Š” ๋ชจ๋‘ Alexandre Borges์˜ "Malware Analysis Series(MAS) – Article 2"๋ฅผ ์ฐธ์กฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.) ์ƒ˜ํ”Œ ํ•ด์‹œ(SHA256)๋Š” 73e4969db4253f9aeb2cbc7462376fb7e26cc4bb5bd23b82e2af0eaaf5ae66a8์ž…๋‹ˆ๋‹ค.ํ•ด๋‹น ์ƒ˜ํ”Œ์€ Qakbot ์•…์„ฑ์ฝ”๋“œ๋กœ ์–ธํŒจํ‚นํ•œ ํ›„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๋จผ์ € ์•…์„ฑ์ฝ”๋“œ์˜ ์ž์ฒด ๋ณตํ˜ธํ™” ํ•จ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋ณตํ˜ธํ™” ๋ฃจํ‹ด sub_100085dC๋ฅผ ๋ณด๋ฉด, ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” ์•”ํ˜ธํ™”๋œ ๋ฌธ์ž์—ด๋กœ 0x1001D5A8์— ์žˆ๊ณ  ์ƒˆ ๋ฒˆ์งธ ์ธ์ˆ˜์ธ ๋ณตํ˜ธํ™” ํ‚ค๋Š” ์ฃผ์†Œ 0x1001E3F8์— ์žˆ์Šต๋‹ˆ๋‹ค.. 2025. 2. 6.
Dynamic ์•ˆํ‹ฐ ๋””๋ฒ„๊น…(Anti Debugging) ๊ธฐ๋ฒ•๊ณผ ์šฐํšŒ ์˜ค๋Š˜์€ Dynamic ์•ˆํ‹ฐ ๋””๋ฒ„๊น… ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.Dynamic ์•ˆํ‹ฐ ๋””๋ฒ„๊น… ๊ธฐ๋ฒ•์€ ํ•ต์‹ฌ ์ฝ”๋“œ(OEP)๋กœ ๊ฐ€์ง€ ๋ชปํ•˜๋„๋ก ํŠธ๋ ˆ์ด์‹ฑ์„ ์ง€์†์ ์œผ๋กœ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค.  1. ์˜ˆ์™ธ (Exception)์ฒซ ๋ฒˆ์งธ๋Š” ์˜ˆ์™ธ๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.์ผ๋ฐ˜ ์‹คํ–‰๊ณผ ๋””๋ฒ„๊ฑฐ ์‹คํ–‰์˜ ์ฐจ์ด๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์‹คํ–‰์€ ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ SEH๋ฅผ ํ˜ธ์ถœํ•˜์ง€๋งŒ ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ์‹คํ–‰ํ•˜๋ฉด ๋””๋ฒ„๊ฑฐ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋™์ž‘๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์™ธ๋ฅผ ๋งŒ๋‚˜๋ฉด ๋””๋ฒ„๊ฑฐ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ (๊ฐ€๋กœ์ฑ„์„œ) ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.  1.1. SEH (Structured Exception Handling)SEH๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ฒด์ธ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ์—์„œ ํ•ด๋‹น ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋‹ค์Œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ๋กœ ์˜ˆ์™ธ๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ๋Š” .. 2024. 12. 17.