Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: BlackZeroX en 6 Diciembre 2009, 08:30 am



Título: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: BlackZeroX en 6 Diciembre 2009, 08:30 am
No tenia nada que hacer y ademas al fijarme en el post donde publica Sharki su proyecto Personal Algorith el cual solo crea un entador por caracteres estaticos desidi crear un Encoder and decoder o mejor conosidos como

Encryptador con su respectivo desencrypotador

Solo que este SI FUNCIONA POR CONTRASEÑA para Encryptar/Desencryptar los datos (Solo es usada para encryptar/desencryptar de Hecho asi que no seria realmente una Contraseña xP).

Es un codigo Sencillo!¡.

Código
  1.  
  2. ''   /////////////////////////////////////////////////////////////
  3. '   // Autor:   BlackZeroX ( Ortega Avila Miguel Angel )       //
  4. '   //                                                         //
  5. '   // Web:     http://InfrAngeluX.Sytes.Net/                  //
  6. '   //                                                         //
  7. '   //    |-> Pueden Distribuir Este Codigo siempre y cuando   //
  8. '   // no se eliminen los creditos originales de este codigo   //
  9. '   // No importando que sea modificado/editado o engrandesido //
  10. '   // o achicado, si es en base a este codigo                 //
  11. '   /////////////////////////////////////////////////////////////
  12.  
  13. Option Explicit
  14. Enum tAcciones
  15.    Encryptar = 0
  16.    Desencryptar
  17. End Enum
  18. Public Sub DecodeEncodeString(ByRef Data As String, Pass As String, Optional Accion As tAcciones = Encryptar)
  19. Dim PosPass             As Long
  20. Dim CharData            As String * 1
  21. Dim i                   As Long
  22.    If Pass <> "" Then
  23.        For i = 1 To Len(Data)
  24.            CharData = Mid(Data, i, 1)
  25.            PosPass = IIf((PosPass + 1) > Len(Pass), 1, PosPass + 1)
  26.            Mid(Data, i, 1) = DecodeEncodeChar(CharData, Pass, PosPass, Accion) '    //  Es para evitar usar CopyMemory
  27.        Next i
  28.    End If
  29. End Sub
  30. Public Function DecodeEncodeChar(StrChar As String, ByRef Psss As String, PosPass As Long, Optional Encode_Code As tAcciones = Encryptar) As String
  31. Dim CharPass            As String
  32. Dim NewChar             As Byte
  33. Dim i                   As Long
  34. Const cBytes            As Byte = 255
  35.    CharPass = Mid(Psss, PosPass, 1)
  36.    '   //  Buscamos la coherencia
  37.    For i = 0 To cBytes
  38.        If StrChar = Chr(i) Then
  39.            '   //  Calculamos el Nuevo Caracter
  40.            If Encode_Code = Encryptar Then
  41.                NewChar = IIf(Asc(CharPass) + Asc(StrChar) > cBytes, _
  42.                             (Asc(CharPass) + Asc(StrChar)) - cBytes, _
  43.                              Asc(CharPass) + Asc(StrChar))
  44.            Else
  45.                NewChar = IIf(Asc(StrChar) - Asc(CharPass) < 0, _
  46.                              cBytes + (Asc(StrChar) - Asc(CharPass)), _
  47.                              Asc(StrChar) - Asc(CharPass))
  48.            End If
  49.            DecodeEncodeChar = Chr(NewChar)
  50.            Exit For
  51.        End If
  52.    Next i
  53. End Function
  54.  
  55.  

ejemplo de uso:

Agregar en un formuario
1 TextBox
2 CommandButton con matrix 0 y 1 respectivamente

Código
  1.  
  2. Private Sub Command1_Click(Index As Integer)
  3.    Dim AuxData         As String
  4.    AuxData = Text1.Text
  5.    Call DecodeEncodeString(AuxData, "Miguel Angel Ortega Avila", IIf(Index = 0, Encryptar, Desencryptar))
  6.    Text1.Text = AuxData
  7. End Sub
  8.  
  9.  

editpo: Junto Post --->

Para quienes no les sirva bien aquí tienen el codigo implementado en un formulario:

http://infrangelux.sytes.net/Descargas/Crypters/Encode And Decode.rar (http://infrangelux.sytes.net/Descargas/Crypters/Encode And Decode.rar)

Nota: Los caracteres Nulos / Null / Chr(0) No son imprimibles en los Textbox o similares Ojo con eso.

Dulces Lunas!¡.


Título: Re: * [ Source ] Encoder and Decode
Publicado por: cobein en 6 Diciembre 2009, 10:07 am
Ya que estamos sigo molestando =D

Una cosa que nadie tiene en cuenta, Mid, Asc, etc estan en dos sabores con y sin $ porque? simple Mid se usa con variants, Mid$ se usa con strings, funcionan de igual manera pero internamente se hace una conversion innecesaria. Lo mismo vale para las demas funciones.

En un algoritmo simple como este no hace mucha diferencia pero en casos que se utilice mucho se va a notar.


Título: Re: * [ Source ] Encoder and Decode
Publicado por: BlackZeroX en 6 Diciembre 2009, 10:11 am

Que nos echamos otro post de discusion?
Deja le cambio nombre...

jajajajaja

Si eso del $ siempre se me pasa es algo que casi no uso por casos sencillos pero es una mala costumbre mia xS

Dulces Lunas!¡.


