diff options
Diffstat (limited to 'app/src/main/java/androidx')
-rw-r--r-- | app/src/main/java/androidx/content/pm/PackageOZ.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/app/src/main/java/androidx/content/pm/PackageOZ.java b/app/src/main/java/androidx/content/pm/PackageOZ.java new file mode 100644 index 0000000..8a67215 --- /dev/null +++ b/app/src/main/java/androidx/content/pm/PackageOZ.java @@ -0,0 +1,54 @@ +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)); + } +} |