Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 24 additions & 5 deletions ApplySig.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from __future__ import print_function
from ghidra.framework.model import DomainFile
from ghidra.program.model.symbol import SourceType
from ghidra.app.util.demangler import DemanglerUtil, DemanglerOptions
from ghidra.util import Msg

from java.lang import IllegalArgumentException
Expand Down Expand Up @@ -511,8 +512,8 @@ def parse_public_function(f, version, offset):
is_local = True
if b & FlirtFunctionFlag.FUNCTION_UNRESOLVED_COLLISION:
is_collision = True
if b & 0x01 or b & 0x04:
print('Investigate public name flag: 0x{:02X} @ 0x{:04X}'.format(b, offset))
# if b & 0x01 or b & 0x04:
# print('Investigate public name flag: 0x{:02X} @ 0x{:04X}'.format(b, offset))
b = read_u8(f)

name = list()
Expand Down Expand Up @@ -692,13 +693,31 @@ def get_function_end(funk):
return max

rename_cnt = 0
options = DemanglerOptions()
def funk_rename(addr, funk):
global rename_cnt
global options
name = funk.name
if name != '?':
funk = getFunctionAt(parseAddress(hex(addr)))
funk.setName(name, SourceType.USER_DEFINED)
rename_cnt += 1
stripped = DemanglerUtil.stripSuperfluousSignatureSpaces(name)
demangled = DemanglerUtil.demangle(currentProgram, stripped)
address = parseAddress(hex(addr + funk.offset))
if demangled:
demangled.applyTo(currentProgram, address, options, monitor)
elif not funk.is_local:
ghidra_funk = getFunctionAt(address)
if ghidra_funk:
ghidra_funk.setName(name, SourceType.USER_DEFINED)
rename_cnt += 1
else:
createFunction(address, name)
else:
ghidra_symbol = getSymbolAt(address)
if ghidra_symbol:
ghidra_symbol.setName(name, SourceType.USER_DEFINED)
rename_cnt += 1
else:
createLabel(address, name, True, SourceType.USER_DEFINED)
return

def apply_sig(flirt):
Expand Down