Páginas: [1] 2
|
 |
|
Autor
|
Tema: Encriptacion RC4/ARC4 (Leído 736 veces)
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Llevo un par de días buscando una función para encriptar archivos en RC4, si alguien la tiene por ahí a mano me ayudaría bastante...
|
|
|
|
|
En línea
|
|
|
|
Tughack
Desconectado
Mensajes: 498
|
Uso RC4 en el crypter asi k la tengo aki ^^ LPSTR RC4(LPSTR szBuf, LPSTR szKey, DWORD dwBufLen, DWORD dwKeyLen) { int i, j = 0, s[256]; DWORD dw; BYTE tmp; LPBYTE Buf = (LPBYTE)szBuf; LPBYTE Key = (LPBYTE)szKey; for(i = 0; i < 256; i++) { s[i] = i; } for(i = 0; i < 256; i++) { j = (j + s[i] + Key[i % dwKeyLen]) % 256; tmp = s[i]; s[i] = s[j]; s[j] = tmp; } for(dw = 0; dw < dwBufLen; dw++) { i = (i + 1) % 256; j = (j + s[i]) % 256; tmp = s[i]; s[i] = s[j]; s[j] = tmp; Buf[dw] ^= s[(s[i] + s[j]) % 256]; } return (LPSTR)Buf; } Saludos
|
|
|
|
« Última modificación: 02 Mayo 2008, 16:24 por Tughack »
|
En línea
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Te quiero tio!!! 
|
|
|
|
|
En línea
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Por cierto juraria k e traducido perfectamente bien ese code a vb y da diferentes resultados  Private Function RC4(ByVal expresion As String, ByVal password As String) As String Dim i As Integer, j As Integer, t As Integer, tmp As Integer, s(256) As Integer, k(256) As Integer Dim key() As Byte, byteArray() As Byte Dim i2 As Long key() = StrConv(password, vbFromUnicode) For i = 0 To 255 s(i) = i k(i) = key(i Mod Len(password)) Next i For i = 0 To 255 j = (j + s(i) + k(i)) Mod 256 tmp = s(i) s(i) = s(j) s(j) = tmp Next i byteArray() = StrConv(expresion, vbFromUnicode) i = 0 j = 0 For i2 = 0 To Len(expresion) - 1 i = (i + 1) Mod 256 j = (j + s(i)) Mod 256 tmp = s(i) s(i) = s(j) s(j) = tmp t = (s(i) + s(j)) Mod 256 byteArray(i2) = byteArray(i2) Xor s(t) Next i2 RC4 = StrConv(byteArray, vbUnicode) End Function
|
|
|
|
« Última modificación: 02 Mayo 2008, 17:09 por KiZaR »
|
En línea
|
|
|
|
Tughack
Desconectado
Mensajes: 498
|
En vb es aun mas facil ya k no tienes k pasarle tantos parametros pork puedes usar Len(). Private Function RC4(ByVal sBuffer As String, ByVal sKey As String) As String Dim i As Integer, j As Integer, s(0 To 255) As Integer Dim l As Long Dim tmp As Byte Dim Buffer() As Byte Dim Key() As Byte Buffer() = StrConv(sBuffer, vbFromUnicode) Key() = StrConv(sKey, vbFromUnicode) For i = 0 To 255 DoEvents s(i) = i Next i For i = 0 To 255 DoEvents j = (j + s(i) + Key(i Mod Len(sKey))) Mod 256 tmp = s(i) s(i) = s(j) s(j) = tmp Next i For l = 0 To UBound(Buffer) DoEvents i = (i + 1) Mod 256 j = (j + s(i)) Mod 256 tmp = s(i) s(i) = s(j) s(j) = tmp Buffer(l) = Buffer(l) Xor (s((s(i) + s(j)) Mod 256)) Next l RC4 = StrConv(Buffer, vbUnicode) End Function
Saludos
|
|
|
|
|
En línea
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Me estoy volviendo loco  Encriptado con el code en c++ el resultado es diferente que con el code en vb...
|
|
|
|
|
En línea
|
|
|
|
Chino Moreno
Desconectado
Mensajes: 93
White Pony [ ! ]
|
Pon los dos codigos que estas comparando (C / VB) a ver si encontramos entre todos lo que esta haciendo variar el resultado
|
|
|
|
|
En línea
|
 ¿Necesitas información sobre una función que comenté? Lo mas seguro es que la encuentres en MSDN
