Skip to content

Instantly share code, notes, and snippets.

@z16166
Forked from hax0kartik/export_symbol.idc
Created February 13, 2020 14:39
Show Gist options
  • Save z16166/743bd45b04194e406fb6d078442399f4 to your computer and use it in GitHub Desktop.
Save z16166/743bd45b04194e406fb6d078442399f4 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");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment