<- คลิกที่นี่เพื่อเข้าร่วมเซิร์ฟเวอร์ Discord
โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อสร้างซอร์สโค้ดของ 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
ระบบ build มีข้อกำหนดแพ็คเกจดังต่อไปนี้:
python3
>= 3.4msiextract
(บน linux/macos เท่านั้น)wine
(บน linux/macos เท่านั้น แนะนำให้ใช้ CrossOver บน macOS เพื่อหลีกเลี่ยงปัญหาฮีป CL.EXE ที่อาจเกิดขึ้น)aria2c
(เป็นทางเลือก อนุญาตให้ดาวน์โหลดทอร์เรนต์ได้ และจะติดตั้งบน Windows โดยอัตโนมัติหากเลือก)ส่วนที่เหลือของระบบบิลด์ถูกสร้างขึ้นจาก Visual Studio 2002 และ DirectX 8.0 จาก Web Archive
การดำเนินการนี้จะดาวน์โหลดและติดตั้งคอมไพเลอร์ ไลบรารี และเครื่องมืออื่นๆ
หากคุณใช้ 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 บนความไม่ลงรอยกัน เพื่อให้เราสามารถให้บัญชีแก่คุณบนเซิร์ฟเวอร์ 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
pragma ไปยัง MSVC7