1

I am attempting to write a script to parse a function table containing structs that look like this:

struct func_table_entry {
    void (* func)(void *);
    byte unknown1;
    byte unknown2;
    byte unknown3;
    char * func_name;
};

I made a script already to define the stucts, but I am having trouble cleaning up the automatic analysis Ghidra does. I have fixed func_name where sometimes Ghidra thinks that the strings are code. I want to define the functions pointed to by func.

Most of the time this works, but sometimes I get an error:

Function newFunction = functionManager.createFunction(func_string, funcAddress_real, new AddressSet(funcAddress_real), SourceType.USER_DEFINED);

The error:

ghidra.program.database.function.OverlappingFunctionException: Unable to create function at 0113c4e due to overlap with another namespace

So the question ultimately is that if there is already something labeled "LAB_WXYZ" how do I remove that and define my own function.

1 Answer 1

1

Turn off auto analysis options before running script. This gets in the way as it reacts to changes

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.