Skip to content

blacktop/go-idalib

Repository files navigation

go-idalib

Go bindings for the IDA 9.0 SDK via idalib

Why? 🤔

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.

Getting Started

Requirements

  • IDA Pro 9.0 or newer installation (with a valid license)
go get github.com/blacktop/go-idalib

ida demo tool

Install

go install github.com/blacktop/go-idalib/cmd/ida@latest

Usage

❯ ida path/to/i64
   • Function count: 22140
   • 1st Function: 0x15a87c2f0
Decompiled 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.241217

Known Issues

Warning

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.

Development

Requirements

Unzip IDA 9.0 SDK in root directory to build

make build

License

MIT Copyright (c) 2025 blacktop

About

Go bindings for the IDA 9.0 SDK

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages