Гость
Map
Форумы / Android [игнор отключен] [закрыт для гостей] / Дiя :: reverse engineering / 12 сообщений из 12, страница 1 из 1
26.01.2022, 17:40
    #40129707
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
Некоторое время назад министерство цифровой транфсормации Украины (да есть такое)
запустило приложение Дія как аналог цифрового паспорта и источника госуслуг.

https://apkcombo.app/apk-downloader/#package=ua.gov.diia.app

Вопрос к специалистам по реверсному инжинерингу Адроид и к разработчикам вообще.

Ребята. А какие технологии в этом приложении спрятаны под капотом?
Я имею в виду имеет ли приложение доступ к навигатору?
Тоесть будет-ли следить за людьми?
...
Рейтинг: 0 / 0
26.01.2022, 17:58
    #40129717
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
mayton,

https://blog.avast.com/ru/kak-nastroit-razresheniya-prilozhenij-v-android
авторСистема Android отображает разрешения, которые необходимо предоставить перед установкой приложения, однако существует еще несколько способов проверить их.
...
Рейтинг: 0 / 0
26.01.2022, 18:27
    #40129729
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
находишь в гугл плей, там внизу есть инфа о приложении, в том числе permissions
из dangerous (на которые нужно разрешение) только камера, остальные "безвредные". location нет, ни точного ни грубого
...
Рейтинг: 0 / 0
26.01.2022, 18:32
    #40129732
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
Да. Камера там используется для идентификации личности.

Ну что-ж спрасибо. Пока инфы хватает. Если что я будут тут спрашивать.
...
Рейтинг: 0 / 0
26.01.2022, 20:11
    #40129762
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
mayton
Если что я будут тут спрашивать.

тут почти никого нет. у меня rss только на новые топики, при новых сообщениях уже не зайду ;)
...
Рейтинг: 0 / 0
26.01.2022, 23:13
    #40129782
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
Хм... а зачем они AndroidManifest создают с расширением xml а содержимое - ну вообще ни разу ни xml.
...
Рейтинг: 0 / 0
26.01.2022, 23:33
    #40129785
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
Вобщем нашел какую-то тулзу. Называется axmlprinter.

Вот фрагмент манифеста где что-то про permission пишут.

(прошу прощения за уродское форматирование но это не я)
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<uses-permission
                firebase_analytics_collection_enabled:name="android.permission.AUTHENTICATE_ACCOUNTS"
                firebase_analytics_collection_enabled:maxSdkVersion="22"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.INTERNET"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.VIBRATE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.WRITE_SYNC_SETTINGS"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.NFC"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.CAMERA"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.ACCESS_NETWORK_STATE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.WAKE_LOCK"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.FOREGROUND_SERVICE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.google.android.c2dm.permission.RECEIVE"
                >
        </uses-permission>
  <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.USE_BIOMETRIC"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.USE_FINGERPRINT"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.FLASHLIGHT"
                >
        </uses-permission>



Я не спец в андроидах так что если есть еще
где-то (в runtime) каких то действий требующих подтверждения юзера - плиз сообщите.

Да. Доступ к камере заказан. Но чорт с ней. Ее работу хотя-бы видно. А это что означает?

Код: java
1.
android.permission.INTERNET



Безграничный доступ ко всему в сети? Или там может есть какие-то ... списки ресурсов что-ли? Хосты там.
Ну короче как в Java security manager мы описывали.

Короче прокомментируйте по каждому.
...
Рейтинг: 0 / 0
26.01.2022, 23:36
    #40129786
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
Еще кусочек забыл откопировать.


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
  <uses-permission
                firebase_analytics_collection_enabled:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.google.android.gms.permission.AD_ID"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.RECEIVE_BOOT_COMPLETED"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.sec.android.provider.badge.permission.READ"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.sec.android.provider.badge.permission.WRITE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.htc.launcher.permission.READ_SETTINGS"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.htc.launcher.permission.UPDATE_SHORTCUT"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.sonyericsson.home.permission.BROADCAST_BADGE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.anddoes.launcher.permission.UPDATE_COUNT"
                >
        </uses-permission>
    <uses-permission
                firebase_analytics_collection_enabled:name="com.majeur.launcher.permission.UPDATE_BADGE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.huawei.android.launcher.permission.CHANGE_BADGE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.huawei.android.launcher.permission.READ_SETTINGS"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="android.permission.READ_APP_BADGE"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.oppo.launcher.permission.READ_SETTINGS"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="com.oppo.launcher.permission.WRITE_SETTINGS"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="me.everything.badger.permission.BADGE_COUNT_READ"
                >
        </uses-permission>
        <uses-permission
                firebase_analytics_collection_enabled:name="me.everything.badger.permission.BADGE_COUNT_WRITE"
                >
        </uses-permission>


