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:
7
apk_decompiled/sources/o/AbstractC0519e.java
Normal file
7
apk_decompiled/sources/o/AbstractC0519e.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package o;
|
||||
|
||||
/* renamed from: o.e, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class AbstractC0519e {
|
||||
public abstract void a(C0517c c0517c);
|
||||
}
|
||||
45
apk_decompiled/sources/o/C0515a.java
Normal file
45
apk_decompiled/sources/o/C0515a.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package o;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/* renamed from: o.a, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0515a extends C0520f {
|
||||
|
||||
/* renamed from: e, reason: collision with root package name */
|
||||
public final HashMap f7883e = new HashMap();
|
||||
|
||||
@Override // o.C0520f
|
||||
public final C0517c a(Object obj) {
|
||||
return (C0517c) this.f7883e.get(obj);
|
||||
}
|
||||
|
||||
@Override // o.C0520f
|
||||
public final Object b(Object obj, Object obj2) {
|
||||
C0517c a2 = a(obj);
|
||||
if (a2 != null) {
|
||||
return a2.f7888b;
|
||||
}
|
||||
HashMap hashMap = this.f7883e;
|
||||
C0517c c0517c = new C0517c(obj, obj2);
|
||||
this.f7897d++;
|
||||
C0517c c0517c2 = this.f7895b;
|
||||
if (c0517c2 == null) {
|
||||
this.f7894a = c0517c;
|
||||
this.f7895b = c0517c;
|
||||
} else {
|
||||
c0517c2.f7889c = c0517c;
|
||||
c0517c.f7890d = c0517c2;
|
||||
this.f7895b = c0517c;
|
||||
}
|
||||
hashMap.put(obj, c0517c);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // o.C0520f
|
||||
public final Object c(Object obj) {
|
||||
Object c4 = super.c(obj);
|
||||
this.f7883e.remove(obj);
|
||||
return c4;
|
||||
}
|
||||
}
|
||||
75
apk_decompiled/sources/o/C0516b.java
Normal file
75
apk_decompiled/sources/o/C0516b.java
Normal file
@@ -0,0 +1,75 @@
|
||||
package o;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
/* renamed from: o.b, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0516b extends AbstractC0519e implements Iterator {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public C0517c f7884a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public C0517c f7885b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final /* synthetic */ int f7886c;
|
||||
|
||||
public C0516b(C0517c c0517c, C0517c c0517c2, int i) {
|
||||
this.f7886c = i;
|
||||
this.f7884a = c0517c2;
|
||||
this.f7885b = c0517c;
|
||||
}
|
||||
|
||||
@Override // o.AbstractC0519e
|
||||
public final void a(C0517c c0517c) {
|
||||
C0517c c0517c2;
|
||||
C0517c c0517c3 = null;
|
||||
if (this.f7884a == c0517c && c0517c == this.f7885b) {
|
||||
this.f7885b = null;
|
||||
this.f7884a = null;
|
||||
}
|
||||
C0517c c0517c4 = this.f7884a;
|
||||
if (c0517c4 == c0517c) {
|
||||
switch (this.f7886c) {
|
||||
case 0:
|
||||
c0517c2 = c0517c4.f7890d;
|
||||
break;
|
||||
default:
|
||||
c0517c2 = c0517c4.f7889c;
|
||||
break;
|
||||
}
|
||||
this.f7884a = c0517c2;
|
||||
}
|
||||
C0517c c0517c5 = this.f7885b;
|
||||
if (c0517c5 == c0517c) {
|
||||
C0517c c0517c6 = this.f7884a;
|
||||
if (c0517c5 != c0517c6 && c0517c6 != null) {
|
||||
c0517c3 = b(c0517c5);
|
||||
}
|
||||
this.f7885b = c0517c3;
|
||||
}
|
||||
}
|
||||
|
||||
public final C0517c b(C0517c c0517c) {
|
||||
switch (this.f7886c) {
|
||||
case 0:
|
||||
return c0517c.f7889c;
|
||||
default:
|
||||
return c0517c.f7890d;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public final boolean hasNext() {
|
||||
return this.f7885b != null;
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public final Object next() {
|
||||
C0517c c0517c = this.f7885b;
|
||||
C0517c c0517c2 = this.f7884a;
|
||||
this.f7885b = (c0517c == c0517c2 || c0517c2 == null) ? null : b(c0517c);
|
||||
return c0517c;
|
||||
}
|
||||
}
|
||||
61
apk_decompiled/sources/o/C0517c.java
Normal file
61
apk_decompiled/sources/o/C0517c.java
Normal file
@@ -0,0 +1,61 @@
|
||||
package o;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/* renamed from: o.c, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0517c implements Map.Entry {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final Object f7887a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final Object f7888b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public C0517c f7889c;
|
||||
|
||||
/* renamed from: d, reason: collision with root package name */
|
||||
public C0517c f7890d;
|
||||
|
||||
public C0517c(Object obj, Object obj2) {
|
||||
this.f7887a = obj;
|
||||
this.f7888b = obj2;
|
||||
}
|
||||
|
||||
@Override // java.util.Map.Entry
|
||||
public final boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof C0517c)) {
|
||||
return false;
|
||||
}
|
||||
C0517c c0517c = (C0517c) obj;
|
||||
return this.f7887a.equals(c0517c.f7887a) && this.f7888b.equals(c0517c.f7888b);
|
||||
}
|
||||
|
||||
@Override // java.util.Map.Entry
|
||||
public final Object getKey() {
|
||||
return this.f7887a;
|
||||
}
|
||||
|
||||
@Override // java.util.Map.Entry
|
||||
public final Object getValue() {
|
||||
return this.f7888b;
|
||||
}
|
||||
|
||||
@Override // java.util.Map.Entry
|
||||
public final int hashCode() {
|
||||
return this.f7888b.hashCode() ^ this.f7887a.hashCode();
|
||||
}
|
||||
|
||||
@Override // java.util.Map.Entry
|
||||
public final Object setValue(Object obj) {
|
||||
throw new UnsupportedOperationException("An entry modification is not supported");
|
||||
}
|
||||
|
||||
public final String toString() {
|
||||
return this.f7887a + "=" + this.f7888b;
|
||||
}
|
||||
}
|
||||
52
apk_decompiled/sources/o/C0518d.java
Normal file
52
apk_decompiled/sources/o/C0518d.java
Normal file
@@ -0,0 +1,52 @@
|
||||
package o;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
/* renamed from: o.d, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0518d extends AbstractC0519e implements Iterator {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public C0517c f7891a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public boolean f7892b = true;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final /* synthetic */ C0520f f7893c;
|
||||
|
||||
public C0518d(C0520f c0520f) {
|
||||
this.f7893c = c0520f;
|
||||
}
|
||||
|
||||
@Override // o.AbstractC0519e
|
||||
public final void a(C0517c c0517c) {
|
||||
C0517c c0517c2 = this.f7891a;
|
||||
if (c0517c == c0517c2) {
|
||||
C0517c c0517c3 = c0517c2.f7890d;
|
||||
this.f7891a = c0517c3;
|
||||
this.f7892b = c0517c3 == null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public final boolean hasNext() {
|
||||
if (this.f7892b) {
|
||||
return this.f7893c.f7894a != null;
|
||||
}
|
||||
C0517c c0517c = this.f7891a;
|
||||
return (c0517c == null || c0517c.f7889c == null) ? false : true;
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public final Object next() {
|
||||
if (this.f7892b) {
|
||||
this.f7892b = false;
|
||||
this.f7891a = this.f7893c.f7894a;
|
||||
} else {
|
||||
C0517c c0517c = this.f7891a;
|
||||
this.f7891a = c0517c != null ? c0517c.f7889c : null;
|
||||
}
|
||||
return this.f7891a;
|
||||
}
|
||||
}
|
||||
187
apk_decompiled/sources/o/C0520f.java
Normal file
187
apk_decompiled/sources/o/C0520f.java
Normal file
@@ -0,0 +1,187 @@
|
||||
package o;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
/* renamed from: o.f, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public class C0520f implements Iterable {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public C0517c f7894a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public C0517c f7895b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final WeakHashMap f7896c = new WeakHashMap();
|
||||
|
||||
/* renamed from: d, reason: collision with root package name */
|
||||
public int f7897d = 0;
|
||||
|
||||
public C0517c a(Object obj) {
|
||||
C0517c c0517c = this.f7894a;
|
||||
while (c0517c != null && !c0517c.f7887a.equals(obj)) {
|
||||
c0517c = c0517c.f7889c;
|
||||
}
|
||||
return c0517c;
|
||||
}
|
||||
|
||||
public Object b(Object obj, Object obj2) {
|
||||
C0517c a2 = a(obj);
|
||||
if (a2 != null) {
|
||||
return a2.f7888b;
|
||||
}
|
||||
C0517c c0517c = new C0517c(obj, obj2);
|
||||
this.f7897d++;
|
||||
C0517c c0517c2 = this.f7895b;
|
||||
if (c0517c2 == null) {
|
||||
this.f7894a = c0517c;
|
||||
this.f7895b = c0517c;
|
||||
return null;
|
||||
}
|
||||
c0517c2.f7889c = c0517c;
|
||||
c0517c.f7890d = c0517c2;
|
||||
this.f7895b = c0517c;
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object c(Object obj) {
|
||||
C0517c a2 = a(obj);
|
||||
if (a2 == null) {
|
||||
return null;
|
||||
}
|
||||
this.f7897d--;
|
||||
WeakHashMap weakHashMap = this.f7896c;
|
||||
if (!weakHashMap.isEmpty()) {
|
||||
Iterator it = weakHashMap.keySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
((AbstractC0519e) it.next()).a(a2);
|
||||
}
|
||||
}
|
||||
C0517c c0517c = a2.f7890d;
|
||||
if (c0517c != null) {
|
||||
c0517c.f7889c = a2.f7889c;
|
||||
} else {
|
||||
this.f7894a = a2.f7889c;
|
||||
}
|
||||
C0517c c0517c2 = a2.f7889c;
|
||||
if (c0517c2 != null) {
|
||||
c0517c2.f7890d = c0517c;
|
||||
} else {
|
||||
this.f7895b = c0517c;
|
||||
}
|
||||
a2.f7889c = null;
|
||||
a2.f7890d = null;
|
||||
return a2.f7888b;
|
||||
}
|
||||
|
||||
/* JADX WARN: Code restructure failed: missing block: B:31:0x0048, code lost:
|
||||
|
||||
if (r1.hasNext() != false) goto L28;
|
||||
*/
|
||||
/* JADX WARN: Code restructure failed: missing block: B:33:0x0050, code lost:
|
||||
|
||||
if (((o.C0516b) r6).hasNext() != false) goto L28;
|
||||
*/
|
||||
/* JADX WARN: Code restructure failed: missing block: B:34:0x0052, code lost:
|
||||
|
||||
return true;
|
||||
*/
|
||||
/* JADX WARN: Code restructure failed: missing block: B:35:0x0053, code lost:
|
||||
|
||||
return false;
|
||||
*/
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public final boolean equals(java.lang.Object r6) {
|
||||
/*
|
||||
r5 = this;
|
||||
r0 = 1
|
||||
if (r6 != r5) goto L4
|
||||
return r0
|
||||
L4:
|
||||
boolean r1 = r6 instanceof o.C0520f
|
||||
r2 = 0
|
||||
if (r1 != 0) goto La
|
||||
return r2
|
||||
La:
|
||||
o.f r6 = (o.C0520f) r6
|
||||
int r1 = r5.f7897d
|
||||
int r3 = r6.f7897d
|
||||
if (r1 == r3) goto L13
|
||||
return r2
|
||||
L13:
|
||||
java.util.Iterator r5 = r5.iterator()
|
||||
java.util.Iterator r6 = r6.iterator()
|
||||
L1b:
|
||||
r1 = r5
|
||||
o.b r1 = (o.C0516b) r1
|
||||
boolean r3 = r1.hasNext()
|
||||
if (r3 == 0) goto L44
|
||||
r3 = r6
|
||||
o.b r3 = (o.C0516b) r3
|
||||
boolean r4 = r3.hasNext()
|
||||
if (r4 == 0) goto L44
|
||||
java.lang.Object r1 = r1.next()
|
||||
java.util.Map$Entry r1 = (java.util.Map.Entry) r1
|
||||
java.lang.Object r3 = r3.next()
|
||||
if (r1 != 0) goto L3b
|
||||
if (r3 != 0) goto L43
|
||||
L3b:
|
||||
if (r1 == 0) goto L1b
|
||||
boolean r1 = r1.equals(r3)
|
||||
if (r1 != 0) goto L1b
|
||||
L43:
|
||||
return r2
|
||||
L44:
|
||||
boolean r5 = r1.hasNext()
|
||||
if (r5 != 0) goto L53
|
||||
o.b r6 = (o.C0516b) r6
|
||||
boolean r5 = r6.hasNext()
|
||||
if (r5 != 0) goto L53
|
||||
return r0
|
||||
L53:
|
||||
return r2
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: o.C0520f.equals(java.lang.Object):boolean");
|
||||
}
|
||||
|
||||
public final int hashCode() {
|
||||
Iterator it = iterator();
|
||||
int i = 0;
|
||||
while (true) {
|
||||
C0516b c0516b = (C0516b) it;
|
||||
if (!c0516b.hasNext()) {
|
||||
return i;
|
||||
}
|
||||
i += ((Map.Entry) c0516b.next()).hashCode();
|
||||
}
|
||||
}
|
||||
|
||||
@Override // java.lang.Iterable
|
||||
public final Iterator iterator() {
|
||||
C0516b c0516b = new C0516b(this.f7894a, this.f7895b, 0);
|
||||
this.f7896c.put(c0516b, Boolean.FALSE);
|
||||
return c0516b;
|
||||
}
|
||||
|
||||
public final String toString() {
|
||||
StringBuilder sb = new StringBuilder("[");
|
||||
Iterator it = iterator();
|
||||
while (true) {
|
||||
C0516b c0516b = (C0516b) it;
|
||||
if (!c0516b.hasNext()) {
|
||||
sb.append("]");
|
||||
return sb.toString();
|
||||
}
|
||||
sb.append(((Map.Entry) c0516b.next()).toString());
|
||||
if (c0516b.hasNext()) {
|
||||
sb.append(", ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user