Skip to content
KitploitKITPLOIT
๋„๊ตฌ์ต์Šคํ”Œ๋กœ์ž‡๋ธ”๋กœ๊ทธ
Log in
์ œ์ถœ
๋„๊ตฌ์ต์Šคํ”Œ๋กœ์ž‡๋ธ”๋กœ๊ทธ
์ œ์ถœ

ํ•ดํ‚น, ์นจํˆฌ ํ…Œ์ŠคํŠธ ๋ฐ ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ๋„๊ตฌ๋ฅผ ๋‹น์‹ ์˜ ๋ณด์•ˆ ๋ฌด๊ธฐ๊ณ ์—!

Kitploit์€ ํ•ดํ‚น, ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ๋ฐ ์นจํˆฌ ํ…Œ์ŠคํŠธ ๋„๊ตฌ ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ตœ์‹  ํ”„๋กœ์ ํŠธ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•˜์—ฌ ์ทจ์•ฝ์ ์„ ์ฐพ๊ณ , ์‹œ์Šคํ…œ์„ ๋ถ„์„ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ , ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜์„ธ์š”.

ํ”ผ๋“œ๋ฌธ์˜๊ฐœ์ธ์ •๋ณดยฉ 2026 Kitploit

๋„๊ตฌ ๋””๋ ‰ํ† ๋ฆฌ

์นดํ…Œ๊ณ ๋ฆฌ

๋ชจ๋“  ์นดํ…Œ๊ณ ๋ฆฌ ๋ณด๊ธฐ
Loading categories
๋„๊ตฌ/GitHubGitHub/momo5502/sogen
Dynamic Analysis (Sandboxing)Reverse EngineeringDebuggersSecurity VirtualizationMalware AnalysisBinary Analysis
GitHubmomo5502/sogen

sogen

๐Ÿช… Windows ๋ฐ Linux ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์—๋ฎฌ๋ ˆ์ดํ„ฐ

์ €์žฅ์†Œ ๋ณด๊ธฐ
3.5k226397์‹œ๊ฐ„ 38๋ถ„ ์ „Kitploit ๊ฒ€ํ†  ์™„๋ฃŒ

์ธ๊ธฐ

๋ชจ๋‘ ๋ณด๊ธฐ โ†’

์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”.

๋ชจ๋“  ๋„๊ตฌ ํƒ์ƒ‰

๋„๊ตฌ ์ปฌ๋ ‰์…˜์„ ๋‘˜๋Ÿฌ๋ณด์„ธ์š”

๋ชจ๋“  ๋„๊ตฌ ๋ณด๊ธฐ โ†’
๊ณต์œ 
์›น์‚ฌ์ดํŠธ


inspect.software score badge for momo5502/sogen

Sogen์€ ์‹ค์ œ ์šด์˜ ์ฒด์ œ ์—†์ด Windows ๋ฐ Linux ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…์„ ๋ณด๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

์ˆ˜์ฒœ ๊ฐœ์˜ OS API๋ฅผ ์žฌ๊ตฌํ˜„ํ•˜๋Š” ๋Œ€์‹ , Sogen์€ CPU ๋ฐ ์‹œ์Šคํ…œ ์ฝœ ์ˆ˜์ค€์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ  ์‹ค์ œ ์‹œ์Šคํ…œ DLL์„ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ๋™์ž‘์ด ์‹ค์ œ OS์™€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ช…๋ น์–ด, ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ฐ API ํ˜ธ์ถœ์„ ํ›„ํ‚น, ๊ฒ€์‚ฌ ๋˜๋Š” ์žฌ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹คํ–‰์€ ์™„์ „ํžˆ ๊ฒฐ์ •์ ์ด๊ณ , ์—๋ฎฌ๋ ˆ์ดํ„ฐ ์ „์ฒด ์ƒํƒœ๋ฅผ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ์„ ํƒํ•œ CPU ๋ฐฑ์—”๋“œ๋กœ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค:

  • Unicorn Engine
  • icicle-emu
  • Hyper-V (WHP)
  • KVM
  • FEX

์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”: sogen.dev
ย 

์ฃผ์š” ๊ธฐ๋Šฅ

  • ์‹ค์ œ ์‹œ์Šคํ…œ DLL: ์žฌ๊ตฌํ˜„๋œ ์Šคํ…์ด ์•„๋‹Œ ์‹ค์ œ ntdll, kernel32 ๋ฐ user32๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • ํ›„ํ‚น ๋ฐ ์žฌ์ž‘์„ฑ: ๋ฉ”๋ชจ๋ฆฌ, ๋ช…๋ น์–ด, ์‹œ์Šคํ…œ ์ฝœ ๋ฐ API ํ˜ธ์ถœ์„ ๊ฐ€๋กœ์ฑ„๊ณ  ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • ์ถฉ์‹คํ•œ Windows ๋‚ด๋ถ€ ๊ตฌ์กฐ: PE ๋กœ๋”ฉ(์žฌ๋ฐฐ์น˜, TLS), Windows ๋ฉ”๋ชจ๋ฆฌ ์œ ํ˜•, SEH, ์Šค๋ ˆ๋”ฉ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ๋„คํŠธ์›Œํ‚น
  • ์Šค๋ƒ…์ƒท ๋ฐ ๋ณต์›: ์ „์ฒด ์ƒํƒœ ์ง๋ ฌํ™”, ๋น ๋ฅธ ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šค๋ƒ…์ƒท ๋ฐ ๋ฏธ๋‹ˆ๋คํ”„ ๋กœ๋”ฉ
  • ์–ด๋””์„œ๋‚˜ ์‹คํ–‰: Windows, Linux, macOS, Android, iOS ๋ฐ ๋ธŒ๋ผ์šฐ์ €์—์„œ x86-64 ๋ฐ arm64 ์ง€์›
  • ๊ฒฐ์ •์  ์‹คํ–‰: ๋ชจ๋“  ์‹คํ–‰์ด ๋ช…๋ น์–ด ์ˆ˜์ค€๊นŒ์ง€ ์žฌํ˜„ ๊ฐ€๋Šฅ
    ย 

