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,58 @@
package kotlin.reflect.jvm.internal.impl.incremental;
import kotlin.jvm.internal.Intrinsics;
import kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentDescriptor;
import kotlin.reflect.jvm.internal.impl.incremental.components.LocationInfo;
import kotlin.reflect.jvm.internal.impl.incremental.components.LookupLocation;
import kotlin.reflect.jvm.internal.impl.incremental.components.LookupTracker;
import kotlin.reflect.jvm.internal.impl.incremental.components.Position;
import kotlin.reflect.jvm.internal.impl.incremental.components.ScopeKind;
import kotlin.reflect.jvm.internal.impl.name.Name;
import kotlin.reflect.jvm.internal.impl.resolve.DescriptorUtils;
/* loaded from: classes3.dex */
public final class UtilsKt {
public static final void record(LookupTracker lookupTracker, LookupLocation from, ClassDescriptor scopeOwner, Name name) {
LocationInfo location;
Intrinsics.checkNotNullParameter(lookupTracker, "<this>");
Intrinsics.checkNotNullParameter(from, "from");
Intrinsics.checkNotNullParameter(scopeOwner, "scopeOwner");
Intrinsics.checkNotNullParameter(name, "name");
if (lookupTracker == LookupTracker.DO_NOTHING.INSTANCE || (location = from.getLocation()) == null) {
return;
}
Position position = lookupTracker.getRequiresPosition() ? location.getPosition() : Position.Companion.getNO_POSITION();
String filePath = location.getFilePath();
String asString = DescriptorUtils.getFqName(scopeOwner).asString();
Intrinsics.checkNotNullExpressionValue(asString, "asString(...)");
ScopeKind scopeKind = ScopeKind.CLASSIFIER;
String asString2 = name.asString();
Intrinsics.checkNotNullExpressionValue(asString2, "asString(...)");
lookupTracker.record(filePath, position, asString, scopeKind, asString2);
}
public static final void recordPackageLookup(LookupTracker lookupTracker, LookupLocation from, String packageFqName, String name) {
LocationInfo location;
Intrinsics.checkNotNullParameter(lookupTracker, "<this>");
Intrinsics.checkNotNullParameter(from, "from");
Intrinsics.checkNotNullParameter(packageFqName, "packageFqName");
Intrinsics.checkNotNullParameter(name, "name");
if (lookupTracker == LookupTracker.DO_NOTHING.INSTANCE || (location = from.getLocation()) == null) {
return;
}
lookupTracker.record(location.getFilePath(), lookupTracker.getRequiresPosition() ? location.getPosition() : Position.Companion.getNO_POSITION(), packageFqName, ScopeKind.PACKAGE, name);
}
public static final void record(LookupTracker lookupTracker, LookupLocation from, PackageFragmentDescriptor scopeOwner, Name name) {
Intrinsics.checkNotNullParameter(lookupTracker, "<this>");
Intrinsics.checkNotNullParameter(from, "from");
Intrinsics.checkNotNullParameter(scopeOwner, "scopeOwner");
Intrinsics.checkNotNullParameter(name, "name");
String asString = scopeOwner.getFqName().asString();
Intrinsics.checkNotNullExpressionValue(asString, "asString(...)");
String asString2 = name.asString();
Intrinsics.checkNotNullExpressionValue(asString2, "asString(...)");
recordPackageLookup(lookupTracker, from, asString, asString2);
}
}

View File

@@ -0,0 +1,8 @@
package kotlin.reflect.jvm.internal.impl.incremental.components;
/* loaded from: classes3.dex */
public interface LocationInfo {
String getFilePath();
Position getPosition();
}

View File

@@ -0,0 +1,6 @@
package kotlin.reflect.jvm.internal.impl.incremental.components;
/* loaded from: classes3.dex */
public interface LookupLocation {
LocationInfo getLocation();
}

View File