...
Рейтинг: 0 / 0
27.01.2022, 00:00
    #40129790
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
mayton
а содержимое - ну вообще ни разу ни xml

вполне себе xml, с заголовком и неймспейсами
Код: xml
1.
2.
3.
4.
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
  package="xxx.yyy">
</manifest>



mayton
Я не спец в андроидах так что если есть еще
где-то (в runtime) каких то действий требующих подтверждения юзера

подтверждения пользователя требуют только права, которые отдельно перечислены в списке на google play, как-то камера, местоположение, доступ к storage и т.п. все остальные достаточно объявить в манифесте и их выдадут автоматом. на установленном приложении эти же права можно посмотреть, дать или забрать в инфе о приложении, там где-то есть пункт permissions

mayton
Безграничный доступ ко всему в сети?

да

mayton
Короче прокомментируйте по каждому.

что там комментировать, по названию же понятно большинство. FLASHLIGHT? USE_FINGERPRINT? ACCESS_NETWORK_STATE? NFC? остальное можно погуглить. То, что во втором куске и не начинается на android.permission вообще какое-то все специфическое для конкретных прошивок/лаунчеров/приложений, судя по названию в основном для отображения бэджей на иконке и работы с настройками лаунчера
...
Рейтинг: 0 / 0
27.01.2022, 00:09
    #40129791
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
Где можно найти ресурсы. Properties. Кодируются ли они как-то?
Особо интересуют веб-линки внешних API куда ходит это приложение.

Беглым поиском по бинарям я пока ничего интересного не нашел. Нашел dex2jar.
Посмотрел на один артифакт.

Большинство текстовых строк завернуто в OctalEscape последовательности. Хотя может dex тут непричем.
Я просматриваю через JD-GUI.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
package ua.gov.diia.app.models.address;

import android.os.Parcel;
import android.os.Parcelable;
import b0.b.a.a.a;
import b0.g.a.k;
import b0.g.a.m;
import k.b0.c.j;
import kotlin.Metadata;

@m(generateAdapter = true)
@Metadata(bv = {1, 0, 3}, d1 = {"\000>\n\002\030\002\n\002\030\002\n\002\030\002\n\002\b\002\n\002\020\016\n\002\b\006\n\002\020\b\n\002\b\002\n\002\020\000\n\000\n\002\020\013\n\002\b\003\n\002\030\002\n\002\b\002\n\002\030\002\n\002\b\n\b\b\030\0002\0020\001B\033\022\b\b\001\020\006\032\0020\005\022\b\b\001\020\007\032\0020\005\006\004\b \020!J\r\020\003\032\0020\002\006\004\b\003\020\004J$\020\b\032\0020\0002\b\b\003\020\006\032\0020\0052\b\b\003\020\007\032\0020\005H\001\006\004\b\b\020\tJ\020\020\n\032\0020\005H\001\006\004\b\n\020\013J\020\020\r\032\0020\fH\001\006\004\b\r\020\016J\032\020\022\032\0020\0212\b\020\020\032\004\030\0010\017H\003\006\004\b\022\020\023J\020\020\024\032\0020\fH\001\006\004\b\024\020\016J \020\031\032\0020\0302\006\020\026\032\0020\0252\006\020\027\032\0020\fH\001\006\004\b\031\020\032R\031\020\006\032\0020\0058\006@\006\006\f\n\004\b\033\020\034\032\004\b\035\020\013R\031\020\007\032\0020\0058\006@\006\006\f\n\004\b\036\020\034\032\004\b\037\020\013\006\""}, d2 = {"Lua/gov/diia/app/models/address/AddressDefaultListItem;", "Landroid/os/Parcelable;", "Lua/gov/diia/app/models/address/AddressItem;", "a", "()Lua/gov/diia/app/models/address/AddressItem;", "", "id", "name", "copy", "(Ljava/lang/String;Ljava/lang/String;)Lua/gov/diia/app/models/address/AddressDefaultListItem;", "toString", "()Ljava/lang/String;", "", "hashCode", "()I", "", "other", "", "equals", "(Ljava/lang/Object;)Z", "describeContents", "Landroid/os/Parcel;", "parcel", "flags", "Lk/u;", "writeToParcel", "(Landroid/os/Parcel;I)V", "d", "Ljava/lang/String;", "getId", "x", "getName", "<init>", "(Ljava/lang/String;Ljava/lang/String;)V", "app_gplayRelease"}, k = 1, mv = {1, 4, 2})
public final class AddressDefaultListItem implements Parcelable {
  public static final Parcelable.Creator<AddressDefaultListItem> CREATOR = (Parcelable.Creator<AddressDefaultListItem>)new a();
  
  public final String d;
  
  public final String x;
  
  public AddressDefaultListItem(@k(name = "id") String paramString1, @k(name = "name") String paramString2) {
    this.d = paramString1;
    this.x = paramString2;
  }
  
...
Рейтинг: 0 / 0
27.01.2022, 00:10
    #40129792
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
chpasha

что там комментировать, по названию же понятно большинство. FLASHLIGHT? USE_FINGERPRINT? ACCESS_NETWORK_STATE? NFC? остальное можно погуглить. То, что во втором куске и не начинается на android.permission вообще какое-то все специфическое для конкретных прошивок/лаунчеров/приложений, судя по названию в основном для отображения бэджей на иконке и работы с настройками лаунчера

А ну ОК. По фонарику нет вопросов вобщем-то.

А если-бы это приложение трекало датчик GPS то как-бы выглядел этот permission?
...
Рейтинг: 0 / 0
27.01.2022, 11:05
    #40129834
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дiя :: reverse engineering
mayton
А если-бы это приложение трекало датчик GPS то как-бы выглядел этот permission?
android.permission.ACCESS_COARSE_LOCATION - для грубого определения и android.permission.ACCESS_FINE_LOCATION для точного. а с Андроид-10 еще нужно android.permission.ACCESS_BACKGROUND_LOCATION если нужно в фоне положение определять

mayton
Где можно найти ресурсы. Properties. Кодируются ли они как-то?

apktool d file.apk
ресурсы в папке res, только не факт, что там URL-ы вынесены в ресурсы, они вполне могут быть в коде (смысла выносить их в ресурсы от мало до никакого).

Сюда он ходит api2.diia.gov.ua - это видно из net_config.xml в котором запрещен не-ssl траффик на этот ресурс
вот еще из кода
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
.class public final Lua/gov/diia/app/BuildConfig;
.super Ljava/lang/Object;
.source ""


# static fields
.field public static final API_KEY:Ljava/lang/String; = "AIzaSyA2YMBwSDoofI0qjoai2fQNOrONrhFW9Kw"

.field public static final APPLICATION_ID:Ljava/lang/String; = "ua.gov.diia.app"

.field public static final BANK_ID_CALLBACK_URL:Ljava/lang/String; = "https://api2.diia.gov.ua/api/v1/auth/bank-id/code/callback"

.field public static final BANK_ID_CLIENT_ID:Ljava/lang/String; = "bd423cc3-3cae-42e4-8706-551d11764e00"

.field public static final BANK_ID_HOST:Ljava/lang/String; = "id.bank.gov.ua"

.field public static final BUILD_TYPE:Ljava/lang/String; = "release"

.field public static final CARD_ENV:Lb/b/a/e/i;

.field public static final DEBUG:Z = false

.field public static final FLAVOR:Ljava/lang/String; = "gplay"

.field public static final GPAY_ENV:Lb/b/a/e/i;

.field public static final PLATFORM_TYPE:Ljava/lang/String; = "Android"

.field public static final SERVER_URL:Ljava/lang/String; = "https://api2.diia.gov.ua"

.field public static final SIGN:Ljava/lang/String; = "sJZPS0Z1rLGSqyhBwhaRvw=="

.field public static final TOKEN_LEEWAY:J = 0x12cL

.field public static final TRANZZO_APPLICATION_ID:Ljava/lang/String; = "6a94ba08-5b32-4597-a2f4-2c05fc36aaa5"

.field public static final VERSION_CODE:I = 0x31d

.field public static final VERSION_NAME:Ljava/lang/String; = "3.0.26"



там и ендпоинты все есть в пакете /network/apis

а вообще, куда он ходит, по-моему гораздо надежней в сниффере смотреть, а не в коде лазить.

mayton
Нашел dex2jar.

ну в принципе то, что надо, если код не обфускирован - получаешь кучу .class, а дальше ты уже и сам знаешь
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Дiя :: reverse engineering / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]