mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
GP-5641 update SetExecutableCategoryScript
This commit is contained in:
parent
18d73945da
commit
d2d0c989f9
1 changed files with 25 additions and 11 deletions
|
@ -16,6 +16,7 @@
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import ghidra.app.script.GhidraScript;
|
import ghidra.app.script.GhidraScript;
|
||||||
|
import ghidra.features.base.values.GhidraValuesMap;
|
||||||
import ghidra.framework.options.Options;
|
import ghidra.framework.options.Options;
|
||||||
import ghidra.program.model.listing.Program;
|
import ghidra.program.model.listing.Program;
|
||||||
|
|
||||||
|
@ -23,6 +24,8 @@ import ghidra.program.model.listing.Program;
|
||||||
//sets a property on the current program which can be used as
|
//sets a property on the current program which can be used as
|
||||||
//an executable category in BSim
|
//an executable category in BSim
|
||||||
public class SetExecutableCategoryScript extends GhidraScript {
|
public class SetExecutableCategoryScript extends GhidraScript {
|
||||||
|
private static final String PROPERTY_NAME = "Property Name";
|
||||||
|
private static final String PROPERTY_VALUE = "Property Value";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void run() throws Exception {
|
protected void run() throws Exception {
|
||||||
|
@ -30,16 +33,27 @@ public class SetExecutableCategoryScript extends GhidraScript {
|
||||||
popup("This script requires a program");
|
popup("This script requires a program");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
GhidraValuesMap valuesMap = new GhidraValuesMap();
|
||||||
|
valuesMap.defineString(PROPERTY_NAME);
|
||||||
|
valuesMap.defineString(PROPERTY_VALUE);
|
||||||
|
|
||||||
|
valuesMap.setValidator((values, status) -> {
|
||||||
|
String name = valuesMap.getString(PROPERTY_NAME);
|
||||||
|
if (StringUtils.isAllBlank(name)) {
|
||||||
|
status.setStatusText("Name cannot be blank");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
String value = valuesMap.getString(PROPERTY_VALUE);
|
||||||
|
if (StringUtils.isAllBlank(value)) {
|
||||||
|
status.setStatusText("Value cannot be blank");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
askValues("Set Program Property", "Set Program Property", valuesMap);
|
||||||
Options opts = currentProgram.getOptions(Program.PROGRAM_INFO);
|
Options opts = currentProgram.getOptions(Program.PROGRAM_INFO);
|
||||||
String name = askString("Enter Property Name", "Name");
|
opts.setString(valuesMap.getString(PROPERTY_NAME), valuesMap.getString(PROPERTY_VALUE));
|
||||||
if (StringUtils.isAllBlank(name)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String value = askString("Enter Value of Property " + name, "Value");
|
|
||||||
if (StringUtils.isAllBlank(value)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
opts.setString(name, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue