Skip to main content

A python library for generate ida pro files in batch mode & compare executable files use bindiff in batch mode.

Project description

Batch-IDA

GitHub License GitHub top language Pepy Total Downlods

PyPI - Version PyPI - Wheel PyPI - Python Version

Windows macOS Linux

A python library for generate ida pro files in batch mode & compare executable files use bindiff in batch mode.

Features

  1. Fast generate idb/i64 files from binary files in batch mode (Multiprocess supported) generate_idb
  2. IDA Pro Plugin Script support
  3. Use Bindiff for batch comparison of idb files
  4. Roughly read the comparison results bia_result

Requirements

  • Windows / macOS / Linux / Linux (wine)
  • IDA pro 7.7/8.3/9.1
  • BinDiff 7/8 (Optional, used to compare executable files in batch mode)

Install

pip install --upgrade batch-ida

Usage

BI_IDA

Generate .idb/.i64 files (and run plugin) in batch mode.

from batch_ida import BI_IDA


# create a BI_IDA object with ida pro path
bi = BI_IDA('C:\Tools\IDA Pro')
# if you use wine in linux, you can set use_wine=True
# bi = BI_IDA('\home\Tools\IDA Pro', use_wine=True)

# optional
# bi.set_script(r'.\example_script.py')   # run IDA script
# bi.max_subprocess = 8                   # set max subprocess

bi.batch_idb_fromdir('your/binary/files/dir')   # generate idb files from binary files

BI_Dircmp

Compare files in dir_a & dir_b, and move different files to dst_a & dst_b.

from batch_ida import BI_Dircmp


dir_a = r'ver_A.rom/squashfs-root/usr/lib/'
dir_b = r'ver_B.rom/squashfs-root/usr/lib/'

dst_a = r'compare/ver_A'
dst_b = r'compare/ver_B'

bid = BI_Dircmp(dir_a, dir_b, dst_a, dst_b)
bid.cmp()

BI_Bindiff

Generate .idb and .bindiff files in batch mode. (Windows only)

from batch_ida import BI_Bindiff


bib = BI_Bindiff()

# Set ida pro and bindiff path
bib.set_ida_path('C:\Tools\IDA Pro')
bib.set_bindiff_path('C:\Program Files\BinDiff')

dst_a = r'compare/ver_A'
dst_b = r'compare/ver_B'
# dst_a and dst_b are the directories where the binary files to be compared are located
output = bib.batch_bindiff(dst_a, dst_b)
# output is a directory containing bindiff files(sqlite3)

BI_Analyzer

Analyze Bindiff files (sqlite3 file format) in batch mode and print the results.

from batch_ida import BI_Analyzer


bia = BI_Analyzer(r'path\to\output_dir')
bia.print_base_info()

# let's print the diff files with similarity < 0.95 and != 0.0
print("%s\t%s\t%s\t%s\t%s\t%s" % ("SIM", "CONF", "TOTAL", "FUNC", "LIBFUNC", "NAME"))
info_list = bia.get_info_list()
for i in info_list:
    if i['total_func'] & i['func_dif'] & i['libfunc_dif']:
        print("%.02f\t%.2f\t%d\t%d\t%d\t%s" % (i['similarity'], i['confidence'], i['total_func'], i['func_dif'], i[
            "libfunc_dif"], i['name']))
    elif i['similarity'] < 0.95 and i['similarity'] != 0.0:
        print("%.02f\t%.2f\t%d\t%d\t%d\t%s" % (i['similarity'], i['confidence'], i['total_func'], i['func_dif'], i[
            "libfunc_dif"], i['name']))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

batch_ida-0.1.7.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

batch_ida-0.1.7-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file batch_ida-0.1.7.tar.gz.

File metadata

  • Download URL: batch_ida-0.1.7.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.8 Windows/10

File hashes

Hashes for batch_ida-0.1.7.tar.gz
Algorithm Hash digest
SHA256 d6f04ee78c176b997d5d8ba0432f9f8cc1a075abc830d7bacd19e11cf8d147cb
MD5 58596b530ea884de67d275f67ba34203
BLAKE2b-256 8d42152ebb35cee14313d17ddca614ba1037c5df93290f674ed56b191c846586

See more details on using hashes here.

File details

Details for the file batch_ida-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: batch_ida-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.8 Windows/10

File hashes

Hashes for batch_ida-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9517b867c84a3e3e5b4f6b3f217b092d6c1bb42dd759568546007c6c789d3a5e
MD5 4bd731efe89160397ec567e54d0ce1c1
BLAKE2b-256 f432326095b457d3a3f7a23a3a55b44aedc64713dbdf015174680e10d314026d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page