All Projects → thalium → idatag

thalium / idatag

Licence: MIT license
IDA plugin to explore and browse tags

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to idatag

DriverBuddyReloaded
Driver Buddy Reloaded is an IDA Pro Python plugin that helps automate some tedious Windows Kernel Drivers reverse engineering tasks
Stars: ✭ 210 (+377.27%)
Mutual labels:  ida, ida-plugin
idarop
ROP database plugin for IDA
Stars: ✭ 26 (-40.91%)
Mutual labels:  ida, ida-plugin
Ponce
IDA 2016 plugin contest winner! Symbolic Execution just one-click away!
Stars: ✭ 1,066 (+2322.73%)
Mutual labels:  ida, ida-plugin
Hexrayspytools
IDA Pro plugin which improves work with HexRays decompiler and helps in process of reconstruction structures and classes
Stars: ✭ 873 (+1884.09%)
Mutual labels:  ida, ida-plugin
Ida Batch decompile
*Decompile All the Things* - IDA Batch Decompile plugin and script for Hex-Ray's IDA Pro that adds the ability to batch decompile multiple files and their imports with additional annotations (xref, stack var size) to the pseudocode .c file
Stars: ✭ 198 (+350%)
Mutual labels:  ida, ida-plugin
Necromancer
IDA Pro V850 Processor Module Extension
Stars: ✭ 21 (-52.27%)
Mutual labels:  ida, ida-plugin
dynlib
IDA Pro plugin to aid PS4 user mode ELF reverse engineering.
Stars: ✭ 51 (+15.91%)
Mutual labels:  ida, ida-plugin
Ipyida
IPython console integration for IDA Pro
Stars: ✭ 358 (+713.64%)
Mutual labels:  ida, ida-plugin
IDAShell
Shell extension for opening executables in IDA
Stars: ✭ 172 (+290.91%)
Mutual labels:  ida, ida-plugin
Rematch
REmatch, a complete binary diffing framework that is free and strives to be open source and community driven.
Stars: ✭ 141 (+220.45%)
Mutual labels:  ida, ida-plugin
ida2pwntools
a IDA 7.0 plugins that helps to attach process created by pwntools and debug pwn
Stars: ✭ 58 (+31.82%)
Mutual labels:  ida, ida-plugin
fa
Automation tool for locating symbols & structs in binary (primary IDA focused)
Stars: ✭ 58 (+31.82%)
Mutual labels:  ida, ida-plugin
Idarling
Collaborative Reverse Engineering plugin for IDA Pro & Hex-Rays
Stars: ✭ 588 (+1236.36%)
Mutual labels:  ida, ida-plugin
ida migrator
IDA Migrator is an IDA Pro plugin which helps migrate existing work from one database instance to another. It Conveniently migrates function names, structures and enums.
Stars: ✭ 65 (+47.73%)
Mutual labels:  ida, ida-plugin
Dsync
IDAPython plugin that synchronizes disassembler and decompiler views
Stars: ✭ 399 (+806.82%)
Mutual labels:  ida, ida-plugin
Flare Ida
IDA Pro utilities from FLARE team
Stars: ✭ 1,374 (+3022.73%)
Mutual labels:  ida, ida-plugin
Polichombr
Collaborative malware analysis framework
Stars: ✭ 307 (+597.73%)
Mutual labels:  ida, ida-plugin
Scratchabit
Easily retargetable and hackable interactive disassembler with IDAPython-compatible plugin API
Stars: ✭ 369 (+738.64%)
Mutual labels:  ida, ida-plugin
Jarvis
"Just Another ReVersIng Suite" or whatever other bullshit you can think of
Stars: ✭ 137 (+211.36%)
Mutual labels:  ida, ida-plugin
Idangr
Use angr in the IDA Pro debugger generating a state from the current debug session
Stars: ✭ 214 (+386.36%)
Mutual labels:  ida, ida-plugin

IDATag - Tag explorer for IDA Pro

When analyzing a binary, a reverser using IDA will rename functions, comment, add bookmarks.

Moreover, this actions are available only from the IDA environment (IDA, IDA scripting or plugins).

However, this usage does not allow to have a global view of the analysis. Also, the different conventions to document an IDB may differ.

Finally, adding information from an external tools is not possible (except with scripts or plugins).

The idea behind IDATag is to offer a centralized way/view to document an IDB from IDA or from any other external tool.

Overview

IDATag is a tag plugin for IDA Pro. The plugin leverages IDA as a platform to map, explore, and visualize collected tags.

Tags can come from multiple sources such as IDA itself or different other clients.

Releases

  • v0.3 -- Build on Linux, SDK IDA 7.3 , bug fix
  • v0.2 -- Additional interactivity with IDATag from IDA
  • v0.1 -- Initial release

The plugin is in active development, some bugs may appear. Thanks to let me know!

Building

Requirements

  • Qt 5.6.3 (IDA version)
  • IDA SDK (7.0 and above)
  • msvc 15.7 or gcc-8 (std::filesystem required)
  • msvc, g++, cmake
  • libgl-dev

IDA Pro (32-bit)

