Я пытаюсь подключить незагруженный класс к Android APK с помощью adb и frida. Для этого я пытаюсь загрузить класс, включаемый в dex-файл, необычным способом. Я создаю новый класс с помощью Java.registerClass(), чтобы загрузить оригинал с реализованным целевым классом.
Однако, когда я запускаю код, мне приходится сталкиваться с проблемами:
- Во-первых, при использовании сценария all я получаю следующее сообщение:
Код: Выделить всё
{'type': 'error', 'description': "TypeError: cannot read property 'replace' of undefined", 'stack': "TypeError: cannot read property 'replace' of undefined
at w (frida/node_modules/frida-java-bridge/lib/types.js:334)
at registerClass (frida/node_modules/frida-java-bridge/lib/class-factory.js:153)
at registerClass (frida/node_modules/frida-java-bridge/index.js:271)
at bend4 (/script1.js:42)
at (/script1.js:48)", 'fileName': 'frida/node_modules/frida-java-bridge/lib/types.js', 'lineNumber': 334, 'columnNumber': 1}
- Когда я запускаю только первую строку, система отправляет отказ на необходимое разрешение для выполнения задачи. Следующий отказ:
Код: Выделить всё
{'type': 'error', 'description': 'Error: java.io.IOException: Permission denied', 'stack': 'Error: java.io.IOException: Permission denied
at (frida/node_modules/frida-java-bridge/lib/env.js:124)
at value (frida/node_modules/frida-java-bridge/lib/class-factory.js:1058)
at e (frida/node_modules/frida-java-bridge/lib/class-factory.js:580)
at apply (native)
at value (frida/node_modules/frida-java-bridge/lib/class-factory.js:963)
at e (frida/node_modules/frida-java-bridge/lib/class-factory.js:547)
at ue (frida/node_modules/frida-java-bridge/lib/class-factory.js:1190)
at fromBuffer (frida/node_modules/frida-java-bridge/lib/class-factory.js:1168)
at registerClass (frida/node_modules/frida-java-bridge/lib/class-factory.js:216)
at registerClass (frida/node_modules/frida-java-bridge/index.js:271)
at bend4 (/script1.js:42)
at (/script1.js:48)', 'fileName': 'frida/node_modules/frida-java-bridge/lib/env.js', 'lineNumber': 124, 'columnNumber': 1}
Скрипт перехвата:
Код: Выделить всё
function bend4(){
const p2 = Java.registerClass({
name:"com.example.orl",
// implements: [],
// superClass: targeted_class,
});
const p3 = p2.$new();
send(p3);
};
Java.perform(bend4());
Подробнее здесь: https://stackoverflow.com/questions/708 ... ot-working
Мобильная версия