用于采集函数调用信息的IDAPython脚本
优采云 发布时间: 2020-08-06 07:11转载: 好吧
当我们寻找软件错误或恶意代码分析时,我们将首先找到一些易于被错误使用的常用功能. 但是有时候很难找到太多的程序代码并且很费时间. 因此,我们可以编写脚本来跟踪这些功能,找出它们的调用位置,然后将这些位置的背景色设置为不同的颜色,以便我们可以在IDA窗口中轻松看到它们.
以下是我们测试程序的伪代码:
我们将使用此脚本找出printf函数.
1
2
3
4
5
6
7
8
9
10
11
12
13
从idaapi导入*
danger_funcs = [“ printf”]#需要找到函数的名称
对于危险功能中的功能:
addr = LocByName(func)
如果addr!= BADADDR:
#查找交叉引用的地址
cross_refs = CodeRefsTo(addr,0)
打印“对%s的交叉引用”%func
打印“ -------------------------------”
cross_refs中的参考
打印“ x”%引用
#函数的颜色为红色
SetColor(ref,CIC_ITEM,0x0000ff)
效果:
我们首先获取这些功能的地址,然后测试这些地址的有效性. 然后获取这些函数的交叉引用信息,确认它们的调用位置,最后将它们打印出来并在IDA中进行着色.
这是打印的信息.
如果在IDA中浏览这些位置,您会发现它们都是彩色的.