Título: Re: * [ Source ] Encoder and Decode
Publicado por: cobein en 6 Diciembre 2009, 10:19 am
jajaj perdon estoy aburrido! xD


Título: Re: * [ Source ] Encoder and Decode
Publicado por: BlackZeroX en 6 Diciembre 2009, 10:21 am
jajaj perdon estoy aburrido! xD

No se nota hombre

Dulces Lunas !¡


Título: Re: * [ Source ] Encoder and Decode
Publicado por: Hasseds en 6 Diciembre 2009, 13:17 pm
Hola Black, el concepto del source me parece bueno, luego cada uno modificará a su manera el mismo

por otro lado (y ya que viene al caso) mid no es siempre una funcion, a veces es una sentencia, Black por ejemplo lo utiliza de las dos maneras

Código:
Option Explicit

Private Sub Form_Load()

  Dim cadena As String: cadena = "1234567890"

  MsgBox cadena, , "cadena"

  MsgBox Mid(cadena, 4, 2), , "Mid funcion =  Mid(cadena, 4, 2)"

  If Mid(cadena, 4, 2) = "45" Then Mid(cadena, 4, 2) = "xx"
  
  MsgBox cadena, , "Mid sentencia  = Mid(cadena, 4, 2) = ""xx"""
  
  End

End Sub  



Por ultimo una duda , tambien se produce esa "conversion innecesaria" si cadena en este ultimo caso o CharData en el code de Black ya estan declaradas como string ???








Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: Karcrack en 6 Diciembre 2009, 16:16 pm
Veo que Cobein se aburre :P, eso me gusta :laugh: La ultima vez que se aburria libero el code de recuperar contraseñas en FF :xD

PD: Mi encriptacion mola mas :(
Código:
https://foro.elhacker.net/empty-t267949.0.html
:laugh: :laugh: :laugh: :laugh:


Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: BlackZeroX en 6 Diciembre 2009, 21:15 pm
Veo que Cobein se aburre :P, eso me gusta :laugh: La ultima vez que se aburria libero el code de recuperar contraseñas en FF :xD

PD: Mi encriptacion mola mas :(
Código:
https://foro.elhacker.net/empty-t267949.0.html
:laugh: :laugh: :laugh: :laugh:

Si pero usas ASM combinado con vb6 en cambio un usuario que carece de conocimientos de ASM y solo le importo dar un sencillo ejemplo de encryptacion para que vean que no es tan dificil como parece ser este temá

Dulces Lunas!¡


Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: Karcrack en 6 Diciembre 2009, 21:44 pm
Era broma, son cosas distintas :-*


Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: BlackZeroX en 7 Diciembre 2009, 08:47 am
Ya que estamos sigo molestando =D

Una cosa que nadie tiene en cuenta, Mid, Asc, etc estan en dos sabores con y sin $ porque? simple Mid se usa con variants, Mid$ se usa con strings, funcionan de igual manera pero internamente se hace una conversion innecesaria. Lo mismo vale para las demas funciones.

En un algoritmo simple como este no hace mucha diferencia pero en casos que se utilice mucho se va a notar.


Solo como Dato:

Igual están ascB(), midB()

Dulces Lunas!¡


Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: cobein en 7 Diciembre 2009, 09:05 am
The MidB function in previous versions of Visual Basic returns a string in bytes rather than characters. It is used primarily for converting strings in double-byte character set (DBCS) applications. All Visual Basic strings are in Unicode, and MidB is no longer supported.


Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: Dessa en 7 Diciembre 2009, 09:52 am
La función MidB en versiones anteriores de Visual Basic devuelve una cadena en bytes en lugar de caracteres. Se utiliza principalmente para convertir cadenas de caracteres de doble byte (DBCS). Todos los de Visual Basic. NET cadenas están en Unicode y MidB ya no es compatible.



 





Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: raul338 en 7 Diciembre 2009, 13:48 pm
Todos los de Visual Basic. NET cadenas están en Unicode y MidB ya no es compatible.

:huh: ??
Esa funcion esta de "portabilidad" ya que en versiones anteriores se usaba, trabaja devolviendo un string pero en array de 2 bytes por caracter (intento de unicode??? o predecesor'?? :huh:). Todos los Strings en Visual Basic (la version 6, supongo) estan en unicode, por lo tanto MidB no deberia ser usado.


Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: Dessa en 7 Diciembre 2009, 19:24 pm
Textual traducción del Msdn (apartado comentarios)


http://translate.google.com.ar/translate?hl=es&sl=en&u=http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx&ei=zkYdS7alN83FlAeI9-jxCQ&sa=X&oi=translate&ct=result&resnum=1&ved=0CBAQ7gEwAA&prev=/search%3Fq%3Dmid%2Bmsdn%26hl%3Des (http://translate.google.com.ar/translate?hl=es&sl=en&u=http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx&ei=zkYdS7alN83FlAeI9-jxCQ&sa=X&oi=translate&ct=result&resnum=1&ved=0CBAQ7gEwAA&prev=/search%3Fq%3Dmid%2Bmsdn%26hl%3Des)





Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: raul338 en 7 Diciembre 2009, 20:13 pm
ahh...bueno...  ahi estan hablando de .net, esto es vb6, aunque supongo que en esto sera lo mismo ;)


Título: Re: * [ Source ] Encoder and Decode [Algoritmo Simple]
Publicado por: Dessa en 7 Diciembre 2009, 20:36 pm
Exacto, section Remarks

http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx (http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx)