Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Mad Antrax en 13 Septiembre 2013, 16:41 pm



Título: [Source] ROX StrEncryption
Publicado por: Mad Antrax en 13 Septiembre 2013, 16:41 pm
Os dejo un pequeño código para codificar cadenas de texto, ideal para camuflar string's en nuestros proyectos o para FUDear algún source ajeno.

El algoritmo no es muy complicado, pero cumple 3 requisitos que para mí son indispensables:

  • Se utiliza una key para la codificación. Un mismo texto se puede codificar de infinitas formas distintas.
  • La cadena codificada contiene caracteres imprimibles
  • Si se codifica un texto homogeneo (aaaaaaaaaa) devuelve una cadena heterogenea (7347137;;997<9)

Además, como se puede observar, el algoritmo utiliza la codificación Hexadecimal, pero la cadena final contiene caracteres que no son Hexadecimales. El texto codificado será de tamaño t(i) = t(x) * 2.

Código
  1. '***********************************************
  2. ' Name:     ROX Encryption 1.0
  3. ' Author:   MadAntrax
  4. ' Date:     13/09/2013
  5. ' URL:      foro.elhacker.net
  6. ' Usage:    eROX(string,password) to encrypt text
  7. '           dROX(string,password) to decrypt text
  8. '***********************************************
  9.  
  10. Function eROX(ByVal S As String, ByVal P As Integer) As String
  11.    For i = 1 To Len(S)
  12.        T1 = Hex(Asc(Mid(S, i, 1)))
  13.        If Len(T1) <> 2 Then T1 = Chr(48) & T1
  14.        T2 = T2 & T1
  15.    Next i
  16.    For i = 1 To Len(T2)
  17.        R = R & Chr(Asc(Mid(T2, i, 1)) Xor (i Mod (P + 1)) Xor ((P + 2) Mod i))
  18.    Next i
  19.    eROX = R
  20. End Function
  21.  
  22. Function dROX(ByVal S As String, ByVal P As Integer) As String
  23.    For i = 1 To Len(S)
  24.        R = R & Chr(Asc(Mid(S, i, 1)) Xor (i Mod (P + 1)) Xor ((P + 2) Mod i))
  25.    Next i
  26.    For i = 1 To Len(R) Step 2
  27.        F = F & Chr(Val("&H" & Mid(R, i, 2)))
  28.    Next i
  29.    dROX = F
  30. End Function
  31.  

Os dejo un ejemplo sobre como codificar/decodificar texto:

Código
  1. Private Sub Form_Load()
  2.    MsgBox eROX("elhacker.net", 7)
  3.    MsgBox dROX("765F7=3078<O::9;:N<H::9=", 7)
  4. End Sub
  5.  


Título: Re: [Source] ROX StrEncryption
Publicado por: noele1995 en 13 Septiembre 2013, 21:25 pm
Deberias usar DoEvents en los bucles for para que no se quede congelado el programa con cadenas largas. Interesante code ahora lo probare y asi trasteo un poco con vb6 :)


Título: Re: [Source] ROX StrEncryption
Publicado por: LeandroA en 14 Septiembre 2013, 03:46 am
Deberias usar DoEvents en los bucles for para que no se quede congelado el programa con cadenas largas. Interesante code ahora lo probare y asi trasteo un poco con vb6 :)

Porque?, el otro día comentaste lo mismo, el doevents, es opcional, si yo quiero velocidad, no lo voy a usar, ahora si quiero mantener la guid intacta, me parece bien.

Saludos.