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:
@@ -0,0 +1,45 @@
|
||||
package kotlinx.coroutines;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.JvmField;
|
||||
import kotlin.jvm.internal.DefaultConstructorMarker;
|
||||
|
||||
@Metadata(d1 = {"\u0000&\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u0003\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u000e\n\u0000\b\u0010\u0018\u00002\u00020\u0001B\u0017\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\b\b\u0002\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\u0006\u0010\u000b\u001a\u00020\u0005J\b\u0010\f\u001a\u00020\rH\u0016R\t\u0010\u0007\u001a\u00020\bX\u0082\u0004R\u0010\u0010\u0002\u001a\u00020\u00038\u0006X\u0087\u0004¢\u0006\u0002\n\u0000R\u0011\u0010\u0004\u001a\u00020\u00058F¢\u0006\u0006\u001a\u0004\b\t\u0010\n¨\u0006\u000e"}, d2 = {"Lkotlinx/coroutines/CompletedExceptionally;", "", "cause", "", "handled", "", "(Ljava/lang/Throwable;Z)V", "_handled", "Lkotlinx/atomicfu/AtomicBoolean;", "getHandled", "()Z", "makeHandled", "toString", "", "kotlinx-coroutines-core"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public class CompletedExceptionally {
|
||||
private static final /* synthetic */ AtomicIntegerFieldUpdater _handled$volatile$FU = AtomicIntegerFieldUpdater.newUpdater(CompletedExceptionally.class, "_handled$volatile");
|
||||
private volatile /* synthetic */ int _handled$volatile;
|
||||
|
||||
@JvmField
|
||||
public final Throwable cause;
|
||||
|
||||
public CompletedExceptionally(Throwable th, boolean z3) {
|
||||
this.cause = th;
|
||||
this._handled$volatile = z3 ? 1 : 0;
|
||||
}
|
||||
|
||||
private final /* synthetic */ int get_handled$volatile() {
|
||||
return this._handled$volatile;
|
||||
}
|
||||
|
||||
private final /* synthetic */ void set_handled$volatile(int i) {
|
||||
this._handled$volatile = i;
|
||||
}
|
||||
|
||||
public final boolean getHandled() {
|
||||
return _handled$volatile$FU.get(this) != 0;
|
||||
}
|
||||
|
||||
public final boolean makeHandled() {
|
||||
return _handled$volatile$FU.compareAndSet(this, 0, 1);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return DebugStringsKt.getClassSimpleName(this) + '[' + this.cause + ']';
|
||||
}
|
||||
|
||||
public /* synthetic */ CompletedExceptionally(Throwable th, boolean z3, int i, DefaultConstructorMarker defaultConstructorMarker) {
|
||||
this(th, (i & 2) != 0 ? false : z3);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user