我的 app 被人干了,颠覆了我的认知!

1 天前
 92Developer

上周我 app 用户群来了一位不速之客,发了一张图片

我一看,我艹,这不被破解了嘛。 随即我踢了他,然后当天下午加了他 wx ,他同意了。 整个聊天过程没有急眼,他还表明破解的这个包没有流传出去。 因为那个人只愿出几十块钱,他肯定不会成交的,纯试试水,就破了。

从聊天记录我总结出以下几点:

1:他不懂安卓代码,纯靠几个工具 [其中有 MT 管理器[狗东西,开发者天敌]] 就能快速重签打包,我在 Java 和 cpp 中有几个签名验证的埋点,他依然能打包,并正常运行。

2:我的 app 核心功能要用到安装包中的本地带密 zip ,解压密码由后台配置信息接口返回,每个版本的安装包中的 zip 解压密码都不一致,所以我故意改了后台配置信息接口中的密码,他破解的老包功能依然正常使用,我轻描淡写问了他,他说就一个工具就能搞定。

3:他还能破包后加卡密弹窗,说这是基操。视频链接: https://m.okjike.com/originalPosts/69493b881cc9bc8e54a2608d?s=eyJ1IjoiNjM1Nzg4ZjM0N2RkNjRhN2Y3Y2RiMTk0In0%3D

经过几天的 v 站查帖和看 B 站视频,我知道业务逻辑在本地是无法完全防破解的,只是有几点疑问。

1:加卡密弹窗的云注入平台为爱发电?就没人投诉吗?

2:他破解的包为什么不受后端动态解压密码控制?如果绕过校检本地如何解压成功呢?

9950 次点击
所在节点    Android
111 条回复
myderr
12 小时 43 分钟前
把一些逻辑放服务端
92Developer
12 小时 43 分钟前
@comlewin 手动狗头
92Developer
12 小时 42 分钟前
@myderr 本地识别,放不了服务端。
92Developer
12 小时 39 分钟前
@xFrye 核心业务逻辑在本地,无解。
92Developer
12 小时 36 分钟前
@zerone0086 闲鱼一堆,月激活码 10 月一个。
kekeabab
12 小时 36 分钟前
纯好奇,为啥要用什么 yolo onnx 之类的这些东西实现记牌器,这些数据内存里面不是都直接有吗,还浪费性能
helone
12 小时 31 分钟前
@92Developer #63 可以考虑本地识别完内容加密传给服务端,服务端解密后返回给 APP ,这样就没办法在一些签名验证的埋点直接修改逻辑去破解,即使破解了你的服务端加解密逻辑也有很多后期工作需要做,比如直接识别完直接读取结果,而不是传给服务端
hikarugo
12 小时 31 分钟前
破解狗真的很烦,这是一场持续战
neoshui
12 小时 30 分钟前
你可以看一下 52pj 这个论坛,可以学到很多东西,叹为观止
xFrye
12 小时 28 分钟前
@92Developer 全部本地的话那就没办法了,我以前见过有些单机游戏,上午发包下午就在破解平台上出现。。。
92Developer
12 小时 27 分钟前
@kekeabab 那你说为啥市面上大多记牌器不是用 yolo 就 opencv ?
baby0w0
12 小时 24 分钟前
您做的这些防护都是防君子的(1 点用都没有)
我破解过很多软件了,你说的安卓代码 不需要懂
kekeabab
12 小时 18 分钟前
@92Developer #71 这我怎么知道为啥,比较好奇市面上大多记牌器真的都这样吗?我玩的卡牌游戏记牌都不会用什么 yolo opencv ,数据本来就在内存直接读就好了,比如炉石传说
92Developer
12 小时 17 分钟前
@kekeabab 具体我也不清楚,基本都玩小程序。
stinkytofux
12 小时 12 分钟前
@kekeabab #73 又不是 Window, 安卓的权限很严格, 没有 root 权限的情况下无法注入目标进程, 怎么可能读到其他程序的内存. 你自己搞黑产可以用一批 root 手机或者 root 模拟器去批量操作, 想开发通用的软件分发给普通人用, 这招就不行了.
suyuyu
12 小时 5 分钟前
@HeyWeGo 哥,你这头像能不能换了 (
randomx
12 小时 5 分钟前
和外挂一样 真的讨厌 真的不会消失
registerrr
12 小时 2 分钟前
你“破解”微乐,他破解你,有人又破解他,无穷尽也
lumyx
12 小时 2 分钟前
颠覆言重了,这不是啥新技术(这估计流行快七八年了),看雪这里论坛有很多高中生看教程都会逆向了,本质上就是 3L 老哥说的,mt 会解析定位到关键的调用处,比如你 java 肯定有个 isVip ,直接把这个值换成 true 就行了。你在上层花里胡哨的加密折腾毫无影响。
lumyx
11 小时 59 分钟前
避免用 java ,kt,我个人建议把功能用 flutter 重写一遍,混淆后再打包,这个强度相比 java 强了不少,想靠 mt 破壳 flutter 基本没戏,因为 flutter 都是 so . 门槛会高不少

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

https://ex.noerr.eu.org/t/1180497

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

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

© 2021 V2EX