package androidx.content.pm; import android.content.Context; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Calendar; import moe.yuuta.workmode.R; /** * A wrapper of Base64 decoder. * #Anti-Crack */ public class PackageOZ { public static String decode(String source, Context context) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { // First, get the name of Base64: java.util.Base64 StringBuilder builder = new StringBuilder(); // j builder.append("j"); // ava builder.append(context.getString(R.string.b6_k).toLowerCase()); // . builder.append("."); // util String litu = context.getString(R.string.b7_a); StringBuilder reverse = new StringBuilder(); for(int i = litu.length() - 1; i >= 0; i--) { reverse.append(litu.charAt(i)); } builder.append(reverse.toString()); // . builder.append('.'); // Base String base = context.getString(R.string.b90_key); base = base.substring(14, 18); base = base.substring(1, 4); builder.append("B"); builder.append(base); // 64 Calendar calendar = Calendar.getInstance(); builder.append((int) Math.pow(1, calendar.getWeekYear()) * 128 / 2); // Then find the class and methods Class b6 = Class.forName(builder.toString()); Method method = b6.getDeclaredMethod("get" + context.getString(R.string.b99_a) + context.getString(R.string.b100_a)); Object dec = method.invoke(null); Method de = dec.getClass().getDeclaredMethod(dec.getClass().getSimpleName().toLowerCase().replace("r", ""), String.class); // Finally decode return new String((byte[])de.invoke(dec, source)); } }