Supponiamo che sia stata data la seguente riga in Ida Pro:
mov [rsp + 3F8h + var_3F8], 0
Come posso analizzare e accedere al elementi all'interno di []
? Cosa ho provato:
-
idc.GetOpnd (addr, n)
# restituisce una stringa "[rsp + 3F8h + var_3F8]
" -
idc.GetOperandValue (addr, n)
# restituisce4
, che è spiegato nel idc.py come segue
def GetOperandValue (ea, n): "" "
Ottieni il numero utilizzato nell'operandoQuesta funzione restituisce un numero immediato utilizzato nell'operando
@param ea: indirizzo lineare dell'istruzione @param n: il numero dell'operando
@return:
valore operando è un valore immediato => valore immediato
operando ha uno spostamento => spostamento
operando è un riferimento di memoria diretto => indirizzo di memoria
l'operando è un registro => numero di registro
l'operando è una frase di registro => numero di frase
altrimenti => -1 "" "
Come posso accedere agli elementi della" frase ", ad esempio rsp
, 3F8h
e var_3F8 ? Sto cercando qualcosa del genere:
my_op_phrase = idc.ParseOperandPhrase (ea, n) my_op_phrase [0] # -> 'rsp'my_op_phrase [0] .type # -> idaapi.o_regrase [1] # -> 0x3F8hmy_op_phrase [1] .type # -> idaapi.o_immmy_op_phrase [2] # -> 'var_3F8'…
È possibile o qualcosa di sbagliato / p>