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:
@@ -0,0 +1,85 @@
|
||||
package kotlin.collections.builders;
|
||||
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.jvm.internal.SourceDebugExtension;
|
||||
|
||||
@Metadata(d1 = {"\u00008\n\u0000\n\u0002\u0010\u0011\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0006\n\u0002\u0010\u0002\n\u0002\b\u0007\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0010 \n\u0002\b\u0004\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u001e\n\u0002\b\u0002\u001a!\u0010\u0000\u001a\b\u0012\u0004\u0012\u0002H\u00020\u0001\"\u0004\b\u0000\u0010\u00022\u0006\u0010\u0003\u001a\u00020\u0004H\u0000¢\u0006\u0002\u0010\u0005\u001a+\u0010\u0006\u001a\b\u0012\u0004\u0012\u0002H\u00070\u0001\"\u0004\b\u0000\u0010\u0007*\b\u0012\u0004\u0012\u0002H\u00070\u00012\u0006\u0010\b\u001a\u00020\u0004H\u0000¢\u0006\u0002\u0010\t\u001a%\u0010\n\u001a\u00020\u000b\"\u0004\b\u0000\u0010\u0002*\b\u0012\u0004\u0012\u0002H\u00020\u00012\u0006\u0010\f\u001a\u00020\u0004H\u0000¢\u0006\u0002\u0010\r\u001a-\u0010\u000e\u001a\u00020\u000b\"\u0004\b\u0000\u0010\u0002*\b\u0012\u0004\u0012\u0002H\u00020\u00012\u0006\u0010\u000f\u001a\u00020\u00042\u0006\u0010\u0010\u001a\u00020\u0004H\u0000¢\u0006\u0002\u0010\u0011\u001a9\u0010\u0012\u001a\u00020\u0013\"\u0004\b\u0000\u0010\u0007*\b\u0012\u0004\u0012\u0002H\u00070\u00012\u0006\u0010\u0014\u001a\u00020\u00042\u0006\u0010\u0015\u001a\u00020\u00042\n\u0010\u0016\u001a\u0006\u0012\u0002\b\u00030\u0017H\u0002¢\u0006\u0002\u0010\u0018\u001a-\u0010\u0019\u001a\u00020\u0004\"\u0004\b\u0000\u0010\u0007*\b\u0012\u0004\u0012\u0002H\u00070\u00012\u0006\u0010\u0014\u001a\u00020\u00042\u0006\u0010\u0015\u001a\u00020\u0004H\u0002¢\u0006\u0002\u0010\u001a\u001a=\u0010\u001b\u001a\u00020\u001c\"\u0004\b\u0000\u0010\u0007*\n\u0012\u0006\b\u0001\u0012\u0002H\u00070\u00012\u0006\u0010\u0014\u001a\u00020\u00042\u0006\u0010\u0015\u001a\u00020\u00042\f\u0010\u001d\u001a\b\u0012\u0004\u0012\u0002H\u00070\u001eH\u0002¢\u0006\u0002\u0010\u001f¨\u0006 "}, d2 = {"arrayOfUninitializedElements", "", "E", "size", "", "(I)[Ljava/lang/Object;", "copyOfUninitializedElements", "T", "newSize", "([Ljava/lang/Object;I)[Ljava/lang/Object;", "resetAt", "", FirebaseAnalytics.Param.INDEX, "([Ljava/lang/Object;I)V", "resetRange", "fromIndex", "toIndex", "([Ljava/lang/Object;II)V", "subarrayContentEquals", "", "offset", "length", "other", "", "([Ljava/lang/Object;IILjava/util/List;)Z", "subarrayContentHashCode", "([Ljava/lang/Object;II)I", "subarrayContentToString", "", "thisCollection", "", "([Ljava/lang/Object;IILjava/util/Collection;)Ljava/lang/String;", "kotlin-stdlib"}, k = 2, mv = {1, 9, 0}, xi = 48)
|
||||
@SourceDebugExtension({"SMAP\nListBuilder.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ListBuilder.kt\nkotlin/collections/builders/ListBuilderKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,487:1\n1#2:488\n*E\n"})
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ListBuilderKt {
|
||||
public static final <E> E[] arrayOfUninitializedElements(int i) {
|
||||
if (i >= 0) {
|
||||
return (E[]) new Object[i];
|
||||
}
|
||||
throw new IllegalArgumentException("capacity must be non-negative.");
|
||||
}
|
||||
|
||||
public static final <T> T[] copyOfUninitializedElements(T[] tArr, int i) {
|
||||
Intrinsics.checkNotNullParameter(tArr, "<this>");
|
||||
T[] tArr2 = (T[]) Arrays.copyOf(tArr, i);
|
||||
Intrinsics.checkNotNullExpressionValue(tArr2, "copyOf(...)");
|
||||
return tArr2;
|
||||
}
|
||||
|
||||
public static final <E> void resetAt(E[] eArr, int i) {
|
||||
Intrinsics.checkNotNullParameter(eArr, "<this>");
|
||||
eArr[i] = null;
|
||||
}
|
||||
|
||||
public static final <E> void resetRange(E[] eArr, int i, int i4) {
|
||||
Intrinsics.checkNotNullParameter(eArr, "<this>");
|
||||
while (i < i4) {
|
||||
resetAt(eArr, i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public static final <T> boolean subarrayContentEquals(T[] tArr, int i, int i4, List<?> list) {
|
||||
if (i4 != list.size()) {
|
||||
return false;
|
||||
}
|
||||
for (int i5 = 0; i5 < i4; i5++) {
|
||||
if (!Intrinsics.areEqual(tArr[i + i5], list.get(i5))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public static final <T> int subarrayContentHashCode(T[] tArr, int i, int i4) {
|
||||
int i5 = 1;
|
||||
for (int i6 = 0; i6 < i4; i6++) {
|
||||
T t2 = tArr[i + i6];
|
||||
i5 = (i5 * 31) + (t2 != null ? t2.hashCode() : 0);
|
||||
}
|
||||
return i5;
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public static final <T> String subarrayContentToString(T[] tArr, int i, int i4, Collection<? extends T> collection) {
|
||||
StringBuilder sb = new StringBuilder((i4 * 3) + 2);
|
||||
sb.append("[");
|
||||
for (int i5 = 0; i5 < i4; i5++) {
|
||||
if (i5 > 0) {
|
||||
sb.append(", ");
|
||||
}
|
||||
T t2 = tArr[i + i5];
|
||||
if (t2 == collection) {
|
||||
sb.append("(this Collection)");
|
||||
} else {
|
||||
sb.append(t2);
|
||||
}
|
||||
}
|
||||
sb.append("]");
|
||||
String sb2 = sb.toString();
|
||||
Intrinsics.checkNotNullExpressionValue(sb2, "toString(...)");
|
||||
return sb2;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user