[Source] ROX StrEncryption

Iniciado por Mad Antrax, 13 Septiembre 2013, 16:41 PM

0 Miembros y 2 Visitantes están viendo este tema.

Mad Antrax

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 (vb) [Seleccionar]
'***********************************************
' Name:     ROX Encryption 1.0
' Author:   MadAntrax
' Date:     13/09/2013
' URL:      foro.elhacker.net
' Usage:    eROX(string,password) to encrypt text
'           dROX(string,password) to decrypt text
'***********************************************

Function eROX(ByVal S As String, ByVal P As Integer) As String
   For i = 1 To Len(S)
       T1 = Hex(Asc(Mid(S, i, 1)))
       If Len(T1) <> 2 Then T1 = Chr(48) & T1
       T2 = T2 & T1
   Next i
   For i = 1 To Len(T2)
       R = R & Chr(Asc(Mid(T2, i, 1)) Xor (i Mod (P + 1)) Xor ((P + 2) Mod i))
   Next i
   eROX = R
End Function

Function dROX(ByVal S As String, ByVal P As Integer) As String
   For i = 1 To Len(S)
       R = R & Chr(Asc(Mid(S, i, 1)) Xor (i Mod (P + 1)) Xor ((P + 2) Mod i))
   Next i
   For i = 1 To Len(R) Step 2
       F = F & Chr(Val("&H" & Mid(R, i, 2)))
   Next i
   dROX = F
End Function


Os dejo un ejemplo sobre como codificar/decodificar texto:

Código (vb) [Seleccionar]
Private Sub Form_Load()
   MsgBox eROX("elhacker.net", 7)
   MsgBox dROX("765F7=3078<O::9;:N<H::9=", 7)
End Sub
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

noele1995

#1
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 :)

LeandroA

Cita de: 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 :)

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.