
🪅 विंडोज़ और लिनक्स यूज़रस्पेस एमुलेटर

Sogen वास्तविक ऑपरेटिंग सिस्टम के बिना Windows और Linux प्रोग्राम चलाता है, और आपको उनके द्वारा किए जाने वाले हर काम को देखने और नियंत्रित करने देता है।
हजारों OS API को दोबारा लागू करने के बजाय, Sogen बाइनरी को CPU और syscall स्तर पर अनुकरण (emulate) करता है और वास्तविक सिस्टम DLL चलाता है, इसलिए व्यवहार वास्तविक OS से काफी मिलता-जुलता होता है।
हर निर्देश, मेमोरी एक्सेस और API कॉल को हुक, निरीक्षण या फिर से लिखा जा सकता है, रन पूरी तरह से नियतात्मक (deterministic) होते हैं, और पूरे अनुकरणकर्ता की स्थिति को स्नैपशॉट और पुनर्स्थापित किया जा सकता है।
C++ में निर्मित और आपकी पसंद के CPU बैकएंड द्वारा संचालित:
इसे आज़माएं: sogen.dev
उन टूल्स के साथ डिबग करें जिन्हें आप पहले से जानते हैं, जैसे IDA Pro या GDB, GDB प्रोटोकॉल के माध्यम से, या अंतर्निहित इन-ब्राउज़र डिबगर का उपयोग करें।
डिबगर अनुकरणकर्ता स्तर पर, प्रक्रिया के बाहर चलता है, इसलिए यह एंटी-डिबग जांचों से अदृश्य रहता है।

नेटिव GUI ऐप्स चलते हैं, जिनमें काम करने वाली विंडो, डायलॉग और कंट्रोल शामिल हैं।
GPU पैरावर्चुअलाइजेशन आपके वास्तविक GPU पर 3D एक्सेलेरेशन सक्षम करता है, जबकि Hyper-V बैकएंड कोड को आपके CPU पर नेटिव रूप से चलाता है। गेम्स के लिए पर्याप्त तेज़।
Direct3D 8/9/10/11 शीर्षक DXVK के माध्यम से चलते हैं, जो GPU ब्रिज के ऊपर Direct3D को Vulkan में अनुवादित करता है।

स्लाइड्स के लिए यहां क्लिक करें।
इसके साथ इंस्टॉल करें:
pip install sogen
Python बाइंडिंग्स के लिए एक अनुकरण रूट (emulation root) की आवश्यकता होती है। आप एक तैयार रूट यहां डाउनलोड कर सकते हैं, या wiki में दिए गए निर्देशों का पालन करके अपना खुद का बना सकते हैं।
उदाहरण:
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 बाइंडिंग्स एक अलग रिपॉजिटरी में उपलब्ध हैं।
[!TIP]
Windows, Linux, macOS, ... पर अनुकरणकर्ता को बनाने और चलाने के बारे में अधिक विवरण के लिए Wiki देखें।
1. कोड चेकआउट करें:
git clone --recurse-submodules https://github.com/momo5502/sogen.git
2. क्लोन की गई निर्देशिका में x64 Development Command Prompt में निम्न कमांड चलाएं:
cmake --preset=vs2022
3. build/vs2022/sogen.sln पर उत्पन्न समाधान (solution) बनाएं
4. grab-registry.bat को व्यवस्थापक के रूप में चलाकर एक रजिस्ट्री डंप बनाएं और इसे analyzer.exe के बगल में artifacts फ़ोल्डर में रखें
5. अपनी पसंद का प्रोग्राम चलाएं:
analyzer.exe C:\example.exe