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 [email protected]

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

下载这个包

安装方法:

1)解压压缩包

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

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

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

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

IDAPython的妙用_第1张图片

 

应用:

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...里输入

你可能感兴趣的:(python,IDA,加密解密,编程学习)