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:
83
apk_decompiled/sources/kotlin/text/RegexKt.java
Normal file
83
apk_decompiled/sources/kotlin/text/RegexKt.java
Normal 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user