|
|
|
Tughack
Desconectado
Mensajes: 498
|
Me estoy volviendo loco  Encriptado con el code en c++ el resultado es diferente que con el code en vb... jajaja pues entonces uno estara mal (aunk solo en relacion al rc4 original, pork los dos hacen el trabajo jeje), fui yo k hice los 2, el de vb lo hice desde lo k esta escrito sobre rc4 en la wikipedia, y el k esta en C desde el codigo de vb. Sake un nuevo algoritmo y ni me he dado cuenta xD Aver, voy a compararlos. Saludos
|
|
|
|
|
En línea
|
|
|
|
Tughack
Desconectado
Mensajes: 498
|
Aver, el resultado es lo mismo, solo k con el codigo en C, ademas del texto inicial encriptado, kedan mas unos caracteres. No se a k viene eso pero tampoco tengo ganas de mirarlo ahora, mas tarde si nadie descobre pork pasa eso me pongo con elo.
Saludos
|
|
|
|
|
En línea
|
|
|
|
Kizar
Desconectado
Mensajes: 1.320
kizar_net
|
Chino Moreno los dos codigos son los que ha posteado Tughack en este hilo al principio.
|
|
|
|
|
En línea
|
|
|
|
Chino Moreno
Desconectado
Mensajes: 93
White Pony [ ! ]
|
Kizar dame el hash que te devuelve el codigo en Visual Basic al introducir los siguientes parametros: sBuffer = "es una prueba" sKey = "password" Por que en este ordenador no tengo instalado el Visual Basic y no puedo comparar 
|
|
|
|
|
En línea
|
 ¿Necesitas información sobre una función que comenté? Lo mas seguro es que la encuentres en MSDN
|
|
|
E0N
Lab &
Colaborador
Conectado
Mensajes: 2.682
|
Aver, el resultado es lo mismo, solo k con el codigo en C, ademas del texto inicial encriptado, kedan mas unos caracteres. No se a k viene eso pero tampoco tengo ganas de mirarlo ahora, mas tarde si nadie descobre pork pasa eso me pongo con elo.
Saludos
Acabo de probar y a mi me funciona perfectamente. A lo mejor se te ha olvidado ponerle el caracter de fin de cadena, por que otra cosa no le veo yo...
|
|
|
|
|
En línea
|
|
|
|
Tughack
Desconectado
Mensajes: 498
|
Aver, el resultado es lo mismo, solo k con el codigo en C, ademas del texto inicial encriptado, kedan mas unos caracteres. No se a k viene eso pero tampoco tengo ganas de mirarlo ahora, mas tarde si nadie descobre pork pasa eso me pongo con elo.
Saludos
Acabo de probar y a mi me funciona perfectamente. A lo mejor se te ha olvidado ponerle el caracter de fin de cadena, por que otra cosa no le veo yo... Sip, el problema esk al pasarle el rc4, la string no keda null-terminated ^^
|
|
|
|
|
En línea
|
|
|
|
Chino Moreno
Desconectado
Mensajes: 93
White Pony [ ! ]
|
Mira que lo primero que pense es que eran caracteres basura, pero nunca me acuerdo de añadir el caracter fin de cadena :S y ya me costo puntos en algun examen...
|
|
|
|
|
En línea
|
 ¿Necesitas información sobre una función que comenté? Lo mas seguro es que la encuentres en MSDN
|
|
|
E0N
Lab &
Colaborador
Conectado
Mensajes: 2.682
|
Pues arreglado entonces xDD Solo hay que añadirle el caracter de fin de cadena  Por cierto, muy wapos los codes Tughack
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1] 2
|
|
|
|