<- 按一下此處加入不和諧伺服器。
本專案旨在完美重構Team Shanghai Alice的《東方紅魔鏡~紅魔鬼化身1.02h》原始碼。
該項目仍在進行中並處於早期階段。
這個專案需要原始的東方紅魔郷.exe
版本1.02h(SHA256 hashsum 9f76483c46256804792399296619c1274363c31cd8f1775fafile55106852245,您可以使用certutil -hashfile <path-to-your-file> SHA256
, )
將東方紅魔郷.exe
複製到resources/game.exe
。
建置系統具有以下套件要求:
python3
>= 3.4msiextract
(僅限 linux/macos)wine
(僅限 linux/macos,偏好 macOS 上的 CrossOver,以避免可能的 CL.EXE 堆問題)aria2c
(可選,允許 torrent 下載,如果選擇,將自動安裝在 Windows 上。)建置系統的其餘部分是使用 Web Archive 中的 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
如果您想使用 torrent 下載這些依賴項,請使用以下命令:
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
這將自動產生一個 ninja 建置腳本build.ninja
,並在其上執行 ninja 。
您可以在配套儲存庫 th06-re 的xml
分支中找到 Ghidra RE 的 XML 匯出。此儲存庫每晚透過 [ scripts/export_ghidra_database.py
] 更新,其歷史記錄與我們團隊的 Ghidra 伺服器的簽入歷史記錄相符。
如果您希望幫助我們進行逆向工程,請在 Discord 上聯絡@roblabla,以便我們為您提供 Ghidra 伺服器帳戶。
重新實作最簡單的方法是使用objdiff
。以下是如何開始:
東方紅魔郷.exe
檔(版本 1.02h)複製到resources/
資料夾中,並重新命名為game.exe
。這將用作比較重新實現的來源。python3 scripts/export_ghidra_objs.py --import-csv
。這將從resources/game.exe
中提取 objdiff 可以比較的目標檔案。最簡單的方法是查看config/stubbed.csv
檔案。這些都是被自動刪除的函數。您應該選擇其中之一,在 objdiff 中開啟關聯的目標文件,然後按一下感興趣的函數。
然後,打開正確的cpp
文件,複製/貼上聲明,然後開始駭客攻擊!以 ghidra 反編譯器輸出作為基礎可能會很有用。您可以在 th06-re 儲存庫中找到此輸出。
我們謹向以下人士的寶貴貢獻表示感謝:
var_order
pragma 移植到 MSVC7。