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

推荐订阅源

MyScale Blog
MyScale Blog
A
About on SuperTechFans
G
Google Developers Blog
B
Blog RSS Feed
F
Fortinet All Blogs
WordPress大学
WordPress大学
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
Jina AI
Jina AI
IT之家
IT之家
P
Proofpoint News Feed
美团技术团队
量子位
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
B
Blog
有赞技术团队
有赞技术团队
U
Unit 42

博客园 - 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)  评论()    收藏  举报