• 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中浏览这些地方会看到它们都被上了色。

  • 相关阅读:
    ASP.NET连接各种数据库办法
    随机生成中文验证码
    数据库进阶
    mysql数据库
    shell 系统学习
    redis 常见问题
    Linux下Nginx服务Rewrite和Proxy_Pass
    python 开发之路(2)
    shell 基础及提高
    mysql数据库和表物理内存
  • 原文地址:https://www.cnblogs.com/blacksunny/p/7215397.html
Copyright © 2020-2023  润新知