• python解析AndroidManifest.xml文件


      在写分析报告的时候需要贴上apk的权限,手动一个一个粘贴上去感觉很麻烦,于是自己写了个脚本自动获取权限,同时能给出相应的中文说明。不废话了,先来介绍python的几个函数:

      1、Python 去除字符串空格的函数为:strip()去除两边空格,lstrip()去除左边空格,rstrip()去除右边空格。    

    # 例去除字符串左右空格
    a = ' Python '
    a = a.strip()        # 去除空格后保存变量
    print a        # 输出变量a
    >> Python

      2、startswith()函数判断文本是否以某个字符开始,endswith()函数判断文本是否以某个字符结束。

      3、字符串查找:变量.find("要查找的内容"[,开始位置,结束位置]),开始位置和结束位置,表示要查找的范围,为空则表示查找所有。查找到后会返回位置,位置从0开始算,如果没找到则返回-1。在python中-1被认为是True,切记!

    str = 'a,hello'
    print str.find('hello')    # 在字符串str里查找字符串hello
    >> 2            # 输出结果

      本文主要用到find函数。通过查找“uses-permission”来定位权限描述所在的位置,然后通过列表的“:”操作符来截取权限信息。具体代码如下:  

     1 #-*-coding:utf-8-*-
     2 
     3 ''' uses-permission Array '''
     4 usesPermissionArray = []
     5 ''' sdk version '''
     6 sdkVersion = ''
     7 ''' localesArray '''
     8 localesArray = []
     9 ''' icon file name '''
    10 #iconFileArray = []
    11 
    12 f = open(r"C:\Users\***\Desktop\AndroidManifest.xml", "r+")
    13 xmlinfo = f.readlines()
    14 
    15 for line in xmlinfo:
    16     if line.find('uses-permission') > -1 :
    17         usesPermissionArray.append(line[line.find('"')+1:line.rfind('"')])
    18     elif line.find('sdkVersion:') > -1 :
    19         sdkVersion = line[line.find('"')+1:line.rfind('"')] #get sdkVersion
    20     elif line.find('locales:') > -1 :
    21         localesArray = line[line.find(':')+2:].split(' ')
    22 print usesPermissionArray

     这是我以前写的博客,后来发现github上有更全面的方法:https://github.com/antitree/AxmlParserPY

  • 相关阅读:
    2,ActiveMQ-入门
    1,Java消息服务-JMS
    2,Executor线程池
    Thymeleaf-模板引擎
    1,线程基础
    8,HashMap子类-LinkedHashMap
    7,HashMap
    ncnn编译安装-20190415
    VS2015 C#项目工程配置emgucv依赖的方法
    java jni 调用c++ opencv代码成功范例
  • 原文地址:https://www.cnblogs.com/goodhacker/p/3029424.html
Copyright © 2020-2023  润新知