惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
D
Docker
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
月光博客
月光博客
小众软件
小众软件
量子位
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
博客园 - 叶小钗
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
博客园 - 司徒正美
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
C
Check Point Blog

博客园 - bluce chen

swif debounce实现 oculus quest2的思考 博文阅读密码验证 - 博客园 用户中心 - 博客园 https点对点转发响应示意图 Share架构的一些心得 flutter输入颜色枚举卡顿假死 n2n网络环境搭建 p2p技术之n2n源码核心简单分析一 分享一个14年写的用户管理类-swift版 MIUI通过xposed自动设置root权限 基于xposed实现android注册系统服务,解决跨进程共享数据问题 2017 UICollectionView swift2模版 angularjs 分页精华代码 php嵌套数组递归搜索返回数组key 结合阿里云服务器,设置家中jetson tk1随时远程登陆 sqlite3 根据实体自动生成建表语句 prism4 StockTrader RI 项目分析一些体会2
Reveal分析IOS界面,plist文件读取
bluce chen · 2015-05-22 · via 博客园 - bluce chen

Reveal分析IOS界面,需要得到app的 softwareVersionBundleId上传到iphone中 ,

而IOS8的iTunesMetadata.plist

(设备路径/var/mobile/Containers/Bundle/Application)

提取plist文件使用tar命令

1.cd /var/mobile/Containers/Bundle/Application

2. tar -cvf /tmp/test/plist.tar ./*/iTunesMetadata.plist

3 scp plist.tar 到本地

去Downloads里面查找很费劲 ,所以写了个辅助脚本,一次性全部读取出来

主要使用python,实现遍历文件夹获取文件列表,然后读取字段,输出成文件libReveal.plist格式,然后 scp到 设备

/Library/MobileSubstrate/DynamicLibraries目录

python读取plist文件的库 来自https://github.com/wooster/biplist/ 1 path = '/Users/Documents/work/RevealPlist/'

 2 import os,string
 3 libRevealPlist = '''
 4 {
 5     Filter = {
 6         @ReplaceTag
 7     }
 8 }'''
 9 from biplist import *
10 from datetime import datetime
11 filterListStr = ''
12 def gci (path):
13     global filterListStr
14     parents = os.listdir(path)
15     for parent in parents:
16         child = os.path.join(path,parent)
17         if os.path.isdir(child):
18             gci(child)
19         else:
20             if parent=="iTunesMetadata.plist":
21                 #print(child)
22 metadata = readPlist(child)#readPlist(child).get("metadata") 23 if metadata.get("kind") == "software": 24 bundleId = metadata.get("softwareVersionBundleId") 25 #print bundleId 26 if filterListStr != '': 27 filterListStr += '\n\t\t' 28 filterListStr += 'Bundles = ("'+bundleId+'");' 29 gci(path) 30 libRevealPlist = libRevealPlist.replace('@ReplaceTag',filterListStr) 31 print libRevealPlist