Фрида: Как отправить байт [] массив от javaScript в PythonJavascript

Форум по Javascript
Ответить
Anonymous
 Фрида: Как отправить байт [] массив от javaScript в Python

Сообщение Anonymous »

У меня есть скрипт Frida JS в сессии Python, и я пытаюсь передать массив байтов (из изображения растрового изображения) из среды JavaScript обратно в среду Python. Вот моя попытка: < /p>

Код: Выделить всё

import frida
import sys
import os

JS_SCRIPT = '''
setTimeout(function () {{
Java.perform(function () {{
// declare dependencies on necessary Java classes
const File = Java.use("java.io.File");
const Bitmap = Java.use("android.graphics.Bitmap");
const BitmapCompressFormat = Java.use("android.graphics.Bitmap$CompressFormat");
const BitmapConfig = Java.use("android.graphics.Bitmap$Config");
const ByteArrayOutputStream = Java.use("java.io.ByteArrayOutputStream");

// instantiate a new Bitmap object
const bitmap = Bitmap.createBitmap(100, 100, BitmapConfig.ARGB_8888.value);

// output bitmap to a byte stream in PNG format
const stream = ByteArrayOutputStream.$new();
const saved = bitmap.compress(BitmapCompressFormat.PNG.value, 100, stream);
console.log("[*] Compressed as PNG:", saved);

// get byte array from byte stream
const byteArray = stream.toByteArray();
console.log("[*] Byte array length:", byteArray.length);

// send the byte stream to the Python layer
send({{ type: "bitmap", page: pageNum }}, byteArray);
stream.close();
}});
}}, 1000);
'''

def on_message(message, data):
if message["type"] == "send" and message["payload"].get("type") == "bitmap":
page = message["payload"].get("page")
with open(OUTPUT_FILENAME, "wb") as f:
f.write(data)
print(f"[+] Saved page {page} as {OUTPUT_FILENAME}")
else:
print(f"[?] Unknown message: {message}")

def main():
device = frida.get_usb_device(timeout=5)
session = device.attach(pid)
script = session.create_script(JS_SCRIPT)
script.on("message", on_message)
script.load()
device.resume(pid)

if __name__ == "__main__":
main()
Проблема возникает в вызове Send () Потому что второй аргумент Bytearray не является указателем:

Код: Выделить всё

Error: expected a pointer

Для меня неясно, как попасть в Bytearray в формат, который можно отправить с помощью функции send () , и у меня возникают проблемы с поиском решения в Docs Frida.

Подробнее здесь: https://stackoverflow.com/questions/796 ... -to-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»