lab313ru / ghidra_psx_ldr

Sony Playstation PSX executables loader for GHIDRA
233 stars 31 forks source link

java.lang.IllegalArgumentException: Split cannot be done on block start address #17

Closed FaultyRAM closed 4 years ago

FaultyRAM commented 4 years ago

Attempting to load certain executables with the PS1 loader causes an IllegalArgumentException to be thrown:

Error importing file: SLUS_010.66
java.lang.IllegalArgumentException: Split cannot be done on block start address
    at ghidra.program.database.mem.MemoryMapDB.split(MemoryMapDB.java:816)
    at psx.PsxLoader.findAndAppyMain(PsxLoader.java:466)
    at psx.PsxLoader.load(PsxLoader.java:225)
    at ghidra.app.util.opinion.AbstractLibrarySupportLoader.doLoad(AbstractLibrarySupportLoader.java:346)
    at ghidra.app.util.opinion.AbstractLibrarySupportLoader.loadProgram(AbstractLibrarySupportLoader.java:83)
    at ghidra.app.util.opinion.AbstractProgramLoader.load(AbstractProgramLoader.java:112)
    at ghidra.plugin.importer.ImporterUtilities.importSingleFile(ImporterUtilities.java:401)
    at ghidra.plugin.importer.ImporterDialog.lambda$okCallback$7(ImporterDialog.java:351)
    at ghidra.util.task.TaskLauncher$1.run(TaskLauncher.java:90)
    at ghidra.util.task.Task.monitoredRun(Task.java:126)
    at ghidra.util.task.TaskRunner.lambda$startTaskThread$1(TaskRunner.java:94)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:830)

---------------------------------------------------
Build Date: 2019-Dec-18 1306 EST
Ghidra Version: 9.1.1
Java Home: C:\jdk-13.0.1
JVM Version: Oracle Corporation 13.0.1
OS: Windows 10 10.0 amd64
Workstation: SpencerComputer

This happens with Tony Hawk's Pro Skater (SLUS-00860) and Tony Hawk's Pro Skater 2 (SLUS-01066), but not the German demo version (all demo versions?) of THPS2. Both executables load fine using the raw binary loader.

lab313ru commented 4 years ago

Thank you. I'll fix it today.

lab313ru commented 4 years ago

The problem is that the ".text" section was placed BEFORE ".rdata" section (but usually it's opposite).

lab313ru commented 4 years ago

Fixed via 53f5bc449b47f348d0b7e40df17d9d44c4520411. Check new release.