@@ -0,0 +1,33 @@
package kotlin.reflect.jvm.internal.impl.incremental.components;
import kotlin.jvm.internal.Intrinsics;
/* loaded from: classes3.dex */
public interface LookupTracker {
/* loaded from: classes3.dex */
public static final class DO_NOTHING implements LookupTracker {
public static final DO_NOTHING INSTANCE = new DO_NOTHING();
private DO_NOTHING() {
}
@Override // kotlin.reflect.jvm.internal.impl.incremental.components.LookupTracker
public boolean getRequiresPosition() {
return false;
}
@Override // kotlin.reflect.jvm.internal.impl.incremental.components.LookupTracker
public void record(String filePath, Position position, String scopeFqName, ScopeKind scopeKind, String name) {
Intrinsics.checkNotNullParameter(filePath, "filePath");
Intrinsics.checkNotNullParameter(position, "position");
Intrinsics.checkNotNullParameter(scopeFqName, "scopeFqName");
Intrinsics.checkNotNullParameter(scopeKind, "scopeKind");
Intrinsics.checkNotNullParameter(name, "name");
}
}
boolean getRequiresPosition();
void record(String str, Position position, String str2, ScopeKind scopeKind, String str3);
}

View File

@@ -0,0 +1,61 @@
package kotlin.reflect.jvm.internal.impl.incremental.components;
import kotlin.enums.EnumEntries;
import kotlin.enums.EnumEntriesKt;
/* JADX WARN: Failed to restore enum class, 'enum' modifier and super class removed */
/* JADX WARN: Unknown enum class pattern. Please report as an issue! */
/* loaded from: classes3.dex */
public final class NoLookupLocation implements LookupLocation {
private static final /* synthetic */ EnumEntries $ENTRIES;
private static final /* synthetic */ NoLookupLocation[] $VALUES;
public static final NoLookupLocation FROM_IDE = new NoLookupLocation("FROM_IDE", 0);
public static final NoLookupLocation FROM_BACKEND = new NoLookupLocation("FROM_BACKEND", 1);
public static final NoLookupLocation FROM_TEST = new NoLookupLocation("FROM_TEST", 2);
public static final NoLookupLocation FROM_BUILTINS = new NoLookupLocation("FROM_BUILTINS", 3);
public static final NoLookupLocation WHEN_CHECK_DECLARATION_CONFLICTS = new NoLookupLocation("WHEN_CHECK_DECLARATION_CONFLICTS", 4);
public static final NoLookupLocation WHEN_CHECK_OVERRIDES = new NoLookupLocation("WHEN_CHECK_OVERRIDES", 5);
public static final NoLookupLocation FOR_SCRIPT = new NoLookupLocation("FOR_SCRIPT", 6);
public static final NoLookupLocation FROM_REFLECTION = new NoLookupLocation("FROM_REFLECTION", 7);
public static final NoLookupLocation WHEN_RESOLVE_DECLARATION = new NoLookupLocation("WHEN_RESOLVE_DECLARATION", 8);
public static final NoLookupLocation WHEN_GET_DECLARATION_SCOPE = new NoLookupLocation("WHEN_GET_DECLARATION_SCOPE", 9);
public static final NoLookupLocation WHEN_RESOLVING_DEFAULT_TYPE_ARGUMENTS = new NoLookupLocation("WHEN_RESOLVING_DEFAULT_TYPE_ARGUMENTS", 10);
public static final NoLookupLocation FOR_ALREADY_TRACKED = new NoLookupLocation("FOR_ALREADY_TRACKED", 11);
public static final NoLookupLocation WHEN_GET_ALL_DESCRIPTORS = new NoLookupLocation("WHEN_GET_ALL_DESCRIPTORS", 12);
public static final NoLookupLocation WHEN_TYPING = new NoLookupLocation("WHEN_TYPING", 13);
public static final NoLookupLocation WHEN_GET_SUPER_MEMBERS = new NoLookupLocation("WHEN_GET_SUPER_MEMBERS", 14);
public static final NoLookupLocation FOR_NON_TRACKED_SCOPE = new NoLookupLocation("FOR_NON_TRACKED_SCOPE", 15);
public static final NoLookupLocation FROM_SYNTHETIC_SCOPE = new NoLookupLocation("FROM_SYNTHETIC_SCOPE", 16);
public static final NoLookupLocation FROM_DESERIALIZATION = new NoLookupLocation("FROM_DESERIALIZATION", 17);
public static final NoLookupLocation FROM_JAVA_LOADER = new NoLookupLocation("FROM_JAVA_LOADER", 18);
public static final NoLookupLocation WHEN_GET_LOCAL_VARIABLE = new NoLookupLocation("WHEN_GET_LOCAL_VARIABLE", 19);
public static final NoLookupLocation WHEN_FIND_BY_FQNAME = new NoLookupLocation("WHEN_FIND_BY_FQNAME", 20);
public static final NoLookupLocation WHEN_GET_COMPANION_OBJECT = new NoLookupLocation("WHEN_GET_COMPANION_OBJECT", 21);
public static final NoLookupLocation FOR_DEFAULT_IMPORTS = new NoLookupLocation("FOR_DEFAULT_IMPORTS", 22);
private static final /* synthetic */ NoLookupLocation[] $values() {
return new NoLookupLocation[]{FROM_IDE, FROM_BACKEND, FROM_TEST, FROM_BUILTINS, WHEN_CHECK_DECLARATION_CONFLICTS, WHEN_CHECK_OVERRIDES, FOR_SCRIPT, FROM_REFLECTION, WHEN_RESOLVE_DECLARATION, WHEN_GET_DECLARATION_SCOPE, WHEN_RESOLVING_DEFAULT_TYPE_ARGUMENTS, FOR_ALREADY_TRACKED, WHEN_GET_ALL_DESCRIPTORS, WHEN_TYPING, WHEN_GET_SUPER_MEMBERS, FOR_NON_TRACKED_SCOPE, FROM_SYNTHETIC_SCOPE, FROM_DESERIALIZATION, FROM_JAVA_LOADER, WHEN_GET_LOCAL_VARIABLE, WHEN_FIND_BY_FQNAME, WHEN_GET_COMPANION_OBJECT, FOR_DEFAULT_IMPORTS};
}
static {
NoLookupLocation[] $values = $values();
$VALUES = $values;
$ENTRIES = EnumEntriesKt.enumEntries($values);
}
private NoLookupLocation(String str, int i) {
}
public static NoLookupLocation valueOf(String str) {
return (NoLookupLocation) Enum.valueOf(NoLookupLocation.class, str);
}
public static NoLookupLocation[] values() {
return (NoLookupLocation[]) $VALUES.clone();
}
@Override // kotlin.reflect.jvm.internal.impl.incremental.components.LookupLocation
public LocationInfo getLocation() {
return null;
}
}

