在使用iPhone过程中,发现编写好的快捷指令,除了可以通过iCloud的链接分享之外,还可以将快捷指令文件导出,导出的文件格式后缀为:.shortcut
经搜索引擎找了好久好久好久好久,一直没有找到此类格式,使用什么工具正常打开阅读,当打开方式选择,txt文本打开,发现打开后的文件为“乱码”,如下图;
因为这个导出的快捷指令文件,只编写了一个功能,使用Safari浏览器打开www.baidu.com,虽说打开后“乱码”,但是可以看到部分可“阅读”,例如红框内的www.baidu.com的网址;
猜想应该是采用了,某种形式的编码,将此快捷指令文件源码,进行了编码操作;
在上图第一行中,发现bplist00,搜索引擎搜索,发现为Apple Plist格式,有两种形式,XML格式 和 二进制格式(bplist, Binary Plist)
在过程中发现,可以使用Python,需要配合biplist库来解码,cmd下执行命令,安装biplist库
pip install biplist
安装成功返回信息:
Collecting biplist
Downloading biplist-1.0.3.tar.gz (21 kB)
Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for biplist, since package 'wheel' is not installed.
Installing collected packages: biplist
Running setup.py install for biplist ... done
Successfully installed biplist-1.0.3
手撸个py代码转换一下;
from biplist import *
import json
checkfile='cesi.shortcut'
plist=readPlist(checkfile)
info_json = json.dumps(plist,sort_keys=False, indent=4, separators=(',', ': '))
print(info_json)
执行结果:
{
"WFWorkflowMinimumClientVersionString": "900",
"WFWorkflowClientVersion": "1092.11",
"WFWorkflowIcon": {
"WFWorkflowIconStartColor": 431817727,
"WFWorkflowIconGlyphNumber": 61440
},
"WFWorkflowMinimumClientVersion": 900,
"WFWorkflowImportQuestions": [],
"WFWorkflowActions": [
{
"WFWorkflowActionIdentifier": "is.workflow.actions.openurl",
"WFWorkflowActionParameters": {
"Show-WFInput": true,
"WFInput": "www.baidu.com"
}
}
],
"WFWorkflowInputContentItemClasses": [
"WFAppStoreAppContentItem",
"WFArticleContentItem",
"WFContactContentItem",
"WFDateContentItem",
"WFEmailAddressContentItem",
"WFGenericFileContentItem",
"WFImageContentItem",
"WFiTunesProductContentItem",
"WFLocationContentItem",
"WFDCMapsLinkContentItem",
"WFAVAssetContentItem",
"WFPDFContentItem",
"WFPhoneNumberContentItem",
"WFRichTextContentItem",
"WFSafariWebPageContentItem",
"WFStringContentItem",
"WFURLContentItem"
],
"WFWorkflowTypes": []
}
至此,解码成功,可以正常阅读~~~~~