首先客户端不能检测到hook啊越狱就强退,这是前提。
另外客户端要收集信息上传到服务器做各种数据分析和检测。
目前是无论检测到hook,还是jb还是做什么数据采集,逻辑都可以被篡改吧?要么tweak 要么hook要么就重新打包签名,反正如何收集数据,如何混淆代码,如何加密,这些都最终会被反编译并且绕过去,手段太多了,也不用说了,你们都懂。
所以今天发个帖子,抛砖引玉,求一些解决方案。
我所想到的
- 服务器下发一些动态库,客户端直接运行并发送回服务器,但这种有些违背app store 的审核机制
- 客户端运行一些虚拟机,增加■■的难度
- 混淆代码,symbol 篡改,逻辑数字混淆,但这些早晚可以被debug 出来,而且会增加包的大小以及运行效率。
不知道各位大神有什么其他想法?求讨论
1 个赞
客户端上没有绝对的安全
所有防护都是为了增加逆向的时间复杂度
攻与防就是藏与找的过程
4 个赞
就像之前我在某音频巨头打工,要求解决音频泄露的问题。
你端上防护再强,也架不住人家找个录音房,边播边录(这样的方式成本是最高的,毕竟时间很值钱)。
1 个赞
服务端一起验证防护有什么好的套路吗?
我的理解是就算服务器提出一个什么发送信息的请求,或者发出challenge,客户端所能返回的内容一样可以被篡改,这么讲来也没有太多意义。
ring
(ring)
9
这是一个猫和老鼠的游戏,要是公开了一种方法,马上就会出现■■的,防只是增加时间问题而已。
1 个赞
下发了什么代码?可以动态在ios 运行? 字节码?
b3s
13
ios上动态下发比较难吧,另外ios上attest挺变态了,一认为不对就封设备对抗成本很高