37 lines
1.3 KiB
Java
37 lines
1.3 KiB
Java
import ghidra.program.database.sourcemap.UserDataPathTransformer;
|
|
import ghidra.program.model.sourcemap.SourcePathTransformer;
|
|
|
|
// Remap:
|
|
// /build/source/core (libiwasm)
|
|
// /home/christoph/Notes/TU/MastersThesis/FailNix/build-sum2_repl_cored_late/module_host.c
|
|
public class RemapSourcePaths extends GhidraScript {
|
|
|
|
@Override
|
|
protected void run() throws Exception {
|
|
String[] args = getScriptArgs();
|
|
if (args.length < 2) {
|
|
throw new IllegalArgumentException(
|
|
"Missing file paths.\nUsage: RemapSourcePaths <libiwasm> <host>");
|
|
}
|
|
|
|
// https://ghidra.re/ghidra_docs/api/ghidra/program/model/sourcemap/SourcePathTransformer.html
|
|
SourcePathTransformer tx = UserDataPathTransformer.getPathTransformer(currentProgram);
|
|
|
|
String oldIwasmDir = "/build/source/core";
|
|
String newIwasmDir = args[0];
|
|
|
|
tx.addDirectoryTransform(oldIwasmDir, newIwasmDir);
|
|
println("Added transform:");
|
|
println(" " + oldIwasmDir + " -> " + newIwasmDir);
|
|
|
|
// TODO: What to do here? Need to know the build dir name...
|
|
String failNix = "/home/christoph/Notes/TU/MastersThesis/FailNix";
|
|
String oldHostDir = failNix + "/build-.../module_host.c";
|
|
String newHostDir = args[1];
|
|
|
|
tx.addDirectoryTransform(oldHostDir, newHostDir);
|
|
println("Added transform:");
|
|
println(" " + oldHostDir + " -> " + newHostDir);
|
|
}
|
|
}
|