View File

@@ -0,0 +1,54 @@
package kotlin.reflect.jvm.internal.impl.incremental.components;
import C.w;
import java.io.Serializable;
import kotlin.jvm.internal.DefaultConstructorMarker;
/* loaded from: classes3.dex */
public final class Position implements Serializable {
public static final Companion Companion = new Companion(null);
private static final Position NO_POSITION = new Position(-1, -1);
private final int column;
private final int line;
/* loaded from: classes3.dex */
public static final class Companion {
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
public final Position getNO_POSITION() {
return Position.NO_POSITION;
}
private Companion() {
}
}
public Position(int i, int i4) {
this.line = i;
this.column = i4;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Position)) {
return false;
}
Position position = (Position) obj;
return this.line == position.line && this.column == position.column;
}
public int hashCode() {
return Integer.hashCode(this.column) + (Integer.hashCode(this.line) * 31);
}
public String toString() {
StringBuilder sb = new StringBuilder("Position(line=");
sb.append(this.line);
sb.append(", column=");
return w.p(sb, this.column, ')');
}
}

View File

@@ -0,0 +1,35 @@
package kotlin.reflect.jvm.internal.impl.incremental.components;
import kotlin.enums.EnumEntries;
import kotlin.enums.EnumEntriesKt;
/* JADX WARN: Failed to restore enum class, 'enum' modifier and super class removed */
/* JADX WARN: Unknown enum class pattern. Please report as an issue! */
/* loaded from: classes3.dex */
public final class ScopeKind {
private static final /* synthetic */ EnumEntries $ENTRIES;
private static final /* synthetic */ ScopeKind[] $VALUES;
public static final ScopeKind PACKAGE = new ScopeKind("PACKAGE", 0);
public static final ScopeKind CLASSIFIER = new ScopeKind("CLASSIFIER", 1);
private static final /* synthetic */ ScopeKind[] $values() {
return new ScopeKind[]{PACKAGE, CLASSIFIER};
}
static {
ScopeKind[] $values = $values();
$VALUES = $values;
$ENTRIES = EnumEntriesKt.enumEntries($values);
}
private ScopeKind(String str, int i) {
}
public static ScopeKind valueOf(String str) {
return (ScopeKind) Enum.valueOf(ScopeKind.class, str);
}
public static ScopeKind[] values() {
return (ScopeKind[]) $VALUES.clone();
}
}