প্রকল্প সম্পর্কে

Sogen একটি ইউজারস্পেস ইমুলেটর যা প্রকৃত অপারেটিং সিস্টেম ছাড়াই উইন্ডোজ ও লিনাক্স প্রোগ্রাম চালায়, তাদের এক্সিকিউশনের উপর সম্পূর্ণ দৃশ্যমানতা ও নিয়ন্ত্রণ প্রদান করে। OS API পুনঃবাস্তবায়নের পরিবর্তে, এটি CPU ও সিসকল স্তরে বাইনারি ইমুলেট করে এবং প্রকৃত সিস্টেম DLL (যেমন ntdll, kernel32, user32) চালায়, ফলে আচরণ প্রকৃত OS-এর সাথে ঘনিষ্ঠভাবে মেলে। মূল ক্ষমতাসমূহ: - **প্রকৃত সিস্টেম DLL**: স্টাবের পরিবর্তে প্রকৃত উইন্ডোজ সিস্টেম লাইব্রেরি ব্যবহার করে। - **হুক ও রিরাইট**: মেমরি, নির্দেশ, সিসকল এবং API কল আটকানো ও পরিবর্তন করা যায়। - **নির্ভুল অভ্যন্তরীণ**: PE লোডিং (রিলোকেশন, TLS), উইন্ডোজ মেমরি টাইপ, SEH, থ্রেডিং, রেজিস্ট্রি, ফাইলসিস্টেম এবং নেটওয়ার্কিং সমর্থন করে। - **স্ন্যাপশট ও রিস্টোর**: সম্পূর্ণ স্টেট সিরিয়ালাইজেশন, দ্রুত ইন-মেমরি স্ন্যাপশট এবং মিনিডাম্প লোডিং। - **ক্রস-প্ল্যাটফর্ম**: উইন্ডোজ, লিনাক্স, ম্যাকOS, অ্যান্ড্রয়েড, iOS এবং ব্রাউজারে চলে, x86-64 ও arm64 সমর্থন করে। - **নির্ধারিত এক্সিকিউশন**: প্রতিটি নির্দেশ পর্যন্ত পুনরুত্পাদনযোগ্য রান। এটি একাধিক CPU ব্যাকএন্ড অফার করে: Unicorn Engine, icicle-emu, Hyper-V (WHP), KVM এবং FEX। GDB প্রোটোকল (যেমন IDA Pro-এর সাথে) বা অন্তর্নির্মিত ব্রাউজার ডিবাগারের মাধ্যমে ডিবাগিং সম্ভব, যা ইমুলেটর স্তরে কাজ করে এবং অ্যান্টি-ডিবাগ চেকের কাছে অদৃশ্য থাকে। নেটিভ GUI অ্যাপ ও গেম স্যান্ডবক্সে চলতে পারে, 3D অ্যাক্সিলারেশনের জন্য GPU প্যারাভার্চুয়ালাইজেশন এবং DXVK-এর মাধ্যমে Vulkan-এ অনুবাদ করে Direct3D 8/9/10/11 সমর্থন করে। Python বাইন্ডিং `pip install sogen`-এর মাধ্যমে পাওয়া যায়, যার জন্য একটি ইমুলেশন রুট প্রয়োজন (ডাউনলোডযোগ্য বা নিজে তৈরি)। আলাদা রিপোজিটরিতে অনানুষ্ঠানিক Dart বাইন্ডিং রয়েছে। প্রকল্পটি C++-এ নির্মিত এবং ভিজ্যুয়াল স্টুডিও সহ উইন্ডোজের জন্য একটি দ্রুত-শুরু নির্দেশিকা অন্তর্ভুক্ত করে, যাতে সাবমডিউল সহ ক্লোনিং, CMake প্রিসেট, বিল্ডিং এবং বিশ্লেষণের জন্য রেজিস্ট্রি ডাম্প তৈরি করা জড়িত।