#frida
#фрида
Вопрос:
// test.ts
Java.perform(function() {
var malloc = new NativeFunction(
Module.findExportByName('libc.so', 'malloc'),
'pointer', // ret type
['uint32'] // arg type
);
var p = malloc(4);
p.readU8(); // error
});
Я пытаюсь скомпилировать вышеупомянутый файл .ts в .js с помощью frida-compile. Я попытался прочитать из переменной p с .readU8()
помощью, но возникает ошибка: свойство ‘readU8’ не существует для типа ‘NativeReturnValue’
Из исходного кода это определяется как:
type NativeReturnValue = NativePointer | UInt64 | Int64 | number | boolean | any[];
Я мало знаю о TypeScript, кажется NativeReturnValue
, это что-то вроде NativePointer
, но как использовать?
Спасибо.
Комментарии:
1. Насколько я понимаю, если вы укажете
pointer
в качестве ReturnType, то возвращаемое значение будет не aNativePointer
, а просто числом, поэтому вам нужно обернуть егоnew NativePointer(p)
или сократитьptr(p)
. Затем вы можете вызвать.readU8()
.2. @Robert попробовал
new NativePointer(p).readU8()
иptr(p).readU8()
, но все равно ошибка.3. Если возвращаемое значение
p
не0
равно, вы можете попробоватьMemory.readU8(p);
4. @Robert, это в файле .ts , он использует
frida-gum
, нетMemory.readU8()
5. Почему бы не использовать Frida напрямую? Может быть, ваша проблема просто в frida-gum.