Go bindings for the IDA 9.0 SDK via idalib
Everyone deserves bindings, even gophers!
Warning
NEED HELP
With fleshing out the rest of the objects like Function etc and library C++ wrappers to get to a MVP.
- IDA Pro 9.0 or newer installation (with a valid license)
go get github.com/blacktop/go-idalibInstall
go install github.com/blacktop/go-idalib/cmd/ida@latestUsage
❯ ida path/to/i64 • Function count: 22140
• 1st Function: 0x15a87c2f0Decompiled Function:
int __fastcall memset_s(void *s, size_t smax, int c, size_t n)
{
size_t v4; // x8
int v5; // w19
if ( !s )
return 22;
if ( (smax & 0x8000000000000000LL) != 0 )
return 7;
if ( n >= smax )
v4 = smax;
else
v4 = n;
if ( n <= smax )
v5 = 0;
else
v5 = 84;
memset(s, c, v4);
return v5;
}Print Version
❯ ida version
• IDA library version: 9.0.241217Warning
idalib cannot function correctly when not running on the same thread that you initialized the library on. Right now I am not doing anything to ensure Go doesn't create/switch threads so it will 'freeze' if you do anything too long/complex.
Unzip IDA 9.0 SDK in root directory to build
make buildMIT Copyright (c) 2025 blacktop