适用场景
使用虚拟化标签标记过的类和方法后,编译出的Android APK/AAB应用拖入到 Virbox Protector 界面进行解析时,默认会显示标记的类和方法。
若使用proguard混淆后,无法判断函数名称,若使用虚拟化标签标记过的类和方法后,在对该应用保护时就不需要去查找对应的类和方法名。
操作流程
注:若开启proguard编译的Android APK/AAB应用,有些函数会被优化,导致标记的函数不会解析出来。
1.打开Android工程,新建一个目录,命名为virbox;
2.创建Java Class;
3.选择Interface,命名为VBVirtualize;
4.在VBVirtualize.class中添加以下代码;
package virbox;
import androidx.annotation.Keep;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Keep
@Retention(RetentionPolicy.RUNTIME)
public @interface VBVirtualize {
}
5.在其他类上调用VBVirtualize;
@VBVirtualize若放在类上面,则表示该类里的所有方法都进行保留
import virbox.VBVirtualize;
@VBVirtualize
public class SecondFragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentSecondBinding inflate = FragmentSecondBinding.inflate(inflater, container, false);
this.binding = inflate;
return inflate.getRoot();
}
public void onDestroyView() {
super.onDestroyView();
this.binding = null;
}
}
@VBVirtualize若放在方法上面,则表示该方法都进行保留,其他方法不会进行保留
import virbox.VBVirtualize;
public class SecondFragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentSecondBinding inflate = FragmentSecondBinding.inflate(inflater, container, false);
this.binding = inflate;
return inflate.getRoot();
}
@VBVirtualize
public void onDestroyView() {
super.onDestroyView();
this.binding = null;
}
}