Pillole di Malware Analysis: la Dead Code Insertion
- Antonio Capobianco
- Visite: 5372
Nella pillola precedente ho parlato dei malware metamorfici e della loro capacità di modificare il proprio codice sorgente. Le principali techiche utilizzate sono la Dead Code Insertion, il Soubroutine Reordering o la Code Transposition.
La tecnica del Dead Code Injection prevede di inserire codice, nel proprio codice sorgente, che non fa nulla.
Questo si può fare inserendo delle istruzioni NOP che anche non modificando il comportamento del malware,ne modificano il sorgente
Un'altro esempio di dead code insertion è la seguente sequenza di istruzioni:
1 INC EDX
2 PUSH EDX
3 DEC BYTE PTR SS:[ESP]
4 DEC EDX
In pratica questa sequenza prevede di (1) incrementare il valore del registro EDX, (2) inserirlo nello stack (questo comporta l'incremento di un BYTE del registro ESP), (3) decrementare il registro ESP (in pratica si annulla il push precedente) ed infine (4) si decrementa EDX che con la prima istruzione era stato incrementato.
Ecco fatto, una sequenza di 4 instruzioni che alla fine non fa nulla!
La tecnica del Dead Code Injection prevede di inserire codice, nel proprio codice sorgente, che non fa nulla.
Questo si può fare inserendo delle istruzioni NOP che anche non modificando il comportamento del malware,ne modificano il sorgente
Un'altro esempio di dead code insertion è la seguente sequenza di istruzioni:
1 INC EDX
2 PUSH EDX
3 DEC BYTE PTR SS:[ESP]
4 DEC EDX
In pratica questa sequenza prevede di (1) incrementare il valore del registro EDX, (2) inserirlo nello stack (questo comporta l'incremento di un BYTE del registro ESP), (3) decrementare il registro ESP (in pratica si annulla il push precedente) ed infine (4) si decrementa EDX che con la prima istruzione era stato incrementato.
Ecco fatto, una sequenza di 4 instruzioni che alla fine non fa nulla!
Inserendo questa sequenza all'interno del proprio codice sorgente il malware di fatto si automodifica polimorficamente senza alterare il proprio comportamento