博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS二进制和资源包的自检
阅读量:6980 次
发布时间:2019-06-27

本文共 752 字,大约阅读时间需要 2 分钟。

因为现在做的是企业版的APP,不能保证用户不越狱,也不能保证有些用户喜欢自己修改ipa包里的资源文件,比如更换一些资源图片。因此,我们有必要在请求报文中,增加正版应用的二进制和资源文件的标识,让服务器知道,此请求是否来自正版的未经修改的app。

  在沙盒中我们可以读到自己程序的二进制,也可以读到资源文件签名文件,我们可以对其取md5值得到一个标记字符串,然后发给服务器,对比存储在服务器段的MD5值是否正确,如果APP被修改就禁止继续使用,杀掉自己的进程。

  下面是获取自己APP的二进制、资源文件和签名文件的获取方法。因为从iOS8开始沙盒机制有所变化,文稿和资源文件分开在不同的路径,而且文稿是一个动态的路径,所以获取方法要区分系统版本。

 下面贴代码:

定义加密类型(MD5 SHA1 SHA512)

封装加密方法

获取资源包的加密后字符串

获取签名证书加密后的字符串

可以根据自己的需要把这些信息发送给服务器进行判断,现在我们做的是APP版本号、iPhone版或iPad版再加上面两条字符串发给服务器。

外加自动杀掉自己进程的方法:

补充:突然发现在打包之前clean一下,获取到的sourceData会改变,现在的做法是增加一个弹出的alertView,title是获取的sourcedata的md5值,每次打包前clean一次,然后run一次,通过弹出的提示手动记录一下md5值,然后注释掉alertView的代码,这时候再打包,注意这次就不要clean了,只改变几行简单的代码不会影响APP的功能也不会改变appdata和sourcedata。(如果发现其他更好的方法会及时更新)

转载于:https://juejin.im/post/5a93c94ef265da4e853d7cc9

你可能感兴趣的文章
eclipes 安装 pytdev,svn,插件
查看>>
虚拟化--015 配置VMware View Event database失败:
查看>>
docker的网络架构配置
查看>>
spring data jpa 详解
查看>>
自定义windows下自动清除文件夹或者文件的只读属性的脚本
查看>>
sudo配置文件详解及实战
查看>>
密码学研究-数字签名
查看>>
一些常用工具地址,随时更新中~
查看>>
直接可以拿去用的正则验证表达式
查看>>
11月18日珠三角城市人口迁徙可视化(和弦图)
查看>>
态势“知”多少,点开就知道
查看>>
spring+ (activeMQ) 实现queue与topic
查看>>
oracle汉化包下载地址
查看>>
Java解压zip文件(文本)压缩包
查看>>
技术栈
查看>>
checkbox点击切换选中状态
查看>>
2019,商业智能的10大未来趋势
查看>>
将ubuntu系统设置静态ip及ssh
查看>>
云原生应用的10大关键属性
查看>>
Android 在运行时请求权限
查看>>