idapython杂记

学习一下这个库,方便脚本好干活
内容辣眼睛,仅为自用

seg000:000000000000005E                 mov     rbx, rsi
seg000:0000000000000061                 sub     rsp, 8
seg000:0000000000000065                 mov     rbp, [rsi+r13-8]  !!!!!!!光标停留在这里
seg000:000000000000006A                 mov     rdi, rbp
seg000:000000000000006D                 call    sub_1847
seg000:0000000000000072                 lea     rbp, [rbp+rax+1]

在这里插入图片描述

Python>ea = here()
Python>idaapi.decode_insn(ea)
5
Python>idaapi.cmd.Op2.addr
18446744073709551608
Python>addr2 = idaapi.cmd.Op2.addr
Python>hex(addr2)
0xfffffffffffffff8L  这个就是 -8

解读:
我们得到每个指令在一个函数里通过调用 idautils.FuncItems(ea) 。从这里一个新的函数 idaapi.decode_insn(ea)被调用。这个函数获得我们想要解码的指令的地址。一旦它被解码,我们可以通过访问它的 idaapi.cmd 访问指令的不同性质。
延伸
可以帮助我们找到一些重复访问的位移值 。

Python>displace[0x40]
[1609L, 1876L, 2293L]
Python>for x in displace[0x40]:print hex(x),GetDisasm(x)
0x649L mov     [rsp+88h+var_40], rax
0x754L mov     qword ptr [rax+48h], 38h
0x8f5L mov     rsi, [rsp+88h+var_40]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值