<- clique aqui para entrar no servidor discord.
Este projeto visa reconstruir perfeitamente o código fonte de Touhou Koumakyou ~ the Embodiment of Scarlet Devil 1.02h da Team Shanghai Alice.
Este projeto ainda está em andamento e em seus estágios iniciais.
Este projeto requer o東方紅魔郷.exe
versão 1.02h original (SHA256 hashsum 9f76483c46256804792399296619c1274363c31cd8f1775fafb55106fb852245, você pode verificar o hashsum no Windows com o comando certutil -hashfile <path-to-your-file> SHA256
.)
Copie東方紅魔郷.exe
para resources/game.exe
.
O sistema de compilação possui os seguintes requisitos de pacote:
python3
>= 3.4msiextract
(somente no Linux/macos)wine
(somente em linux/macos, prefira CrossOver no macOS para evitar possíveis problemas de heap CL.EXE)aria2c
(opcional, permite downloads de torrent, será instalado automaticamente no Windows se selecionado).O restante do sistema de compilação é construído a partir do Visual Studio 2002 e do DirectX 8.0 do Web Archive.
Isso baixará e instalará o compilador, bibliotecas e outras ferramentas.
Se você estiver no Windows e por algum motivo quiser baixar as dependências manualmente, execute este comando para obter a lista de arquivos para download:
python scripts/create_devenv.py scripts/dls scripts/prefix --no-download
Mas se você quiser que tudo seja baixado automaticamente, execute-o assim:
python scripts/create_devenv.py scripts/dls scripts/prefix
E se você quiser usar torrent para baixar essas dependências, use isto:
python scripts/create_devenv.py scripts/dls scripts/prefix --torrent
No Linux e Mac, execute o seguinte script:
# NOTE: On macOS if you use CrossOver.
# export WINE=<CrossOverPath>/wine
./scripts/create_th06_prefix
Execute o seguinte script:
python3 ./scripts/build.py
Isso irá gerar automaticamente um script de construção ninja build.ninja
e executar o ninja nele.
Você pode encontrar uma exportação XML do nosso Ghidra RE no repositório complementar th06-re, na ramificação xml
. Este repositório é atualizado todas as noites por meio de [ scripts/export_ghidra_database.py
], e seu histórico corresponde ao histórico de check-in do servidor Ghidra de nossa equipe.
Se você deseja nos ajudar em nosso esforço de Engenharia Reversa, entre em contato com @roblabla no discord para que possamos lhe fornecer uma conta no Servidor Ghidra.
A maneira mais fácil de trabalhar na reimplementação é através do uso de objdiff
. Veja como começar:
東方紅魔郷.exe
original (versão 1.02h) para a pasta resources/
e renomeie-o para game.exe
. Isso será usado como fonte para comparar as reimplementações.python3 scripts/export_ghidra_objs.py --import-csv
. Isso extrairá de resources/game.exe
os arquivos objeto com os quais o objdiff pode comparar. O mais fácil é consultar os arquivos config/stubbed.csv
. Todas essas são funções que são eliminadas automaticamente. Você deve escolher um deles, abrir o arquivo do objeto associado no objdiff e clicar na função de interesse.
Em seguida, abra o arquivo cpp
correto, copie/cole a declaração e comece a hackear! Pode ser útil tomar a saída do descompilador ghidra como base. Você pode encontrar esta saída no repositório th06-re.
Gostaríamos de estender nossos agradecimentos às seguintes pessoas por suas contribuições inestimáveis:
var_order
para MSVC7.