Прежде всего, вот код простой Java-программы:
Код: Выделить всё
import java.io.IOException;
import java.io.InputStreamReader;
public class Program{
public static void main(String[] args) {
System.load("/data/local/tmp/frida-gadget.so");
System.out.println("Hello World");
System.out.println("Press Enter to continue...");
try {
new BufferedReader(new InputStreamReader(System.in)).readLine();
} catch (IOException e) {
e.printStackTrace();
}
test();
}
public static void test() {
System.out.println("Hello World 2");
}
}
Я упаковал файл groups.dex в jar-архив и отправил его на свое устройство Android (Android 11).
Я также отправил файл frida-gadget.so (arm64 версии 16.1.3) в /data/local/tmp, а также файл frida-gadget.config и скрипт. Файл .js.
Вот мой файл frida-gadget.config:
Код: Выделить всё
"interaction": {
"type": "script",
"path": "/data/local/tmp/script.js"
}
}
Код: Выделить всё
console.log("frida stared without issues!");
console.log(Java.available)
console.log(Process.id)
Java.perform(function() {
console.log("inside Java.perform()")
try {
var ProgramClass = Java.use('Program');
ProgramClass.test.implementation = function() {
console.log("Hooked Hello World 2");
this.test(); // Call the original function
};
} catch(e) {
console.error("Error during instrumentation: " + e.message);
}
});
Код: Выделить всё
adb shell CLASSPATH=/sdcard/program.jar exec app_process /system/bin/ ProgramЧто я пробовал до сих пор:
Я также поставил
Код: Выделить всё
"java":
{
"enabled":true
}
Я заметил, что как только я включаю System.load("/data/ local/tmp/frida-gadget.so") в моей программе, она завершает выполнение, но возвращается с кодом завершения -1.
Но в любом случае я не могу найти никакого значимого сообщения об ошибке ни в logcat, ни в консоли.
Я также пытался обернуть весь скрипт блоком try catch, но безрезультатно.
Мой вопрос теперь заключается в том, сталкивался ли кто-нибудь с подобными проблемами или знает ли кто-нибудь, существуют ли конкретные меры безопасности. на Android, которые не позволяют инструментировать код здесь. (У меня было намерение использовать Frida-Gadgets специально для устройств без рута).
Я вынужден использовать app_process по вполне конкретным причинам, это всего лишь тестовая программа.
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/768 ... pp-process
Мобильная версия