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:
251
apk_decompiled/sources/kotlin/UIntArray.java
Normal file
251
apk_decompiled/sources/kotlin/UIntArray.java
Normal file
@@ -0,0 +1,251 @@
|
||||
package kotlin;
|
||||
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.NoSuchElementException;
|
||||
import kotlin.collections.ArraysKt;
|
||||
import kotlin.jvm.JvmInline;
|
||||
import kotlin.jvm.internal.CollectionToArray;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.jvm.internal.SourceDebugExtension;
|
||||
import kotlin.jvm.internal.markers.KMappedMarker;
|
||||
|
||||
@SinceKotlin(version = "1.3")
|
||||
@Metadata(d1 = {"\u0000F\n\u0002\u0018\u0002\n\u0002\u0010\u001e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0010\u0015\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0002\b\t\n\u0002\u0010\u0000\n\u0002\b\f\n\u0002\u0010(\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0002\b\u0004\n\u0002\u0010\u000e\n\u0002\b\u0004\b\u0087@\u0018\u00002\b\u0012\u0004\u0012\u00020\u00020\u0001:\u00012B\u0011\b\u0016\u0012\u0006\u0010\u0003\u001a\u00020\u0004¢\u0006\u0004\b\u0005\u0010\u0006B\u0011\b\u0001\u0012\u0006\u0010\u0007\u001a\u00020\b¢\u0006\u0004\b\u0005\u0010\tJ\u0018\u0010\u000e\u001a\u00020\u000f2\u0006\u0010\u0010\u001a\u00020\u0002H\u0096\u0002¢\u0006\u0004\b\u0011\u0010\u0012J\u001d\u0010\u0013\u001a\u00020\u000f2\f\u0010\u0014\u001a\b\u0012\u0004\u0012\u00020\u00020\u0001H\u0016¢\u0006\u0004\b\u0015\u0010\u0016J\u001a\u0010\u0017\u001a\u00020\u000f2\b\u0010\u0018\u001a\u0004\u0018\u00010\u0019HÖ\u0003¢\u0006\u0004\b\u001a\u0010\u001bJ\u001b\u0010\u001c\u001a\u00020\u00022\u0006\u0010\u001d\u001a\u00020\u0004H\u0086\u0002ø\u0001\u0000¢\u0006\u0004\b\u001e\u0010\u001fJ\u0010\u0010 \u001a\u00020\u0004HÖ\u0001¢\u0006\u0004\b!\u0010\u000bJ\u000f\u0010\"\u001a\u00020\u000fH\u0016¢\u0006\u0004\b#\u0010$J\u0016\u0010%\u001a\b\u0012\u0004\u0012\u00020\u00020&H\u0096\u0002¢\u0006\u0004\b'\u0010(J \u0010)\u001a\u00020*2\u0006\u0010\u001d\u001a\u00020\u00042\u0006\u0010+\u001a\u00020\u0002H\u0086\u0002¢\u0006\u0004\b,\u0010-J\u0010\u0010.\u001a\u00020/HÖ\u0001¢\u0006\u0004\b0\u00101R\u0014\u0010\u0003\u001a\u00020\u00048VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\n\u0010\u000bR\u0016\u0010\u0007\u001a\u00020\b8\u0000X\u0081\u0004¢\u0006\b\n\u0000\u0012\u0004\b\f\u0010\r\u0088\u0001\u0007\u0092\u0001\u00020\b\u0082\u0002\u0004\n\u0002\b!¨\u00063"}, d2 = {"Lkotlin/UIntArray;", "", "Lkotlin/UInt;", "size", "", "constructor-impl", "(I)[I", "storage", "", "([I)[I", "getSize-impl", "([I)I", "getStorage$annotations", "()V", "contains", "", "element", "contains-WZ4Q5Ns", "([II)Z", "containsAll", "elements", "containsAll-impl", "([ILjava/util/Collection;)Z", "equals", "other", "", "equals-impl", "([ILjava/lang/Object;)Z", "get", FirebaseAnalytics.Param.INDEX, "get-pVg5ArA", "([II)I", "hashCode", "hashCode-impl", "isEmpty", "isEmpty-impl", "([I)Z", "iterator", "", "iterator-impl", "([I)Ljava/util/Iterator;", "set", "", "value", "set-VXSXFK8", "([III)V", "toString", "", "toString-impl", "([I)Ljava/lang/String;", "Iterator", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@ExperimentalUnsignedTypes
|
||||
@JvmInline
|
||||
@SourceDebugExtension({"SMAP\nUIntArray.kt\nKotlin\n*S Kotlin\n*F\n+ 1 UIntArray.kt\nkotlin/UIntArray\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,86:1\n1726#2,3:87\n*S KotlinDebug\n*F\n+ 1 UIntArray.kt\nkotlin/UIntArray\n*L\n62#1:87,3\n*E\n"})
|
||||
/* loaded from: classes3.dex */
|
||||
public final class UIntArray implements Collection<UInt>, KMappedMarker {
|
||||
private final int[] storage;
|
||||
|
||||
@Metadata(d1 = {"\u0000$\n\u0002\u0018\u0002\n\u0002\u0010(\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0015\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0004\b\u0002\u0018\u00002\b\u0012\u0004\u0012\u00020\u00020\u0001B\r\u0012\u0006\u0010\u0003\u001a\u00020\u0004¢\u0006\u0002\u0010\u0005J\t\u0010\b\u001a\u00020\tH\u0096\u0002J\u0013\u0010\n\u001a\u00020\u0002H\u0096\u0002ø\u0001\u0000¢\u0006\u0004\b\u000b\u0010\fR\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u000e¢\u0006\u0002\n\u0000\u0082\u0002\u0004\n\u0002\b!¨\u0006\r"}, d2 = {"Lkotlin/UIntArray$Iterator;", "", "Lkotlin/UInt;", "array", "", "([I)V", FirebaseAnalytics.Param.INDEX, "", "hasNext", "", "next", "next-pVg5ArA", "()I", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Iterator implements java.util.Iterator<UInt>, KMappedMarker {
|
||||
private final int[] array;
|
||||
private int index;
|
||||
|
||||
public Iterator(int[] array) {
|
||||
Intrinsics.checkNotNullParameter(array, "array");
|
||||
this.array = array;
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public boolean hasNext() {
|
||||
return this.index < this.array.length;
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public /* bridge */ /* synthetic */ UInt next() {
|
||||
return UInt.m205boximpl(m281nextpVg5ArA());
|
||||
}
|
||||
|
||||
/* renamed from: next-pVg5ArA, reason: not valid java name */
|
||||
public int m281nextpVg5ArA() {
|
||||
int i = this.index;
|
||||
int[] iArr = this.array;
|
||||
if (i >= iArr.length) {
|
||||
throw new NoSuchElementException(String.valueOf(this.index));
|
||||
}
|
||||
this.index = i + 1;
|
||||
return UInt.m211constructorimpl(iArr[i]);
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public void remove() {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
}
|
||||
|
||||
@PublishedApi
|
||||
private /* synthetic */ UIntArray(int[] iArr) {
|
||||
this.storage = iArr;
|
||||
}
|
||||
|
||||
/* renamed from: box-impl, reason: not valid java name */
|
||||
public static final /* synthetic */ UIntArray m264boximpl(int[] iArr) {
|
||||
return new UIntArray(iArr);
|
||||
}
|
||||
|
||||
@PublishedApi
|
||||
/* renamed from: constructor-impl, reason: not valid java name */
|
||||
public static int[] m266constructorimpl(int[] storage) {
|
||||
Intrinsics.checkNotNullParameter(storage, "storage");
|
||||
return storage;
|
||||
}
|
||||
|
||||
/* renamed from: containsAll-impl, reason: not valid java name */
|
||||
public static boolean m268containsAllimpl(int[] iArr, Collection<UInt> elements) {
|
||||
Intrinsics.checkNotNullParameter(elements, "elements");
|
||||
Collection<UInt> collection = elements;
|
||||
if (collection.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
for (Object obj : collection) {
|
||||
if (!(obj instanceof UInt) || !ArraysKt.contains(iArr, ((UInt) obj).getData())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* renamed from: equals-impl, reason: not valid java name */
|
||||
public static boolean m269equalsimpl(int[] iArr, Object obj) {
|
||||
return (obj instanceof UIntArray) && Intrinsics.areEqual(iArr, ((UIntArray) obj).getStorage());
|
||||
}
|
||||
|
||||
/* renamed from: equals-impl0, reason: not valid java name */
|
||||
public static final boolean m270equalsimpl0(int[] iArr, int[] iArr2) {
|
||||
return Intrinsics.areEqual(iArr, iArr2);
|
||||
}
|
||||
|
||||
/* renamed from: get-pVg5ArA, reason: not valid java name */
|
||||
public static final int m271getpVg5ArA(int[] iArr, int i) {
|
||||
return UInt.m211constructorimpl(iArr[i]);
|
||||
}
|
||||
|
||||
/* renamed from: getSize-impl, reason: not valid java name */
|
||||
public static int m272getSizeimpl(int[] iArr) {
|
||||
return iArr.length;
|
||||
}
|
||||
|
||||
@PublishedApi
|
||||
public static /* synthetic */ void getStorage$annotations() {
|
||||
}
|
||||
|
||||
/* renamed from: hashCode-impl, reason: not valid java name */
|
||||
public static int m273hashCodeimpl(int[] iArr) {
|
||||
return Arrays.hashCode(iArr);
|
||||
}
|
||||
|
||||
/* renamed from: isEmpty-impl, reason: not valid java name */
|
||||
public static boolean m274isEmptyimpl(int[] iArr) {
|
||||
return iArr.length == 0;
|
||||
}
|
||||
|
||||
/* renamed from: iterator-impl, reason: not valid java name */
|
||||
public static java.util.Iterator<UInt> m275iteratorimpl(int[] iArr) {
|
||||
return new Iterator(iArr);
|
||||
}
|
||||
|
||||
/* renamed from: set-VXSXFK8, reason: not valid java name */
|
||||
public static final void m276setVXSXFK8(int[] iArr, int i, int i4) {
|
||||
iArr[i] = i4;
|
||||
}
|
||||
|
||||
/* renamed from: toString-impl, reason: not valid java name */
|
||||
public static String m277toStringimpl(int[] iArr) {
|
||||
return "UIntArray(storage=" + Arrays.toString(iArr) + ')';
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public /* bridge */ /* synthetic */ boolean add(UInt uInt) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
/* renamed from: add-WZ4Q5Ns, reason: not valid java name */
|
||||
public boolean m278addWZ4Q5Ns(int i) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public boolean addAll(Collection<? extends UInt> collection) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public void clear() {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public final /* bridge */ boolean contains(Object obj) {
|
||||
if (obj instanceof UInt) {
|
||||
return m279containsWZ4Q5Ns(((UInt) obj).getData());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* renamed from: contains-WZ4Q5Ns, reason: not valid java name */
|
||||
public boolean m279containsWZ4Q5Ns(int i) {
|
||||
return m267containsWZ4Q5Ns(this.storage, i);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public boolean containsAll(Collection<? extends Object> elements) {
|
||||
Intrinsics.checkNotNullParameter(elements, "elements");
|
||||
return m268containsAllimpl(this.storage, elements);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public boolean equals(Object obj) {
|
||||
return m269equalsimpl(this.storage, obj);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
/* renamed from: getSize, reason: merged with bridge method [inline-methods] */
|
||||
public int size() {
|
||||
return m272getSizeimpl(this.storage);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public int hashCode() {
|
||||
return m273hashCodeimpl(this.storage);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public boolean isEmpty() {
|
||||
return m274isEmptyimpl(this.storage);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection, java.lang.Iterable
|
||||
public java.util.Iterator<UInt> iterator() {
|
||||
return m275iteratorimpl(this.storage);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public boolean remove(Object obj) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public boolean removeAll(Collection<? extends Object> collection) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public boolean retainAll(Collection<? extends Object> collection) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public Object[] toArray() {
|
||||
return CollectionToArray.toArray(this);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return m277toStringimpl(this.storage);
|
||||
}
|
||||
|
||||
/* renamed from: unbox-impl, reason: not valid java name and from getter */
|
||||
public final /* synthetic */ int[] getStorage() {
|
||||
return this.storage;
|
||||
}
|
||||
|
||||
/* renamed from: constructor-impl, reason: not valid java name */
|
||||
public static int[] m265constructorimpl(int i) {
|
||||
return m266constructorimpl(new int[i]);
|
||||
}
|
||||
|
||||
/* renamed from: contains-WZ4Q5Ns, reason: not valid java name */
|
||||
public static boolean m267containsWZ4Q5Ns(int[] iArr, int i) {
|
||||
return ArraysKt.contains(iArr, i);
|
||||
}
|
||||
|
||||
@Override // java.util.Collection
|
||||
public <T> T[] toArray(T[] array) {
|
||||
Intrinsics.checkNotNullParameter(array, "array");
|
||||
return (T[]) CollectionToArray.toArray(this, array);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user