XVDTOOL هو أداة سطر أوامر C# لمعالجة حزم XVD ONE XVD/XVC. يمكنه طباعة معلومات مفصلة حول رؤوس الحزم ، والاستقالة ، وإعادة صياغة ، و en/decrypt والتحقق من تكامل البيانات في الحزمة ، ويمكنه أيضًا تحويل ملفات XVD التي تم فك تشفيرها إلى VHD أو استخراج نظام الملفات نفسه.
حتى الآن لم يتم اختباره إلا بحزم DEV التي يتم تحريكها (والتي تستخدم مفتاح توزيع مختلف 256 بت مختلف غير متصل بالإنترنت (ODK) لحزم البيع بالتجزئة) ، حيث لا يزال مفتاح البيع بالتجزئة غير معروف. هذا يجعل الأداة غير مجدية لـ 90 ٪ من الأشخاص ، لكن المطورين الذين يبحثون في كيفية عمل ملفات XVD سيجدون رسم خرائط مفصل لهياكل XVD والطرق شبه المكتملة للتلاعب بها.
ومع ذلك ، لا يتم توفير مفاتيح تشفير بهذه الأداة ، فسيتعين عليك العثور عليها بنفسك. وتجزئة لمفاتيح DEV أدناه. إذا كان لديك مجموعة تطوير Xbox One أو إطار عمل GamingServices (Windows10-exclusion) ، فيمكنك استخدام DurangokeyExtractor لاستخراج المفاتيح من هناك.
كما تم تضمينها أداة لاستخراج الملفات من نظام ملفات التمهيد XBFS (Xbox Boot) داخل Xbox One Nand ، استنادًا إلى عمل Nandone الأصلي لـ Tuxuser مع بعض الإضافات الصغيرة. شكرا كيبوب لتوفير OpenXVD.
Usage : xvdtool.exe [parameters] [filename]
Parameters:
-h (-help) - print xvdtool usage
-i (-info) - print info about package
-wi (-writeinfo) - write info about package to [filename].txt
-o (-output) <output-path> - specify output filename
-m (-mount) - mount package
-um (-unmount) - unmount package
-mp (-mountpoint) - Mount point for package (e.g. "X:")
-lk (-listkeys) - List known keys including their hashes / availability
-signfile <path-to-file> - Path to xvd sign key (RSA)
-odkfile <path-to-file> - Path to Offline Distribution key
-cikfile <path-to-file> - Path to Content Instance key
-sk (-signkey) <key-name> - Name of xvd sign key to use
-odk (-odkid) <id> - Id of Offline Distribution key to use (uint)
-cik (-cikguid) <GUID> - Guid of Content Instance key to use
-nd (-nodatahash) - disable data hash checking, speeds up -l and -f
-ne (-noextract) - disable data (embedded XVD/user data) extraction, speeds up -l and -f
-eu (-decrypt) - decrypt output xvd
-ee (-encrypt) - encrypt output xvd
XVDs will have a new CIK generated (if CIK in XVD header is empty), which will be encrypted with the ODK and stored in the XVD header
-hd (-removehash) - remove hash tree/data integrity from package
-he (-addhash) - add hash tree/data integrity to package
-md (-removemdu) - remove mutable data (MDU) from package
-r (-rehash) - fix data integrity hashes inside package
-rs (-resign) - sign package using the private key from rsa3_key.bin
-xe (-extractembedded) <output-file> - extract embedded XVD from package
-xu (-extractuserdata) <output-file> - extract user data from package
-xv (-extractvhd) <output-vhd> - extracts filesystem from XVD into a VHD file
-xi (-extractimage) <output-file> - extract raw filesystem image
-xf (-extractfiles) <output-folder> - extract files from XVD filesystem
The next two commands will write info about each package found to [filename].txt
also extracts embedded XVD and user data to [filename].exvd.bin / [filename].userdata.bin
-l (-filelist) <path-to-file-list> - use each XVD specified in the list
-f (-folder) <path-to-folder> - scan folder for XVD files
To mount a package in Windows you'll have to decrypt it and remove the hash tables & mutable data first (-eu -hd -md)
لفك تشفير حزم غير XVC ستحتاج إلى ODK الصحيح. إن Devkit ODK "معروف على نطاق واسع" ويتم توفير تجزئة أدناه ، ولكن كما هو مذكور أعلاه ، فإن مفتاح البيع بالتجزئة غير معروف حاليًا.
يعد فك تشفير حزم XVC مسألة مختلفة ، وتستخدم حزم XVC مفتاح مثيل المحتوى (CIK) الذي يبدو أنه تم تخزينه في مكان ما خارج الحزمة ، ولكن أين وكيف يتم تخزينه غير معروف حاليًا. إذا كان لديك CIK الصحيح CIK لحزمة معينة ، فيجب أن تكون قادرًا على استخدامها لفك تشفير الحزمة.
تستخدم حزم XVC الموقعة من Devkit/Test CIK ثابتًا والذي "معروف على نطاق واسع" (التجزئة المنصوص عليها أدناه).
للاستفادة الكاملة من هذه الأداة ، ستحتاج إلى الملفات التالية ، والتي لم يتم تضمينها . ستعمل الأداة بشكل جيد بدونها ، لكن بعض الوظائف قد لا تعمل.
يمكنك استخدام الأداة المضمنة "Durangokeyextract" لاستخراج هذه المفاتيح من Microsoft.GamingServices Framework المتوفرة على Windows 10. فقط تحقق من بعض ملفات DLL / SYS / EXE - قد تجدها.
[16 byte encryption key GUID][32 byte CIK] MD5: C9E58F4E1DC611E110A849648DADCC9B
SHA256: 855CCA97C85558AE8E5FF87D8EEDB44AE6B8510601EB71423178B80EF1A7FF7F
[32 byte ODK] MD5: A2BCFA87F6F83A560BD5739586A5D516
SHA256: CA37132DFB4B811506AE4DC45F45970FED8FE5E58C1BACB259F1B96145B0EBC6
RSAFULLPRIVATEBLOB Struct MD5: 2DC371F46B67E29FFCC514C5B134BF73
SHA256: 8E2B60377006D87EE850334C42FC200081386A838C65D96D1EA52032AA9628C5
للمفاتيح المعروفة الأخرى وتجزئةها ، تستخدم مفتاح CMDLINE -listkeys . لاختيار مفتاح معين ، استخدم مفاتيح CMDLINE التالية:
-sk (-signkey) <key-name> - Name of xvd sign key to use
-odk (-odkid) <id> - Id of Offline Distribution key to use (uint)
-cik (-cikguid) <GUID> - Guid of Content Instance key to use
لتركيب ملفات XVD/XVC ، تحتاج إلى DLLS من مكون GamingServices. قم بتنزيله وتثبيته عبر متجر Microsoft ويجب أن تكون على ما يرام.
سيقوم XVDTool بإنشاء مجلدات تكوين/مفاتيح في البداية الأولى - Global و Local to the App.
مجلد التكوين العالمي:
C:Users<username>AppDataLocalxvdtool/home/<username>/.config/xvdtool < username>/.config/xvdtool/Users/<username>/.config/xvdtool /< username>/.config/xvdtoolمجلد التكوين المحلي هو الدليل الحالي للتنفيذ.
داخل هذه المجلدات ، يمكنك تخزين مفاتيحك لتحميلها تلقائيًا.
<config dir>/XvdSigningKey/<config dir>/Cik/<config dir>/Odk/ بالإضافة إلى ذلك ، يمكنك توفير مفاتيح من مواقع نظام الملفات التعسفية عبر مفاتيح CMDLINE المعنية: -signfile, -odkfile, -cikfile
بالنسبة إلى CIK ، ليس من المهم كيفية تسمية المفاتيح إذا كانت لديها بنية ثنائية لـ [16 byte encryption key GUID][32 byte CIK] . يجب أن تحتوي مفاتيح توقيع XVD على معرف متميز حتى تتمكن من الرجوع إليها عبر مفتاح CMDLINE -sk (-signkey) . يجب تسمية ODK إما بواسطة ODKINDEX ( <index>.odk ) أو بواسطة معرفه: RedOdk.odk, StandardOdk.odk etc. LibXboxOne/Keys/
حزم XVD هي تنسيق ملف مضمون يستخدمه Xbox One لتخزين البيانات ، وهو تمثيلي لحزم STFS Xbox 360. عادةً ما يتم استخدام ملفات XVD لتخزين صور/بيانات النظام بينما يتم استخدام XVCs (متغير معدّل قليلاً من XVD) لتخزين بيانات اللعبة.
للحصول على شرح أكثر تفصيلاً لملفات XVD ، راجع XVD_INFO.MD
git clone https://github.com/emoose/xvdtool
cd xvdtool
dotnet build -c Release
ملاحظة: إذا كنت ترغب في إنشاء تصحيح ، إما حذف -c Release أو -c Debug بدلاً من ذلك.
تم اختبار XVDTool على Windows و MacOS ولكن يجب أن تعمل على جميع الأنظمة التي تدعمها .NET Core.
لا توجد مساعدة لهذه الأداة إلى جانب هذه القراءة ، كما أنها حاليًا تجريبية للغاية ومن المرجح أن تنفجر في وجهك. إذا واجهت أي أخطاء ، فيرجى تقديم وصف لما حدث لمتتبع القضية.
إذا كنت ترغب في المساعدة في التنمية ، فلا تتردد في التنمية ، فما عليك سوى جعل شوكة من هذا الريبو ، وقم بإجراء تغييراتك في فرع جديد من تلك الشوكة ، ثم إرسال طلب سحب من هذا الفرع إلى الفرع الرئيسي لهذا الريبو.