Domanda su "FUDing" con editor esadecimale

1

Vedo molti materiali in Internet su questa tecnica. Non sono molto interessato ai malware, ma sono curioso di sapere quando si cambiano i byte in un exe con altri byte, questo non corromperebbe l'exe? Posso dare dei video di esempio se qualcuno non ha capito la mia domanda.

    
posta user47745 03.06.2014 - 19:49
fonte

2 risposte

2

Dovrai caricarlo in uno strumento come OllyDbg e avrai le istruzioni e potrai modificarle per fare lo stesso tipo di lavoro delle istruzioni alternative e poi salvarle in file eseguibili in modo da escludere la firma dei byte contro il tuo file.

È possibile riscrivere il codice per fare lo stesso lavoro. Facciamo uno scenario molto semplice. Immagina di aver visto nell'eseguibile. Farò finta che questo sia un eseguibile x86:

004CFF64 - B8 05000000           - mov eax,00000005
004CFF69 - B8 07000000           - mov eax,00000007

Quindi, 10 byte in totale.

Potresti riscriverlo come:

004CFF64 - B8 05000000           - mov eax,00000007
004CFF69 - 90                    - nop 
004CFF6A - 90                    - nop 
004CFF6B - 90                    - nop 
004CFF6C - 90                    - nop 
004CFF6D - 90                    - nop 

Che è ancora 10 byte in totale ma la firma è ora cambiata. Il motivo per cui abbiamo utilizzato un NOP (nessuna istruzione preformata) è perché non fa altro che usare lo spazio.

Ora, nella situazione del mondo reale non ci si imbatte così facilmente che dovrai usare code-caves e così via. Ad esempio, diciamo che era necessario scrivere più di 10 byte di codice, quindi non si può davvero farlo poiché si sovrascriverà l'istruzione successiva che corromperebbe l'eseguibile. Bene, quello che fai è usare JMP istruzioni per liberare spazio in memoria che poi farai tutto il codice lì e userete JMP per tornare alla normale esecuzione del codice.

Le firme dei byte sono generalmente eseguite su tutto il file e sulle parti statiche dell'eseguibile. Ad esempio .text (talvolta noto come .code ecc.) Che è la parte eseguibile del codice e le aree di memoria non sono scrivibili in modo che non cambino anche se è possibile sovrascrivere le autorizzazioni con VirtualProtect API.

Potrei entrare in molti più dettagli sull'offuscamento, su come funzionano le firme in byte e così via, ma spero che risponda alla tua domanda se non lasci un commento e io espanderò la mia risposta.

    
risposta data 04.06.2014 - 00:00
fonte
0

È potrebbe facilmente corrompere un exe ma ci sono molti dati in un exe che non è effettivamente eseguibile. Anche molto raramente può essere eseguito e quindi potrebbe essere cambiato senza essere scoperto per molto tempo.

Ci sono strumenti che possono aiutare con questo tipo di esercizio senza cambiare il codice reale. Cercano le "risorse" definite nell'eseguibile. Tipicamente stringhe contenenti descrizioni, dati fissi, quel genere di cose. "Resource Hacker" è uno di questi strumenti.

    
risposta data 03.06.2014 - 22:07
fonte

Leggi altre domande sui tag