mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-30 04:56:23 +08:00
GP-6483: Loader option redesign with tooltip support
This commit is contained in:
+32
-18
@@ -142,24 +142,38 @@ public class DyldCacheExtractLoader extends MachoLoader {
|
||||
public List<Option> getDefaultOptions(ByteProvider provider, LoadSpec loadSpec,
|
||||
DomainObject domainObject, boolean loadIntoProgram, boolean mirrorFsLayout) {
|
||||
List<Option> list = new ArrayList<>();
|
||||
list.add(new Option(LIBOBJC_OPTION_NAME, !loadIntoProgram && LIBOBJC_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-libobjc"));
|
||||
list.add(new Option(AUTH_DATA_OPTION_NAME, !loadIntoProgram && AUTH_DATA_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-authData"));
|
||||
list.add(new Option(DIRTY_DATA_OPTION_NAME, !loadIntoProgram && DIRTY_DATA_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-dirtyData"));
|
||||
list.add(new Option(CONST_DATA_OPTION_NAME, !loadIntoProgram && CONST_DATA_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-constData"));
|
||||
list.add(new Option(TEXT_STUBS_OPTION_NAME, !loadIntoProgram && TEXT_STUBS_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-textStubs"));
|
||||
list.add(new Option(CONFIG_DATA_OPTION_NAME, !loadIntoProgram && CONFIG_DATA_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-configData"));
|
||||
list.add(new Option(READ_ONLY_DATA_OPTION_NAME,
|
||||
!loadIntoProgram && READ_ONLY_DATA_OPTION_DEFAULT, Boolean.class,
|
||||
Loader.COMMAND_LINE_ARG_PREFIX + "-readOnlyData"));
|
||||
list.add(new Option(CONST_TPRO_DATA_OPTION_NAME,
|
||||
!loadIntoProgram && CONST_TPRO_DATA_OPTION_DEFAULT, Boolean.class,
|
||||
Loader.COMMAND_LINE_ARG_PREFIX + "-constTproData"));
|
||||
list.add(Option.newBoolean(LIBOBJC_OPTION_NAME)
|
||||
.value(!loadIntoProgram && LIBOBJC_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-libobjc"))
|
||||
.build());
|
||||
list.add(Option.newBoolean(AUTH_DATA_OPTION_NAME)
|
||||
.value(!loadIntoProgram && AUTH_DATA_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-authData"))
|
||||
.build());
|
||||
list.add(Option.newBoolean(DIRTY_DATA_OPTION_NAME)
|
||||
.value(!loadIntoProgram && DIRTY_DATA_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-dirtyData"))
|
||||
.build());
|
||||
list.add(Option.newBoolean(CONST_DATA_OPTION_NAME)
|
||||
.value(!loadIntoProgram && CONST_DATA_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-constData"))
|
||||
.build());
|
||||
list.add(Option.newBoolean(TEXT_STUBS_OPTION_NAME)
|
||||
.value(!loadIntoProgram && TEXT_STUBS_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-textStubs"))
|
||||
.build());
|
||||
list.add(Option.newBoolean(CONFIG_DATA_OPTION_NAME)
|
||||
.value(!loadIntoProgram && CONFIG_DATA_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-configData"))
|
||||
.build());
|
||||
list.add(Option.newBoolean(READ_ONLY_DATA_OPTION_NAME)
|
||||
.value(!loadIntoProgram && READ_ONLY_DATA_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-readOnlyData"))
|
||||
.build());
|
||||
list.add(Option.newBoolean(CONST_TPRO_DATA_OPTION_NAME)
|
||||
.value(!loadIntoProgram && CONST_TPRO_DATA_OPTION_DEFAULT)
|
||||
.commandLineArgument(createArg("-constTproData"))
|
||||
.build());
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -317,12 +317,17 @@ public class DumpFile {
|
||||
protected static Collection<? extends Option> getDefaultOptions(DumpFileReader reader) {
|
||||
List<Option> list = new ArrayList<>();
|
||||
|
||||
list.add(new Option(CREATE_MEMORY_BLOCKS_OPTION_NAME, CREATE_MEMORY_BLOCKS_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-createMemoryBlocks"));
|
||||
list.add(new Option(JOIN_BLOCKS_OPTION_NAME, JOIN_BLOCKS_OPTION_DEFAULT, Boolean.class,
|
||||
Loader.COMMAND_LINE_ARG_PREFIX + "-joinBlocks"));
|
||||
list.add(new Option(ANALYZE_EMBEDDED_OBJECTS_OPTION_NAME,
|
||||
ANALYZE_EMBEDDED_OBJECTS_OPTION_DEFAULT));
|
||||
list.add(Option.newBoolean(CREATE_MEMORY_BLOCKS_OPTION_NAME)
|
||||
.value(CREATE_MEMORY_BLOCKS_OPTION_DEFAULT)
|
||||
.commandLineArgument(Loader.COMMAND_LINE_ARG_PREFIX + "-createMemoryBlocks")
|
||||
.build());
|
||||
list.add(Option.newBoolean(JOIN_BLOCKS_OPTION_NAME)
|
||||
.value(JOIN_BLOCKS_OPTION_DEFAULT)
|
||||
.commandLineArgument(Loader.COMMAND_LINE_ARG_PREFIX + "-joinBlocks")
|
||||
.build());
|
||||
list.add(Option.newBoolean(ANALYZE_EMBEDDED_OBJECTS_OPTION_NAME)
|
||||
.value(ANALYZE_EMBEDDED_OBJECTS_OPTION_DEFAULT)
|
||||
.build());
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
+7
-4
@@ -85,8 +85,9 @@ public class Apport extends DumpFile {
|
||||
DecodedProvider provider =
|
||||
new DecodedProvider(this, reader.getByteProvider(), monitor)) {
|
||||
ElfLoader elfLoader = new ElfLoader();
|
||||
Option base = new Option(ElfLoaderOptionsFactory.IMAGE_BASE_OPTION_NAME,
|
||||
Long.toHexString(header.getMemoryInfo(0).getBaseAddress()));
|
||||
Option base = Option.newString(ElfLoaderOptionsFactory.IMAGE_BASE_OPTION_NAME)
|
||||
.value(Long.toHexString(header.getMemoryInfo(0).getBaseAddress()))
|
||||
.build();
|
||||
options.add(base);
|
||||
program.addConsumer(consumer);
|
||||
ImporterSettings settings = new ImporterSettings(provider, program.getName(), null,
|
||||
@@ -192,8 +193,10 @@ public class Apport extends DumpFile {
|
||||
public static Collection<? extends Option> getDefaultOptions(DumpFileReader reader) {
|
||||
List<Option> list = new ArrayList<>();
|
||||
|
||||
list.add(new Option(CREATE_MEMORY_BLOCKS_OPTION_NAME, CREATE_MEMORY_BLOCKS_OPTION_DEFAULT,
|
||||
Boolean.class, Loader.COMMAND_LINE_ARG_PREFIX + "-createMemoryBlocks"));
|
||||
list.add(Option.newBoolean(CREATE_MEMORY_BLOCKS_OPTION_NAME)
|
||||
.value(CREATE_MEMORY_BLOCKS_OPTION_DEFAULT)
|
||||
.commandLineArgument(Loader.COMMAND_LINE_ARG_PREFIX + "-createMemoryBlocks")
|
||||
.build());
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
+4
-2
@@ -612,8 +612,10 @@ public class Pagedump extends DumpFile {
|
||||
|
||||
List<Option> list = new ArrayList<>();
|
||||
|
||||
list.add(new Option(DEBUG_DATA_PATH_OPTION_NAME, DEBUG_DATA_PATH_OPTION_DEFAULT,
|
||||
String.class, Loader.COMMAND_LINE_ARG_PREFIX + "-debugDataFilePath"));
|
||||
list.add(Option.newString(DEBUG_DATA_PATH_OPTION_NAME)
|
||||
.value(DEBUG_DATA_PATH_OPTION_DEFAULT)
|
||||
.commandLineArgument(Loader.COMMAND_LINE_ARG_PREFIX + "-debugDataFilePath")
|
||||
.build());
|
||||
|
||||
list.addAll(DumpFile.getDefaultOptions(reader));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user