|  |      1iwh718      2022-10-17 09:35:55 +08:00 那使用开源版本的和写爬虫是不是差不多了。 | 
|      2LxnChan      2022-10-17 09:37:39 +08:00 我有个想法,获得自身 App 包的签名,然后混合时间戳或者别的东西做个算法,并在服务端校验,这样即使对应的 api 能被抓到,只要算法和 App 的私钥不泄露就不可能第三方完全伪造。另外也可以加一些广告 sdk ,因为第三方 app 是不可能复刻这些广告 sdk 的,所以可以通过在 sdk 上设置心跳包(比如展示成功、展示失败)以判断客户端是否为官方 | 
|  |      4dangyuluo      2022-10-17 10:06:49 +08:00 挺好一个东西,就别玩坏了。 | 
|  |      5dangyuluo      2022-10-17 10:07:27 +08:00 哦抱歉,我以要伪造 TG 官方客户端。 | 
|  |      8janxin      2022-10-17 12:28:04 +08:00 你开源是开放所有代码吗? | 
|  |      10newmlp      2022-10-17 15:40:56 +08:00 接口必须传 appid 和密钥,开源和官方客户端传不同的 appid 和密钥不就行了 | 
|  |      13crab      2022-10-17 18:13:45 +08:00 没办法啊,就像双向证书也得保证客户端证书在自己手里。 | 
|  |      14butanediol2d      2022-10-17 18:36:49 +08:00 via iPhone op 可以看看 Telegram 的 reproducible build https://core.telegram.org/reproducible-builds 它可以在外部验证客户端是否与官方的相同,不知道能不能做到客户端内部,算是一种思路吧。 | 
|      15lookas2001      2022-10-17 18:49:47 +08:00 执行在用户控制的设备上,无解,只能尽可能提升难度(闭源和混淆是一般操作) 把重要逻辑搬到服务器上吧 一些不大现实的方法: 在用户设备可信执行环境中执行,参考 Android 上 DRM 的实现 使用同态加密 |