Newsgroup: it.comp.lang.visual-basic
Titolo: dubbi sulla "DECOMPILAZIONE"

Niente paura, non voglio chiedere come si fà!
Solo che vedendo quante persone dimostrano interesse per l'argomento mi
viene da chiedere:
Ma quanto è sicuro il nostro lavoro? Fino a che punto un programmatore
disonesto può lavorare sui nostri eseguibili? Quali sono le informazioni che
può tirare fuori dai nostri piccoli o grandi lavori?
Chi mi sa rispondere?
Ciao

 ha scritto nel messaggio
news:ahr23n$fkr$1...@lacerta.tiscalinet.it...

Ma secondo me se un tale è talmente bravo riuscire disassemblando
un programma da me creato a ricostruire il mio programma, non ha
bisogno di copiare il mio codice o il mio programma.
Sinceramente io sono per la condivisione, non ho mai nascosto
(se non per vergogna) il mio codice sorgente, questo però potrebbe
essere dato dal fatto che faccio programmi troppo specifici che non servono
a centinaia di persone.
Sinceramente la decompilazione può essere un problema per me
a livello di sicurezza, capire determinati algorimti può aiutare a violare
sistemi di protezione (vedi protezioni dei giochi).
Per il resto ci sono programmi che proprio non si possono copiare.
Mi ha fatto ridere il casino esploso quando è venuta
fuori la notizia, non so se vera o falsa che avevano rubato il codice
sorgende di M$ Word.
Cavolo saranno milioni di righe di codice a chi può servire una cosa
del genere. Ci vuole un team di sviluppatori solo per capire cosa
faccia.
Anche se la M$ lo rendesse pubblico a cosa servirebbe?
A parte vedere le porcherie che fanno e giocare a personalizzare il
programma
(cosa che probabilmente io non farei mai) non capisco a cosa possa servire.
Tornando alla tua questione, dipende cosa devi proteggere, sicuri al 100%
non si è mai, il problema è ne vale la pena?
                                                    danilo
<<--A volte più che proteggere un'informazione è importante
proteggere l'informazione che quella informazione esista-->>

 Chi mi sa rispondere?
con un debugger specifico tipo Smarcheck 6 della Numega (lo puoi trovare in
un qualsiasi sito di warez), l'hacker (o lamer...) può vedere passo dopo
passo le istruzioni (ma non è un decompilatore!). In pratica se il software
vuole un codice in base al nome (per esempio) e al codice macchina, l'hacker
riesce a creare un key-generator (una sorta di crack) in 15 minuti senza
alcuna fatica.
Un modo per proteggersi da questo tipo di attacco è quello di un controllo
dei programmi in esecuzione (se è attivo un debugger tipo SmartCkeck,
SoftIce, ecc. il programma si blocca) ma ci sono tools che tolgono questo
controllo (vai a vedere su "Debugger" al sito 
http://protools.cjb.net
), come
è successo alla protezione Vbox che contiene un blocco se è in esecuzione
SofIce & simili.
Poi ci sono i decompilatori. Al mondo esistono SOLO quelli per Visual Basic
a 16 bit (1-2-3-4 e 5) e decompilano un programma dando ANCHE i sorgenti. Il
problema è che i form sono in formato binario e non in testo, quindi bisogna
avere anche Visual Basic 4 a 16 bit; inoltre il codice (come ho già detto in
qualche post) non è semplice da capire (tutte le variabili, sub, function
hanno dei nomi da codice tipo 075463467), quindi o uno conosce PERFETTAMENTE
cosa copiare oppure non riesce (già qui un lamer sarebbe nei casini).
Un modo come altri di prottegersi da questi decompilatori (anche se mi è
inutile... a 16 bit...) è quello di comprimere il programma. Chiaramente
basta o usare ProcDump (sempre su 
protools.cjb.net
) per "estrarre" il
programa originale dalla memoria oppure un "estrattore" specifico per la
compressione usata. Molti compressori attuali commerciali usano delle
protezioni speciali in modo che l'estrattore si blocchi ;) ma l'hacker trova
prima o poi una soluzione.
Esiste un decompilatore per VB 5 o 6 e si trova su 
protools.cjb.net
 ma è
fermo da qualche mese e non mostra il codice (ma mostra la lista dei form e
dei controlli usati). Esiste qualcosa di simile ma ancora imperfetto con il
codice sorgente su 
planetsourcecode.com
 (fai attenzione perchè si blocca
quasi sempre....).
Chiaramente questa è una veloce paronamica... però spero di aver risposto
alla tua domanda: non esiste NULLA di sicuro al 100% ;) ciao