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

推荐订阅源

Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
量子位
G
Google Developers Blog
J
Java Code Geeks
N
Netflix TechBlog - Medium
博客园 - 聂微东
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
雷峰网
雷峰网
M
MIT News - Artificial intelligence
T
Tailwind CSS Blog
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss

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