aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/androidx/content/pm/PackageOZ.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/androidx/content/pm/PackageOZ.java')
-rw-r--r--app/src/main/java/androidx/content/pm/PackageOZ.java54
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));
+ }
+}