讨论下最高级别的防护措施

首先客户端不能检测到hook啊越狱就强退,这是前提。
另外客户端要收集信息上传到服务器做各种数据分析和检测。

目前是无论检测到hook,还是jb还是做什么数据采集,逻辑都可以被篡改吧?要么tweak 要么hook要么就重新打包签名,反正如何收集数据,如何混淆代码,如何加密,这些都最终会被反编译并且绕过去,手段太多了,也不用说了,你们都懂。

所以今天发个帖子,抛砖引玉,求一些解决方案。
我所想到的

  1. 服务器下发一些动态库,客户端直接运行并发送回服务器,但这种有些违背app store 的审核机制
  2. 客户端运行一些虚拟机,增加■■的难度
  3. 混淆代码,symbol 篡改,逻辑数字混淆,但这些早晚可以被debug 出来,而且会增加包的大小以及运行效率。

不知道各位大神有什么其他想法?求讨论

1 个赞

客户端上没有绝对的安全
所有防护都是为了增加逆向的时间复杂度
攻与防就是藏与找的过程

4 个赞

解释的很到位。

就像之前我在某音频巨头打工,要求解决音频泄露的问题。
你端上防护再强,也架不住人家找个录音房,边播边录(这样的方式成本是最高的,毕竟时间很值钱)。

1 个赞

服务端一起验证防护有什么好的套路吗?
我的理解是就算服务器提出一个什么发送信息的请求,或者发出challenge,客户端所能返回的内容一样可以被篡改,这么讲来也没有太多意义。

同态加密吧,安全搞到最后都是密码学问题

1 个赞

特别同意

这个客户端可行吗?有那么大的算力吗

这是一个猫和老鼠的游戏,要是公开了一种方法,马上就会出现■■的,防只是增加时间问题而已。

1 个赞

参考拼多多动态下发加密代码内核提权

:laughing:
本质是VMP,可以直接用flutter

1 个赞

下发了什么代码?可以动态在ios 运行? 字节码?

ios上动态下发比较难吧,另外ios上attest挺变态了,一认为不对就封设备对抗成本很高

换attestkey

怎么封的?具体能解释下吗?

可否稍微扩展讲讲