Newsgroup: it.comp.dotnet
Titolo: L'alternativa open-source a .NET Reflector

L'alternativa open-source a .NET Reflector (che a partire da marzo non
sarà più gratuito) si chiama ILSpy. Il core del progetto è mono-cecil
0.9.4 ed è basato su FW 4.0.
il codice decompilato, al momento, viene restituito solo in IL e c#
Per maggiori informazioni: 
www.ilspy.net
Marcello Cantelmo
www.cantelmosoftware.com

 Per maggiori informazioni: 
www.ilspy.net
Per una lista di alternative rimando a questo link:
http://stackoverflow.com/questions/2425973/open-source-alternatives-to-reflector
Monoflector credo sia molto promettente.
-- 
Raffaele Rialdi
Microsoft .NET MVP 
http://mvp.support.microsoft.com
 -
http://italy.mvps.org
 UGIdotNET - User Group Italiano .NET
http://www.ugidotnet.org
 Weblog: 
http://blogs.ugidotnet.org/raffaele

 Monoflector credo sia molto promettente.
ciao Raf,
e grazie per la precisazione.
Personalmente ritengo ILSpy (sviluppato dal team di SharpDevelop)
leggermente più avanti!
E' stata già implementata una procedura avanzata di "flow-analysis"
che -senza tanti giri di parole- elimina l'offuscazione (leggi:
"alterazione del control-flow") di alcuni obfuscator -> commerciali:
{s4}, ect., ect. e cloni (...chi legge il mio blog sa bene di cosa
parlo) -> 34zfusc4t0r, b4b3l, ect., ect.
Chi si è affidato a tali prodotti deve nuovamente correre ai ripari.
ora, servono, nuove idee di protezione!
ciao
Marcello Cantelmo
www.cantelmosoftware.com

 ora, servono, nuove idee di protezione!
Se io e mio cuggino ci mettiamo a parlare *completamente in chiaro*
fra noi, non ci capisce nessuno!! (Buttata li': tema interessante...)
-LV

 fra noi, non ci capisce nessuno!! (Buttata li': tema interessante...)
oops! ...hai ragione! ho sostituito "a, e" con "4, 3" per non fare
"pubblicità" ai cloni! ...(che hanno copiato le idee di
protezione...rilasciando inizialmente prodotti
gratuiti...trasformandoli poi a pagamento)...ed ora ricevono un
bell'effetto boomerang... ;-)
ciao
Marcello Cantelmo
www.cantelmosoftware.com

 ora, servono, nuove idee di protezione!
Il 90% delle volte uso reflector sullo stesso 
fx.net
 (questione di 
abitudine visto che sono disponibili i sorgenti per buona parte).
A me personalmente non interessa copiare linee di codice dai progetti 
opensource, figuriamoci da quelli compilati, quindi il fattore 
protezione non è di mio personale interesse se non per scopi didattici.
Ad ogni modo almeno con una lista ciascuno può provare e scegliere 
secondo il proprio criterio.


 fra noi, non ci capisce nessuno!! (Buttata li': tema interessante...)
Tema *decisamente* interessante.
Varrebbe la pena di sviluppare, no?
;-)
Ciao,
Giulio
-- 

 ;-)
A: Mi sento cosi' male... che mi consigli?
B: Smetti di prendere il caffe'!
*Sembra* innocua... a meno che tu non sappia che io non ho mai bevuto
caffe', e che piuttosto era un modo di mia nonna di prendere in giro
mio nonno su certe particolari sue idiosincrasie un po' discutibili...
(che non e' vero: e' solo un tentativo di esempio.)
http://voveo.blogspot.com/2008/10/evidentemente-niente.html
Non ho ancora una teoria: il concetto cui accenno sopra deriva
dall'analisi dei linguaggi naturali, in particolare dal rapporto fra
lingua e idioletto. La situazione ideale e' la seguente: se io e mio
cugino venissimo catturati dal nemico, come fare a comunicare senza
neanche dare a vedere che una particolare comunicazione e' in atto? Di
sicuro non scambiandoci frasi del tipo "rog ti permeli" (e se suonasse
come qualche dialetto nordico, non era mia intenzione...) Ma non c'e'
estrapolazione semplice/diretta ai *codici*, se non per il fatto che
la migliore protezione e' "fare tutto alla luce del sole"... una tesi
tanto radicale quanto bene si sposa con un principio cardine di
qualita' del codice: *leggibilita'*.
Comunque ci devo pensare meglio: piuttosto l'avevo buttata li' per
sentire se a chi si occupa piu' professionalmente di me di sicurezza
faceva suonare qualche campanello. In ogni caso temo sarebbe un tema
da approfondire in altra sede.
-LV

 da approfondire in altra sede.
sono daccordo con te circa l'affermazione "fare tutto alla luce del
sole" ...per le sole tecniche di encryption mediante crittografia a
chiave asimmetrica (rsa, ect.).
Se invece ti interessa approfondire qualche tecnica di protezione del
codice .NET che, comunque, non è proprio in sintonia con
*leggibilità* :-) ...perchè si cerca di generare "codice
polimorfico"...puoi seguire qualche mio post. ho iniziato l'argomento
qui: 
http://www.cantelmosoftware.com/dblog/articolo.asp?articolo=55
Marcello Cantelmo
www.cantelmosoftware.com

 qui:
http://www.cantelmosoftware.com/dblog/articolo.asp?articolo=55
Ho letto il tuo post. Prima di tutto vediamo se ho capito bene: la
trasformazione da 'Dim a As Int32 = -1' a 'Dim a As Int32 = 123 Or -1'
la farebbe l'obfuscator, non saremmo noi a scrivere quel codice,
giusto? (Scusa la domanda sicuramente banale, e' per esserne sicuro.)
Se ho capito bene, a parte che si avrebbe una perdita di efficienza
(ma forse questa e' una castronata nel caso il codice venga poi
ottimizzato dal compilatore JIT: ma qui semplicemente non so),
l'approccio che mostri mi sembra che sia facilmente aggirabile da un
decompilatore che sia in grado di applicare quelle stesse
ottimizzazioni sulle operazioni risolvibili a compile-time (direi,
tutte le operazioni deterministiche con operandi costanti) di solito
applicate, appunto, da un compilatore...
Ne approfitto invece per chiedere, da newbie naturalmente, di un altro
possibile approccio all'obfuscation: non basterebbe un Lint-ing su
tutti i *nomi* (per esempio, la variabile CostoProdotto diventa
'a127', la functione CalcolaCostoTotale diventa 'a128', ecc. ecc.) per
rendere qualunque programma non banale *quasi-completamente*
illeggibile?
-LV

 illeggibile?
IMHO se aumenti il costo di "decifrabilità" del SW oltre il costo 
dell'acquisto, hai già raggiunto il tuo obiettivo. :-)
ciao,
Giulio
-- 

 -LV
ciao,
Marcello Cantelmo

 illeggibile?
valuta tu stesso alcuni schemi: 
http://www.cantelmosoftware.com/download/g5.pdf
Marcello Cantelmo

 come sempre, imho! :-)
Yep, siamo qui per imparare. :)
-LV

 Yep, siamo qui per imparare. :)
+1
Marcello Cantelmo
www.cantelmosoftware.com