我将新的 Ghidra 二进制更改保存到 Ghidra,然后在 Ghidra 上签入,突然发生这种情况:
File update not permitted
java.io.IOException: File update not permitted
at db.buffers.LocalManagedBufferFile.createNewVersion(LocalManagedBufferFile.java:554)
at ghidra.framework.data.GhidraFileData.quickCheckin(GhidraFileData.java:956)
at ghidra.framework.data.GhidraFileData.checkin(GhidraFileData.java:1030)
at ghidra.framework.data.GhidraFile.checkin(GhidraFile.java:438)
at ghidra.framework.main.datatree.CheckInTask.run(CheckInTask.java:102)
at ghidra.util.task.Task.monitoredRun(Task.java:124)
at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
---------------------------------------------------
Build Date: 2021-Sep-28 1538 EDT
Ghidra Version: 10.0.4
Java Home: /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
JVM Version: Oracle Corporation 17.0.1
OS: Mac OS X 12.0 aarch64
Workstation: Gua-mbp
在源代码中查找它不是您所期望的,它是“outFile == null”,但我不知道为什么会发生这种情况,因为我只是尝试使用 Ghidra 正常保存文件更改。
ManagedBufferFile outFile = destFile.getSaveFile();
if (outFile == null) {
throw new IOException("File update not permitted");
}