iOS 签名杂谈(一)

为什么要说iOS的签名呢?现在移动平台的逆向的教程和书籍已经相当多了。针对签名的文章也很多,我这里想说的一些是可能别的地方看不到的比较细微的内容(虽然都是老黄历~~)。

iOS的签名目的其实也比较纯粹,就是为了能够在不越狱的情况下安装破解版的ipa。当然,如果是各种助手的话还有另外的一个目的,那就是应用分发(更重要的是在分发之前加入自己的广告sdk)。

说到iOS的应用分发其实主要方式有如下几种:

  1. 苹果的应用商店。
  2. cydia应用商店。 需要越狱之后才能安装各种app和插件,并且由于现在越狱基本都是不完整越狱,重启设备之后需要重新越狱。并且越狱工具安装也异常麻烦,所以越狱的用户也少了很多
  3. 第三方应用商店,国内的比较大的就那么几家。不知道的可以自己搜索一下。 第三方应用商店的app分发其实也经历了几个时期:
  • a. 越狱时期,最早期应用商店分发的基本都是越狱应用。这个与早期的越狱插件和完美越狱存在比较大的关系。
  • b. 转授权分发,这个技术最早貌似是360的快用用的这么一项技术(多年以前, 13年左右)。所谓转授权就是通过链接电脑,通过itunes的相关api调用在设备上创建IC-info文件。通过苹果的应用商店下载的iap会包含sc_info 授权信息。

在ipa安装的过程中并不会校验设备上有没有授权信息,只有到运行的时候才会校验授权信息。此时如果没有授权 那么会弹出要求输入用户名和密码的弹框。

Continue Reading

m3u8 下载工具 V20.6.01 [OSX]

功能与windows版本一致,使用之前需要安装ffmpeg,可以通过home brew 安装

 brew install ffmpeg

. 默认路径为/usr/local/bin/ffmpeg, 如果路径不是这个路径可以通过ls软连接或者-m 参数指定ffmpeg路径。

几个osx下打包遇到的坑:

  1. pyinstaller打包之后报错:FileNotFoundError: Tcl data directory ,我这里没有用到tcl相关的内容可以直接修改:env/lib/python3.7/site-packages/PyInstaller/loader/rthooks/pyi_rth_tkinter.py
    注释掉如下几行:

    #if not os.path.isdir(tcldir):
    #raise FileNotFoundError('Tcl data directory "%s" not found.' % (tcldir))
    #if not os.path.isdir(tkdir):
    #raise FileNotFoundError('Tk data directory "%s" not found.' % (tkdir))
  2. pyinstaller osx 和windows下的add-data参数的分割符不一样,windows平台为分号; osx为冒号:
Continue Reading

m3u8 下载工具 v20.6.01 [Windows]

更新日志:

  1. 支持 从cvs批量进行下载,csv内容包含两列:name link,如果使用csv格式进行下载,下载的文件名会自动以name列+crc32(link)进行命名。如果没有name那么还是以简化的link进行命名。
  2. 支持指定ffmpeg路径,通过-m参数可以指定运行自己的ffmpeg。
  3. 修复从列表下载文件可能重复的bug

csv文件结构:

Continue Reading

.mht文件图片解析工具

网上找了一下没有找到比较现成的好用的工具,找到一个mht-viewer 的windows下的查看工具,但是实际实用的时候发现啥都看不了,就是个文本编辑器?还是我打开的姿势不对?

并且对于中文目录和文件名直接无法显示,我都不知道查看的是什么东西,就这个还尼玛有付费版本?

搜索了一下发现了几个python脚本,实际使用效果也一般。网上搜索了一下并没有找到相关的文件格式的说明

直接查看文件就可以发现文件格式并不是十分复杂,于是可以遍历来解析文件中的图片

已经保存的图片如下:

Continue Reading

m3u8 下载工具 v20.5.14 [Windows]

更新功能:

1. 增加支持从文件读取下载链接功能,参数-f J:\Porn\202005\list\list.txt;

2. 支持直接从mp4,avi, mov, mpeg链接下载文件。列表下载过程中对于已经存在的文件会直接跳过(youtube-dl 支持从文件读取下载链接,但是下载过程中对于多个url最终字符一样的情况没有做处理,导致会误认为文件已经下载,没有找到用什么参数来修改下载后的文件名。例如下图的列表格式就无法下载文件,因为youtube-dl 直接吧下载的文件命名成了index.m3u8.mp4 。 下载其他连接的时候就会认为文件已经存在了。)。

文件格式如下:

实例: 

 m3u8_downloader.exe -f J:\Porn\202005\list\list.txt -p J:\Porn\202005\squirt 

使用-f参数的时候-o参数无效

Continue Reading

Qingdao Gov Facial Mask Appointment

import pytesseract
from pyfiglet import Figlet
import requests
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()

# driver.get('http://www.baidu.com') #vux-x-input-twq0s
# driver.get('file:///Volumes/DATA/python_projects/kz/口罩预约/顺丰预约.html')
# driver.get('file://F:\\PyCharmProjects\\facial-mask-appointment\\口罩预约\\顺丰预约.html')
# driver.get('file://F:\\PyCharmProjects\\facial-mask-appointment\\快递预约2\\快递预约.html')
driver.get('http://kzyynew.qingdao.gov.cn:81/dist/index.html#/preOrder')
# driver.get('http://kzyynew.qingdao.gov.cn:81/dist/index.html#/SFOrder')

link_list = [
    {'name': '钟灵',
     'tel': '1856130xxx0',
     'id_number': '3707251xxxxxxxxxxx5'},
    {'name': '钟灵',
     'tel': '1856130xxx0',
     'id_number': '3707251xxxxxxxxxxx5'},
]


def clear_input(input):
    ActionChains(driver).move_to_element(input).send_keys(Keys.CONTROL, "a")
    ActionChains(driver).move_to_element(input).send_keys(Keys.DELETE)

def fill_link_data(name, tel, id_number):
    try:
        check_button = driver.find_element_by_xpath('//*[@id="app"]/div/div/div[3]/div/div/div/i[3]')
        check_button.click()
    except:
        pass

    weuis = driver.find_elements_by_xpath("//input")
    # 姓名
    # print(weuis[0])
    weuis[0].clear()
    clear_input(weuis[0])
    # weuis[0].sendKeys(Keys.CONTROL, "a")
    # weuis[0].sendKeys(Keys.DELETE)
    weuis[0].send_keys(name)
    # 电话
    weuis[1].clear()
    clear_input(weuis[1])
    weuis[1].send_keys(tel)
    # 身份证号
    weuis[2].clear()
    clear_input(weuis[2])
    weuis[2].send_keys(id_number)
    #
    selects = driver.find_elements_by_xpath("//select")
    selects[0].send_keys('李沧区')
    selects[1].send_keys('浮山路街道办事处')

    driver.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div/div[6]/div[2]/textarea').clear()
    driver.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div/div[6]/div[2]/textarea').send_keys(
        '李沧区')

Continue Reading

alipay rsa2 签名验证

长时间没有使用支付宝的支付接口,再次实用的发现现在验签方式只剩ras2了。比较蛋疼的一点在于自己怎么处理都处理不对,于是使用支付宝的签名工具进行验签发现依然验证失败。

代码根据支付宝的相关文档进行了处理,但是依然失败。直到搜索到了这篇文章https://bbs.csdn.net/topics/392301160?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task,里面提到可能是签名工具版本的问题:

支付宝提供了RSA的验签生成工具,之前我使用的是1.0版的,生成的密钥可以支持支付,但是在回调的时候会校验失败,后面重新下载了1.3版的,就好了

Continue Reading