๋ฏธ๋ฆฌ๋ณด๊ธฐ

Preview

ํƒ์ง€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋””๋ฒ„๊น…

IDA Pro ๋˜๋Š” GDB์™€ ๊ฐ™์ด ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ๋„๊ตฌ๋ฅผ GDB ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๋””๋ฒ„๊น…ํ•˜๊ฑฐ๋‚˜, ๋‚ด์žฅ๋œ ๋ธŒ๋ผ์šฐ์ € ๋‚ด ๋””๋ฒ„๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
๋””๋ฒ„๊ฑฐ๋Š” ํ”„๋กœ์„ธ์Šค ์™ธ๋ถ€์˜ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ์•ˆํ‹ฐ๋””๋ฒ„๊น… ๊ฒ€์‚ฌ์— ๋…ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Debugging a process running in Sogen from an IDA Pro remote GDB session ย 

์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ๊ฒŒ์ž„ ์‹คํ–‰

๋„ค์ดํ‹ฐ๋ธŒ GUI ์•ฑ์ด ์ฐฝ, ๋Œ€ํ™” ์ƒ์ž ๋ฐ ์ปจํŠธ๋กค๊ณผ ํ•จ๊ป˜ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
GPU ๋ฐ˜๊ฐ€์ƒํ™”๋ฅผ ํ†ตํ•ด ์‹ค์ œ GPU์—์„œ 3D ๊ฐ€์†์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Hyper-V ๋ฐฑ์—”๋“œ๋Š” CPU์—์„œ ์ฝ”๋“œ๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ๋น ๋ฆ…๋‹ˆ๋‹ค.
Direct3D 8/9/10/11 ํƒ€์ดํ‹€์€ DXVK๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋˜๋ฉฐ, GPU ๋ธŒ๋ฆฌ์ง€ ์œ„์—์„œ Direct3D๋ฅผ Vulkan์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

A game running inside the Sogen emulator ย 

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

YouTube Video

์Šฌ๋ผ์ด๋“œ๋Š” ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.
ย 

Python ๋ฐ”์ธ๋”ฉ

์„ค์น˜ ๋ฐฉ๋ฒ•:

pip install sogen

Python ๋ฐ”์ธ๋”ฉ์—๋Š” ์—๋ฎฌ๋ ˆ์ด์…˜ ๋ฃจํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ค€๋น„๋œ ๋ฃจํŠธ๋Š” ์—ฌ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜, ์œ„ํ‚ค์˜ ์ง€์นจ์— ๋”ฐ๋ผ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

import sogen

emu = sogen.windows.create_application("c:/test-sample.exe", emulation_root="./root")


def on_module_load(module):
    if module.name.lower() == "test-sample.exe":
        emu.hooks.memory_execution_at(module.entry_point, lambda address: print(f"hit entry point: 0x{address:x}"))

emu.callbacks.on_module_load = on_module_load
emu.start()
print(emu.process.exit_status)

์„ค์ • ์„ธ๋ถ€ ์‚ฌํ•ญ๊ณผ ๋” ํฐ ์˜ˆ์‹œ๋Š” examples/python/README.md๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
ย 

๋น„๊ณต์‹ ๋ฐ”์ธ๋”ฉ

Dart ๋ฐ”์ธ๋”ฉ์€ ๋ณ„๋„ ์ €์žฅ์†Œ์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
ย 

๋น ๋ฅธ ์‹œ์ž‘ (Windows + Visual Studio)

[!TIP]
Windows, Linux, macOS ๋“ฑ์—์„œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Wiki๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

1. ์ฝ”๋“œ๋ฅผ ์ฒดํฌ์•„์›ƒํ•ฉ๋‹ˆ๋‹ค:

git clone --recurse-submodules https://github.com/momo5502/sogen.git

2. ๋ณต์ œ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ x64 ๊ฐœ๋ฐœ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

cmake --preset=vs2022

3. build/vs2022/sogen.sln์— ์ƒ์„ฑ๋œ ์†”๋ฃจ์…˜์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค

4. grab-registry.bat์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋คํ”„๋ฅผ ์ƒ์„ฑํ•˜๊ณ , analyzer.exe ์˜†์˜ artifacts ํด๋”์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค

5. ์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

analyzer.exe C:\example.exe
๋„๊ตฌ ๋‹ค์šด๋กœ๋“œ