Linux

export IDASDK=/opt/idafree-7.0/idasdk73
export IDATARGET=IDA32NUX
mkdir Ida32Build
cd Ida32Build
cmake -G"Unix Makefiles" ..
make

Windows

set IDASDK=C:\Program Files\IDA Pro 7.3\idasdk73
set IDATARGET=IDA32WIN
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
mkdir Ida32Build
cd Ida32Build
cmake -G"Visual Studio 16 2019" -A x64 ..
cmake --build . --config RelWithDebInfo

The build binary can be found in bin\IDATag_x64\ directory:

  • IDATag.dll for IDA Pro 32-bit

IDA Pro (64-bit)

Linux

export IDASDK=/opt/idafree-7.0/idasdk73
export IDATARGET=IDA64NUX
mkdir Ida64Build
cd Ida64Build
cmake -G"Unix Makefiles" ..
make

Windows

set IDASDK=C:\Program Files\IDA Pro 7.3\idasdk73
set IDATARGET=IDA64WIN
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
mkdir Ida64Build
cd Ida64Build
cmake -G"Visual Studio 16 2019" -A x64 ..
cmake --build . --config RelWithDebInfo

WARNING: no quotes for the IDASDK path! Example :

set IDASDK=C:\Program Files\IDA Pro 7.3\idasdk73

The build binary can be found in bin\IDATag_x64\ directory:

  • IDATag64.dll for IDA Pro 64-bit

Installation

Just copy the built dll file in the IDA Pro plugin directory.

REMARK: you can also create a symbolic link to th target dll. for example, in an Admin prompt:

mklink IDATag.dll c:\dev\IDATag\bin\IDATag_x64\IDATag.dll
mklink IDATag64.dll c:\dev\IDATag\bin\IDATag_x64\IDATag64.dll

This plugin targets IDA Pro version 7.0 and above only. This plugin has not been tested on Linux.

Usage

IDATag loads automatically when an IDB is opened. To open the view, you may use the Ctrl+Alt+T shorcut.

Tag Overview

The Tag Overview is a dockable widget that provides view of the referenced tags.

alt-text

These tags can come from multiple entry points:

  • IDB functions
  • IDB names
  • Disassembly
  • External JSON tag file

alt-text

The JSON tag file is a pivot to each IDATag client.

Every tools that could create a JSON file with a specific structure is able to feed your IDA view. The JSON contract has been designed as minimalist.

For instance, the following JSON is used to tag a specific offset with two tags:

[
	{
		"tag": "crypto",
		"offset": 5065078,
		"feeder": "tagcrypt"
	},
	{
		"tag": "SHA-1",
		"offset": 5065078,
		"feeder": "tagcrypt"
	}
]
  • Tag : label of the tag
  • Offset : RVA of the offset (make sure of the base used when generating a tag and the IDB base)
  • Feeder : signature of the tag

Each tag in the IDATag view is displayed with a specific colour corresponding to its feeder (tag signature).

alt-text

This table can be sorted by column, and entries can be double clicked to jump to their corresponding disassembly. Moreover, multiple filters are available to facilitate the navigation:

  • Keep only tagged offsets
  • Textual filter (with case)
  • Feeder filter

When textually filtered a tag will be highlighted in the view.

Also, it is possible to add tags from IDA by:

  • Double-clicking the tag case of a specific offset
  • Typing in a selected tag cell
  • From contextual menu in Functions view
  • From contextual menu in Names view
  • From contextual menu in Disassembly view

Tagging from IDA will automatically add an User tag to follow up the work done.

Finally, all the tags may be modified the same way through the IDATag view.

Context Menu

Right clicking the table in the Tag Overview will produce a context menu with a few basic amenities.

  • Export Tags to a JSON file
  • Filter by feeders (IDATag client)
  • Refresh tags from files
  • Reset filters
  • Paint offset (not implemented yet)

Also, IDATag contextual menu is accessible from different views:

  • Functions view
  • Names view
  • Disassembly view

alt-text

Configuration

The plugin can be configured with a specific folder to store tag files and username. The menu is accessible at 'Edit > [IDATag] Configuration'.

alt-text

IDA integration

Multiple hooks have been deployed to automatically tag the database:

  • Patch event
  • Rename event
  • Comment event

Other event might be supported in the near future (eg. new_file).

Tag version

It is possible to ensure the good usage of a tag on a specific IDB by adding a hash value in the tag file. This hash value should correspond to the hashsum of the binary.

[
	{
		"hash": "2E6E67FF68755B3CD8236F0FFA1A05D6"
		"tag": "crypto",
		"offset": 5065078,
		"feeder": "tagcrypt"
	}
]

Tag clients

One of the main goal of IDATag is to make IDA extensible. It can takes as input json files generated by other tools.

Several clients are provided in the client folder:

  • TagMetaRebase - rebase tags
  • TagPcap - extract tags from Icebox pcap file
  • TagAPI - generate tags based on IAT xrefs
  • TagFuncRefs - generate tags based on function xrefs
  • TagSource - generate tags based on source file strings
  • TagString - generate tags based on strings
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].