Android v 6.0.1
Frida v 12.2.19
Я новичок в Frida и не знаю, как решить эту проблему.Функция, на которую я нацеливаюсь, находится в пути com -> appname -> folder -> xyz.class
В xyz.class класс вложен так:
public abstract class abc
{
public string dosomething()
{
StringBuilder localStringBuilder = new StringBuilder();
localStringBuilder.append(getClass().getSimpleName());
localStringBuilder.append("Value 1=");
localStringBuilder.append(this.value1);
localStringBuilder.append("Value 2=");
localStringBuilder.append(this.value2);
return localStringBuilder.dosomething();
}
}
I 'Мы написали этот хук, чтобы попытаться вывести и value1, и value2 на консоль.
custom_script.js:
setImmediate(function() {
console.log("[*] Starting script");
Java.perform(function () {
var Activity = Java.use("com.appname.folder.xyz$");
Activity.dosomething.overload().implementation = function () {
var datastring = localStringBuilder.dosomething();
console.log(datastring);
return datastring;
};
});
})
Я не уверен, как обвести путь в функции Java.use (), нужно ли мне ставить xyz.class или xyz $ илиxyz.class.abc $.
Error: java.lang.ClassNotFoundException: Didn't find class "com.appname.folder.xyz$" on path... etc.
Если я указываю путь как com.appname.folder.xyz.class.abc $, я просто получаю ошибку «Процесс завершен».
Я использую команду Frida на терминале:
frida -U -f com.appname -l custom_script.js --no-pause
Что не так в моем скрипте?
Редактировать: Добавлено слово в заголовок