1

enter image description here

On lines 67, 70 and 77 ghidra makes a call to what I assume is a member function, but it does not show me which member function. Why is that?

Example from line 70:

(**(code **)(*(longlong *)metaStream + 0xd8))(metaStream)

Call in assembly:

qword ptr [RAX + 0xd8]

How can I make ghidra show me which function is being called?

1 Answer 1

1

The problem is that Ghidra for whatever reason cannot determine what the actual target of this call is. This might just be a limitation of the C++ support in Ghidra. There are plugins that try to support this better:

but you can also do this manually if you already know the target function via manual reverse engineering:

ref = program.referenceManager.addMemoryReference(
                    callsite, # FROM, the address of the call instruction
                    func_address, //TO, the address of the function being called
                    RefType.UNCONDITIONAL_CALL,
                    SourceType.USER_DEFINED,
                    0)
program.referenceManager.setPrimary(ref, true)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.