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:
52
apk_decompiled/sources/X1/a.java
Normal file
52
apk_decompiled/sources/X1/a.java
Normal file
@@ -0,0 +1,52 @@
|
||||
package X1;
|
||||
|
||||
import C.w;
|
||||
import u.AbstractC0629f;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class a {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final int f2010a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final long f2011b;
|
||||
|
||||
public a(int i, long j4) {
|
||||
if (i == 0) {
|
||||
throw new NullPointerException("Null status");
|
||||
}
|
||||
this.f2010a = i;
|
||||
this.f2011b = j4;
|
||||
}
|
||||
|
||||
public final boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof a)) {
|
||||
return false;
|
||||
}
|
||||
a aVar = (a) obj;
|
||||
int i = aVar.f2010a;
|
||||
int i4 = this.f2010a;
|
||||
if (i4 != 0) {
|
||||
return (i4 == i) && this.f2011b == aVar.f2011b;
|
||||
}
|
||||
throw null;
|
||||
}
|
||||
|
||||
public final int hashCode() {
|
||||
int b4 = (AbstractC0629f.b(this.f2010a) ^ 1000003) * 1000003;
|
||||
long j4 = this.f2011b;
|
||||
return ((int) (j4 ^ (j4 >>> 32))) ^ b4;
|
||||
}
|
||||
|
||||
public final String toString() {
|
||||
StringBuilder sb = new StringBuilder("BackendResponse{status=");
|
||||
int i = this.f2010a;
|
||||
sb.append(i != 1 ? i != 2 ? i != 3 ? i != 4 ? "null" : "INVALID_PAYLOAD" : "FATAL_ERROR" : "TRANSIENT_ERROR" : "OK");
|
||||
sb.append(", nextRequestWaitMillis=");
|
||||
return w.q(sb, this.f2011b, "}");
|
||||
}
|
||||
}
|
||||
71
apk_decompiled/sources/X1/b.java
Normal file
71
apk_decompiled/sources/X1/b.java
Normal file
@@ -0,0 +1,71 @@
|
||||
package X1;
|
||||
|
||||
import C.w;
|
||||
import android.content.Context;
|
||||
import f0.C0338b;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class b extends c {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final Context f2012a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final C0338b f2013b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final C0338b f2014c;
|
||||
|
||||
/* renamed from: d, reason: collision with root package name */
|
||||
public final String f2015d;
|
||||
|
||||
public b(Context context, C0338b c0338b, C0338b c0338b2, String str) {
|
||||
if (context == null) {
|
||||
throw new NullPointerException("Null applicationContext");
|
||||
}
|
||||
this.f2012a = context;
|
||||
if (c0338b == null) {
|
||||
throw new NullPointerException("Null wallClock");
|
||||
}
|
||||
this.f2013b = c0338b;
|
||||
if (c0338b2 == null) {
|
||||
throw new NullPointerException("Null monotonicClock");
|
||||
}
|
||||
this.f2014c = c0338b2;
|
||||
if (str == null) {
|
||||
throw new NullPointerException("Null backendName");
|
||||
}
|
||||
this.f2015d = str;
|
||||
}
|
||||
|
||||
public final boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof c) {
|
||||
c cVar = (c) obj;
|
||||
if (this.f2012a.equals(((b) cVar).f2012a)) {
|
||||
b bVar = (b) cVar;
|
||||
if (this.f2013b.equals(bVar.f2013b) && this.f2014c.equals(bVar.f2014c) && this.f2015d.equals(bVar.f2015d)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public final int hashCode() {
|
||||
return this.f2015d.hashCode() ^ ((((((this.f2012a.hashCode() ^ 1000003) * 1000003) ^ this.f2013b.hashCode()) * 1000003) ^ this.f2014c.hashCode()) * 1000003);
|
||||
}
|
||||
|
||||
public final String toString() {
|
||||
StringBuilder sb = new StringBuilder("CreationContext{applicationContext=");
|
||||
sb.append(this.f2012a);
|
||||
sb.append(", wallClock=");
|
||||
sb.append(this.f2013b);
|
||||
sb.append(", monotonicClock=");
|
||||
sb.append(this.f2014c);
|
||||
sb.append(", backendName=");
|
||||
return w.r(sb, this.f2015d, "}");
|
||||
}
|
||||
}
|
||||
5
apk_decompiled/sources/X1/c.java
Normal file
5
apk_decompiled/sources/X1/c.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package X1;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class c {
|
||||
}
|
||||
23
apk_decompiled/sources/X1/d.java
Normal file
23
apk_decompiled/sources/X1/d.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package X1;
|
||||
|
||||
import android.content.Context;
|
||||
import f0.C0338b;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class d {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final Context f2016a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final C0338b f2017b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final C0338b f2018c;
|
||||
|
||||
public d(Context context, C0338b c0338b, C0338b c0338b2) {
|
||||
this.f2016a = context;
|
||||
this.f2017b = c0338b;
|
||||
this.f2018c = c0338b2;
|
||||
}
|
||||
}
|
||||
38
apk_decompiled/sources/X1/e.java
Normal file
38
apk_decompiled/sources/X1/e.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package X1;
|
||||
|
||||
import android.content.Context;
|
||||
import d2.j;
|
||||
import f0.C0338b;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class e implements Y1.b {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ int f2019a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final Object f2020b;
|
||||
|
||||
public /* synthetic */ e(Object obj, int i) {
|
||||
this.f2019a = i;
|
||||
this.f2020b = obj;
|
||||
}
|
||||
|
||||
@Override // javax.inject.Provider
|
||||
public final Object get() {
|
||||
switch (this.f2019a) {
|
||||
case 0:
|
||||
return new d((Context) ((e) this.f2020b).f2020b, new C0338b(3), new C0338b(2));
|
||||
case 1:
|
||||
String packageName = ((Context) ((e) this.f2020b).f2020b).getPackageName();
|
||||
if (packageName != null) {
|
||||
return packageName;
|
||||
}
|
||||
throw new NullPointerException("Cannot return null from a non-@Nullable @Provides method");
|
||||
case 2:
|
||||
return new j((Context) ((e) this.f2020b).f2020b, Integer.valueOf(j.f6192d).intValue(), "com.google.android.datatransport.events");
|
||||
default:
|
||||
return this.f2020b;
|
||||
}
|
||||
}
|
||||
}
|
||||
40
apk_decompiled/sources/X1/f.java
Normal file
40
apk_decompiled/sources/X1/f.java
Normal file
@@ -0,0 +1,40 @@
|
||||
package X1;
|
||||
|
||||
import F.i;
|
||||
import android.content.Context;
|
||||
import com.google.android.datatransport.cct.CctBackendFactory;
|
||||
import java.util.HashMap;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class f {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final i f2021a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final d f2022b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final HashMap f2023c;
|
||||
|
||||
public f(Context context, d dVar) {
|
||||
i iVar = new i(context);
|
||||
this.f2023c = new HashMap();
|
||||
this.f2021a = iVar;
|
||||
this.f2022b = dVar;
|
||||
}
|
||||
|
||||
public final synchronized h a(String str) {
|
||||
if (this.f2023c.containsKey(str)) {
|
||||
return (h) this.f2023c.get(str);
|
||||
}
|
||||
CctBackendFactory t2 = this.f2021a.t(str);
|
||||
if (t2 == null) {
|
||||
return null;
|
||||
}
|
||||
d dVar = this.f2022b;
|
||||
h create = t2.create(new b(dVar.f2016a, dVar.f2017b, dVar.f2018c, str));
|
||||
this.f2023c.put(str, create);
|
||||
return create;
|
||||
}
|
||||
}
|
||||
36
apk_decompiled/sources/X1/g.java
Normal file
36
apk_decompiled/sources/X1/g.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package X1;
|
||||
|
||||
import android.content.Context;
|
||||
import d2.C0310a;
|
||||
import d2.j;
|
||||
import f0.C0338b;
|
||||
import javax.inject.Provider;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class g implements Y1.b {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final /* synthetic */ int f2024a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final Y1.b f2025b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public final Provider f2026c;
|
||||
|
||||
public /* synthetic */ g(Y1.b bVar, Provider provider, int i) {
|
||||
this.f2024a = i;
|
||||
this.f2025b = bVar;
|
||||
this.f2026c = provider;
|
||||
}
|
||||
|
||||
@Override // javax.inject.Provider
|
||||
public final Object get() {
|
||||
switch (this.f2024a) {
|
||||
case 0:
|
||||
return new f((Context) ((e) this.f2025b).f2020b, (d) ((e) this.f2026c).get());
|
||||
default:
|
||||
return new d2.h(new C0338b(3), new C0338b(2), C0310a.f6171f, (j) ((e) this.f2025b).get(), this.f2026c);
|
||||
}
|
||||
}
|
||||
}
|
||||
5
apk_decompiled/sources/X1/h.java
Normal file
5
apk_decompiled/sources/X1/h.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package X1;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface h {
|
||||
}
|
||||
Reference in New Issue
Block a user