rovellipaolo/NinjaDroid

Unable to parse AndroidManifest for certain apps

tomit87 opened this issue · 2 comments

Could you please check what's wrong with AndroidManifest parsing on some APKs? I get the following for a couple package names (i.e. com.snapchat.android, com.letgo.ar):

Traceback (most recent call last): File "ninjadroid.py", line 117, in <module> sys.exit(main()) File "ninjadroid.py", line 38, in main apk = read_target_file(args.target, args.no_string_processing) File "ninjadroid.py", line 71, in read_target_file apk = APK(filepath, no_string_processing) File "/Users/developer/Downloads/NinjaDroid-master/ninjadroid/parsers/apk.py", line 33, in __init__ self._extract_and_set_entries(string_processing) File "/Users/developer/Downloads/NinjaDroid-master/ninjadroid/parsers/apk.py", line 60, in _extract_and_set_entries self._manifest = AndroidManifest(entry_filepath, True, apk_filepath) File "/Users/developer/Downloads/NinjaDroid-master/ninjadroid/parsers/android_manifest.py", line 27, in __init__ self._raw = AXMLPrinter(fp.read()).get_buff() File "/Users/developer/Downloads/NinjaDroid-master/ninjadroid/axmlparser/axml_printer.py", line 27, in __init__ self.buff += "<%s%s\n" % (self.__get_prefix(self.axml.get_prefix()), self.axml.get_name()) File "/Users/developer/Downloads/NinjaDroid-master/ninjadroid/axmlparser/axml_parser.py", line 162, in get_name return self.string_block.get_raw(self._name) File "/Users/developer/Downloads/NinjaDroid-master/ninjadroid/axmlparser/string_block.py", line 70, in get_raw data += chr(self.get_short(self._strings, offset)) File "/Users/developer/Downloads/NinjaDroid-master/ninjadroid/axmlparser/string_block.py", line 81, in get_short value = array[int(offset / 4)] IndexError: list index out of range

Can't figure it our since I don't fully understand what you're doing there :)

Thanks for reporting it! I will take a look and fix it. ;)

Hey @tomit87, sorry for coming back to you this late.
Can you please try it again with the latest version?