Newsgroup: it.comp.lang.visual-basic
Titolo: Obfuscated Visual Basic

Parecchi anni fa si teneva una competizione tra programmatori C chiamata
"Obfuscated C" in cui ognuno faceva un programma con lo scopo di rendere
praticamente impossibile capire cosa facesse il codice senza mandarlo in
esecuzione.
In C si facevano anche delle cose carine, tipo ridefinire la sintassi dei
comandi tramite Define, oppure dare una forma al listato in modo che
guardandolo da lontano assumesse la forma di un disegno.
In VB non si può arrivare a questo livello di finezze, comunque ci ho
pensato un pochino ed ho partorito un po' di codice illeggibile. Ovviamente
lo mando nella speranza che qualcuno riesca a produrre qualcosa di ancora +
illeggibile.
Prima di tutto creare un progetto con una form che contenga un pulsante
Command1 che abbia nell'evento Click la seguente riga di codice:
    l1ll1l1 Me
Poi inserire nel progetto un modulo e copiarci il seguente codice:
Const lll1 = 1
Const ll11 = 1 + lll1
Const ll = 1 + lll1 + ll11 + ll11
Type l
   lll As String
   ll1 As Integer
   l11 As Long
End Type
Const ETO_OPAQUE = 2
Private Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal _
hdc As Long, ByVal x As Long, ByVal y As Long, ByVal wOptions As Long, ByVal
_
lpRect As Any, ByVal lpString As String, ByVal nCount As Long, lpDx As Long)
_
As Long
Function l11(l As l) As l
    l11.ll1 = 11 * ll + l.ll1 + ll
End Function
Function l111(l As l) As l
    Dim l1 As l
    l.ll1 = 11 * Len(l.lll)
    l111.lll = l.ll1
End Function
Sub l1ll1l1(l As Form)
    Dim l1 As l
    Dim ll(1 + 1) As l
    Dim lll(11) As Byte
    Dim llll(11) As Long
    Dim l11l As Variant
    Dim a As String
    l.AutoRedraw = 0
    l.Command1.Visible = False
    l.Refresh
    ll(1) = l11(l1)
    ll(lll1 + 1).ll1 = l11(l1).ll1 + 11 * (ll11 + lll1) - ll11 - ll11
    For l1.ll1 = 0 To 11
        llll(l1.ll1) = 11
    Next
    For l1.ll1 = 1 To UBound(ll)
        lll(l1.ll1) = ll(l1.ll1).ll1
        l11l = l11l & Chr(lll(l1.ll1))
    Next
    l11l = l11l & "ll"
    l1.lll = "1l1l1ll11l"
    l11l = l11l & Chr(l111(l1).lll + 1)
    l1.lll = "111"
    l11l = l11l & Chr(l111(l1).lll - 1)
    l1.lll = "1l1l1ll11l1"
    l11l = l11l & Chr(l111(l1).lll - 1 - 1)
    l1.lll = "1l1l1ll11l"
    l11l = l11l & Chr(l111(l1).lll + 1)
    l1.lll = "1l1l1ll11l"
    l11l = l11l & Chr(l111(l1).lll + ll11 + ll11)
    l11l = l11l & "l"
    l1.lll = "1l1ll1l11"
    l11l = l11l & Chr(l111(l1).lll + 1)
    ExtTextOut l.hdc, 0, 30, 2, ByVal 0&, l11l, 11, llll(0)
End Sub
Non vi aspettate grandi cose in output, ma almeno vi assicuro che non vi
formatta l'hard disc. 8-)
Ciao
*Roby*

 esecuzione.
[Zacchete]
Bello e molto interessante.
...ma se tu vedessi alcuni dei miei programmi di una decina di anni fa...
E non lo facevo neanche apposta ! ;-))
Comunque, se trovo un po' di tempo mi piacerebbe provare.
Bye, G. 
-- 
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------
Real E-address: 
gaet...@hotmail.com

Fichissssimo !
utile per chi vuole i sorgenti... ;-)
Ciao, Claudio G.