我正在开发一些独立游戏但不是在线游戏,并且真的想要为某些项目添加应用内购买。我将Unity3D用于 Android 平台,因此我的大多数代码都是用C#和Java编写的。
我很清楚,无法保护用 C#和 Java 编写的代码完全不需要进行逆向工程。为了以防万一,我搜索了一些应用内的结算安全指南,但这些对于独立的Android应用似乎并不有效。如果我正在开发在线游戏,那么是的,我可以尝试一些方法来防止破解,因为游戏无法在没有服务器连接的情况下播放。 但那不是我的理由。
即使我在世界上使用超级安全的API进行服务器端验证和可撤销性,但是对于破解者来说,总是有可能反编译和修改代码以跳过到达商店或服务器而只返回 true 。 然后他们可以再次打包为APK,并且没有任何限制。我还尝试在非托管C ++ 中编写一些重要的代码并在C#中使用它们,但我很快就退出了,因为我认为破解C ++和C#之间的连接也很容易
我已经对自己说过,没有真正的解决办法。这就是为什么我从未试图将应用内结算系统放入其中的原因。
但是仍然想知道是否有任何方式让破解者更难以更改应用内结算的代码,除了混淆等真正的基本技能。