Domanda:
Estrazione di stringhe costruite dinamicamente in IDA
ekse
2014-01-25 05:02:38 UTC
view on stackexchange narkive permalink

A volte le stringhe vengono costruite dinamicamente nei programmi a causa dell'ottimizzazione del compilatore o semplicemente per nascondere le stringhe (ad esempio nel malware). Ad esempio:

enter image description here

Quando si visualizzano i byte come caratteri, possiamo vedere la stringa 'INVALID FILE SIZE' .

enter image description here

Qualcuno conosce uno script per estrarre quelle stringhe in IDA? Ne scriverò uno se non esiste, ma ho pensato di chiedere prima.

Ci scusiamo per la domanda duplicata, questa volta le mie competenze su Google mi hanno deluso. Grazie per le risposte, lo script ASERT fa esattamente quello che stavo cercando.
Due risposte:
alexanderh
2014-01-25 06:30:07 UTC
view on stackexchange narkive permalink

Seleziona il blocco di codice che desideri convertire e quindi esegui la seguente funzione IDAPython. Commenta la chiamata a MakeComm se non vuoi aggiungere un commento.

  def convert_to_char (): current = SelStart () end = SelEnd () tmp = '' while current < end: OpChr (current, 1) try: tmp + = chr (GetOperandValue (current, 1)) eccetto: tmp + = '_' current = NextHead (current) MakeComm (PrevHead (current), tmp)  

L'aggiunta di una logica per verificare l'operando potrebbe essere utile se nella regione selezionata sono presenti anche altre istruzioni.

jbh
2014-01-25 08:16:45 UTC
view on stackexchange narkive permalink

Trovare stringhe di byte usando IDAPython

Questo è esattamente quello che stavi cercando da Assert MindshaRE In effetti questo script passerà istruzioni per istruzioni per trovare le mosse dei caratteri ASCII in una memoria Posizione. Diventa fantasioso e utilizza QT per creare una tabella interattiva, tuttavia puoi eliminare quella parte e fare in modo che inserisca un commento nell'istruzione che viene utilizzata.



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...