转载: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中给它们上色。

这是打印出的信息。
IDAPython脚本之收集函数的调用信息

如果在IDA中浏览这些地方会看到它们都被上了色。
IDAPython脚本之收集函数的调用信息

相关文章:

  • 2022-12-23
  • 2021-07-17
  • 2021-11-06
  • 2021-09-20
  • 2021-11-18
  • 2021-08-19
猜你喜欢
  • 2022-12-23
  • 2021-05-26
  • 2022-12-23
  • 2022-01-22
  • 2021-11-05
  • 2021-07-31
  • 2021-06-18
相关资源
相似解决方案