我似乎找不到在混淆的类的方法内部混淆本地变量的设置。
这是我反编译的其中一个类的节选,其中有一些明显的缺失部分。理想情况下,方法的参数和局部变量也将被混淆。
public class eA extends gu
{
private final gt a;
private final gt b;
public static boolean a(fy game)
{
boolean playerDead = game.k().j() <= 0;
boolean enemyDead = game.g().a().size <= 0;
boolean wavesRemain = game.r() > 0;
return (playerDead) || ((!wavesRemain) && (enemyDead));
}
public eA(gt gameState, gt boardState)
{
this.b = gameState;
this.a = boardState;
}
public void a()
{
n();
boolean playerDead = this.f.k().j() <= 0;
boolean enemyDead = this.f.g().a().size <= 0;
if (a(this.f)) {
if (enemyDead) {
this.f.a(new eG(1));
this.e.a(new eW());
} else if (playerDead) {
this.f.a(new eF());
编辑,我还要附加proguard配置
-dontskipnonpubliclibraryclassmembers
-dontshrink
-dontoptimize
-printmapping build/libs/output/obfuscation.map
-keepattributes
-adaptclassstrings
-dontnote
-dontwarn
# Keep Android classes
-keep class ** extends android.** {
<fields>;
<methods>;
}
# Keep serializable classes & fields
-keep class ** extends java.io.Serializable {
<fields>;
}
# Keep - Applications. Keep all application classes, along with their 'main'
# methods.
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# Keep names - Native method names. Keep all native class/method names.
-keepclasseswithmembers,allowshrinking class * {
native <methods>;
}
您应该删除或优化该选项-keepattributes
。这意味着使用局部变量名称保留属性:
-keepattributes LocalVariableTable,LocalVariableTypeTable
您至少可以排除那些
-keepattributes !LocalVariableTable,!LocalVariableTypeTable
理想情况下,您只保留严格要求的属性。
请参阅ProGuard手册>用法>
-keepattributes
下面是代码: null null 当我点击乘法或除法按钮触发函数时,我得到的结果是NAN,但我认为num1和num2都是全局变量,有人能帮我弄清楚为什么这两个都没有定义吗?
我对混淆有问题。为了获得更好的想象力: JAVA代码 本机代码 在我想发布一个混淆版本之前,一切都很好。这个类中的Java类(例如)和方法的名称被proGuard重命名为“a”和“a()”(这可能并不总是相同的),但在本机代码中,方法和类的原始名称保持不变,因为它被硬编码为字符串,如下所示: ...有没有办法动态设置方法名?
我正在努力解决JavaFX应用程序的模糊问题。以本项目为基础: Proguard配置文件:-dontoptimized-dontshrink 有人有JavaFX模糊处理的经验吗?
问题内容: 是否可以仅将ProGuard用于混淆。我不希望ProGuard从我的项目中删除任何类。我打算使用ProGuard只是为了混淆,以防止进行反向工程。 问题答案: 是的,通过指定 您可以在ProGuard手册中找到有关所有配置选项的详细信息。 请注意,缩小和优化可能有助于防止反向工程。
主要内容:局部变量,全局变量,局部变量和全局变量的综合示例在《 C语言形参和实参的区别》中提到,形参变量要等到函数被调用时才分配内存,调用结束后立即释放内存。这说明形参变量的作用域非常有限,只能在函数内部使用,离开该函数就无效了。 所谓 作用域( Scope ) ,就是变量的有效范围。 不仅对于形参变量,C语言中所有的变量都有自己的作用域。决定变量作用域的是变量的定义位置。 局部变量 定义在函数内部的变量称为 局部变量(Local Variable) ,
我尝试在android studio中使用Proguard,但Proguard似乎没有混淆类名,例如,我的应用程序结构和配置: 和配置 但当我尝试在应用程序中触发异常时: ADB控制台中列出了异常: 只有方法被混淆了,MainActivity.class没有