2021 ios超级签浏览器和app内实现签名

超级签的市场的存在是对一家独大的上架市场的XX.

!!!要点1:获取UDID
!!!要点2:注册UDID到苹果后台
!!!要点3:服务端签名
!!!要点4:app拿到浏览器参数
!!!要点5:app内签名
!!!要点6:app内安装ipa

我们今天以某APP为例,来介绍一下超级签的流程.

首先用户在浏览器Safari搜到了这个APP.然后点击下载.
我们来抓个包:

Tee fom R.png
1.首先人家获取你的UDID,这个UDID需要苹果的.mobileconfig文件来进行获取,
那么自动跳转到设置里面又是怎么实现的呢,
搞web的可能都知道,首先在浏览器里面下载这个
. mobileconfig文件然后再下载一个文件是企业描述文件.embedded.mobileprovision,
那么为什么用企业的这个描述文件来实现跳转呢?
因为个人的没有权限实现跳转到安装页面.
那么企业账号掉的那么厉害我要怎么才能不断的获取新的企业描述文件来实现自动跳转呢?
答案是不是某英吗,获取UDID的.不行就去百度搜一下,这个跳转是不需要对应的证书的.只要不过期就行.
2.超级签的第二部,就是拿到UDID去后台注册.这个注册的话需要一个回调地址,
如果你是在APP端开了一个服务器像某Box那样,
就可以直接存储到Keychain里面,这个注册到苹果开发者账号里面的过程需要后台完成,
有一个签名的老司机说java的签名效率还是比较高的.PHP又被比下去了.
那么怎么注册到苹果后台呢?如果你个ios想玩一下,可以用fastlane.有的
超级签系统也是使用的fastlane进行签名的.
fastlane把双重认证的session获取到,然后存起来每次可以直接拿到
然后进行添加UDID的操作.那么添加以后,可以设置返回.mobieprovision文件和.cer文件.这个可以操作签名就不多说了.

3.第三步,因为是在服务器端签名那么一般默认都是zsign或者codesign进行签名.zsign传说中的是比较高效的,
有的java超级签签系统是双开的zsign(也就是所谓的秒签系统),
那么它服务器签名完就会回调这个浏览器里面的方法,
当我们拿到了安装的plist文件,
可以在浏览器直接安装这个plist里面的ipa文件了.(这个就是Itms协议)
Pasted Graphic.png

Pasted Graphic 2.png
4.第四步 打开app,当然这个app并没有,
在app里面实现UDID获取,那么app里面如何对ipa继续签名呢?

5.通过对浏览器抓包和对app抓包发现人家都对某install接口情有独钟.集成了这个收费的东西,
那么我们能不能实现未安装app然后也实现浏览器传参到app呢
(因为浏览器获取了UDID,在app内部还是需要继续签名的).
以前在ios9-ios10是有的叫SFSafariViewController,当然
如果他好用的话呢,也不会有收费的出来混了.
大家有兴趣的可以多百度百度.
6.那么app是如何实现的签名呢?
答案是zsign谁叫人家跨平台呢.
某那个app他的实现更为高效,让我想继续对他进行研究.
那么成果晚点再说.

先说说app是怎么签名的.先上SDK吧.

AppSignSDK

App端签名

环境配置:
openssl 1.1.1 主要用来证书校验
SSZipArchive SDK 里面已经打进去了.主要用来解压app和压缩app

添加系统库:
libiconv.tbd
libxml2.tbd
liblzma.tbd
libiconv.2.4.0.tbd
libstdc++.tbd
Security.framework
MobileCoreServices.framework
CoreServices.framework
libz.1.2.8.tbd

接口:

+ (int)signIPA:(NSString *)ipa_path
           size:(NSString*)size
            cer:(NSString *)cer_path
            pwd:(NSString *_Nullable)pwd
           prov:(NSString *)prov_path
       bundleID:(NSString *_Nullable)bundleID
     bundleName:(NSString *_Nullable)bundleName
  bundleVersion:(NSString *_Nullable)bundleVersion
       zipLevel:(NSInteger)zipLevel
         output:(NSString *)output_path;

ipa_path: ----- ipa的沙盒路径
size: ------ ipa的大小
cer_path: ----- 证书的沙盒路径
pwd: ------ 证书的密码
prov_path: ---- 描述文件地址
bundleID: ---- 应用的bundleID 可以修改
bundleName: ---- app的名字
bundleVersion: ---- 版本
zipLevel: ---- 压缩层级
output_path: ---- 输出路径

https://github.com/frankKiwi/FSuperSign.git

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 摘抄自:超级签名-原理/机制/技术细节-完全解析 超级签名流程:演示 签名原理: 所谓的超级签名原理其实就是使用了...
    BigRoby阅读 5,090评论 6 5
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,790评论 28 54
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,324评论 4 8
  • 步骤:发微博01-导航栏内容 -> 发微博02-自定义TextView -> 发微博03-完善TextView和...
    dibadalu阅读 3,326评论 1 3
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 4,080评论 0 5

友情链接更多精彩内容