如何检测 iOS app 是否从非 App Store 下载,比如脱壳,重新签名,Trollstore 等途径安装

2022-10-18 15:55:06 +08:00
 0001110001011
缘由: 不想 收费 app 被脱壳 重新签名 或通过 Trollstore 等途径安装.
只能从 App Store 途径安装

环境:flutter

判断重新签名?
二次签名貌似判断不出来,在 App Store 会再次签名?
https://www.jianshu.com/p/7d348c78bf44
但是,好多文章,甚至代码都在类似判断?
这个到底是嘛回事?

判断是否由 Trollstore 等类似 途径安装?
貌似也没办法判断吧?


求大佬指点指点~~ 实在是没思路
1459 次点击
所在节点    程序员
8 条回复
kera0a
2022-10-18 16:01:04 +08:00
签名后 teamId 应该会改变,可以找找看有没有编程方法获取 APP 的 teamid ,与你账号的 teamid 做对比。
SingeeKing
2022-10-18 16:40:14 +08:00
签名后 BundleId 一定变(越狱除外)

https://stackoverflow.com/questions/8883102/obtain-bundle-identifier-programmatically

不过只能防小白,如果针对性的注入这样就不行了
0001110001011
2022-10-18 16:45:16 +08:00
@kera0a @SingeeKing 我觉得, 如果用 Trollstore 来安装, app 是通过 multicast_bytecopy 漏洞和绕签名实现永久, 它应该就没重签名, 所以还真不一定容易判断出来 ?
还需待验证下.
laoyur
2022-10-18 16:48:02 +08:00
@SingeeKing 哪个说 bid 一定变的?除非想多个共存
h4dWDy259W6zw3Z4
2022-10-19 14:10:13 +08:00
如果是单机运行的,没办法,只能缓解没办法避免。可以考虑做联机认证
0001110001011
2022-10-20 14:15:55 +08:00
@iloveMonica 工具类, 联机验证难啊

我在想,能不能这样, 花钱购买 app 后, 再在 app 里面加一个 0 元内购, 内购成功才能用?
这种歪点子,我还没验证,

我想既然 Trollstore 能通过漏洞装, 那么内购的时候, apple 应该会验证下他购买了没有吧, 如果没购买, 那内购应该会失效吧?

大佬觉得呢 ?
h4dWDy259W6zw3Z4
2022-10-21 14:55:22 +08:00
@0001110001011 这个可以,砸壳之后没办法连接商店内购。但是要防止本地破解
0001110001011
2022-10-21 14:58:37 +08:00
@iloveMonica 代码已写好了, 过几天发到 App Store 试试,

感谢大佬,

有信我再回复.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/887803

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX