iOS(十)cydia源采集方式
cydia使用debian的APT包管理器
故推测在linux下可以直接使用apt工具来进行样本采集
1、获取cydia源
ios源配置文件:/etc/apt/sources.list.d/cydia.list
ios添加源后,可以源文件里面查看,其配置与debian源基本一致
2、linux添加cydia源
apt源配置文件:/etc/apt/sources.list
如将cyida的官方源“deb http://apt.saurik.com/ ios/1240.10 main”等添加进linxu源里
3、linux apt更新失败
apt-get update
更新源设置,linux下可以成功解析部分cydia源url,但更多则失败了
4、cydia源url
正常cydia添加一个源后,都会下载该源的Release和Packages信息存储到本地
那么cyida存储位置为:/var/mobile/Library/Caches/com.saurik.Cydia/lists
从各个文件名可以推测为实际url
5、cydia源解析
既然cydia使用debian包管理器,那么source.list文件源地址写法应该与apt包管理器应该一致,即
- “
deb
” 表示二进制软件包,
- “
- “
deb-src
” for source packages.
- 第二个区域表示源的基本 URL
- 此区域存在于一个 Debian 镜像或其他任何由第三方所建的软件源文档中。
- 这个 URL 可以用
file://
起始来表示系统里安装了本地仓库,或以http://
表示仓库可通过网络服务器来获取,或用ftp://
表示软件源在一个 FTP 服务器上。- cyida源主要使用http://协议
- 源常见目录:
- /dists/ 目录包含"发行版"(distributions), 此处是获得 Debian 发布版本(releases)和已发布版本(pre-releases)的软件包的正规途径. 有些旧软件包及 packages.gz 文件仍在里面.
- /pool/ 目录为软件包的物理地址. 软件包均放进一个巨大的 "池子(pool)", 按照源码包名称分类存放. 为了方便管理, pool 目录下按属性再分类("main", "contrib" 和 "non-free"), 分类下面再按源码包名称的首字母归档.
- /tools/ 用于创建启动盘, 磁盘分区, 压缩/解压文件, 启动 Linux 的 DOS 下的小工.
- /doc/ 基本的 Debian 文档, 如 FAQ, 错误报告系统指导等..
- /indices/ 维护人员文件和重载文件.
- /project/ 大部分为开发人员的资源, 如:project/experimental/ 本目录包含了处于开发中的软件包和工具, 它们均处于 alpha 测试阶段
- 最后这一区域的句法取决于仓库的结构
- 仓库是用来简单地描述一个软件源的子目录
- 通常用 “
./
” 表示子目录不存在 - 这个软件源就位于给定的 URL上。 - 不过一般来讲,仓库的结构类似于一个 Debian 的镜像, 包括很多分支,每一分支有很多组成部分。通常命名选定的分支,然后命名下面的组成部分(或分区)(从
main
,contrib
和non-free
中选择) 来激活一个典型的 Debian 镜像。
故可以推测出cydia源解析方式为:
- 普通仓库结构:http://源URL/dists/stable/Release
- "./"仓库结构:http://源URL/Packages.*
- cydia应用自身官方源“apt.saurik.com”例外,其源地址为安装cydia时写入
- source.list:deb http://apt.saurik.com/ ios/1240.10 main
- 故URL为:http://apt.saurik.com/dists/ios/1240.10/Release
6、下载验证
6.1 普通仓库结构
- 源名称:bigboss
- source.list:deb http://apt.thebigboss.org/repofiles/cydia/ stable main
- 样本采集记录:
- 推测URL:http://apt.thebigboss.org/repofiles/cydia/dists/stable/Release
- 从Release解析Packages地址:http://apt.thebigboss.org/repofiles/cydia/dists/stable/main/binary-iphoneos-arm/Packages
- 采集问题:没有对常规debian源正确解析
6.2"./"仓库结构
- 源名称:insanelyiph0ne
- source.list:deb http://repo.insanelyi.com/ ./
- 采集记录:
- 推测URL:http://repo.insanelyi.com/Packages.gz
- 采集问题:部分墙外源网络状态较差,需多次下载测试
6.3 cydia官方源
- 源名称:saurik(cydia作者名字)
- source.list:deb http://apt.saurik.com/ ios/1240.10 main
- 采集记录:
- 故URL为:http://apt.saurik.com/dists/ios/1240.10/Release
- 推测cydia官方源source.list记录地址应是根据ios版本 or cydia版本
- 建议采集方式:整个爬取http://apt.saurik.com/网站
7、Release与Packages
7.1 Release文件
Release文件记录源、Packages等信息:
- 如:http://apt.thebigboss.org/repofiles/cydia/dists/stable/Release
7.2 Packages文件
Packages文件记录源里面app的信息,而Packages.bz2 or Packages.gz文件则是其压缩包
- 如从Bigboss源Release解析的Packages地址:http://apt.thebigboss.org/repofiles/cydia/dists/stable/main/binary-iphoneos-arm/Packages
7.3 deb文件地址
Packages中最重要的信息如上图:
- Package为程序名
- Filename为实际文件名
故解析实际deb下载URL为:
- http://源URL/Filename
实测:
- http://apt.thebigboss.org/repofiles/cydia/debs2.0/actionmenu_1.3.0_iphoneos-arm.deb
- http://apt.thebigboss.org/repofiles/cydia/debs2.0/abgrouper_0.3.deb
0 评论:
发表评论