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,83 @@
package kotlin.text;
import com.google.firebase.messaging.Constants;
import java.util.Collections;
import java.util.EnumSet;
import java.util.Iterator;
import java.util.Set;
import java.util.regex.Matcher;
import kotlin.Metadata;
import kotlin.collections.CollectionsKt__MutableCollectionsKt;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
import kotlin.ranges.IntRange;
import kotlin.ranges.RangesKt;
@Metadata(d1 = {"\u0000>\n\u0000\n\u0002\u0010\"\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u0010\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\r\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u001c\n\u0000\u001a-\u0010\u0000\u001a\b\u0012\u0004\u0012\u0002H\u00020\u0001\"\u0014\b\u0000\u0010\u0002\u0018\u0001*\u00020\u0003*\b\u0012\u0004\u0012\u0002H\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0082\b\u001a\u001e\u0010\u0007\u001a\u0004\u0018\u00010\b*\u00020\t2\u0006\u0010\n\u001a\u00020\u00062\u0006\u0010\u000b\u001a\u00020\fH\u0002\u001a\u0016\u0010\r\u001a\u0004\u0018\u00010\b*\u00020\t2\u0006\u0010\u000b\u001a\u00020\fH\u0002\u001a\f\u0010\u000e\u001a\u00020\u000f*\u00020\u0010H\u0002\u001a\u0014\u0010\u000e\u001a\u00020\u000f*\u00020\u00102\u0006\u0010\u0011\u001a\u00020\u0006H\u0002\u001a\u0012\u0010\u0012\u001a\u00020\u0006*\b\u0012\u0004\u0012\u00020\u00030\u0013H\u0002¨\u0006\u0014"}, d2 = {"fromInt", "", "T", "Lkotlin/text/FlagEnum;", "", "value", "", "findNext", "Lkotlin/text/MatchResult;", "Ljava/util/regex/Matcher;", Constants.MessagePayloadKeys.FROM, "input", "", "matchEntire", "range", "Lkotlin/ranges/IntRange;", "Ljava/util/regex/MatchResult;", "groupIndex", "toInt", "", "kotlin-stdlib"}, k = 2, mv = {1, 9, 0}, xi = 48)
@SourceDebugExtension({"SMAP\nRegex.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Regex.kt\nkotlin/text/RegexKt\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,397:1\n1789#2,3:398\n*S KotlinDebug\n*F\n+ 1 Regex.kt\nkotlin/text/RegexKt\n*L\n19#1:398,3\n*E\n"})
/* loaded from: classes3.dex */
public final class RegexKt {
public static final /* synthetic */ MatchResult access$findNext(Matcher matcher, int i, CharSequence charSequence) {
return findNext(matcher, i, charSequence);
}
public static final /* synthetic */ IntRange access$range(java.util.regex.MatchResult matchResult) {
return range(matchResult);
}
public static final MatchResult findNext(Matcher matcher, int i, CharSequence charSequence) {
if (matcher.find(i)) {
return new MatcherMatchResult(matcher, charSequence);
}
return null;
}
private static final /* synthetic */ <T extends Enum<T> & FlagEnum> Set<T> fromInt(final int i) {
Intrinsics.reifiedOperationMarker(4, "T");
EnumSet allOf = EnumSet.allOf(Enum.class);
Intrinsics.checkNotNull(allOf);
Intrinsics.needClassReification();
CollectionsKt__MutableCollectionsKt.retainAll(allOf, new Function1<T, Boolean>() { // from class: kotlin.text.RegexKt$fromInt$1$1
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
{
super(1);
}
/* JADX WARN: Incorrect types in method signature: (TT;)Ljava/lang/Boolean; */
/* JADX WARN: Multi-variable type inference failed */
@Override // kotlin.jvm.functions.Function1
public final Boolean invoke(Enum r22) {
FlagEnum flagEnum = (FlagEnum) r22;
return Boolean.valueOf((i & flagEnum.getMask()) == flagEnum.getValue());
}
});
Set<T> unmodifiableSet = Collections.unmodifiableSet(allOf);
Intrinsics.checkNotNullExpressionValue(unmodifiableSet, "unmodifiableSet(...)");
return unmodifiableSet;
}
public static final MatchResult matchEntire(Matcher matcher, CharSequence charSequence) {
if (matcher.matches()) {
return new MatcherMatchResult(matcher, charSequence);
}
return null;
}
public static final IntRange range(java.util.regex.MatchResult matchResult) {
return RangesKt.until(matchResult.start(), matchResult.end());
}
public static final int toInt(Iterable<? extends FlagEnum> iterable) {
Iterator<? extends FlagEnum> it = iterable.iterator();
int i = 0;
while (it.hasNext()) {
i |= it.next().getValue();
}
return i;
}
public static final IntRange range(java.util.regex.MatchResult matchResult, int i) {
return RangesKt.until(matchResult.start(i), matchResult.end(i));
}
}