Accesso alla stringa di chiamata dell'istruzione CALLOTHER Pcode tramite API Java?
Esiste un modo per accedere alla stringa di chiamata di un'istruzione CALLOTHER Pcode durante l'iterazione sul Pcode in Java? L'elenco seguente mostra un esempio di cosa intendo:
048
LAB_0001b034 XREF[1]: 0001b024(j)
0001b034 36 7f ff e6 rbit r7,r6
r7 = CALLOTHER "ReverseBitOrder", r6
In questo esempio, vorrei ottenere la stringa "ReverseBitOrder".
Sfortunatamente, non c'è alcun suggerimento nelle informazioni sull'istruzione ad eccezione di questo oggetto di input:
const:0x3c
Che non si traduce nella stringa data e non posso nemmeno fare clic sulla stringa per trovare una posizione in memoria. Ho anche esaminato i documenti API di Pcode, istruzioni ecc., Ma non ho trovato nulla di utile.
Risposte
C'è un ghidra_script che la corrente fa questo, vedi https://github.com/NationalSecurityAgency/ghidra/blob/master/Ghidra/Features/Base/ghidra_scripts/MarkCallOtherPcode.java
fondamentalmente:
op = getInstructionAt(toAddr(0x1b034)).getPcode()[0]
currentProgram.getLanguage().getUserDefinedOpName(op.getInput(0).getOffset()))