diff options
Diffstat (limited to 'plugins/python/androperms')
-rw-r--r-- | plugins/python/androperms/androperms.py | 6 | ||||
-rw-r--r-- | plugins/python/androperms/panel.py | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/plugins/python/androperms/androperms.py b/plugins/python/androperms/androperms.py index ddccb8a..f68b9a5 100644 --- a/plugins/python/androperms/androperms.py +++ b/plugins/python/androperms/androperms.py @@ -5,6 +5,7 @@ from manifest import AndroidManifest from db import PermsDataBase from panel import PermsPanel from pychrysalide import Plugin +from pychrysalide.format.dex import DexFormat from xml.dom import minidom import re @@ -31,6 +32,10 @@ class AndroPerms(Plugin): def execute_on_binary(self, binary, action): """Process once a binary is disassembled.""" + fmt = binary.get_format() + if not isinstance(fmt, DexFormat): + return False + zf = zipfile.ZipFile(binary.get_filename()) f = zf.open('AndroidManifest.xml', 'r') @@ -56,7 +61,6 @@ class AndroPerms(Plugin): db = PermsDataBase() db.filter_permissions(plist) - fmt = binary.get_format() instrs = binary.get_instructions() buf = binary.disassembled_buffer diff --git a/plugins/python/androperms/panel.py b/plugins/python/androperms/panel.py index b892339..8f8e925 100644 --- a/plugins/python/androperms/panel.py +++ b/plugins/python/androperms/panel.py @@ -1,6 +1,7 @@ #!/usr/bin/python # -*- coding: utf-8 -*- +from pychrysalide.format.dex import DexFormat from pychrysalide.gui.panels import PanelItem import gtk @@ -88,6 +89,10 @@ class PermsPanel(PanelItem): self._store.clear() + fmt = binary.get_format() + if not isinstance(fmt, DexFormat): + return False + used = self._perms[binary] for p in used: |