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

推荐订阅源

D
DataBreaches.Net
罗磊的独立博客
M
MIT News - Artificial intelligence
G
Google Developers Blog
V
V2EX
D
Docker
博客园_首页
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
WordPress大学
WordPress大学
T
Tailwind CSS Blog
博客园 - 司徒正美
J
Java Code Geeks
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
B
Blog RSS Feed
博客园 - 【当耐特】
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky

博客园 - loz2015

unity 游戏apk 分析 体育apk重打包记录 Tiktok 核心字段 IOS Tiktok(43.6.1)抓包 android java层字符串加密对抗 jeb4 增加内存 Android 设置no-proxy抓包处理 IDA dump so vm demo加固分析 Android Lazada抓包 Android 闲鱼抓包 Mirroring360 破解分析 Alibaba Canal config 漏洞验证 检测magiskhide MAC 下Android ROM 提取文件 IDAPython 插件开发 Android ollvm 集成 某iOS APP反抓包分析 lark反调试 luajava逆向总结 ios app 可执行文件是中文名称如何进行调试
电脑 直接下载cyida deb
loz2015 · 2021-08-30 · via 博客园 - loz2015
#! /usr/bin/env python
# -*- coding: utf-8 -*-

'''
说明:该模块自动下载cydia下的所有deb包
'''

import os
import sys
import ssl
import bz2
import gzip
import lzma

ssl._create_default_https_context = ssl._create_unverified_context

if sys.version_info[0] == 2:
    import urllib2 as urllib_
elif sys.version_info[0] == 3:
    import urllib.request as urllib_


def RequestWithDefProxy(url):
    try:
        headers = {
            'X-Machine': 'iPhone6,1',
            'X-Unique-ID': 'b596768cbbb2b54486c911832f2739b5d061c59f',
            'X-Firmware': '10.0',
            'User-Agent': 'Telesphoreo APT-HTTP/1.0.592',
            "Content-Length": 0
        }
        req = urllib_.Request(url, headers=headers)
        res = urllib_.urlopen(req)
        return res.read()
    except Exception as e:
        print(e)
        return None

def down_cydia(baseurl, basedir='.'):
    packages = list()
    if not baseurl.startswith('http'):
        baseurl = 'http://' + baseurl
    if baseurl.endswith('/'):
        baseurl = baseurl[:len(baseurl-1)]
    packages_data = None
    if packages_data is None:
        packages_data = RequestWithDefProxy(baseurl + '/./Packages.bz2')
        print('try bz2')
        if packages_data is not None:
            packages_data = bz2.BZ2Decompressor().decompress(packages_data)
    if packages_data is None:
        packages_data = RequestWithDefProxy(baseurl + '/./Packages.xz')
        print('try xz')
        if packages_data is not None:
            packages_data = lzma.decompress(packages_data)
    if packages_data is None:
        packages_data = RequestWithDefProxy(baseurl + '/./Packages.gz')
        print('try gz')
        if packages_data is not None:
            packages_data = gzip.decompress(packages_data)
    if packages_data is None:
        print('try origin')
        packages_data = RequestWithDefProxy(baseurl + '/./Packages')
    if packages_data is None:
        return
    packages_data = packages_data.decode('utf-8')
    for package_data in packages_data.split('\n\n'):
        package = dict()
        for package_item in package_data.split('\n'):
            i = package_item.find(':')
            if i < 0:
                continue
            k = package_item[:i].strip()
            v = package_item[i+1:].strip()
            package[k] = v
        if len(package) > 0:
            packages.append(package)
    i = 0
    for package in packages:
        if 'Name' not in package:
            package['Name'] = package['Package']
        filename = package['Name'] + '_' + package['Version'] + '.deb'
        package['__filename__'] = filename
        if package['Filename'].startswith('/'):
            fileurl = baseurl + package['Filename']
        else:
            fileurl = baseurl + '/' + package['Filename']
        package['__fileurl__'] = fileurl
        print('%d: %s' % (i, filename))
        i += 1
    print('all: all debs')
    sel = input('select index:')
    down_packages = list()
    if sel == 'all':
        down_packages = packages
    else:
        down_packages.append(packages[int(sel)])
    for package in down_packages:
        filename = package['__filename__']
        fileurl = package['__fileurl__']
        print('Downloading ' + fileurl)
        filedata = RequestWithDefProxy(fileurl)
        if filedata is None:
            print('Download file failed ' + fileurl)
            continue
        filepath = basedir + '/' + filename
        print('Download file success ' + filepath)
        with open(filepath, 'wb') as f:
            f.write(filedata)


if __name__ == '__main__':
    if len(sys.argv) < 2:
        print('Usage: python down_cydia.py cydia源')
        #exit(0)
    url = "http://apt.touchsprite.com" #sys.argv[1]
    down_cydia(url)
    # python down_cydia.py http://apt.touchsprite.com packages
thanks:https://github.com/lich4/codesegment/blob/master/down_cydia.py

posted @ 2021-08-30 19:57  loz2015  阅读(179)  评论()    收藏  举报