Подмена разрешения экрана на реальном устройстве (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)
    }

});
 

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