Home

Awesome

IDAPerl

A perl interface for IDA

IDAPerl, is a plugin for IDA Pro, which adds perl scripting support to ida.

Author: Willem Jan Hengeveld itsme@xs4all.nl history

note: I am not actively developping this plugin anymore, since i myself now mostly use idapython for scripting.

Requirements

this plugin is known to work with ida5.2-ida6.5, and activesync perl 5.8.8, OSX perl 5.12, other versions have not yet been tested. on windows: make sure perl58.dll is in your searchpath.

Install

run: make install

how to use

type 'alt-2' to get the idaperl window, and enter for example:

use strict;
use warnings;
use IDC;

sub test123 { Msg("test123 called\n"); }
DelHotkey("Shift-I");
AddHotkey("Shift-I", "test123");

click 'OK' now type 'shift-I' and you will see 'test123 called' be printed in the ida message window other ida scripting extensions

Other IDA Scripting languages

future plans

adding 'ctrl-c' support

several possibilities:

main problem seems to be interrupting perl. 'kill' kills the whole process. 'threads->kill' in a thread kills only that thread.

some ideas:

$SIG{'KILL'}= sub { die "script killed\n"; }

-- idathread:dialog, perlthread:exec 'die "script killed"' from the idathread -> crash ( recursive exceptions called )

run externally

it should also be possible to run perl scripts from the commandline, which then find the correct IDA instance, and interact with it.

probably the best way to identify which ida instance to talk to, is by .idb file, and then find which idag.exe has it open.

but if there is only one idag running, just take that instance.

something like this: use IDA remote=>'test.idb';

ChangeLog

issues in version 0.1, which were solved in 0.2

issues in version 0.2, which were solved in 0.3

issues in version 0.3, which were solved in 0.4