## Installation

### Overview

BinNavi is not a stand-alone product. Depending on how you plan to use BinNavi you have to install additional third-party software packages. This section explains what third-party software is required or optional. Each additional third-party software and its installation and configuration is described.

### Installation of BinNavi

An installation of BinNavi is not necessary. It is enough to unpack the BinNavi ZIP file somewhere.

### Installation of Third-Party Software

No matter how you are using BinNavi, you need to install the following additional components:

- Java Runtime Environment 6.0+
- MySQL Enterprise Server 5.0+

If you want to use IDA Pro as your primary disassembler, you also need to install the following components:

- IDA Pro 5.6+

The recommended way to get data from IDA Pro into the MySQL database is to use our exporter plugin. If you want to go this way you also need:

- Microsoft Visual C++ 2010 Redistributable package (note that this software is only required if you are using Microsoft Windows)

If you prefer to use the obsolete Python-based exporter to get data from IDA Pro into the MySQL database, you also need:

- IDAPython 1.4.3+
- MySQL for Python
- ida2sql

#### Java Runtime Environment 6.0+

Download Site: JRE 6.0 Download Site

The Java Runtime Environment (JRE) is necessary to run BinNavi. Before proceeding with the installation of BinNavi you should be sure to install at least version 6.0 of the JRE. You can check your version of Java by entering the command

    java -version

in the shell. The output should look like the one below.

    java version "1.6.0_07"
    Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
    Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

BinNavi should work if the version output shows some kind of 1.6 version.

A default installation of the JRE 6.0+ is sufficient for BinNavi.

#### MySQL Enterprise Server 5.0+

Download Site: MySQL Enterprise Server Download Site
Product Site: MySQL Enterprise Server Product Site

MySQL Enterprise Server is always required if you want to use BinNavi because BinNavi stores all information about projects, modules, and assembly code in a MySQL Enterprise Server database. At least version 5.0 of MySQL Enterprise Server is required.

A default configuration of MySQL Enterprise Server works mostly fine with BinNavi but you might run into problems with mid-sized to large target applications. Should this happen it is recommended to change the following settings in your MySQL Enterprise Server configuration file.

- max_allowed_packet: This setting can be changed from its default value of 1M to 16M to support larger SQL queries.
- innodb_buffer_pool_size: This setting can be changed to a size reasonable for the database machine. BinNavi makes heavy use of indizes therefore we recomend to set this to around 2G for a normal workstation.

#### IDA Pro 5.6+

Product Site: IDA Pro Product Site

IDA Pro is a commercial disassembler that can disassemble binary files from many different platforms. Using IDA Pro is the recommended way of getting data into BinNavi. At least IDA 5.5 is necessary but IDA Pro 5.7 is recommended.

A default installation of IDA Pro works fine with BinNavi.

#### Microsoft Visual C++ 2010 Redistributable package (Windows only)

Product Site: Microsoft Visual C++ 2010 Redistributable package Download Site

If you are using BinNavi in Microsoft Windows and you have not yet installed the Microsoft Visual C++ Redistributable package, you need to install it for the C++-based exporter to work.

#### IDA Python 1.4.3+

Download Site: IDA Python 1.4.3 Download Site

A Python script is used to export data from IDA Pro to BinNavi. This Python script is executed by the IDA plugin IDA Python which adds Python scripting support to IDA Pro.

A default installation of IDA Python works fine with BinNavi.

#### MySQL for Python

Download Site: MySQL Python Download Site

MySQL for Python is a Python module that allows Python scripts to communicate with MySQL databases. This is required for exporting data from IDA to the BinNavi SQL database.

A default installation of MySQL for Python works fine with BinNavi.

#### ida2sql

Download Site: ida2sql git repository

ida2sql for IDA Python is the open source exporter for BinNavi. To use ida2sql in your BinNavi installation you have to clone the git repository to your local harddrive.

Once all files are transfered to your local hard drive you have to create a zip file of the ida_to_sql directory with the name ida2sql.zip. This zip file and the files

- ida2sql.cfg
- ida2sql.py

have to copied into a folder with the name ida2sql in the BinNavi install directory. If the folder does not exist you have to create it. Then the ida2sql exporter can be used from within BinNavi.

### Installation of the IDA Pro Plugin

If you are using IDA Pro as the primary data source for BinNavi you also have to install the IDA Pro plugins. You can either use the recommended C++ plugin or the deprecated Python plugin.

#### Installation of the C++ plugin

You can install the C++ plugin through the IDA Pro path configuration dialog in the Global Settings dialog of BinNavi. There is a button that installs the exporter to the selected IDA Pro directory.

If installation of the C++ plugin fails, you can install the plugin manually. To do so you have to copy all the files (except BinExport.idc) from the BinNavi/exporters/BinExport directory to your IDA Pro directory. If you are running recent versions of BinDiff or previous versions of BinNavi, the exporter plugin zynamics_binexport_*.plw might already exist in your plugins directory.

#### Installation of the Python plugin

The Python plugin does needs to be downloaded into your BinNavi like explained above. Also, you need to make sure that you have IDAPython running in IDA Pro. When you start IDA Pro with an active version of IDAPython, the IDAPython plugin will print some version information to the IDA console.

###