<- اضغط هنا للانضمام لسيرفر الديسكورد.
يهدف هذا المشروع إلى إعادة بناء الكود المصدري لـ Touhou Koumakyou ~ The Embodiment of Scarlet Devil 1.02h بواسطة Team Shanghai Alice.
لا يزال هذا المشروع قيد التنفيذ وفي مراحله الأولى.
يتطلب هذا المشروع إصدار東方紅魔郷.exe
الأصلي 1.02h (SHA256 hashsum 9f76483c46256804792399296619c1274363c31cd8f1775fafb55106fb852245، يمكنك التحقق من hashsum على windows باستخدام الأمر certutil -hashfile <path-to-your-file> SHA256
.)
انسخ東方紅魔郷.exe
إلى resources/game.exe
.
يحتوي نظام البناء على متطلبات الحزمة التالية:
python3
>= 3.4msiextract
(على نظام التشغيل Linux/macos فقط)wine
(في نظام التشغيل Linux/macos فقط، يُفضل CrossOver على نظام التشغيل macOS لتجنب مشكلات كومة CL.EXE المحتملة)aria2c
(اختياري، يسمح بتنزيلات التورنت، وسيتم تثبيته تلقائيًا على نظام التشغيل Windows إذا تم تحديده.)تم إنشاء باقي نظام البناء من Visual Studio 2002 وDirectX 8.0 من أرشيف الويب.
سيؤدي هذا إلى تنزيل وتثبيت المترجم والمكتبات والأدوات الأخرى.
إذا كنت تستخدم نظام التشغيل Windows، وتريد لسبب ما تنزيل التبعيات يدويًا، فقم بتشغيل هذا الأمر للحصول على قائمة الملفات التي سيتم تنزيلها:
python scripts/create_devenv.py scripts/dls scripts/prefix --no-download
ولكن إذا كنت تريد تنزيل كل شيء تلقائيًا، فقم بتشغيله بهذه الطريقة بدلاً من ذلك:
python scripts/create_devenv.py scripts/dls scripts/prefix
وإذا كنت تريد استخدام التورنت لتنزيل تلك التبعيات، فاستخدم هذا:
python scripts/create_devenv.py scripts/dls scripts/prefix --torrent
على Linux وMac، قم بتشغيل البرنامج النصي التالي:
# NOTE: On macOS if you use CrossOver.
# export WINE=<CrossOverPath>/wine
./scripts/create_th06_prefix
قم بتشغيل البرنامج النصي التالي:
python3 ./scripts/build.py
سيؤدي هذا تلقائيًا إلى إنشاء برنامج نصي لبناء النينجا build.ninja
وتشغيل النينجا عليه.
يمكنك العثور على تصدير XML لـ Ghidra RE في المستودع المصاحب th06-re، في فرع xml
. يتم تحديث هذا الريبو كل ليلة من خلال [ scripts/export_ghidra_database.py
]، ويتطابق سجله مع سجل تسجيل الوصول من خادم Ghidra الخاص بفريقنا.
إذا كنت ترغب في مساعدتنا في جهودنا في مجال الهندسة العكسية، فيرجى الاتصال بـ @roblabla على discord حتى نتمكن من منحك حسابًا على خادم Ghidra.
أسهل طريقة للعمل على إعادة التنفيذ هي من خلال استخدام objdiff
. إليك كيفية البدء:
東方紅魔郷.exe
الأصلي (الإصدار 1.02h) إلى المجلد resources/
، وأعد تسميته إلى game.exe
. سيتم استخدام هذا كمصدر لمقارنة عمليات إعادة التنفيذ.python3 scripts/export_ghidra_objs.py --import-csv
. سيؤدي هذا إلى استخراج ملفات الكائنات التي يمكن لـ objdiff مقارنتها بها من resources/game.exe
. الأسهل هو إلقاء نظرة على ملفات config/stubbed.csv
. هذه كلها وظائف يتم إيقافها تلقائيًا. يجب عليك اختيار واحد منهم، وفتح ملف الكائن المرتبط في objdiff، والنقر على الوظيفة محل الاهتمام.
ثم افتح ملف cpp
الصحيح، وانسخ/ألصق الإعلان، وابدأ في القرصنة! قد يكون من المفيد اتخاذ مخرجات برنامج فك التحويل ghidra كقاعدة. يمكنك العثور على هذا الإخراج في مستودع th06-re.
ونود أن نعرب عن شكرنا للأفراد التالية أسماؤهم على مساهماتهم القيمة:
var_order
إلى MSVC7.