Closed mahaloz closed 3 months ago
Wacky bug discovered while getting Binja headless to work:
Given a bn_func
, which is just a Binary Ninja function:
print(bn_func) # <func: x86_64@0x820>
params = list(bn_func.parameter_vars)
bad_param = params[2]
print(bad_param) # <var void (* arg3)()>
type_str = bad_param.type.get_string_before_name()
print(type_str) # 'void (*'
Basically, get_string_before_name()
is returning the wrong value. On <var void (* arg3)()>
it should return void *
or void (*)
, instead it returns a broken void (*
, or maybe this is just a misuse on my part.
FYI, this is expected for that API and type. Alternatives include:
str(bv.entry_function.parameter_vars[2].type)
# or
bv.entry_function.parameter_vars[2].type.get_string_before_name() + bv.entry_function.parameter_vars[2].type.get_string_after_name()
Add a CI for Binja!