Custom agent with Java bridge
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- java, javascript, python
- Ambito
- devtools, reverse-engineering
Direzione di ricerca
Inizia riproducendo l'esempio con le chiamate session.create_script e script.load di frida-python, usando frida_java_bridge.js e le sorgenti degli script separate mostrate nell'issue. Verifica se il caricamento del bridge può preservare il comportamento di Java.perform senza concatenare il codice sorgente. Il lavoro è completo quando l'agente personalizzato funziona con il bridge caricato separatamente e gli errori nello script dell'utente conservano numeri di riga utili.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi,
So with Frida 17, runtime bridges, such as the Java runtime bridge, must be added manually to a custom agent script.
This works for me when concatenating the bridge code with whatever other Frida script I want to load, and then calling script.load from python.
The problem is that it's harder to debug bugs in a Frida script, when the error message points to line ~13'000, because the buggy Frida script was appended to the bridge script. Is there a way to load the bridge script separately?
The following script shows the problem:
import frida
import os
import time
process = "SOME APP"
device = frida.get_usb_device()
pid = device.get_process(process).pid
session = device.attach(pid)
with open('/home/user/frida_java_bridge.js', 'r') as bridgefile:
bridge_source = bridgefile.read()
script1_source = """
console.log('hello form script1')
"""
script2_source = """
console.log('hello form script2a');
Java.perform(function() {console.log('inside Java runtime')});
console.log('hello form script2b');
"""
bridge= session.create_script(bridge_source)
script1 = session.create_script(script1_source)
script2 = session.create_script(script2_source)
print("one by one:")
bridge.load()
script1.load()
script2.load()
print("concatenated:")
script3 = session.create_script(bridge_source + script2_source)
script3.load()
output:
one by one:
hello form script1
hello form script2a
concatenated:
hello form script2a
inside Java runtime
hello form script2b
- Lingua principale
- Python
- Stelle
- 873
- Fork
- 173
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di frida/frida-python
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
frida/frida-python#262 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
frida/frida-python#247 · 2 commenti · 2 reazioni ·
-
After a long period of hooking applications on Ubuntu, Python and JavaScript are unable to interact. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
frida/frida-python#246 ·
-
How can I connect to Ipv6? Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
frida/frida-python#243 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 42/100
frida/frida-python#242 · 1 commento ·
Tutte le issue di frida/frida-python
Issue simili
-
area: harness bug status: needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Human-Agent-Society/reef#625 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
learningequality/kolibri#15351 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Name consistency Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
eellak/triplestore#65 · 1 commento ·