首页
社区
课程
招聘
[原创]提取Android apk app等 AndroidManifest.xml .so jar等文件通用脚本
发表于: 2023-5-19 20:11 5668

[原创]提取Android apk app等 AndroidManifest.xml .so jar等文件通用脚本

2023-5-19 20:11
5668

网上看了好多,尝试过后,就调用apktools还靠谱一些,但对于大量的apk来说,就太费时间,和机器性能了.所以写了个脚本.
简洁明了,不麻烦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import subprocess
#要解压缩的apk文件
file_path = r"C:\Users\yuyu\Desktop\asd.apk"
# 设置要提取的文件名
file_name = 'AndroidManifest.xml'
# 设置提取文件的输出目录
output_dir = r'C:/Users/yuyu/Desktop/yourapp'
#设置7z.exe的安装目录
zip7z=r"D:\exe\tools\7z\7-Zip\7z.exe"
 
 
 
import os
#遍历文件夹函数
def findAllFile(base):
    for root, ds, fs in os.walk(base):
        for f in fs:
            if f.endswith('.apk'):#判断是否是.apk文件后缀
                fullname = os.path.join(root, f)
                yield fullname
'''参数1:完整文件路径,参数2只需要新文件名就可以'''
old_name="J:/http_Down/1.txt"
new_name="5.exe"
#修改文件名称函数
def my_rename(old_name, new_name):
    (path, filename) = os.path.split(old_name)
    print(filename)  # HashCalc.exe
    print(path)  # D:\exe\tools
    new_name=path+"\\"+new_name
    os.rename(old_name, new_name)
 
def main():
    base = 'H:\\apk'
    for i in findAllFile(base):
        print(i[len('H:\\apk\\'):])
 
        # 使用7z命令行模式打开文件并提取文件
        cmd = [r"D:\exe\tools\7z\7-Zip\7z.exe", 'x', i, "-o" + output_dir, file_name]
        sp = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
        sp.communicate()
 
        try:
            xmlname=output_dir+"/"+file_name
            my_rename(xmlname,i[len('H:\\apk\\'):]+".xml")
        except Exception as e:
            print(e)
 
main()

接下来遇到的问题就是,如何解析,解压出来的AndroidManifest.xml 文件,参照网上的xml模块解析,总是错误,有乱码,还没搞定,希望有大佬可以出个解析AndroidManifest.xml py脚本呀


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用360直接解压缩不行嘛
2023-5-19 23:14
0
游客
登录 | 注册 方可回帖
返回
//