mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 02:09:44 +02:00
Add optional 3 option to ImportSymbolScript.py to allow importing
function names. Add python script to import functions and labels Use print() instead of print Merge ImportSymbolsScript.py and ImportFunctionAndLabels.py Made third token optional
This commit is contained in:
parent
ace102e180
commit
04069a5d5d
1 changed files with 33 additions and 6 deletions
|
@ -1,11 +1,38 @@
|
|||
#Imports a file with lines in the form "symbolName 0xADDRESS"
|
||||
#@category Data
|
||||
#@author
|
||||
|
||||
# Imports a file with lines in the form "symbolName 0xADDRESS function_or_label" where "f" indicates a function and "l" a label
|
||||
# @author unkown; edited by matedealer <git@matedealer.de>
|
||||
# @category Data
|
||||
#
|
||||
|
||||
from ghidra.program.model.symbol.SourceType import *
|
||||
import string
|
||||
|
||||
functionManager = currentProgram.getFunctionManager()
|
||||
|
||||
f = askFile("Give me a file to open", "Go baby go!")
|
||||
|
||||
for line in file(f.absolutePath): # note, cannot use open(), since that is in GhidraScript
|
||||
pieces = line.split()
|
||||
|
||||
name = pieces[0]
|
||||
address = toAddr(long(pieces[1], 16))
|
||||
print "creating symbol", pieces[0], "at address", address
|
||||
createLabel(address, pieces[0], False)
|
||||
|
||||
try:
|
||||
function_or_label = pieces[2]
|
||||
except IndexError:
|
||||
function_or_label = "l"
|
||||
|
||||
|
||||
if function_or_label == "f":
|
||||
func = functionManager.getFunctionAt(address)
|
||||
|
||||
if func is not None:
|
||||
old_name = func.getName()
|
||||
func.setName(name, USER_DEFINED)
|
||||
print("Renamed function {} to {} at address {}".format(old_name, name, address))
|
||||
else:
|
||||
func = createFunction(address, name)
|
||||
print("Created function {} at address {}".format(name, address))
|
||||
|
||||
else:
|
||||
print("Created label {} at address {}".format(name, address))
|
||||
createLabel(address, name, False)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue