0% found this document useful (0 votes)
48 views21 pages

1231

This Android application class contains code for modifying the application context and activities at runtime. It implements Application.ActivityLifecycleCallbacks to intercept activity lifecycle events. Methods are used to replace the application context and modify activity fields through reflection. The code contains obfuscated strings, suggesting it may be hiding malicious behavior.

Uploaded by

khackhangdao6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views21 pages

1231

This Android application class contains code for modifying the application context and activities at runtime. It implements Application.ActivityLifecycleCallbacks to intercept activity lifecycle events. Methods are used to replace the application context and modify activity fields through reflection. The code contains obfuscated strings, suggesting it may be hiding malicious behavior.

Uploaded by

khackhangdao6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 21

package v0388665e;

import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.util.ArrayMap;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.ref.WeakReference;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.List;
import java.util.Map;

public class l0388665e extends Application {


public static String g;
public static String h;
public static Context i;
public String b;
public String c;
public Application d;
public Object e;
public String f;

public class jntm implements Application.ActivityLifecycleCallbacks {


public jntm(l0388665e l0388665e) {
}

public void onActivityCreated(Activity activity, Bundle bundle) {


l0388665e.I0388665e_02(activity, bundle);
}

public void onActivityDestroyed(Activity activity) {


l0388665e.I0388665e_04(activity);
}

public void onActivityPaused(Activity activity) {


}

public void onActivityResumed(Activity activity) {


}

public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {


}

public void onActivityStarted(Activity activity) {


l0388665e.I0388665e_03(activity);
}
public void onActivityStopped(Activity activity) {
}
}

public l0388665e() {
g = "Virbox";
h = l0388665e.class.getSimpleName();
}

public static native void I0388665e_00(Context context);

public static native void I0388665e_01(Context context, Application


application, String str);

public static native void I0388665e_02(Activity activity, Bundle bundle);

public static native void I0388665e_03(Activity activity);

public static native void I0388665e_04(Activity activity);

public static boolean c(Context context, String str, String str2, String str3)
{
String str4 = String.valueOf(str2) + File.separator + str3;
File file = new File(str2);
if (!file.exists()) {
file.mkdir();
}
File file2 = new File(str4);
try {
if (file2.exists()) {
InputStream open = context.getResources().getAssets().open(str);
FileInputStream fileInputStream = new FileInputStream(file2);
BufferedInputStream bufferedInputStream = new
BufferedInputStream(open);
BufferedInputStream bufferedInputStream2 = new
BufferedInputStream(fileInputStream);
boolean z = g(bufferedInputStream, bufferedInputStream2);
open.close();
fileInputStream.close();
bufferedInputStream.close();
bufferedInputStream2.close();
if (z) {
return true;
}
}
file2.delete();
InputStream open2 = context.getResources().getAssets().open(str);
FileOutputStream fileOutputStream = new FileOutputStream(str4);
byte[] bArr = new byte[7168];
while (true) {
int read = open2.read(bArr);
if (read <= 0) {
break;
}
fileOutputStream.write(bArr, 0, read);
}
fileOutputStream.close();
open2.close();
try {
file2.setReadable(true, false);
file2.setExecutable(true, false);
file2.setWritable(false, false);
} catch (Exception unused) {
}
return true;
} catch (FileNotFoundException | IOException unused2) {
return false;
}
}

public static Field f(Object obj, String str) {


Class cls = obj.getClass();
while (cls != null) {
try {
Field declaredField = cls.getDeclaredField(str);
declaredField.setAccessible(true);
return declaredField;
} catch (NoSuchFieldException unused) {
cls = cls.getSuperclass();
}
}
throw new IllegalStateException("Field '" + str + "' not found");
}

public static boolean g(BufferedInputStream bufferedInputStream,


BufferedInputStream bufferedInputStream2) {
try {
int available = bufferedInputStream.available();
int available2 = bufferedInputStream2.available();
if (available != available2) {
return false;
}
byte[] bArr = new byte[available];
byte[] bArr2 = new byte[available2];
bufferedInputStream.read(bArr);
bufferedInputStream2.read(bArr2);
for (int i2 = 0; i2 < available; i2++) {
if (bArr[i2] != bArr2[i2]) {
return false;
}
}
return true;
} catch (Exception unused) {
return false;
}
}

public static Context getAppContext() {


return i;
}

public static String h(byte[] bArr) {


for (int i2 = 0; i2 < bArr.length; i2++) {
bArr[i2] = (byte) (bArr[i2] ^ 105);
}
return new String(bArr, 0, bArr.length);
}
public final void a() {
Class<?> cls;
Field field;
try {
Class<?> cls2 = Class.forName(h(new byte[]{8, 7, 13, 27, 6, 0, 13, 71,
8, 25, 25, 71, 40, 10, 29, 0, 31, 0, 29, 16, 61, 1, 27, 12, 8, 13}));
Method method = cls2.getMethod(h(new byte[]{10, 28, 27, 27, 12, 7, 29,
40, 10, 29, 0, 31, 0, 29, 16, 61, 1, 27, 12, 8, 13}), new Class[0]);
method.setAccessible(true);
Object invoke = method.invoke((Object) null, new Object[0]);
Field declaredField = cls2.getDeclaredField(h(new byte[]{4, 32, 7, 0,
29, 0, 8, 5, 40, 25, 25, 5, 0, 10, 8, 29, 0, 6, 7}));
declaredField.setAccessible(true);
if (((Application) declaredField.get(invoke)) == this) {
declaredField.set(invoke, this.d);
}
Field declaredField2 = cls2.getDeclaredField(h(new byte[]{4, 40, 5, 5,
40, 25, 25, 5, 0, 10, 8, 29, 0, 6, 7, 26}));
declaredField2.setAccessible(true);
List list = (List) declaredField2.get(invoke);
for (int i2 = 0; i2 < list.size(); i2++) {
if (list.get(i2) == this) {
list.set(i2, this.d);
}
}
try {
cls = Class.forName(h(new byte[]{8, 7, 13, 27, 6, 0, 13, 71, 8, 25,
25, 71, 37, 6, 8, 13, 12, 13, 40, 25, 2}));
} catch (ClassNotFoundException unused) {
cls = Class.forName(h(new byte[]{8, 7, 13, 27, 6, 0, 13, 71, 8, 25,
25, 71, 40, 10, 29, 0, 31, 0, 29, 16, 61, 1, 27, 12, 8, 13, 77, 57, 8, 10, 2, 8,
14, 12, 32, 7, 15, 6}));
}
Field declaredField3 = cls.getDeclaredField(h(new byte[]{4, 40, 25, 25,
5, 0, 10, 8, 29, 0, 6, 7}));
declaredField3.setAccessible(true);
Field declaredField4 = cls.getDeclaredField(h(new byte[]{4, 59, 12, 26,
45, 0, 27}));
declaredField4.setAccessible(true);
try {
field = Application.class.getDeclaredField(h(new byte[]{4, 37, 6,
8, 13, 12, 13, 40, 25, 2}));
} catch (NoSuchFieldException unused2) {
field = null;
}
String[] strArr = {h(new byte[]{4, 57, 8, 10, 2, 8, 14, 12, 26}), h(new
byte[]{4, 59, 12, 26, 6, 28, 27, 10, 12, 57, 8, 10, 2, 8, 14, 12, 26})};
for (int i3 = 0; i3 < 2; i3++) {
Field declaredField5 = cls2.getDeclaredField(strArr[i3]);
declaredField5.setAccessible(true);
for (Map.Entry value : ((Map)
declaredField5.get(invoke)).entrySet()) {
Object obj = ((WeakReference) value.getValue()).get();
if (obj != null) {
if (declaredField3.get(obj) == this) {
declaredField3.set(obj, this.d);
if (this.f != null) {
declaredField4.set(obj, this.f);
}
if (field != null) {
field.set(this.d, obj);
}
}
}
}
}
} catch (Exception e2) {
throw new IllegalStateException(e2);
}
}

/* JADX WARNING: Can't wrap try/catch for region: R(21:0|(1:2)|3|(1:5)|6|7|8|


(2:10|(2:12|(3:16|(2:17|(1:19)(1:99))|(1:21)(1:(1:25)))))|26|(3:28|29|(13:31|32|
(6:34|35|(2:37|(2:102|40))|39|101|40)|100|44|(2:46|(1:48)(2:49|(1:51)(2:52|(1:54)
(2:55|(1:57)(2:58|(1:60)(2:61|(1:63)(2:64|65)))))))(2:66|(1:68)(2:69|(1:71)(2:72|
(1:74)(2:75|(1:77)(2:78|(1:80)(2:81|(1:83)(2:97|98)))))))|84|85|86|(1:90)|91|92|
(2:94|105)(2:95|103)))|42|44|(0)(0)|84|85|86|88|90|91|92|(0)(0)) */
/* JADX WARNING: Code restructure failed: missing block: B:104:?, code lost:
return;
*/
/* JADX WARNING: Failed to process nested try/catch */
/* JADX WARNING: Missing exception handler attribute for start block:
B:91:0x0724 */
/* JADX WARNING: Removed duplicated region for block: B:46:0x015e */
/* JADX WARNING: Removed duplicated region for block: B:66:0x0424 */
/* JADX WARNING: Removed duplicated region for block: B:94:0x0728 A[Catch:
{ Exception -> 0x073b }] */
/* JADX WARNING: Removed duplicated region for block: B:95:0x0733 A[Catch:
{ Exception -> 0x073b }] */
/* Code decompiled incorrectly, please refer to instructions dump. */
public void attachBaseContext(android.content.Context r24) {
/*
r23 = this;
r0 = r23
r1 = r24
java.lang.String r2 = "."
super.attachBaseContext(r24)
i = r1
java.io.File r3 = r24.getFilesDir()
java.lang.String r3 = r3.getAbsolutePath()
java.io.File r4 = new java.io.File
r4.<init>(r3)
boolean r5 = r4.exists()
if (r5 != 0) goto L_0x0021
r4.mkdir()
L_0x0021:
java.lang.StringBuilder r4 = new java.lang.StringBuilder
r4.<init>()
r4.append(r3)
r3 = 4
byte[] r5 = new byte[r3]
r5 = {70, 71, 26, 26} // fill-array
java.lang.String r5 = h(r5)
r4.append(r5)
java.lang.String r4 = r4.toString()
java.io.File r5 = new java.io.File
r5.<init>(r4)
boolean r6 = r5.exists()
if (r6 != 0) goto L_0x0048
r5.mkdir()
L_0x0048:
java.lang.String r5 = r23.getPackageName()
r0.c = r5
r5 = 54
r6 = 2
r8 = 5
r9 = 6
r10 = 0
r11 = 7
r12 = 1
r13 = 3
android.content.pm.PackageManager r14 = r23.getPackageManager() //
Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r15 = r23.getPackageName() // Catch:
{ NameNotFoundException -> 0x0109 }
r7 = 128(0x80, float:1.794E-43)
android.content.pm.ApplicationInfo r7 = r14.getApplicationInfo(r15, r7)
// Catch:{ NameNotFoundException -> 0x0109 }
android.os.Bundle r7 = r7.metaData // Catch:{ NameNotFoundException
-> 0x0109 }
if (r7 == 0) goto L_0x0109
r14 = 9
byte[] r15 = new byte[r14] // Catch:{ NameNotFoundException ->
0x0109 }
r17 = 58
r15[r10] = r17 // Catch:{ NameNotFoundException -> 0x0109 }
r18 = 40
r15[r12] = r18 // Catch:{ NameNotFoundException -> 0x0109 }
r19 = 57
r15[r6] = r19 // Catch:{ NameNotFoundException -> 0x0109 }
r15[r13] = r19 // Catch:{ NameNotFoundException -> 0x0109 }
r15[r3] = r5 // Catch:{ NameNotFoundException -> 0x0109 }
r20 = 39
r15[r8] = r20 // Catch:{ NameNotFoundException -> 0x0109 }
r15[r9] = r18 // Catch:{ NameNotFoundException -> 0x0109 }
r21 = 36
r15[r11] = r21 // Catch:{ NameNotFoundException -> 0x0109 }
r22 = 44
r16 = 8
r15[r16] = r22 // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r15 = h(r15) // Catch:{ NameNotFoundException ->
0x0109 }
boolean r15 = r7.containsKey(r15) // Catch:{ NameNotFoundException
-> 0x0109 }
if (r15 == 0) goto L_0x0109
byte[] r14 = new byte[r14] // Catch:{ NameNotFoundException ->
0x0109 }
r14[r10] = r17 // Catch:{ NameNotFoundException -> 0x0109 }
r14[r12] = r18 // Catch:{ NameNotFoundException -> 0x0109 }
r14[r6] = r19 // Catch:{ NameNotFoundException -> 0x0109 }
r14[r13] = r19 // Catch:{ NameNotFoundException -> 0x0109 }
r14[r3] = r5 // Catch:{ NameNotFoundException -> 0x0109 }
r14[r8] = r20 // Catch:{ NameNotFoundException -> 0x0109 }
r14[r9] = r18 // Catch:{ NameNotFoundException -> 0x0109 }
r14[r11] = r21 // Catch:{ NameNotFoundException -> 0x0109 }
r15 = 8
r14[r15] = r22 // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r14 = h(r14) // Catch:{ NameNotFoundException ->
0x0109 }
java.lang.String r7 = r7.getString(r14) // Catch:
{ NameNotFoundException -> 0x0109 }
r0.b = r7 // Catch:{ NameNotFoundException -> 0x0109 }
if (r7 == 0) goto L_0x0109
int r7 = r7.length() // Catch:{ NameNotFoundException -> 0x0109 }
if (r7 <= 0) goto L_0x0109
r7 = 0
r14 = 0
L_0x00c1:
java.lang.String r15 = r0.b // Catch:{ NameNotFoundException ->
0x0109 }
int r7 = r15.indexOf(r2, r7) // Catch:{ NameNotFoundException ->
0x0109 }
r15 = -1
if (r7 == r15) goto L_0x00cf
int r7 = r7 + 1
int r14 = r14 + 1
goto L_0x00c1
L_0x00cf:
if (r14 != 0) goto L_0x00ea
java.lang.StringBuilder r7 = new java.lang.StringBuilder // Catch:{
NameNotFoundException -> 0x0109 }
r7.<init>() // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r14 = r0.c // Catch:{ NameNotFoundException ->
0x0109 }
r7.append(r14) // Catch:{ NameNotFoundException -> 0x0109 }
r7.append(r2) // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r2 = r0.b // Catch:{ NameNotFoundException ->
0x0109 }
r7.append(r2) // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r2 = r7.toString() // Catch:
{ NameNotFoundException -> 0x0109 }
r0.b = r2 // Catch:{ NameNotFoundException -> 0x0109 }
goto L_0x0109
L_0x00ea:
if (r14 != r12) goto L_0x0109
java.lang.String r7 = r0.b // Catch:{ NameNotFoundException ->
0x0109 }
boolean r2 = r7.startsWith(r2) // Catch:{ NameNotFoundException ->
0x0109 }
if (r2 == 0) goto L_0x0109
java.lang.StringBuilder r2 = new java.lang.StringBuilder // Catch:{
NameNotFoundException -> 0x0109 }
r2.<init>() // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r7 = r0.c // Catch:{ NameNotFoundException ->
0x0109 }
r2.append(r7) // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r7 = r0.b // Catch:{ NameNotFoundException ->
0x0109 }
r2.append(r7) // Catch:{ NameNotFoundException -> 0x0109 }
java.lang.String r2 = r2.toString() // Catch:
{ NameNotFoundException -> 0x0109 }
r0.b = r2 // Catch:{ NameNotFoundException -> 0x0109 }
L_0x0109:
java.lang.String r2 = android.os.Build.CPU_ABI
int r7 = android.os.Build.VERSION.SDK_INT // Catch:{ Exception ->
0x0158 }
r14 = 21
if (r7 < r14) goto L_0x0158
java.lang.String[] r7 = android.os.Build.SUPPORTED_ABIS // Catch:
{ Exception -> 0x0158 }
int r14 = r7.length // Catch:{ Exception -> 0x0158 }
r15 = 0
r17 = 0
L_0x0117:
if (r15 >= r14) goto L_0x015a
r11 = r7[r15] // Catch:{ Exception -> 0x0156 }
byte[] r8 = new byte[r13] // Catch:{ Exception -> 0x0156 }
r20 = 17
r8[r10] = r20 // Catch:{ Exception -> 0x0156 }
r21 = 81
r8[r12] = r21 // Catch:{ Exception -> 0x0156 }
r22 = 95
r8[r6] = r22 // Catch:{ Exception -> 0x0156 }
java.lang.String r8 = h(r8) // Catch:{ Exception -> 0x0156 }
boolean r8 = r11.matches(r8) // Catch:{ Exception -> 0x0156 }
if (r8 != 0) goto L_0x014f
byte[] r8 = new byte[r9] // Catch:{ Exception -> 0x0156 }
r8[r10] = r20 // Catch:{ Exception -> 0x0156 }
r8[r12] = r21 // Catch:{ Exception -> 0x0156 }
r8[r6] = r22 // Catch:{ Exception -> 0x0156 }
r8[r13] = r5 // Catch:{ Exception -> 0x0156 }
r8[r3] = r22 // Catch:{ Exception -> 0x0156 }
r20 = 93
r19 = 5
r8[r19] = r20 // Catch:{ Exception -> 0x0156 }
java.lang.String r8 = h(r8) // Catch:{ Exception -> 0x0156 }
boolean r8 = r11.matches(r8) // Catch:{ Exception -> 0x0156 }
if (r8 == 0) goto L_0x0151
L_0x014f:
r17 = 1
L_0x0151:
int r15 = r15 + 1
r8 = 5
r11 = 7
goto L_0x0117
L_0x0156:
goto L_0x015a
L_0x0158:
r17 = 0
L_0x015a:
r5 = 18
if (r17 == 0) goto L_0x0424
r7 = 7
byte[] r8 = new byte[r7]
r8 = {8, 27, 4, 12, 8, 11, 0} // fill-array
java.lang.String r8 = h(r8)
boolean r8 = r2.contains(r8)
if (r8 == 0) goto L_0x01cf
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
byte[] r5 = new byte[r7]
r5 = {54, 17, 81, 95, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x01cf:
r7 = 5
byte[] r8 = new byte[r7]
r8 = {8, 27, 4, 95, 93} // fill-array
java.lang.String r7 = h(r8)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x0241
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 17, 95, 93, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0241:
byte[] r7 = new byte[r9]
r7 = {17, 81, 95, 54, 95, 93} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x02b2
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 17, 95, 93, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x02b2:
byte[] r7 = new byte[r13]
r7 = {17, 81, 95} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x0323
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 17, 81, 95, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0323:
byte[] r7 = new byte[r9]
r7 = {4, 0, 25, 26, 95, 93} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x0394
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 4, 95, 93, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0394:
byte[] r7 = new byte[r3]
r7 = {4, 0, 25, 26} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x0406
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 8
byte[] r7 = new byte[r5]
r7 = {54, 4, 0, 25, 26, 71, 26, 6} // fill-array
java.lang.String r5 = h(r7)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0406:
java.lang.String r1 = g
java.lang.StringBuilder r3 = new java.lang.StringBuilder
r3.<init>()
byte[] r4 = new byte[r5]
r4 = {39, 6, 29, 73, 26, 28, 25, 25, 6, 27, 29, 12, 13, 73, 8, 11, 0,
83} // fill-array
java.lang.String r4 = h(r4)
r3.append(r4)
r3.append(r2)
java.lang.String r2 = r3.toString()
android.util.Log.e(r1, r2)
return
L_0x0424:
r7 = 7
byte[] r8 = new byte[r7]
r8 = {8, 27, 4, 12, 8, 11, 0} // fill-array
java.lang.String r8 = h(r8)
boolean r8 = r2.contains(r8)
if (r8 == 0) goto L_0x0495
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
byte[] r5 = new byte[r7]
r5 = {54, 8, 90, 91, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0495:
r7 = 5
byte[] r8 = new byte[r7]
r8 = {8, 27, 4, 95, 93} // fill-array
java.lang.String r7 = h(r8)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x0507
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 8, 95, 93, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0507:
byte[] r7 = new byte[r9]
r7 = {17, 81, 95, 54, 95, 93} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x0578
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 17, 95, 93, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0578:
byte[] r7 = new byte[r13]
r7 = {17, 81, 95} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x05e9
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 17, 81, 95, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x05e9:
byte[] r7 = new byte[r9]
r7 = {4, 0, 25, 26, 95, 93} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x0659
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 7
byte[] r5 = new byte[r5]
r5 = {54, 4, 95, 93, 71, 26, 6} // fill-array
java.lang.String r5 = h(r5)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
goto L_0x06c9
L_0x0659:
byte[] r7 = new byte[r3]
r7 = {4, 0, 25, 26} // fill-array
java.lang.String r7 = h(r7)
boolean r7 = r2.contains(r7)
if (r7 == 0) goto L_0x073c
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
java.lang.String r5 = h
r2.append(r5)
r5 = 8
byte[] r7 = new byte[r5]
r7 = {54, 4, 0, 25, 26, 71, 26, 6} // fill-array
java.lang.String r5 = h(r7)
r2.append(r5)
java.lang.String r2 = r2.toString()
java.lang.StringBuilder r5 = new java.lang.StringBuilder
r5.<init>()
java.lang.String r7 = h
r5.append(r7)
byte[] r7 = new byte[r13]
r7 = {71, 26, 6} // fill-array
java.lang.String r7 = h(r7)
r5.append(r7)
java.lang.String r5 = r5.toString()
c(r1, r2, r4, r5)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
r2.<init>()
r2.append(r4)
java.lang.String r4 = java.io.File.separator
r2.append(r4)
java.lang.String r4 = h
r2.append(r4)
byte[] r4 = new byte[r13]
r4 = {71, 26, 6} // fill-array
java.lang.String r4 = h(r4)
r2.append(r4)
java.lang.String r2 = r2.toString()
java.lang.System.load(r2)
I0388665e_00(r24)
L_0x06c9:
r23.getBaseContext()
java.lang.String r1 = r0.b // Catch:{ Exception -> 0x0724 }
if (r1 == 0) goto L_0x0724
java.lang.String r1 = r0.b // Catch:{ Exception -> 0x0724 }
int r1 = r1.length() // Catch:{ Exception -> 0x0724 }
if (r1 <= 0) goto L_0x0724
android.content.Context r1 = r23.getBaseContext() // Catch:
{ Exception -> 0x0724 }
java.lang.ClassLoader r2 = r23.getClassLoader() // Catch:
{ Exception -> 0x0724 }
java.lang.String r4 = r0.b // Catch:{ Exception -> 0x0724 }
java.lang.Class r2 = r2.loadClass(r4) // Catch:{ Exception ->
0x0724 }
java.lang.Object r2 = r2.newInstance() // Catch:{ Exception ->
0x0724 }
android.app.Application r2 = (android.app.Application) r2 // Catch:
{ Exception -> 0x0724 }
r0.d = r2 // Catch:{ Exception -> 0x0724 }
java.lang.Class<android.app.Application> r2 =
android.app.Application.class
byte[] r4 = new byte[r9] // Catch:{ Exception -> 0x0724 }
r5 = 8
r4[r10] = r5 // Catch:{ Exception -> 0x0724 }
r7 = 29
r4[r12] = r7 // Catch:{ Exception -> 0x0724 }
r7 = 29
r4[r6] = r7 // Catch:{ Exception -> 0x0724 }
r4[r13] = r5 // Catch:{ Exception -> 0x0724 }
r5 = 10
r4[r3] = r5 // Catch:{ Exception -> 0x0724 }
r3 = 5
r4[r3] = r12 // Catch:{ Exception -> 0x0724 }
java.lang.String r3 = h(r4) // Catch:{ Exception -> 0x0724 }
java.lang.Class[] r4 = new java.lang.Class[r12] // Catch:
{ Exception -> 0x0724 }
java.lang.Class<android.content.Context> r5 =
android.content.Context.class
r4[r10] = r5 // Catch:{ Exception -> 0x0724 }
java.lang.reflect.Method r2 = r2.getDeclaredMethod(r3, r4) //
Catch:{ Exception -> 0x0724 }
r2.setAccessible(r12) // Catch:{ Exception -> 0x0724 }
android.app.Application r3 = r0.d // Catch:{ Exception -> 0x0724 }
java.lang.Object[] r4 = new java.lang.Object[r12] // Catch:
{ Exception -> 0x0724 }
r4[r10] = r1 // Catch:{ Exception -> 0x0724 }
r2.invoke(r3, r4) // Catch:{ Exception -> 0x0724 }
r23.d() // Catch:{ Exception -> 0x0724 }
L_0x0724:
android.app.Application r1 = r0.d // Catch:{ Exception -> 0x073b }
if (r1 == 0) goto L_0x0733
android.app.Application r1 = r0.d // Catch:{ Exception -> 0x073b }
v0388665e.l0388665e$jntm r2 = new v0388665e.l0388665e$jntm //
Catch:{ Exception -> 0x073b }
r2.<init>(r0) // Catch:{ Exception -> 0x073b }
r1.registerActivityLifecycleCallbacks(r2) // Catch:{ Exception ->
0x073b }
goto L_0x073b
L_0x0733:
v0388665e.l0388665e$jntm r1 = new v0388665e.l0388665e$jntm //
Catch:{ Exception -> 0x073b }
r1.<init>(r0) // Catch:{ Exception -> 0x073b }
r0.registerActivityLifecycleCallbacks(r1) // Catch:{ Exception ->
0x073b }
L_0x073b:
return
L_0x073c:
java.lang.String r1 = g
java.lang.StringBuilder r3 = new java.lang.StringBuilder
r3.<init>()
byte[] r4 = new byte[r5]
r4 = {39, 6, 29, 73, 26, 28, 25, 25, 6, 27, 29, 12, 13, 73, 8, 11, 0,
83} // fill-array
java.lang.String r4 = h(r4)
r3.append(r4)
r3.append(r2)
java.lang.String r2 = r3.toString()
android.util.Log.e(r1, r2)
return
*/
throw new UnsupportedOperationException("Method not decompiled:
v0388665e.l0388665e.attachBaseContext(android.content.Context):void");
}

public final void b() {


Collection<WeakReference> collection;
if (this.f != null) {
try {
AssetManager newInstance = AssetManager.class.getConstructor(new
Class[0]).newInstance(new Object[0]);
Method declaredMethod = AssetManager.class.getDeclaredMethod(h(new
byte[]{8, 13, 13, 40, 26, 26, 12, 29, 57, 8, 29, 1}), new Class[]{String.class});
declaredMethod.setAccessible(true);
if (((Integer) declaredMethod.invoke(newInstance, new Object[]
{this.f})).intValue() != 0) {
if (Build.VERSION.SDK_INT <= 19) {
Method declaredMethod2 =
AssetManager.class.getDeclaredMethod(h(new byte[]{12, 7, 26, 28, 27, 12, 58, 29,
27, 0, 7, 14, 43, 5, 6, 10, 2, 26}), new Class[0]);
declaredMethod2.setAccessible(true);
declaredMethod2.invoke(newInstance, new Object[0]);
}
Class<?> cls = Class.forName(h(new byte[]{8, 7, 13, 27, 6, 0,
13, 71, 8, 25, 25, 71, 59, 12, 26, 6, 28, 27, 10, 12, 26, 36, 8, 7, 8, 14, 12,
27}));
Method declaredMethod3 = cls.getDeclaredMethod(h(new byte[]{14,
12, 29, 32, 7, 26, 29, 8, 7, 10, 12}), new Class[0]);
declaredMethod3.setAccessible(true);
Object invoke = declaredMethod3.invoke((Object) null, new
Object[0]);
try {
Field declaredField = cls.getDeclaredField(h(new byte[]{4,
40, 10, 29, 0, 31, 12, 59, 12, 26, 6, 28, 27, 10, 12, 26}));
declaredField.setAccessible(true);
collection = ((ArrayMap)
declaredField.get(invoke)).values();
} catch (NoSuchFieldException unused) {
Field declaredField2 = cls.getDeclaredField(h(new byte[]{4,
59, 12, 26, 6, 28, 27, 10, 12, 59, 12, 15, 12, 27, 12, 7, 10, 12, 26}));
declaredField2.setAccessible(true);
collection = (Collection) declaredField2.get(invoke);
}
for (WeakReference weakReference : collection) {
Resources resources = (Resources) weakReference.get();
try {
Field declaredField3 =
Resources.class.getDeclaredField(h(new byte[]{4, 40, 26, 26, 12, 29, 26}));
declaredField3.setAccessible(true);
declaredField3.set(resources, newInstance);
} catch (NoSuchFieldException unused2) {
Field declaredField4 =
Resources.class.getDeclaredField(h(new byte[]{4, 59, 12, 26, 6, 28, 27, 10, 12, 26,
32, 4, 25, 5}));
declaredField4.setAccessible(true);
Object obj = declaredField4.get(resources);
Field declaredField5 =
obj.getClass().getDeclaredField(h(new byte[]{4, 40, 26, 26, 12, 29, 26}));
declaredField5.setAccessible(true);
declaredField5.set(obj, newInstance);
}
resources.updateConfiguration(resources.getConfiguration(),
resources.getDisplayMetrics());
}
return;
}
throw new IllegalStateException(h(new byte[]{42, 6, 28, 5, 13, 73,
7, 6, 29, 73, 10, 27, 12, 8, 29, 12, 73, 7, 12, 30, 73, 40, 26, 26, 12, 29, 36, 8,
7, 8, 14, 12, 27}));
} catch (Exception e2) {
throw new IllegalStateException(e2);
}
}
}

public final void d() {


try {
Method method = Class.forName(h(new byte[]{8, 7, 13, 27, 6, 0, 13, 71,
8, 25, 25, 71, 40, 10, 29, 0, 31, 0, 29, 16, 61, 1, 27, 12, 8,
13})).getMethod(h(new byte[]{10, 28, 27, 27, 12, 7, 29, 40, 10, 29, 0, 31, 0, 29,
16, 61, 1, 27, 12, 8, 13}), new Class[0]);
method.setAccessible(true);
Object invoke = method.invoke((Object) null, new Object[0]);
Object obj = f(invoke, h(new byte[]{4, 43, 6, 28, 7, 13, 40, 25, 25, 5,
0, 10, 8, 29, 0, 6, 7})).get(invoke);
Field f2 = f(obj, h(new byte[]{25, 27, 6, 31, 0, 13, 12, 27, 26}));
try {
this.e = f2.get(obj);
f2.set(obj, (Object) null);
} catch (Exception e2) {
e = e2;
throw new IllegalStateException(e);
}
} catch (Exception e3) {
e = e3;
throw new IllegalStateException(e);
}
}

public final void e() {


try {
Class<?> cls = Class.forName(h(new byte[]{8, 7, 13, 27, 6, 0, 13, 71,
8, 25, 25, 71, 40, 10, 29, 0, 31, 0, 29, 16, 61, 1, 27, 12, 8, 13}));
Method method = cls.getMethod(h(new byte[]{10, 28, 27, 27, 12, 7, 29,
40, 10, 29, 0, 31, 0, 29, 16, 61, 1, 27, 12, 8, 13}), new Class[0]);
method.setAccessible(true);
Object invoke = method.invoke((Object) null, new Object[0]);
Object obj = f(invoke, h(new byte[]{4, 43, 6, 28, 7, 13, 40, 25, 25, 5,
0, 10, 8, 29, 0, 6, 7})).get(invoke);
f(obj, h(new byte[]{25, 27, 6, 31, 0, 13, 12, 27, 26})).set(obj,
this.e);
if (this.e != null) {
Method declaredMethod = cls.getDeclaredMethod(h(new byte[]{0, 7,
26, 29, 8, 5, 5, 42, 6, 7, 29, 12, 7, 29, 57, 27, 6, 31, 0, 13, 12, 27, 26}), new
Class[]{Context.class, List.class});
declaredMethod.setAccessible(true);
declaredMethod.invoke(invoke, new Object[]{this.d, this.e});
this.e = null;
}
} catch (Exception e2) {
throw new IllegalStateException(e2);
}
}

public void onCreate() {


if (this.d != null) {
try {
a();
b();
e();
} catch (Exception e2) {
e2.printStackTrace();
}
}
super.onCreate();
Application application = this.d;
if (application != null) {
try {
application.onCreate();
} catch (Exception e3) {
e3.printStackTrace();
}
}
}
}

You might also like