Daenerys Interoperability Framework

repository·master·Indexed 43 days ago

https://github.com/binary-wizards/daenerys-sre

An interoperability framework that allows reverse engineering scripts, specifically IDAPython and Ghidra Python, to run in the opposing environment with minimal modification.

Tokens
398
Snippets
1
Records
3
Agent score
5%

What's inside Daenerys

  1. What is Daenerys?

    master
    Daenerys is an interoperability framework designed to allow reverse engineering scripts to run across different environments with minimal modification. Specifically, it enables running IDAPython scripts within Ghidra and Ghidra scripts within IDA Pro.
  2. Install Daenerys adapters for Ghidra

    master

    To enable IDAPython script support in Ghidra, you must install the IDA Pro Ghidra adapter scripts.

    1. Locate the IDA folder in the Daenerys repository.
    2. Copy the adapter scripts to your Jython sys.path directory. A common default path is: C:\Users\[username]\.ghidra\.ghidra-9.0\dev\ghidra_scripts\bin
    3. Alternatively, you can manually add the path to these scripts using the Scripts Manager window within Ghidra.
  3. Run an IDAPython example script in Ghidra

    master

    Once the adapters are installed, you can run scripts that use the idc module directly in Ghidra. The following example demonstrates how standard IDAPython calls like idc.here(), idc.MinEA(), and idc.Byte() function within the Ghidra environment via Daenerys.

    #@category Daenerys.IDAPython.Examples
    
    import idc
    
    print("Hello world from Ghidra...")
    print("Current address is: %x" % idc.here())
    print("Min address: %x - Max address: %x" % (idc.MinEA(), idc.MaxEA()))
    print("Byte at current address is: %02x" % idc.Byte(idc.here()))
    print("BADADDR=%x" % idc.BADADDR)