Не удается использовать enumerateLoadedClasses

#java #frida

#java #фрида

Вопрос:

Я успешно запускаю сервер frida (с помощью su) и подключаю его к процессу без ошибок. Java.Interceptor работает нормально, но я не могу перечислять классы, я просто получаю Unexpected end of block ошибку.

 Java.perform(() => {
    Java.enumerateLoadedClasses({
        "onMatch": function(name) {
            console.log(name);
        },
        "onComplete": function() {
            console.log('Done!');
        }
    });
});
 

Затем:

 Error: Unexpected end of block
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/android.js:1175)
    at forEach (native)
    at Ot (frida/node_modules/frida-java-bridge/lib/android.js:1240)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/android.js:990)
    at _patchCode (native)
    at value (frida/runtime/core.js:163)
    at Dt (frida/node_modules/frida-java-bridge/lib/android.js:991)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/memoize.js:4)
    at Fe (frida/node_modules/frida-java-bridge/lib/android.js:475)
    at _enumerateLoadedClassesArt (frida/node_modules/frida-java-bridge/index.js:108)
    at enumerateLoadedClasses (frida/node_modules/frida-java-bridge/index.js:54)
    at <anonymous> (<input>:9)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/vm.js:12)
    at perform (frida/node_modules/frida-java-bridge/index.js:192)
    at <eval> (<input>:10)
    at eval (native)
    at fridaReplEvaluate (/repl.js:9)
    at apply (native)
    at <anonymous> (frida/runtime/message-dispatcher.js:13)
    at c (frida/runtime/message-dispatcher.js:23)
TypeError: cannot set property '_code' of null
    at Dt (frida/node_modules/frida-java-bridge/lib/android.js:991)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/memoize.js:4)
    at Fe (frida/node_modules/frida-java-bridge/lib/android.js:475)
    at _enumerateLoadedClassesArt (frida/node_modules/frida-java-bridge/index.js:108)
    at enumerateLoadedClasses (frida/node_modules/frida-java-bridge/index.js:54)
    at <anonymous> (<input>:9)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/vm.js:12)
    at perform (frida/node_modules/frida-java-bridge/index.js:192)
    at <eval> (<input>:10)
    at eval (native)
    at fridaReplEvaluate (/repl.js:9)
    at apply (native)
    at <anonymous> (frida/runtime/message-dispatcher.js:13)
    at c (frida/runtime/message-dispatcher.js:23)
 

Почему это не работает? Подробная информация:

  Android.........: 6.0.1
 Phone...........: Galaxy S5 Mini
 CPU ABI.........: armeabi-v7a
 Root access.....: Yes
 Java.available..: true
 Frida...........: frida-server-14.0.8-android-arm
 

Комментарии:

1. Это происходит со всеми приложениями или только с одним конкретным приложением?

2. @Robert все приложения.

3. Тогда в Frida может быть ошибка. Возможно, старая версия Android больше не тестируется. Я бы попытался понизить Frida до более старой версии (например, 12, 11 или старше) и протестировать еще раз.

4. как выглядит ваш скрипт на python?

5. Вам в конце концов удалось выяснить, в чем проблема?