昨天发布了《独立开发者对盗版平台的反击》,但是发错节点了,好尴尬,不能删除也不能修改,所以今天再简单说下我是怎么用技术保护自己的作品的。
事情是这样的,我的游戏被盗版了,给盗版平台发邮件警告没用,他们还设置为对游客隐藏。我在新的版本中加了多种校验签名的方式,他们绕过其中一种就能进入游戏,但是程序会标志为盗版,然后昨晚盗版游戏集体黑屏并引导玩家下载正版。
如果懒得去看《独盗》的话,可以看这里,我简单说下安卓应用如何防盗。在安卓中可以使用 hook 接管 getPackageInfo 返回伪造的签名信息,github 上很多类似的一键破解的的项目,可以自己研究下。想要获取正确的签名需要访问 CERT.RSA 文件,但是不能用 java 访问,反编译后的 java 没有秘密,所以要用 c 写。直接用 c 语言太麻烦了,我的做法是用 c 调用 java。而且在 c 中要用 int[]数组代替字符串,不能用 char[],因为用文档工具查看 so 文件可以看到字符串,就能大概知道你调用了哪些方法来获取签名。获取到的签名再随便改动一下,不能和正确签名的 MD5 和 SHA1 一样,因为这些可以用工具查看,别人逐个尝试就能破解。
《独盗》链接: https://www.v2ex.com/t/626896
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.