์—…๋ฐ์ดํŠธ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
UpdatedAug 31, 2026

sogen โ€” Updated!

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

๊ณต์œ 


inspect.software score badge for momo5502/sogen

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

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

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

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

์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”: 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

์นดํ…Œ๊ณ ๋ฆฌ