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:
2025-12-04 13:59:54 +01:00
parent f2fd1c3bf5
commit e0133d2ca2
10432 changed files with 1019085 additions and 1 deletions

View File

@@ -0,0 +1,124 @@
package kotlin;
import kotlin.jvm.JvmName;
import kotlin.jvm.internal.IntCompanionObject;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.CharsKt;
@Metadata(d1 = {"\u00000\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0006\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\t\n\u0002\u0010\t\n\u0002\b\u0007\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a\u0015\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003H\u0001¢\u0006\u0002\u0010\u0004\u001a\u0015\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0002\u001a\u00020\u0003H\u0001¢\u0006\u0002\u0010\u0007\u001a\u0018\u0010\b\u001a\u00020\t2\u0006\u0010\n\u001a\u00020\t2\u0006\u0010\u000b\u001a\u00020\tH\u0001\u001a\u001f\u0010\f\u001a\u00020\u00012\u0006\u0010\n\u001a\u00020\u00012\u0006\u0010\u000b\u001a\u00020\u0001H\u0001¢\u0006\u0004\b\r\u0010\u000e\u001a\u001f\u0010\u000f\u001a\u00020\u00012\u0006\u0010\n\u001a\u00020\u00012\u0006\u0010\u000b\u001a\u00020\u0001H\u0001¢\u0006\u0004\b\u0010\u0010\u000e\u001a\u0010\u0010\u0011\u001a\u00020\u00032\u0006\u0010\u0002\u001a\u00020\tH\u0001\u001a\u0018\u0010\u0012\u001a\u00020\t2\u0006\u0010\n\u001a\u00020\u00132\u0006\u0010\u000b\u001a\u00020\u0013H\u0001\u001a\u001f\u0010\u0014\u001a\u00020\u00062\u0006\u0010\n\u001a\u00020\u00062\u0006\u0010\u000b\u001a\u00020\u0006H\u0001¢\u0006\u0004\b\u0015\u0010\u0016\u001a\u001f\u0010\u0017\u001a\u00020\u00062\u0006\u0010\n\u001a\u00020\u00062\u0006\u0010\u000b\u001a\u00020\u0006H\u0001¢\u0006\u0004\b\u0018\u0010\u0016\u001a\u0010\u0010\u0019\u001a\u00020\u00032\u0006\u0010\u0002\u001a\u00020\u0013H\u0001\u001a\u0010\u0010\u001a\u001a\u00020\u001b2\u0006\u0010\u0002\u001a\u00020\u0013H\u0000\u001a\u0018\u0010\u001a\u001a\u00020\u001b2\u0006\u0010\u0002\u001a\u00020\u00132\u0006\u0010\u001c\u001a\u00020\tH\u0000¨\u0006\u001d"}, d2 = {"doubleToUInt", "Lkotlin/UInt;", "v", "", "(D)I", "doubleToULong", "Lkotlin/ULong;", "(D)J", "uintCompare", "", "v1", "v2", "uintDivide", "uintDivide-J1ME1BU", "(II)I", "uintRemainder", "uintRemainder-J1ME1BU", "uintToDouble", "ulongCompare", "", "ulongDivide", "ulongDivide-eb3DHEI", "(JJ)J", "ulongRemainder", "ulongRemainder-eb3DHEI", "ulongToDouble", "ulongToString", "", "base", "kotlin-stdlib"}, k = 2, mv = {1, 9, 0}, xi = 48)
@JvmName(name = "UnsignedKt")
/* loaded from: classes3.dex */
public final class UnsignedKt {
@PublishedApi
public static final int doubleToUInt(double d4) {
if (Double.isNaN(d4) || d4 <= uintToDouble(0)) {
return 0;
}
if (d4 >= uintToDouble(-1)) {
return -1;
}
if (d4 <= 2.147483647E9d) {
return UInt.m211constructorimpl((int) d4);
}
return UInt.m211constructorimpl(UInt.m211constructorimpl(Integer.MAX_VALUE) + UInt.m211constructorimpl((int) (d4 - Integer.MAX_VALUE)));
}
@PublishedApi
public static final long doubleToULong(double d4) {
if (Double.isNaN(d4) || d4 <= ulongToDouble(0L)) {
return 0L;
}
if (d4 >= ulongToDouble(-1L)) {
return -1L;
}
return d4 < 9.223372036854776E18d ? ULong.m290constructorimpl((long) d4) : ULong.m290constructorimpl(ULong.m290constructorimpl((long) (d4 - 9.223372036854776E18d)) - Long.MIN_VALUE);
}
@PublishedApi
public static final int uintCompare(int i, int i4) {
return Intrinsics.compare(i ^ IntCompanionObject.MIN_VALUE, i4 ^ IntCompanionObject.MIN_VALUE);
}
@PublishedApi
/* renamed from: uintDivide-J1ME1BU, reason: not valid java name */
public static final int m467uintDivideJ1ME1BU(int i, int i4) {
return UInt.m211constructorimpl((int) ((i & 4294967295L) / (i4 & 4294967295L)));
}
@PublishedApi
/* renamed from: uintRemainder-J1ME1BU, reason: not valid java name */
public static final int m468uintRemainderJ1ME1BU(int i, int i4) {
return UInt.m211constructorimpl((int) ((i & 4294967295L) % (i4 & 4294967295L)));
}
@PublishedApi
public static final double uintToDouble(int i) {
return (((i >>> 31) << 30) * 2) + (Integer.MAX_VALUE & i);
}
@PublishedApi
public static final int ulongCompare(long j4, long j5) {
return Intrinsics.compare(j4 ^ Long.MIN_VALUE, j5 ^ Long.MIN_VALUE);
}
@PublishedApi
/* renamed from: ulongDivide-eb3DHEI, reason: not valid java name */
public static final long m469ulongDivideeb3DHEI(long j4, long j5) {
if (j5 < 0) {
return Long.compareUnsigned(j4, j5) < 0 ? ULong.m290constructorimpl(0L) : ULong.m290constructorimpl(1L);
}
if (j4 >= 0) {
return ULong.m290constructorimpl(j4 / j5);
}
long j6 = ((j4 >>> 1) / j5) << 1;
return ULong.m290constructorimpl(j6 + (Long.compareUnsigned(ULong.m290constructorimpl(j4 - (j6 * j5)), ULong.m290constructorimpl(j5)) < 0 ? 0 : 1));
}
@PublishedApi
/* renamed from: ulongRemainder-eb3DHEI, reason: not valid java name */
public static final long m470ulongRemaindereb3DHEI(long j4, long j5) {
if (j5 < 0) {
return Long.compareUnsigned(j4, j5) < 0 ? j4 : ULong.m290constructorimpl(j4 - j5);
}
if (j4 >= 0) {
return ULong.m290constructorimpl(j4 % j5);
}
long j6 = j4 - ((((j4 >>> 1) / j5) << 1) * j5);
if (Long.compareUnsigned(ULong.m290constructorimpl(j6), ULong.m290constructorimpl(j5)) < 0) {
j5 = 0;
}
return ULong.m290constructorimpl(j6 - j5);
}
@PublishedApi
public static final double ulongToDouble(long j4) {
return ((j4 >>> 11) * 2048) + (j4 & 2047);
}
public static final String ulongToString(long j4) {
return ulongToString(j4, 10);
}
public static final String ulongToString(long j4, int i) {
if (j4 >= 0) {
String l4 = Long.toString(j4, CharsKt.checkRadix(i));
Intrinsics.checkNotNullExpressionValue(l4, "toString(...)");
return l4;
}
long j5 = i;
long j6 = ((j4 >>> 1) / j5) << 1;
long j7 = j4 - (j6 * j5);
if (j7 >= j5) {
j7 -= j5;
j6++;
}
StringBuilder sb = new StringBuilder();
String l5 = Long.toString(j6, CharsKt.checkRadix(i));
Intrinsics.checkNotNullExpressionValue(l5, "toString(...)");
sb.append(l5);
String l6 = Long.toString(j7, CharsKt.checkRadix(i));
Intrinsics.checkNotNullExpressionValue(l6, "toString(...)");
sb.append(l6);
return sb.toString();
}
}