Skip to content

Instantly share code, notes, and snippets.

@hax0kartik
Last active January 24, 2024 16:06
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save hax0kartik/e358ce447a4537bcef534aa8de84817c to your computer and use it in GitHub Desktop.
Save hax0kartik/e358ce447a4537bcef534aa8de84817c to your computer and use it in GitHub Desktop.
Export symbols from IDA to a ghidra importable symbol file
#include <idc.idc>
static FuncDump(f, start)
{
auto ea, str, count, ref;
auto end;
auto teststr;
ea = start;
while( ea != BADADDR )
{
str = GetFunctionName(ea);
if( str != 0 )
{
end = FindFuncEnd(ea);
count = 0;
ref = RfirstB(ea);
while(ref != BADADDR)
{
count = count + 1;
ref = RnextB(ea, ref);
}
teststr = sprintf("sub_%X", ea);
if( teststr != str )
{
fprintf(f, "%s 0x%X\n", str, ea);
}
//Message("%s, 0x%d, 0x%x, 0x%x, 0x%x, %d\n", str, count, ea, end, end-ea, end-ea );
}
ea = NextFunction(ea);
}
}
static main()
{
auto current = GetInputFile();
current = AskFile(-1, current, "Where should I write the symbols to?");
if(current == 0)
{
return -1;
}
auto f = fopen(current, "wb");
Message("FuncDump: Start\n");
FuncDump(f,0x100000);
fclose(f);
Message("FuncDump: Done\n");
}
@z16166
Copy link

z16166 commented Feb 13, 2020

how about variable names?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment