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

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

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

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

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

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

тут почти никого нет. у меня rss только на новые топики, при новых сообщениях уже не зайду ;)
...
Рейтинг: 0 / 0
Дiя :: reverse engineering
    #40129782
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... а зачем они AndroidManifest создают с расширением xml а содержимое - ну вообще ни разу ни xml.
...
Рейтинг: 0 / 0
Дiя :: reverse engineering
    #40129785
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем нашел какую-то тулзу. Называется 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
Дiя :: reverse engineering
    #40129786
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще кусочек забыл откопировать.


Код: 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
Дiя :: reverse engineering
    #40129790
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Дiя :: reverse engineering
    #40129791
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где можно найти ресурсы. 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
Дiя :: reverse engineering
    #40129792
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha

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

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

А если-бы это приложение трекало датчик GPS то как-бы выглядел этот permission?
...
Рейтинг: 0 / 0
Дiя :: reverse engineering
    #40129834
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
12 сообщений из 12, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Дiя :: reverse engineering
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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