Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.
This commit is contained in:
165
apk_decompiled/sources/kotlinx/coroutines/TimeoutKt.java
Normal file
165
apk_decompiled/sources/kotlinx/coroutines/TimeoutKt.java
Normal file
@@ -0,0 +1,165 @@
|
||||
package kotlinx.coroutines;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.coroutines.Continuation;
|
||||
import kotlin.coroutines.intrinsics.IntrinsicsKt;
|
||||
import kotlin.coroutines.jvm.internal.DebugProbesKt;
|
||||
import kotlin.jvm.functions.Function2;
|
||||
import kotlinx.coroutines.intrinsics.UndispatchedKt;
|
||||
|
||||
@Metadata(d1 = {"\u0000D\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\t\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0004\u001a \u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u0007H\u0000\u001a\\\u0010\b\u001a\u0004\u0018\u00010\t\"\u0004\b\u0000\u0010\n\"\b\b\u0001\u0010\u000b*\u0002H\n2\u0012\u0010\u0006\u001a\u000e\u0012\u0004\u0012\u0002H\n\u0012\u0004\u0012\u0002H\u000b0\f2'\u0010\r\u001a#\b\u0001\u0012\u0004\u0012\u00020\u000f\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u000b0\u0010\u0012\u0006\u0012\u0004\u0018\u00010\t0\u000e¢\u0006\u0002\b\u0011H\u0002¢\u0006\u0002\u0010\u0012\u001aR\u0010\u0013\u001a\u0002H\u000b\"\u0004\b\u0000\u0010\u000b2\u0006\u0010\u0014\u001a\u00020\u00032'\u0010\r\u001a#\b\u0001\u0012\u0004\u0012\u00020\u000f\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u000b0\u0010\u0012\u0006\u0012\u0004\u0018\u00010\t0\u000e¢\u0006\u0002\b\u0011H\u0086@\u0082\u0002\n\n\b\b\u0001\u0012\u0002\u0010\u0002 \u0001¢\u0006\u0002\u0010\u0015\u001aW\u0010\u0013\u001a\u0002H\u000b\"\u0004\b\u0000\u0010\u000b2\u0006\u0010\u0016\u001a\u00020\u00172'\u0010\r\u001a#\b\u0001\u0012\u0004\u0012\u00020\u000f\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u000b0\u0010\u0012\u0006\u0012\u0004\u0018\u00010\t0\u000e¢\u0006\u0002\b\u0011H\u0086@ø\u0001\u0000\u0082\u0002\n\n\b\b\u0001\u0012\u0002\u0010\u0002 \u0001¢\u0006\u0004\b\u0018\u0010\u0015\u001aG\u0010\u0019\u001a\u0004\u0018\u0001H\u000b\"\u0004\b\u0000\u0010\u000b2\u0006\u0010\u0014\u001a\u00020\u00032'\u0010\r\u001a#\b\u0001\u0012\u0004\u0012\u00020\u000f\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u000b0\u0010\u0012\u0006\u0012\u0004\u0018\u00010\t0\u000e¢\u0006\u0002\b\u0011H\u0086@¢\u0006\u0002\u0010\u0015\u001aL\u0010\u0019\u001a\u0004\u0018\u0001H\u000b\"\u0004\b\u0000\u0010\u000b2\u0006\u0010\u0016\u001a\u00020\u00172'\u0010\r\u001a#\b\u0001\u0012\u0004\u0012\u00020\u000f\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u000b0\u0010\u0012\u0006\u0012\u0004\u0018\u00010\t0\u000e¢\u0006\u0002\b\u0011H\u0086@ø\u0001\u0000¢\u0006\u0004\b\u001a\u0010\u0015\u0082\u0002\u0007\n\u0005\b¡\u001e0\u0001¨\u0006\u001b"}, d2 = {"TimeoutCancellationException", "Lkotlinx/coroutines/TimeoutCancellationException;", "time", "", "delay", "Lkotlinx/coroutines/Delay;", "coroutine", "Lkotlinx/coroutines/Job;", "setupTimeout", "", "U", "T", "Lkotlinx/coroutines/TimeoutCoroutine;", "block", "Lkotlin/Function2;", "Lkotlinx/coroutines/CoroutineScope;", "Lkotlin/coroutines/Continuation;", "Lkotlin/ExtensionFunctionType;", "(Lkotlinx/coroutines/TimeoutCoroutine;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;", "withTimeout", "timeMillis", "(JLkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "timeout", "Lkotlin/time/Duration;", "withTimeout-KLykuaI", "withTimeoutOrNull", "withTimeoutOrNull-KLykuaI", "kotlinx-coroutines-core"}, k = 2, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public final class TimeoutKt {
|
||||
/* JADX WARN: Code restructure failed: missing block: B:6:0x0016, code lost:
|
||||
|
||||
if (r4 == null) goto L9;
|
||||
*/
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public static final kotlinx.coroutines.TimeoutCancellationException TimeoutCancellationException(long r2, kotlinx.coroutines.Delay r4, kotlinx.coroutines.Job r5) {
|
||||
/*
|
||||
boolean r0 = r4 instanceof kotlinx.coroutines.DelayWithTimeoutDiagnostics
|
||||
if (r0 == 0) goto L7
|
||||
kotlinx.coroutines.DelayWithTimeoutDiagnostics r4 = (kotlinx.coroutines.DelayWithTimeoutDiagnostics) r4
|
||||
goto L8
|
||||
L7:
|
||||
r4 = 0
|
||||
L8:
|
||||
if (r4 == 0) goto L18
|
||||
kotlin.time.Duration$Companion r0 = kotlin.time.Duration.INSTANCE
|
||||
kotlin.time.DurationUnit r0 = kotlin.time.DurationUnit.MILLISECONDS
|
||||
long r0 = kotlin.time.DurationKt.toDuration(r2, r0)
|
||||
java.lang.String r4 = r4.mo1621timeoutMessageLRDsOJo(r0)
|
||||
if (r4 != 0) goto L2b
|
||||
L18:
|
||||
java.lang.StringBuilder r4 = new java.lang.StringBuilder
|
||||
java.lang.String r0 = "Timed out waiting for "
|
||||
r4.<init>(r0)
|
||||
r4.append(r2)
|
||||
java.lang.String r2 = " ms"
|
||||
r4.append(r2)
|
||||
java.lang.String r4 = r4.toString()
|
||||
L2b:
|
||||
kotlinx.coroutines.TimeoutCancellationException r2 = new kotlinx.coroutines.TimeoutCancellationException
|
||||
r2.<init>(r4, r5)
|
||||
return r2
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: kotlinx.coroutines.TimeoutKt.TimeoutCancellationException(long, kotlinx.coroutines.Delay, kotlinx.coroutines.Job):kotlinx.coroutines.TimeoutCancellationException");
|
||||
}
|
||||
|
||||
private static final <U, T extends U> Object setupTimeout(TimeoutCoroutine<U, ? super T> timeoutCoroutine, Function2<? super CoroutineScope, ? super Continuation<? super T>, ? extends Object> function2) {
|
||||
JobKt.disposeOnCompletion(timeoutCoroutine, DelayKt.getDelay(timeoutCoroutine.uCont.get$context()).invokeOnTimeout(timeoutCoroutine.time, timeoutCoroutine, timeoutCoroutine.get$context()));
|
||||
return UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(timeoutCoroutine, timeoutCoroutine, function2);
|
||||
}
|
||||
|
||||
public static final <T> Object withTimeout(long j4, Function2<? super CoroutineScope, ? super Continuation<? super T>, ? extends Object> function2, Continuation<? super T> continuation) {
|
||||
if (j4 <= 0) {
|
||||
throw new TimeoutCancellationException("Timed out immediately");
|
||||
}
|
||||
Object obj = setupTimeout(new TimeoutCoroutine(j4, continuation), function2);
|
||||
if (obj == IntrinsicsKt.getCOROUTINE_SUSPENDED()) {
|
||||
DebugProbesKt.probeCoroutineSuspended(continuation);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
/* renamed from: withTimeout-KLykuaI, reason: not valid java name */
|
||||
public static final <T> Object m1628withTimeoutKLykuaI(long j4, Function2<? super CoroutineScope, ? super Continuation<? super T>, ? extends Object> function2, Continuation<? super T> continuation) {
|
||||
return withTimeout(DelayKt.m1620toDelayMillisLRDsOJo(j4), function2, continuation);
|
||||
}
|
||||
|
||||
/* JADX WARN: Removed duplicated region for block: B:18:0x0075 A[RETURN] */
|
||||
/* JADX WARN: Removed duplicated region for block: B:19:0x0076 */
|
||||
/* JADX WARN: Removed duplicated region for block: B:22:0x003c */
|
||||
/* JADX WARN: Removed duplicated region for block: B:8:0x0024 */
|
||||
/* JADX WARN: Type inference failed for: r2v1, types: [kotlinx.coroutines.TimeoutCoroutine, T] */
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public static final <T> java.lang.Object withTimeoutOrNull(long r7, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope, ? super kotlin.coroutines.Continuation<? super T>, ? extends java.lang.Object> r9, kotlin.coroutines.Continuation<? super T> r10) {
|
||||
/*
|
||||
boolean r0 = r10 instanceof kotlinx.coroutines.TimeoutKt$withTimeoutOrNull$1
|
||||
if (r0 == 0) goto L13
|
||||
r0 = r10
|
||||
kotlinx.coroutines.TimeoutKt$withTimeoutOrNull$1 r0 = (kotlinx.coroutines.TimeoutKt$withTimeoutOrNull$1) r0
|
||||
int r1 = r0.label
|
||||
r2 = -2147483648(0xffffffff80000000, float:-0.0)
|
||||
r3 = r1 & r2
|
||||
if (r3 == 0) goto L13
|
||||
int r1 = r1 - r2
|
||||
r0.label = r1
|
||||
goto L18
|
||||
L13:
|
||||
kotlinx.coroutines.TimeoutKt$withTimeoutOrNull$1 r0 = new kotlinx.coroutines.TimeoutKt$withTimeoutOrNull$1
|
||||
r0.<init>(r10)
|
||||
L18:
|
||||
java.lang.Object r10 = r0.result
|
||||
java.lang.Object r1 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED()
|
||||
int r2 = r0.label
|
||||
r3 = 0
|
||||
r4 = 1
|
||||
if (r2 == 0) goto L3c
|
||||
if (r2 != r4) goto L34
|
||||
java.lang.Object r7 = r0.L$1
|
||||
kotlin.jvm.internal.Ref$ObjectRef r7 = (kotlin.jvm.internal.Ref.ObjectRef) r7
|
||||
java.lang.Object r8 = r0.L$0
|
||||
kotlin.jvm.functions.Function2 r8 = (kotlin.jvm.functions.Function2) r8
|
||||
kotlin.ResultKt.throwOnFailure(r10) // Catch: kotlinx.coroutines.TimeoutCancellationException -> L32
|
||||
return r10
|
||||
L32:
|
||||
r8 = move-exception
|
||||
goto L6f
|
||||
L34:
|
||||
java.lang.IllegalStateException r7 = new java.lang.IllegalStateException
|
||||
java.lang.String r8 = "call to 'resume' before 'invoke' with coroutine"
|
||||
r7.<init>(r8)
|
||||
throw r7
|
||||
L3c:
|
||||
kotlin.ResultKt.throwOnFailure(r10)
|
||||
r5 = 0
|
||||
int r10 = (r7 > r5 ? 1 : (r7 == r5 ? 0 : -1))
|
||||
if (r10 > 0) goto L46
|
||||
return r3
|
||||
L46:
|
||||
kotlin.jvm.internal.Ref$ObjectRef r10 = new kotlin.jvm.internal.Ref$ObjectRef
|
||||
r10.<init>()
|
||||
r0.L$0 = r9 // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
r0.L$1 = r10 // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
r0.J$0 = r7 // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
r0.label = r4 // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
kotlinx.coroutines.TimeoutCoroutine r2 = new kotlinx.coroutines.TimeoutCoroutine // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
r2.<init>(r7, r0) // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
r10.element = r2 // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
java.lang.Object r7 = setupTimeout(r2, r9) // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
java.lang.Object r8 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED() // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
if (r7 != r8) goto L6b
|
||||
kotlin.coroutines.jvm.internal.DebugProbesKt.probeCoroutineSuspended(r0) // Catch: kotlinx.coroutines.TimeoutCancellationException -> L68
|
||||
goto L6b
|
||||
L68:
|
||||
r8 = move-exception
|
||||
r7 = r10
|
||||
goto L6f
|
||||
L6b:
|
||||
if (r7 != r1) goto L6e
|
||||
return r1
|
||||
L6e:
|
||||
return r7
|
||||
L6f:
|
||||
kotlinx.coroutines.Job r9 = r8.coroutine
|
||||
T r7 = r7.element
|
||||
if (r9 != r7) goto L76
|
||||
return r3
|
||||
L76:
|
||||
throw r8
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: kotlinx.coroutines.TimeoutKt.withTimeoutOrNull(long, kotlin.jvm.functions.Function2, kotlin.coroutines.Continuation):java.lang.Object");
|
||||
}
|
||||
|
||||
/* renamed from: withTimeoutOrNull-KLykuaI, reason: not valid java name */
|
||||
public static final <T> Object m1629withTimeoutOrNullKLykuaI(long j4, Function2<? super CoroutineScope, ? super Continuation<? super T>, ? extends Object> function2, Continuation<? super T> continuation) {
|
||||
return withTimeoutOrNull(DelayKt.m1620toDelayMillisLRDsOJo(j4), function2, continuation);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user