【问题标题】:Memory error when using androguard module in Yara Rules在 Yara 规则中使用 androguard 模块时出现内存错误
【发布时间】:2018-10-08 12:25:18
【问题描述】:

我尝试使用androguard module 安装Yara 3.8.1。在安装过程中遇到this issue,所以我将@reox给的补丁应用到androguard.c文件中,问题就解决了。之后,我使用命令行使用import "androguard" 尝试了一个简单的 Yara 规则,它运行良好。然后我尝试在我的 python 应用程序中使用 Yara 规则,所以我安装了yara-python 并以这种方式使用它:

import yara

dex_path = './classes.dex'
my_rule = './rule.yar'
json_data = load_json_data()

rule = yara.compile(my_rule)
matches = rule.match(filepath=dex_path, modules_data={'androguard': json_data})
print(matches)

match 函数在使用没有 import "androguard" 模块的 Yara 规则时效果很好,但是当我想应用导入 androguard 的规则时,match 函数会出错:

yara.Error: could not map file "./classes.dex" into memory

我正在对一个小文件应用一个简单的规则,以 KB 为单位。我认为问题出在 androguard 模块上,因为当我删除 import "androguard" 时,它可以正常工作。任何的想法?

【问题讨论】:

  • Androgaurd 存在一些内存泄漏问题。当分析一个 4MB 的文件时,它会消耗大约 2GB 的内存。
  • @ChillarAnand 那么为什么当我在命令行(yara -x androguard=andro-report.json rule.yar sample.apk)中使用它时不会导致内存泄漏问题?我不确切知道问题的根源,是Androguard iteslt,还是androguar-yara 模块或yara-python 模块?

标签: python yara androguard


【解决方案1】:

我用androguard也出现同样的错误,我解决了3.8.0版本安装yara-python的问题

https://github.com/VirusTotal/yara-python/releases/tag/v3.8.0

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多