Подмена разрешения экрана на реальном устройстве (ZDE + Frida)

3bdhmgc7

Новичок
Регистрация
29.05.2023
Сообщения
1
Благодарностей
0
Баллы
1
Приветствую всех, столкнулся с такой проблемой, как подмена разрешения экрана на реальном устройстве с помощью инжекта кода Frida
Проблема в том, что приложение вызывает функцию getWindowManager и я так полагаю, что при получении разрешения экрана, оно не вызывает функцию getMetrics, предположительно, оно используется функцию getDefaultDisplay() и получает оттуда данные, подмена функции и значений в getMetrics не дает результатов, приложение все равно видит оригинальные параметры устройства, изменить данные в getDefaultDisplay к сожалению я не нашел как
JavaScript:
Java.perform(function() {
try {

    var display = Java.use('android.view.Display');
    var Activity = Java.use("android.app.Activity");

    display.getMetrics.overload('android.util.DisplayMetrics').implementation = function(metrics) {
        console.log('android.util.DisplayMetrics getMetrics');
        this.getMetrics(metrics);
        metrics.widthPixels.value = 1920;
        metrics.heightPixels.value = 1080;
        metrics.densityDpi.value = 420;
    }

    Activity.getWindowManager.implementation = function() {
        console.log('getWindowManager');

        var windowManager = this.getWindowManager();
        var display = windowManager.getDefaultDisplay();
        var metrics = Java.use("android.util.DisplayMetrics").$new();

        display.getMetrics(metrics);

        console.log(windowManager.getDefaultDisplay());

        metrics.widthPixels.value = 1920;
        metrics.heightPixels.value = 1080;
        metrics.densityDpi.value = 420;

        console.log(metrics);

        console.log(windowManager.getDefaultDisplay());

        return windowManager;
    };

    } catch (error) {
        console.log('Msg:' + error.stack)
    }

});
 

nvrskozzy

Client
Регистрация
11.07.2025
Сообщения
195
Благодарностей
18
Баллы
18
а без фриды как менять разрешение?
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 598
Благодарностей
914
Баллы
113
а без фриды как менять разрешение?
через adb команду

Так ставить

C#:
instance.DroidInstance.Input.Shell($"adb shell wm size {project.Profile.DisplayWidth}x{project.Profile.DisplayHeight}", 10000);
instance.DroidInstance.Input.Shell($"adb shell wm density {project.Profile.DisplayDensity}", 10000);
instance.DroidInstance.Screen.ResetScreen();
Так сбрасывать


C#:
instance.DroidInstance.Input.Shell($"adb shell wm size reset", 10000);
instance.DroidInstance.Input.Shell($"adb shell wm density reset", 10000);
instance.DroidInstance.Screen.ResetScreen();
 
Последнее редактирование:

nvrskozzy

Client
Регистрация
11.07.2025
Сообщения
195
Благодарностей
18
Баллы
18
Спасибо, а есть ли вариант подменить только для приложения, чтобы оно думало что разрешение заданное, а по факту не менять его? летят скрипты часто от реального изменения экрана, особенно клик по картинке
 
Последнее редактирование:

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 598
Благодарностей
914
Баллы
113
Спасибо, а есть ли вариант подменить только для приложения, чтобы оно думало что разрешение заданное, а по факту не менять его? летят скрипты часто от реального изменения экрана, особенно клик по картинке
не пробовал, у меня ничего не летит, главное разрешение не ставить больше фактического на устройстве
 

nvrskozzy

Client
Регистрация
11.07.2025
Сообщения
195
Благодарностей
18
Баллы
18
не пробовал, у меня ничего не летит, главное разрешение не ставить больше фактического на устройстве
пропорции меняются, размер кнопок тоже и поэтому уже не срабатывают клики по картинке, приходится играться с параметрами и то не всегда помогает, или до кнопки уже надо свайпать, а этого нет в проекте, некоторые браузеры не отдают дерево к сожалению(
профиль кстати генерирует всегда одно и тоже разрешение у меня почему-то и оно ниже нужного, твой файл выручает с моделями и разрешениями
 
Последнее редактирование:

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 598
Благодарностей
914
Баллы
113
пропорции меняются, размер кнопок тоже и поэтому уже не срабатывают клики по картинке, приходится играться с параметрами и то не всегда помогает, или до кнопки уже надо свайпать, а этого нет в проекте, некоторые браузеры не отдают дерево к сожалению(
профиль кстати генерирует всегда одно и тоже разрешение у меня почему-то и оно ниже нужного, твой файл выручает с моделями и разрешениями
ну собственно файл для этого и сделан, когда зенодроид генерирует профиль надо находить это устройство в моём списке и от туда в профиль прописывать параметры экрана, что бы в дальнейшем подмену сделать нормально
 
  • Спасибо
Реакции: nvrskozzy

nvrskozzy

Client
Регистрация
11.07.2025
Сообщения
195
Благодарностей
18
Баллы
18
ну собственно файл для этого и сделан, когда зенодроид генерирует профиль надо находить это устройство в моём списке и от туда в профиль прописывать параметры экрана, что бы в дальнейшем подмену сделать нормально
непонятно почему зенно не занесли к себе в базу твой файл)
 
Последнее редактирование:

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)