小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
游戏安全的攻防博弈一直都十分激烈, 相信我们在玩游戏的过程中,也经常会听到或遇到有人使用外挂,脚本,破解版等方式来影响游戏平衡, 那么这些方式到底是如何实现的呢,今天跟大家简单介绍一下:
1. 通过静态修改 apk, 重新打包签名
这种方式是通过修改资源文件(比如像图片, 视频等),修改代码逻辑(反编译后通常是 smali 代码, 可以通过 apktools, jadx,AndroidKiller 等工具转成 java 代码,或者直接修改 smali 代码),修改配置文件(xml 文件等),然后重新打包签名的方式来影响游戏的正常逻辑。
2. 通过动态 hook 工具
这种方式是通过把写好的脚本注入到 Zygote 进程渗透到目标游戏进程中(比如像 Xposed 等), 也可以直接把写好的脚本通过 ptrace 插桩的方式注入到目标进程中(比如像 frida 等),然后通过脚本影响进程代码逻辑, 从而影响游戏正常逻辑。 IOS 的话通常是通过注入 dylib 的方式来实现篡改逻辑(比如像 Cydia)
3. 通过游戏协议
攻击者可以通过篡改游戏协议(多数情况下是篡改用户的「行为」),重发游戏协议(比如充值一次发送一次协议, 那么 copy 这份协议重新发送多次, 就会导致充值行为被触发多次)
不管是进攻还是防御, 本质上都是相通的, 只有深入研究进攻者的世界, 才能做到更好的防御。
文章内容如果对您有帮助, 希望可以点一波关注~ 谢谢您的支持