Reveal分析IOS界面,plist文件读取
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/'
import os,string
libRevealPlist = '''
{
Filter = {
@ReplaceTag
}
}'''
from biplist import *
from datetime import datetime
filterListStr = ''
def gci (path):
global filterListStr
parents = os.listdir(path)
for parent in parents:
child = os.path.join(path,parent)
if os.path.isdir(child):
gci(child)
else:
if parent=="iTunesMetadata.plist":
#print(child)
metadata = readPlist(child)#readPlist(child).get("metadata")
if metadata.get("kind") == "software":
bundleId = metadata.get("softwareVersionBundleId")
#print bundleId
if filterListStr != '':
filterListStr += '\n\t\t'
filterListStr += 'Bundles = ("'+bundleId+'");'
gci(path)
libRevealPlist = libRevealPlist.replace('@ReplaceTag',filterListStr)
print libRevealPlist
Reveal分析IOS界面,plist文件读取的更多相关文章
- IOS学习笔记之获取Plist文件读取数据
@property(nonatomic,strong) NSArray *pic; //创建数组属性 @property(nonatomic,assign) int index; //创建索引属性 @ ...
- [IOS微信] PList文件解析,boost数据读取
最近在解析IOS版微信数据中的 mmsetting.archive 文件时,第一次接触到PList文件. 注:mmsetting.archive 不是一个标准的PList文件,其中含有汉字,并且很多 ...
- iOS开发-plist文件增删改查
plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件.扩展名为.plis ...
- iOS 中plist文件中配置key值冲突的现象
iOS开发一些特殊的软件需要在项目中配置对应的key值,然而近期在项目中发现一个有意思的现象,苹果官方文档中提供的key值很多,但其实有一些彼此可能有冲突,当你同时配置了彼此冲突的key值,可能会出现 ...
- IOS 获取.plist文件的数据
@property (nonatomic,strong) NSArray *apps; //获取.plist数据 /**获取plist文件的数组数据*/ -(NSArray *)apps{ if( ...
- 将plist文件读取成为数组
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"city" ofType:@"plist&q ...
- ios 简单的plist文件读写操作(Document和NSUserDefaults)
最近遇到ios上文件读写操作的有关知识,记录下来,以便以后查阅,同时分享与大家. 一,简单介绍一下常用的plist文件. 全名是:Property List,属性列表文件,它是一种用来存储串行化后的对 ...
- plist文件的读取和xib加载cell
plist 文件读取 例如在工程里倒入了plist文件 在工程里需要用到plist文件里的信息,就需要把plist文件读取出来. 如程序: -(NSArray *)moreDataArr{ if (! ...
- UIPickerView 地区解析 -- 全国省、市、区 plist 解析 -- 读取UIPickerView 当前显示内容
一个简单的plist 解析过程,借助UIPickerView 实现了手选全国的 省市区 方法, 源码中有详细注释:长句自己可以拆开看,最好的方法是,拆开,并打印,查看每一步打印的结果,结合Plist文 ...
随机推荐
- 《CoffeeScript应用开发》学习: CoffeeScript高级用法
正确的上下文 使用胖箭头=>表示将回调函数绑定到this对象. class t func: (callback)-> if callback? setTimeout callback(), ...
- Md5 签名算法
/// <summary> /// MD5签名 /// </summary> /// <param name="pre ...
- Jmeter循环控制
Jmeter循环控制 很多时候,在做接口测试时,系统处理请求需要一段时间后才能返回信息,而下一个请求需要系统返回信息后才能进行处理,这时候通常需要加入循环控制器,来验证系统是否是否返回了处理后的信息. ...
- 迷你MVVM框架 avalonjs1.5 入门教程
avalon经过几年以后,已成为国内一个举足轻重的框架.它提供了多种不同的版本,满足不同人群的需要.比如avalon.js支持IE6等老旧浏览器,让许多靠政府项目或对兼容性要求够高的公司也能享受MVV ...
- bootstrap 3 with IE8 compatibility
12栅格布局在IE8下不起作用. 下载并引用html5shiv.js和respond.js 参考: 1.http://nextflow.in.th/en/keep-your-responsive-we ...
- Backbone框架浅析
Backbone是前端mvc开发模式的框架.它能够让view和model相分离,让代码结构更清晰简答,开发进度加快,维护代码方便.但是,现在出了一种mvvm框架,它是下一代前端mvc开发模式的框架,代 ...
- hdu4607 Park Visit(树的直径)
Park Visit Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 常用的几个DOS批处理
1.启动ORACLE net start OracleServiceQSJBnet start OracleDBConsoleqsjbnet start OracleOraDb10g_home1TNS ...
- 分支界定法 branch-and-bound 分析与实现)(转载)
1. 介绍分支界定法之前需要了解一下广度优先搜索breadth-First-search(BFS) 1.从图中某个顶点V0出发,并访问此顶点:以层为顺序,一层一层往下遍历 2.从V0出发,访问V0的各 ...
- oracle 字符串
oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算stri ...