Внутри java он вызывает встроенную функцию из something.so:
public static native byte[] functionName(int i, byte[] bArr);
Как видите, эта функция должна возвращать массив байтов. Итак, я попробовал это:
Interceptor.attach (Module.findExportByName ( "something.so", "functionName"), {
onEnter: function (args)
{
console.log("entered");
var ptr_data = env.getClassName(args[1]);
var length = args[2];
var data = Memory.readByteArray(ptr_data, length);
console.log(data);
}
});
Но Фрида не может вернуть никакого результата. Даже печать «вошла». Обратите внимание, что вы не можете увидеть имя «functionName», если открываете с помощью ida, потому что оно было удалено elf (.so)
Я понятия не имею, где находится это местоположение «functionName», и я хочу найти его, потому что оно содержит много мусорных кодов.
Есть ли другой способ найти это с помощью frida? Напишите пример и поделитесь со мной.