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,128 @@
package kotlin.collections;
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
import com.google.firebase.remoteconfig.RemoteConfigConstants;
import java.io.Serializable;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.markers.KMappedMarker;
/* JADX INFO: Access modifiers changed from: package-private */
@Metadata(d1 = {"\u0000L\n\u0002\u0018\u0002\n\u0002\u0010$\n\u0002\u0010\u0000\n\u0002\u0010\u0001\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\"\n\u0002\u0010&\n\u0002\b\u0005\n\u0002\u0010\t\n\u0000\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0010\u001e\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\n\n\u0002\u0010\u000e\n\u0000\\u0002\u0018\u00002\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0002\u0012\u0004\u0012\u00020\u00030\u00012\u00060\u0004j\u0002`\u0005B\u0007\b\u0002¢\u0006\u0002\u0010\u0006J\u0012\u0010\u0018\u001a\u00020\u00192\b\u0010\u001a\u001a\u0004\u0018\u00010\u0002H\u0016J\u0010\u0010\u001b\u001a\u00020\u00192\u0006\u0010\u001c\u001a\u00020\u0003H\u0016J\u0013\u0010\u001d\u001a\u00020\u00192\b\u0010\u001e\u001a\u0004\u0018\u00010\u0002H\u0096\u0002J\u0015\u0010\u001f\u001a\u0004\u0018\u00010\u00032\b\u0010\u001a\u001a\u0004\u0018\u00010\u0002H\u0096\u0002J\b\u0010 \u001a\u00020\u0011H\u0016J\b\u0010!\u001a\u00020\u0019H\u0016J\b\u0010\"\u001a\u00020\u0002H\u0002J\b\u0010#\u001a\u00020$H\u0016R(\u0010\u0007\u001a\u0016\u0012\u0012\u0012\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0002\u0012\u0004\u0012\u00020\u00030\t0\b8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\n\u0010\u000bR\u001c\u0010\f\u001a\n\u0012\u0006\u0012\u0004\u0018\u00010\u00020\b8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\r\u0010\u000bR\u000e\u0010\u000e\u001a\u00020\u000fX\u0082T¢\u0006\u0002\n\u0000R\u0014\u0010\u0010\u001a\u00020\u00118VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0012\u0010\u0013R\u001a\u0010\u0014\u001a\b\u0012\u0004\u0012\u00020\u00030\u00158VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0016\u0010\u0017¨\u0006%"}, d2 = {"Lkotlin/collections/EmptyMap;", "", "", "", "Ljava/io/Serializable;", "Lkotlin/io/Serializable;", "()V", RemoteConfigConstants.ResponseFieldKey.ENTRIES, "", "", "getEntries", "()Ljava/util/Set;", UserMetadata.KEYDATA_FILENAME, "getKeys", "serialVersionUID", "", "size", "", "getSize", "()I", "values", "", "getValues", "()Ljava/util/Collection;", "containsKey", "", "key", "containsValue", "value", "equals", "other", "get", "hashCode", "isEmpty", "readResolve", "toString", "", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes3.dex */
public final class EmptyMap implements Map, Serializable, KMappedMarker {
public static final EmptyMap INSTANCE = new EmptyMap();
private static final long serialVersionUID = 8246714829545688274L;
private EmptyMap() {
}
private final Object readResolve() {
return INSTANCE;
}
@Override // java.util.Map
public void clear() {
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
}
@Override // java.util.Map
public boolean containsKey(Object key) {
return false;
}
public boolean containsValue(Void value) {
Intrinsics.checkNotNullParameter(value, "value");
return false;
}
@Override // java.util.Map
public final /* bridge */ Set<Map.Entry> entrySet() {
return getEntries();
}
@Override // java.util.Map
public boolean equals(Object other) {
return (other instanceof Map) && ((Map) other).isEmpty();
}
@Override // java.util.Map
public Void get(Object key) {
return null;
}
public Set<Map.Entry> getEntries() {
return EmptySet.INSTANCE;
}
public Set<Object> getKeys() {
return EmptySet.INSTANCE;
}
public int getSize() {
return 0;
}
public Collection getValues() {
return EmptyList.INSTANCE;
}
@Override // java.util.Map
public int hashCode() {
return 0;
}
@Override // java.util.Map
public boolean isEmpty() {
return true;
}
@Override // java.util.Map
public final /* bridge */ Set<Object> keySet() {
return getKeys();
}
@Override // java.util.Map
public /* bridge */ /* synthetic */ Object put(Object obj, Object obj2) {
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
}
@Override // java.util.Map
public void putAll(Map map) {
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
}
@Override // java.util.Map
public Void remove(Object obj) {
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
}
@Override // java.util.Map
public final /* bridge */ int size() {
return getSize();
}
public String toString() {
return "{}";
}
@Override // java.util.Map
public final /* bridge */ Collection values() {
return getValues();
}
@Override // java.util.Map
public final /* bridge */ boolean containsValue(Object obj) {
if (obj instanceof Void) {
return containsValue((Void) obj);
}
return false;
}
public Void put(Object obj, Void r22) {
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
}
}