Themida: Protezione degli Eseguibili Windows

Quando gli sviluppatori creano un programma, spesso vogliono proteggerlo. Vogliono evitare che venga copiato illegalmente (pirateria) o che il codice venga analizzato per creare trucchi (nei videogiochi) o malware. Qui entra in gioco Themida.

In termini semplici, immagina di aver scritto un bellissimo libro (il software) e di non voler far leggere il finale a chi non ha pagato, o di non voler far copiare lo stile di scrittura. Themida non si limita a chiudere il libro in una scatola; traduce il libro in una lingua che solo tu conosci e mette delle trappole per chi cerca di tradurlo. Themida viene anche usato dai creatori di malware (per nascondere i virus agli antivirus). Questo software commerciale di protezione (chiamato packer o protector) è stato creato dalla società Oreans Technologies ed è famoso per essere uno dei sistemi di protezione più difficili da analizzare.

 

Quando un file è protetto da Themida, accadono tre cose fondamentali che rendono la vita difficile agli analisti:

A. Cifratura e Decrittazione a “Goccia”

Il codice originale nel file su disco è completamente cifrato (illeggibile).

  1. All’avvio, parte il codice di sicurezza di Themida.
  2. Questo codice controlla l’ambiente.
  3. Se è tutto sicuro, decifra il vero programma solo nella memoria RAM (non su disco).
  4. Spesso esegue il codice a piccoli pezzi, per poi ricifrarlo o cancellarlo subito dopo.

Risultato: Se provi a copiare il file dal disco, ottieni solo dati spazzatura. La “verità” esiste solo per pochi millisecondi nella memoria RAM.

B. Virtualizzazione del Codice (La CPU Finta)

Themida prende le istruzioni standard del computer (quelle che tutti i processori capiscono, come x86/x64) e le traduce in un linguaggio inventato.

Durante l’esecuzione, Themida crea una Macchina Virtuale interna (una CPU finta) per leggere questo linguaggio segreto.

  • Senza Themida: Il computer legge “Sposta A in B”.
  • Con Themida: Il computer legge una serie di istruzioni incomprensibili che simulano lo spostamento di dati in un mondo immaginario.
    Questo rende il codice incredibilmente difficile da leggere e pieno di operazioni apparentemente senza senso.

C. Anti-Debugging Aggressivo

Themida usa decine di trappole per capire se un Debugger (lo strumento usato dagli analisti come x64dbg) è collegato.



Di seguito una serie di segnali tipici che sei davanti a Themida:

  1. Il Debugger si stacca: Il programma sembra continuare a girare, ma il debugger non lo controlla più. Spesso Themida crea un “processo figlio” e nasconde il vero codice lì, lasciando il debugger attaccato a una scatola vuota.
  2. Crash e Blocchi: Il programma si chiude all’improvviso o blocca il computer.
  3. Trappole Temporali: Themida misura quanto tempo ci mette il processore a eseguire un calcolo. Se c’è un debugger collegato, il processore è impercettibilmente più lento: Themida se ne accorge e blocca tutto.
  4. Codice “Sporco”: Ti trovi davanti a milioni di salti inutili, codice morto e istruzioni false messe lì solo per farti perdere tempo.



Esistono però una serie di tool che permettono di bypassare molte protezioni di Themida come Scylla,ma questa è un’altra storia.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *