Androguard - огромный анализ APK, приводящий к ошибке `MemoryError`
Я пытался использовать Androguard для анализа файла APK. Мой код довольно прост:
from androguard import misc
from androguard import session
APK_TO_ANALYZE_PATH = r"file.apk"
a, d, dx = misc.AnalyzeAPK(APK_TO_ANALYZE_PATH)
print(" [*] Success")
Файл APK довольно большой, около 150 МБ сжат. Тем не менее, на моей машине установлено 16 ГБ оперативной памяти, а размер файла подкачки определен не более 14 ГБ, поэтому у меня всего 30 ГБ памяти.
При попытке проанализировать этот огромный APK через несколько минут я получаю сообщение об ошибке:
Traceback (most recent call last):
File "C:\Projects\ApkFiles\apk_analyzer.py", line 48, in <module>
main()
File "C:\Projects\ApkFiles\apk_analyzer.py", line 39, in main
a, d, dx = misc.AnalyzeAPK(APK_TO_ANALYZE_PATH)
File "C:\Python37-32\lib\site-packages\androguard\misc.py", line 69, in AnalyzeAPK
for dex in a.get_all_dex():
File "C:\Python37-32\lib\site-packages\androguard\core\bytecodes\apk.py", line 808, in get_all_dex
yield self.get_file(dex_name)
File "C:\Python37-32\lib\site-packages\androguard\core\bytecodes\apk.py", line 771, in get_file
return self.zip.read(filename)
File "C:\Python37-32\lib\zipfile.py", line 1432, in read
return fp.read()
File "C:\Python37-32\lib\zipfile.py", line 885, in read
buf += self._read1(self.MAX_N)
File "C:\Python37-32\lib\zipfile.py", line 975, in _read1
data = self._decompressor.decompress(data, n)
MemoryError
В чем проблема?