zoukankan      html  css  js  c++  java
  • IDAPython脚本之收集函数的调用信息

    转载:All Right

    当我们要寻找软件漏洞 bug 的时候,或者做恶意代码分析的时候,首先会找一些常用的而且容易被错误使用的函数。但是有时候程序代码太多找的比较辛苦,并且费时间。所以我们可以写一个脚本来跟踪这些函数,找出调用它们的地方,之后在这些地方的背景色设置成不同的颜色,这样我们在 IDA 窗口中就能很方便的看出来。

    下面是我们测试程序的伪代码:

    我们要用这个脚本找出printf函数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    from idaapi import *
    danger_funcs = ["printf"] # 需要寻找的函数名
    for func in danger_funcs:
    addr = LocByName( func )
    if addr != BADADDR:
    #找到交叉引用的地址
    cross_refs = CodeRefsTo( addr, 0 )
    print "Cross References to %s" % func
    print "-------------------------------"
    for ref in cross_refs:
    print "%08x" % ref
    # 函数的颜色为红色
    SetColor( ref, CIC_ITEM, 0x0000ff)

    效果:
    我们先获得这些函数的地址,然后测试这些地址的有效性。接着获得这些函数的交叉引用信息,确认什么地方调用了它们,最后把它们打印出来,并在IDA中给它们上色。

    这是打印出的信息。

    如果在IDA中浏览这些地方会看到它们都被上了色。

  • 相关阅读:
    MFC工作者线程
    【转】水煮TCPMP
    TCPMP的ARM编译器问题
    奇怪的链接警告-ole32.lib
    Stack overflow错误的一个原因
    旋转wince的桌面的函数
    ASNI to Unicode 转换与系统语言的问题
    WinCE 驱动开发问题精华集锦
    【转】OAL之系统时钟
    【转】蓝牙技术及其系统原理
  • 原文地址:https://www.cnblogs.com/blacksunny/p/7215397.html
Copyright © 2011-2022 走看看