没有源码的签名与打包(Python+command)

这篇简书本来是想接着写到 【重组 IPA (打包再签名) - 窥打包签名流程】或者【OC 字符匹配小技巧 (模板构造)】,但是仔细想想都有点不合适,所以就重新开了一篇简书来介绍。

一、简单介绍

一看这个标题就有点诡异,接下来介绍的确实是在没有源码的情况下给一个 ipa 文件重新签名与打包。接下来的这个实验确实有点荒谬,但是作为一种以技术学习的心态来看待这个实验,应该会学习到更多,尤其是如果你没有听说过 command 文件的话。

这个实验的步骤是这样的:

  • 1、获取一个线上并已经砸壳的 ipa 文件。
  • 2、解压之后提取 .app 文件, 放于另外的空文件中。
  • 3、将我的两个脚本文件一同放入这个文件夹中,然后双击 command 文件。(文件链接在后面)
  • 4、会重新生成一个 ipa 文件,那么这个新的 ipa 文件就是使用我们自己的证书重新签名之后的 ipa 包。虽然是从AppStore下载的,当从签名之后,就与我们平时的Ad Hoc包一样了。

结果图:


点击 command 文件之前的文件夹
点击 command 文件之后的文件夹

可以看到多出了一个 Target.ipa 文件,这个文件与之前的 ipa 文件的主要区别是数字签名的证书换成了我们自己的证书,这种事情往往发生在逆向开发中。当然,没什么事情不要恶意的乱搞别人的线上 APP,正向防逆向 ZTND 难搞,主要是现在防不住了。

二、核心技术细节

从上面的简单介绍中可以看出,我简单的实现了两个文件:python 与 command 文件。代码链接在文档后面。

2.1 python 文件

python 文件主要负责的是对 .app 文件进行重签名,这里里面的重签名包括两个部分 动态库的重签名与即 .app 文件本身签名。里面的代码很简单:

image.png

总的来说就是获取所有的动态库文件,然后进行重签名,最后对 .app 文件再次重签名。

但是在文档的头部需要配置一些参数:


image.png

其中 APP 名称证书编号 很好理解,接下来简单的介绍一下 签名文件的路径
当我们使用 Xcode 打包之后,会发现在打包文件夹中会有这么一个文件 ExportOptions.plist,这个文件与打包之前的数字签名息息相关。但是对于别人的 ipa 包使用我们自己的证书打包的时候,如何获取类似这样的文件呢?

方法很简单,创建一个空的项目,将 bundle ID 改成即将打包的 bundleID 一样,然后选择成 Release 模式,选择真机设备,最后 build 一下,找到下图中的地方。

image.png

红框框就是就是我的证书编号,下滑线就是我需要的 签名文件的路径,直接拷贝过去就行了。会发现这张图,其实就是我的 python 文件中的第二个步骤。

这样,简单的 签名文件就结束了。

2.2 command 文件

其实,我们已经看出来了,上面的 python 文件只能在终端执行,每次运行都需要先打开终端,再执行,非常麻烦。我们能否不打开终端,点击某个东西就直接执行呢。答案肯定是有的,在 Mac 电脑上就是 command 文件,在 Windows 电脑是是 bat 文件。
在上面的 python 文件中,功能仅仅是签名。在接下来的 command 文件中主要处理的是生成一个 ipa 结构的文件夹,然后在压缩成一个 ipa 文件即可。在这里还需要强调的是,这个过程可以完全在 python 中完成,也可以像【神气的 iOS 打包】中一样,使用 shell 脚本,这次使用 command 文件的主要目的是,这个文件不用调取终端,双击文件就可以直接执行。实现的代码也很少:


image.png

哥们,不要笑,我都听到你坏笑的声音了,的确这个文件我是重 MonkeyDev 中经过简单修改后的,这是技术交流,感谢作者alonemonkey

看完了这两个文件的简单介绍,应该已经差不多理解了。这两个脚本文件的地址在这里:
UploadPackageUploadPackage
主要代码请见目录【signAndPackage】。

三、总结

主要就是将一个直接从 App Store 下载的 ipa,经过砸壳之后,使用自己的证书重新数字签名再打包。我想写这篇简书的原意:是想介绍 command 文件的强大之所在的,后来发现没有必要再次强调,本来就很强大。这种文件的功能在我们的实际工作中,能减少很多的开发流程,提高开发效率。相信你听过小沈阳的《你懂得》。

参考推荐

1、我的简书 重组 IPA (打包再签名) - 窥打包签名流程
2、我的简书 神气的 iOS 打包
3、我的简书 OC 字符匹配小技巧 (模板构造)
4、逆向学习 MonkeyDev

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容