<- cliquez ici pour rejoindre le serveur Discord.
Ce projet vise à reconstruire parfaitement le code source de Touhou Koumakyou ~ the Embodiment of Scarlet Devil 1.02h par Team Shanghai Alice.
Ce projet est encore en cours et à ses débuts.
Ce projet nécessite la version originale東方紅魔郷.exe
1.02h (somme de hachage SHA256 9f76483c46256804792399296619c1274363c31cd8f1775fafb55106fb852245, vous pouvez vérifier la somme de hachage sous Windows avec la commande certutil -hashfile <path-to-your-file> SHA256
.)
Copiez東方紅魔郷.exe
dans resources/game.exe
.
Le système de build a les exigences de package suivantes :
python3
>= 3.4msiextract
(sous Linux/macos uniquement)wine
(sous Linux/macos uniquement, préférez CrossOver sur macOS pour éviter d'éventuels problèmes de tas CL.EXE)aria2c
(facultatif, permet les téléchargements torrent, s'installera automatiquement sur Windows si sélectionné.)Le reste du système de build est construit à partir de Visual Studio 2002 et DirectX 8.0 à partir de Web Archive.
Cela téléchargera et installera le compilateur, les bibliothèques et d’autres outils.
Si vous êtes sous Windows et que, pour une raison quelconque, vous souhaitez télécharger les dépendances manuellement, exécutez cette commande pour obtenir la liste des fichiers à télécharger :
python scripts/create_devenv.py scripts/dls scripts/prefix --no-download
Mais si vous souhaitez que tout soit téléchargé automatiquement, exécutez-le plutôt comme ceci :
python scripts/create_devenv.py scripts/dls scripts/prefix
Et si vous souhaitez utiliser torrent pour télécharger ces dépendances, utilisez ceci :
python scripts/create_devenv.py scripts/dls scripts/prefix --torrent
Sous Linux et Mac, exécutez le script suivant :
# NOTE: On macOS if you use CrossOver.
# export WINE=<CrossOverPath>/wine
./scripts/create_th06_prefix
Exécutez le script suivant :
python3 ./scripts/build.py
Cela générera automatiquement un script de construction ninja build.ninja
et exécutera ninja dessus.
Vous pouvez trouver un export XML de notre Ghidra RE dans le référentiel compagnon th06-re, dans la branche xml
. Ce dépôt est mis à jour tous les soirs via [ scripts/export_ghidra_database.py
], et son historique correspond à l'historique d'enregistrement du serveur Ghidra de notre équipe.
Si vous souhaitez nous aider dans notre effort d'ingénierie inverse, veuillez contacter @roblabla sur Discord afin que nous puissions vous donner un compte sur le serveur Ghidra.
Le moyen le plus simple de travailler sur la réimplémentation consiste à utiliser objdiff
. Voici comment commencer :
東方紅魔郷.exe
(version 1.02h) dans le dossier resources/
et renommez-le en game.exe
. Ceci sera utilisé comme source pour comparer les réimplémentations.python3 scripts/export_ghidra_objs.py --import-csv
. Cela extraira de resources/game.exe
les fichiers objets avec lesquels objdiff pourra comparer. Le plus simple est de regarder les fichiers config/stubbed.csv
. Ce sont toutes des fonctions qui sont automatiquement supprimées. Vous devez en choisir un, ouvrir le fichier objet associé dans objdiff et cliquer sur la fonction qui vous intéresse.
Ensuite, ouvrez le bon fichier cpp
, copiez/collez la déclaration et commencez à pirater ! Il peut être utile de prendre la sortie du décompilateur ghidra comme base. Vous pouvez trouver cette sortie dans le référentiel th06-re.
Nous tenons à remercier les personnes suivantes pour leurs précieuses contributions :
var_order
vers MSVC7.