IDAPython的妙用

本文详细介绍了如何在IDA环境下利用IDAPython进行逆向工程操作,包括环境配置、基本命令使用、自定义钩子函数实现特定功能,以及如何查看并理解IDAPython提供的API文档。通过实例演示,读者可以掌握IDAPython的基本用法及高级应用技巧。
部署运行你感兴趣的模型镜像

看过Python灰帽子的密友都知道IDAPython在逆向的场景中常常能够发挥出巨大的威力,笔者偶然一次在逆向的过程中使用了它,下面就来总结一下使用的方法和一些注意事项:

环境:IDA 6.1 ,android 2.3 AVD。

我这个IDAPython的版本是:

--------------------------------------------------------------------------------------

Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]

IDAPython v1.5.2 final (serial 0) (c) The IDAPython Team idapython@googlegroups.com

--------------------------------------------------------------------------------------

下载这个包

安装方法:

1)解压压缩包

2)将python.plw,python.p64复制到IDA的插件目录plugins下。

3)将python的目录拷贝到IDA的主目录中。

如果安装成功,在启动IDA后,输出面板会有如上的输出。

 安装好了以后,我的只有一个Python command... 命令项,并没有Python file...项

 

应用:

from idaapi import *
from idc import *

count = 0

class DumpHook(DBG_Hooks):
    def dbg_bpt (self,tid,ea):
        global count
        count += 1;
        print "[*] Hit: 0x%08x the %d time\n" % (ea, count)
        data = "\xBE\x91\x0A\xF3\x9A\x26\xA4\xA9\x92\xC6\xFD\x01\xA1\x43\xED\x19"
        dbg_write_memory(GetRegValue("r7"), data)
        return 1

try:
    if debugger:
        print("Removing previous hook ...")
        debugger.unhook()
except:
    pass

AddBpt (0x8050a42e)
SetBptAttr(0x8050a42e, BPTATTR_FLAGS, BPT_ENABLED|BPT_TRACE)
print "[*] set hook OK...\n"

debugger = DumpHook()
debugger.hook()


关于里面的函数,可以去查看IDA主目录下python文件夹里的idc.py和idaapi.py,里面有对各个函数的详细说明。

注意:python脚本从python command...里输入,而不是作为一个文件从script file...里输入

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值