Domanda:
Come faccio a conoscere i byte corrispondenti a un'istruzione nella visualizzazione esadecimale in IDA?
Holmes.Sherlock
2017-01-17 00:17:27 UTC
view on stackexchange narkive permalink

Quando seleziono un'istruzione di assemblaggio nella vista grafico IDA, voglio vedere i byte esatti corrispondenti all'istruzione selezionata quando passo alla vista He in IDA. Come posso farlo?

Non hai bisogno del visualizzatore esadecimale per questo. In (dalla memoria) Opzioni di visualizzazione, è possibile selezionare una casella per ottenere i byte di origine in una colonna accanto alle effettive istruzioni disassemblate.
Non riesco a individuare niente del genere
Trovalo: https://www.hex-rays.com/products/ida/support/idadoc/605.shtml
Due risposte:
NirIzr
2017-02-17 00:17:35 UTC
view on stackexchange narkive permalink

Il modo più semplice per farlo è semplicemente aprire la finestra Opzioni -> Generale -> Disassemblaggio e impostare il campo "Numero di byte codice operativo (grafico)" sul numero di byte codice operativo che desideri che IDA ti mostri sia il grafico che le viste dell'elenco di disassemblaggio lineare.

Ecco come dovrebbe apparire la modifica della configurazione:

enter image description here

E il risultato sarà simile a quello che si vede nell'immagine seguente:

enter image description here

Nota che vengono visualizzati al massimo 6 byte, e un segno più viene utilizzato per indicare che un codice operativo specifico contiene byte aggiuntivi.

yellowbyte
2017-01-17 03:25:38 UTC
view on stackexchange narkive permalink

IDA in realtà lo fa già per te. Posiziona il cursore del mouse sull'istruzione che ti interessa, vai alla visualizzazione esadecimale e i byte corrispondenti a tale istruzione verranno evidenziati.

Se vuoi vedere i byte corrispondenti a più istruzioni, puoi scrivi uno script IDAPython per farlo, come questo: (prima usa il cursore per selezionare le istruzioni, quindi esegui questo script)

  start = idc.SelStart () end = idc.SelEnd ( ) print hex (start), hex (end) while start Fine <: print hex (idc.Byte (start)) start = idc.NextAddr (start)  


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...