Files
2026-04-05 01:00:07 -05:00

178 lines
7.3 KiB
Java
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package p004;
import android.os.IBinder;
import android.os.IInterface;
import android.os.Parcel;
import android.util.Log;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import java.io.FileDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
/* JADX INFO: renamed from: ԫ.Ԩ, reason: contains not printable characters */
/* JADX INFO: loaded from: classes.dex */
public class C0008 implements IBinder {
/* JADX INFO: renamed from: Ϳ, reason: contains not printable characters */
public static Map<String, String> f4 = Collections.synchronizedMap(new HashMap());
/* JADX INFO: renamed from: ԫ.Ԩ$Ϳ, reason: contains not printable characters */
public class C0009 extends XC_MethodHook {
/* JADX INFO: renamed from: Ϳ, reason: contains not printable characters */
public final /* synthetic */ Method f5;
public C0009(Method method) {
this.f5 = method;
}
public void afterHookedMethod(XC_MethodHook.MethodHookParam methodHookParam) {
try {
Object[] objArr = new Object[1];
Object[] objArr2 = methodHookParam.args;
if (objArr2 != null) {
objArr = new Object[objArr2.length + 1];
System.arraycopy(objArr2, 0, objArr, 1, objArr2.length);
}
Object obj = methodHookParam.thisObject;
objArr[0] = obj;
methodHookParam.setResult(this.f5.invoke(obj, objArr));
} catch (Exception e) {
e.printStackTrace();
}
}
public void beforeHookedMethod(XC_MethodHook.MethodHookParam methodHookParam) {
}
}
/* JADX WARN: Failed to find 'out' block for switch in B:66:0x0474. Please report as an issue. */
/* JADX WARN: Removed duplicated region for block: B:65:0x0473 */
/* JADX WARN: Removed duplicated region for block: B:83:0x04dd A[Catch: ClassNotFoundException -> 0x04ec, TRY_LEAVE, TryCatch #1 {ClassNotFoundException -> 0x04ec, blocks: (B:68:0x0479, B:79:0x04a8, B:81:0x04ab, B:83:0x04dd), top: B:94:0x0479 }] */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
private java.lang.Class<?>[] parseParameterTypes(java.lang.String r25, java.lang.ClassLoader r26) {
/*
Method dump skipped, instruction units count: 1468
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: p004.C0008.parseParameterTypes(java.lang.String, java.lang.ClassLoader):java.lang.Class[]");
}
public final <T> T callOriginMethod(Object obj, Object... objArr) {
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[6];
String str = f4.get(stackTraceElement.getClassName() + C0016.m12(new byte[]{-91}, new byte[]{-118, -92, -18, 44, 51, 33, -114, -126}) + stackTraceElement.getMethodName());
if (str == null) {
return null;
}
String[] strArrSplit = str.split(C0016.m12(new byte[]{-39}, new byte[]{-10, -89, 91, -86, -105, -27, -46, 106}));
String str2 = strArrSplit[0];
String str3 = strArrSplit[1];
String str4 = strArrSplit[2];
Class clsFindClass = XposedHelpers.findClass(str2, obj.getClass().getClassLoader());
Class<?>[] parameterTypes = parseParameterTypes(str4, obj.getClass().getClassLoader());
return (T) callOriginMethod(C0016.m12(new byte[]{-35, -108, -124, 85, 22, 92}, new byte[]{-31, -3, -22, 60, 98, 98, 23, -30}).equals(str3) ? XposedHelpers.findConstructorBestMatch(clsFindClass, parameterTypes) : XposedHelpers.findMethodExact(clsFindClass, str3, parameterTypes), obj, objArr);
}
@Override // android.os.IBinder
public void dump(FileDescriptor fileDescriptor, String[] strArr) {
}
@Override // android.os.IBinder
public void dumpAsync(FileDescriptor fileDescriptor, String[] strArr) {
}
public XC_MethodHook.Unhook findAndHookMethod(Class cls, String str, Class[] clsArr, Method method) {
Object[] objArr;
try {
objArr = new Object[1];
if (clsArr != null) {
objArr = new Object[clsArr.length + 1];
System.arraycopy(clsArr, 0, objArr, 0, clsArr.length);
}
} catch (NoSuchMethodError e) {
e = e;
} catch (Throwable th) {
th = th;
}
try {
objArr[objArr.length - 1] = new C0009(method);
XC_MethodHook.Unhook unhookFindAndHookConstructor = C0016.m12(new byte[]{101, 53, -62, -32, -12, 3}, new byte[]{89, 92, -84, -119, -128, 61, 20, 73}).equals(str) ? XposedHelpers.findAndHookConstructor(cls, objArr) : XposedHelpers.findAndHookMethod(cls, str, objArr);
f4.put(method.getDeclaringClass().getName() + C0016.m12(new byte[]{-54}, new byte[]{-27, -105, -96, -45, 25, 68, -30, 59}) + method.getName(), cls.getName() + C0016.m12(new byte[]{-22}, new byte[]{-59, -106, -100, -10, -86, 37, -2, -64}) + str + C0016.m12(new byte[]{-55}, new byte[]{-26, 33, -102, 114, -66, -102, 126, 115}) + Arrays.toString(clsArr));
return unhookFindAndHookConstructor;
} catch (NoSuchMethodError e2) {
e = e2;
Log.e(C0016.m12(new byte[]{31, 18, -123, 1, -16}, new byte[]{89, 94, -35, 81, -72, 71, -122, 101}), e.getMessage());
return null;
} catch (Throwable th2) {
th = th2;
th.printStackTrace();
return null;
}
}
@Override // android.os.IBinder
public String getInterfaceDescriptor() {
return null;
}
public int getVersionCode() {
return 6;
}
@Override // android.os.IBinder
public boolean isBinderAlive() {
return false;
}
@Override // android.os.IBinder
public void linkToDeath(IBinder.DeathRecipient deathRecipient, int i) {
}
@Override // android.os.IBinder
public boolean pingBinder() {
return false;
}
@Override // android.os.IBinder
public IInterface queryLocalInterface(String str) {
return null;
}
@Override // android.os.IBinder
public boolean transact(int i, Parcel parcel, Parcel parcel2, int i2) {
return false;
}
@Override // android.os.IBinder
public boolean unlinkToDeath(IBinder.DeathRecipient deathRecipient, int i) {
return false;
}
private final <T> T callOriginMethod(Member member, Object obj, Object... objArr) {
try {
return (T) XposedBridge.invokeOriginalMethod(member, obj, objArr);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e2) {
if (e2.getTargetException() == null) {
return null;
}
throw new RuntimeException(e2.getTargetException());
}
}
public void findAndHookMethod(Class cls, String str, Class cls2, Class[] clsArr, Method method, Method method2, Method method3) {
findAndHookMethod(cls, str, clsArr, method);
}
}