我对 DexGuard 和 Proguard 很陌生。我正在浏览他们的文档和示例示例。他们有 dexguard_util 可以帮助您检测应用程序是否被篡改,还有助于检测它是否在应该运行的环境中运行。该文件建议使用以下代码对这种篡改和环境检测进行加密 dexgaurd-project.txt。
-encryptclasses A$D
-encryptstrings A$D
以下是活动
public class A extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
new D().c();
}
private class D
{
public void c()
{
//some code to which detects the tampering and environment and takes action accordingly
}
}
}
如果黑客注入这行代码怎么办。
public class A extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//code commented by hacker
//new D().c();
}
private class D
{
public void c()
{
//some code to which detects the tampering and environment and takes action accordingly
}
}
}
然后我的应用程序将在不运行那些我认为是一个大问题的测试的情况下运行。我对逆向工程如何工作的理解是错误的,还是有更好的方法来做到这一点。如果存在,请分享更好的方法。提前致谢。请注意,公共类 A 无法加密,因为它是一个入口点,并且在 progaurd-project.txt 中使用此命令保存
-keep class somepackage.A