Home | Chi sono | Contattami
 

Progr. lineare

Delphi
 
Componenti
  Database
 
Miei articoli

Windows

Miei articoli 

 

EXE Crypter


Oggi ho realizzato un exe crypter ossia un programma che prende in input un .exe e ne cripta il contenuto: il risultato è un exe che una volta lanciato, verrà eseguito esattamente come il .exe originale. Esistono vari modi per ottenere una versione criptata di un .exe. Quello che ho usato fa riferimento principalmente alla teoria sviluppata nell'articolo articolo75.htm e quindi alla possibilità di creare un processo facendo riferimento non ad un .exe presente su disco ma alla sua sequenza di byte presente in memoria. In pratica, il .exe viene criptato usando un qualsiasi algoritmo di criptazione (nel caso specifico ho usato l'algoritmo di Rijndael già implementato nell'articolo articolo76.htm, ma può essere usato un qualsiasi altro algoritmo) ed il risultato viene poi salvato come risorsa in un .exe che chiameremo stub. Lo stub , quando andrà in esecuzione estrarrà il contenuto della risorsa, ne effettuerà la decriptazione e la sequenza di byte risultante (che corrisponde quindi al .exe originale) verrà eseguita come processo utilizzando le procedure all'articolo articolo75.htm. Non è il caso di dilungarsi troppo nelle procedure, i sorgenti parlano per tutto; il crypter è stato implementato usando la libreria Kol/MCK per fargli avere una dimensione ridotta; lo stub invece non ha requisiti particolari. Lo stub viene inglobato come risorsa nel crypter.

Modifiche (26 Ottobre 2007)

Ho fatto un pò di modifiche al crypter; diciamo che in sostanza la modifica principale consiste nell'utilizzo delle funzioni esposte nell'articolo articolo99.htm per ottenere l'indirizzo delle api win32 utilizzate per il Memory Run (esecuzione di un .exe da un buffer in memoria invece che da disco) e per la manipolazione delle Risorse di un PE Executable. 

Sorgenti

Eseguibile

Update (25 Ottobre 2008)

Aggiorno con piacere dopo un anno questo articolo postando un video tutorial di Joker_Italy su come ottenere l'exe originale partendo dall'exe criptato: ovviamente il metodo di crittazione che ho esposto non rende impossibile ottenere l'exe originale (per andare in esecuzione, l'exe originale da qualche parte deve andare a finire) e questo video demo spiega in maniera chiara e dettagliata come ottenere l'exe originale con OllyDbg.

Unpacking_Example__Joker_Italy.7z

Update (7 dicembre 2008)

Ho fatto un pò di modifiche: ho aggiunto il controllo sull'output delle win32 e conseguente log dei vari eventuali errori, cambiato alcune parti di codice, ...ma soprattutto la modifica principale è il fatto che l'eseguibile criptato ora ha l'icona del programma originale; questa potrebbe sembrare una cosa stupida da farsi ma in realtà la gestione delle icone è   sufficientemente complicata da farti perdere alcuni giorni se la cosa non l'hai mai affrontata; fortunatamente il web è pieno di gente degna di nota che contribuisce con documentazioni e sorgenti. Di seguito il pacchetto con sorgenti ed exe di questa versione che ho battezzato come la 1.0: buon divertimento. 

CryptExe_1_0.7z

Data ultimo aggiornamento: 07/12/2008

 

 
 
Your Ad Here