среда, 17 июля 2013 г.

updated perl binding for IDA Pro

I add functions for accessing cmd structure
Now you can do things like this:
#!perl -w
use strict;
use warnings;
use IDA;

my $addr = ScreenEA();
my $href = ua_ana($addr);
my $str = GetDisasm($addr);
if ( defined($href) )
{
  my $iter;
  printf("real: %s, %s:\n", $str, get_mnem);
  foreach $iter ( keys %$href )
  {
    printf("%s: %X\n", $iter, $href->{$iter});
  }
  my $op_idx;
  for ( $op_idx = 0; $op_idx < 6; $op_idx++ )
  {
    my $op = get_op($op_idx);
    last if ( !defined $op );
    printf("operand %d:\n", $op_idx);
    foreach $iter ( keys %$op )
    {
      printf(" %s ", $iter);
      print $op->{$iter} . "\n";
    }
  }
}
Sample of output:
real: lea     ebp, [edx+ecx*4], lea:
ea: 2E29172
flags: 0
insnpref: 0
segpref: 0
ip: 2E29172
auxpref: 1808
size: 3
itype: 5C
cs: 0
operand 0:
 reg 5
 flags 8
 offo 0
 offb 0
 specflag1 0
 dtyp 2
 specflag2 0
 specflag3 0
 specflag4 0
 type 1
operand 1:
 phrase 4
 flags 8
 sib_scale 2
 offo 0
 offb 0
 sib_index 1
 specflag1 1
 dtyp 2
 specflag2 4294967178
 sib_base 2
 specflag3 0
 specflag4 0
 type 3

Комментариев нет:

Отправить комментарий