Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: lessionone en 17 Abril 2012, 16:06 PM

Título: Encriptacion Xor ¿como se descifra?
Publicado por: lessionone en 17 Abril 2012, 16:06 PM
Hola buenas, he cogido la idea de cifrar una cadena con xor pero creo que no se descifrar la cadena porque no sale igual. Pongo el codigo:
'LEEMOS UN EJECUTABLE
       Dim cadenaarellenar As String
       Dim canallibre As Integer
       canallibre = FreeFile()
       FileOpen(canallibre, "C:\Users\Administrador\Desktop\b.exe", OpenMode.Binary)
       cadenaarellenar = Space(LOF(canallibre))
       FileGet(canallibre, cadenaarellenar)
       FileClose(canallibre)

'GUARDAMOS EL EJECUTABLE EN UN ARRAY MEZCLADO CON LA PALABRA "HOLA"
'CADA VEZ QUE CADENA1 LE TOCA LA ULTIMA POSICION EN EL MID PUES VUELVE A LEER LA PRIMERA POSICION
       Dim z As Char = ""
       Dim x As Char = ""
       Dim contador As Integer = 0
       Dim bitconbit As Integer
       Dim cadena1 = "hola"
       Dim resultado As Integer = 0
       Dim contadormultiplicacion As Integer = 1
       Dim contadorcaracteresz As Integer = 0
       Dim matriz(16383) As Integer 'el tamaño de bytes del archivo es de 16384
       Dim indice As Integer = 0
       For contadorA = 1 To 16384

           resultado = Len(cadena1) * contadormultiplicacion

           If contador = resultado + 1 Then
               contadormultiplicacion = contadormultiplicacion + 1
               contadorcaracteresz = 0
           End If
           contador = contador + 1
           contadorcaracteresz = contadorcaracteresz + 1
           z = Mid("hola", contadorcaracteresz, 1)
           x = Mid(cadenaarellenar, contadorA, 1)
           Dim ascii1 As Integer = Asc(z)
           Dim ascci2 As Integer = Asc(x)
           byteconbyte = (ascii1 Xor ascci2) ' de aqui sale un entero
           matriz(indice) = byteconbyte
           indice = indice + 1

      Next

'
' CREAMOS EL ARCHIVO "AS.EXE" Y LO RELLENAMOS CON EL ARRAY ANTERIOR        
Dim rutadelarchivonuevo As String = "C:\Users\Administrador\Desktop\as.exe"
       FileOpen(1, rutadelarchivonuevo, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
       FilePut(1, matriz)
       FileClose(1)
       MsgBox("Realizado")
   End Sub


Me gustaria saber si esta bien echo esto para luego poneros lo que he echo para desencriptarlo pero hay algo que esta mal en este codigo o a la hora de desencriptarlo porque no sale.
Gracias adelantadas por parar a mirar el codigo
Título: Re: Encriptacion Xor ¿como se descifra?
Publicado por: Keyen Night en 23 Abril 2012, 22:24 PM
Te invito a usar FileStream, StreamWriter y StreamReader. Estas clases pueden leer el archivo byte a byte, XOR tiene la particularidad de que cumple su misma función inversa, de tal modo que:

Código (VB.NET) [Seleccionar]

5 XOR 10 = 15

15 XOR 5 = 10
15 XOR 10 = 5