• Queres aprender a desencriptar strings y archivos? TOMAAA

  • Soluciona aquí tus preguntas frecuentes. Temas recomendados antes de preguntar.
Soluciona aquí tus preguntas frecuentes. Temas recomendados antes de preguntar.
 #141844  por osnaraus
 28 Ene 2010, 12:58
Este tuto esta diseñado para que aquel que no sepa desencriptar un archivo protegido con algoritmos básicos y no tanto.
Para que quiero aprender eso? Resulta que se puso de moda en algunos foros de seguridad informatica, presentar un software y que este venga encriptado para que los novatos no lo puedan usar.
La realidad es que nadie nace sabiendo, por eso les voy a enseñar como funciona todo esto
Lo primero que vamos a aprender es como encriptar archivos, por que? Porque tenemos que ENTENDER como se hace una encriptación para después desencriptarla.
Vamos a usar encriptaciones básicas de strings y otros algoritmos mas complejos.
Empecemos:
Existen muchas formas de encriptar un texto, para eso vamos a ver base64, hex, ascii, rot13, string reverse, y luego vamos a usar clases de VB6 para encriptar archivos.
Ejemplo:
Tengo la frase (string):osnaraus_tuto
Voy a encriptarlo con string reverse, luego hex, mas tarde con base64, despues con rot13 y por ultimo con ascii.
String reverse: es fácil, como la palabra lo indica : revertir string o dar vuelta el texto…
osnaraus_tuto ---àstring reverse---à otut_suaranso
bueno, si el string es muy largo, pueden usar la pagina : [ Debe registrarse para ver este enlace ], al final de esta pagina (que es muy buena) está la opción de string reverse:




Ahora encriptamos con hex, para lo cual vamos a ir a: [ Debe registrarse para ver este enlace ]


Y colocamos en la ventanita text, el resultado anterior: otut_suaranso

Presionamos encode...
Entonces, vamos a ver el resultado de todas las encriptaciones en cada ventanita, la que nos interesa en este ejemplo es la de hex, y vemos que el resultado es:
6f 74 75 74 5f 73 75 61 72 61 6e 73 6f

Ahora hacemos lo mismo, pero con base64, es decir pegamos en la ventanita text el resultado anterior (lo que nos salio en hex) presionamos encode y vemos el resultado nuevo en base64:
NmYgNzQgNzUgNzQgNWYgNzMgNzUgNjEgNzIgNjEgNmUgNzMgNmY=


Ahora nos falta la ante-ultima encriptación , que es rot13, para lo cual, simplemente vamos a [ Debe registrarse para ver este enlace ] y pegamos nuestro ultimo resultado en la ventana que aparece,


presionamos cypher y obtenemos nuestro resultado:
AzLtAmDtAmHtAmDtAJLtAmZtAmHtAwRtAmVtAwRtAzHtAmZtAzL=
Casi llegamos: ahora solo nos falta encriptar con ascii, para lo cual otra vez copiamos nuestro resultado y lo pegamos en la ventanita text de [ Debe registrarse para ver este enlace ]/
Presionamos encode, y nuestro resultado aparece en la ventanita dec/char:
65 122 76 116 65 109 68 116 65 109 72 116 65 109 68 116 65 74 76 116 65 109 90 116 65 109 72 116 65 119 82 116 65 109 86 116 65 119 82 116 65 122 72 116 65 109 90 116 65 122 76 61


Aclaracion, esto mismo se puede poner asi:
Chr(65) Chr(122) Chr(76) Chr(116) Chr(65) Chr(109) Chr(68) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(109) Chr(68) Chr(116) Chr(65) Chr(74) Chr(76) Chr(116) Chr(65) Chr(109) Chr(90) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(119) Chr(82) Chr(116) Chr(65) Chr(109) Chr(86) Chr(116) Chr(65) Chr(119) Chr(82) Chr(116) Chr(65) Chr(122) Chr(72) Chr(116) Chr(65) Chr(109) Chr(90) Chr(116) Chr(65) Chr(122) Chr(76) Chr(61)
Para el mas puntilloso: Chr(65) = Alt+ 65 = A.
Bueno, ya esta encriptado nuestro string: osnaraus_tuto
Fue fácil, no?
Si acabas de decir SI, bueno, ahora encripta este string:
banfieldcampeon
con : base64 + hex + base64 + rot13 + ascii sin mirar lo que voy a poner abajo, te doy 5 minutos.
Luego de 5 minutos…………………………….
Bueno, si hiciste las cosa bien, el resultado es:
65 71 120 116 65 122 68 116 65 81 76 116 65 109 72 116 65 74 82 116 65 122 68 116 65 122 90 116 65 122 90 116 65 119 86 116 65 81 112 116 65 71 86 116 65 122 82 116 65 71 120 116 65 71 112 116 90 109 82 116 65 109 112 116 65 74 82 116 65 71 112 116 90 109 120 116 65 109 72 61

Bueno, ahora vamos a usar tres algoritmos para encriptar un archivo:
Ejemplo: encriptación con Blowflish – Twofish
Tenemos un archivo: c:\osnaraus.zip y vamos a encriptarlo con las“claves” que teníamos:
osnaraus_tuto para blowfish
banfieldcampeon para twofish
Entonces, lo único que hacemos es buscar en google vbcrypto 2.0, te voy a ahorrar la búsqueda, vas a: [ Debe registrarse para ver este enlace ] y te descargas el zip, dentro del mismo hay una carpeta llamada: VB Class Cipher Algorithms, dentro de ella tienes algunas clases en vb6 que te permitirán encriptar y desencriptar archivos, en nuestro caso, vamos a usar clsBlowfish.cls, entonces abrimos nuestro vb6



y agregamos esa clase:




Luego en haciendo doble clic en form1 vamos a poner el siguiente código:
Private Sub Form_Load()
Dim b As New clsBlowfish
b.EncryptFile "c:\osnaraus.zip", "c:\encrypt_blow.zip", False, "osnaraus_tuto "
Msgbox "Listo !", vbInformation, "Soy groso, sabelo"
End Sub


Ahora apretamos F5 o el botoncito de play y ya tendríamos que tener encriptado nuestro archivo con blowfish usando la clave mencionada.
Ahora hacemos lo mismo con twofish, para lo cual vamos a usar la clase: clsTwofish.cls, hacemos un code similar al anterior, en este caso seria:
Private Sub Form_Load()
Dim b As New clsTwofish
b.EncryptFile " c:\encrypt_blow.zip ", "c:\encrypt_final.zip", False, "banfieldcampeon"
Msgbox "Listo !", vbInformation, "Soy groso, sabelo v2.0"
End Sub
Nuevamente apretamos F5.
Y listo, ya lo tenemos encriptado completo con Blowfish – Twofish
Primera parte, finalizada………………………………………………..
Ahora tenemos c:\encrypt_final.zip y vamos a desencriptarlo.
El autor (yo), te digo que el archivo fue encriptado con blowfish – twofish en ese orden
Y las claves son:
Para blowfish
Chr(65) Chr(122) Chr(76) Chr(116) Chr(65) Chr(109) Chr(68) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(109) Chr(68) Chr(116) Chr(65) Chr(74) Chr(76) Chr(116) Chr(65) Chr(109) Chr(90) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(119) Chr(82) Chr(116) Chr(65) Chr(109) Chr(86) Chr(116) Chr(65) Chr(119) Chr(82) Chr(116) Chr(65) Chr(122) Chr(72) Chr(116) Chr(65) Chr(109) Chr(90) Chr(116) Chr(65) Chr(122) Chr(76) Chr(61)
Encriptado con
string reverse, hex, base64, rot13 y ascii.
……………………
Para Twofish
Chr(65) Chr(71) Chr(120) Chr(116) Chr(65) Chr(122) Chr(68) Chr(116) Chr(65) Chr(81) Chr(76) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(74) Chr(82) Chr(116) Chr(65) Chr(122) Chr(68) Chr(116) Chr(65) Chr(122) Chr(90) Chr(116) Chr(65) Chr(122) Chr(90) Chr(116) Chr(65) Chr(119) Chr(86) Chr(116) Chr(65) Chr(81) Chr(112) Chr(116) Chr(65) Chr(71) Chr(86) Chr(116) Chr(65) Chr(122) Chr(82) Chr(116) Chr(65) Chr(71) Chr(120) Chr(116) Chr(65) Chr(71) Chr(112) Chr(116) Chr(90) Chr(109) Chr(82) Chr(116) Chr(65) Chr(109) Chr(112) Chr(116) Chr(65) Chr(74) Chr(82) Chr(116) Chr(65) Chr(71) Chr(112) Chr(116) Chr(90) Chr(109) Chr(120) Chr(116) Chr(65) Chr(109) Chr(72) Chr(61)
Encriptado con
base64 + hex + base64 + rot13 + ascii

Bueno, sabes desencriptarlo?, me imagino que alguna idea debes tener, bueno, te voy a aclarar todo!
Para desencriptar una secuencia de encriptaciones, SIEMPRE se hace de atrás hacia adelante, por que? Es fácil. Supongamos que yo salgo de mi casa:
Secuencia: apago las luces de la casa, cierro la puerta de la casa, entro al automóvil, enciendo el motor.
Si quiero volver todo como estaba, que tengo que hacer??? NO PUEDO prender las luces de la casa porque todavía estoy dentro del auto!!!!!!!!!!!
Entonces volvemos de atrás hacia adelante, la secuencia de “desencriptacion” seria:
Apago el motor, salgo del auto, abro la puerta de la casa, enciendo las luces de la casa.
Es decir hay que hacer el camino inverso para llegar al lugar inicial, lo mismo pasa con la desencriptacion, entonces, primero hay que desencriptar, en nuestro ejemplo, usando twofish, con una clave que esta encriptada, para lo cual tenemos que hacer el camino inverso en la clave también.
Tomamos
Chr(65) Chr(71) Chr(120) Chr(116) Chr(65) Chr(122) Chr(68) Chr(116) Chr(65) Chr(81) Chr(76) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(74) Chr(82) Chr(116) Chr(65) Chr(122) Chr(68) Chr(116) Chr(65) Chr(122) Chr(90) Chr(116) Chr(65) Chr(122) Chr(90) Chr(116) Chr(65) Chr(119) Chr(86) Chr(116) Chr(65) Chr(81) Chr(112) Chr(116) Chr(65) Chr(71) Chr(86) Chr(116) Chr(65) Chr(122) Chr(82) Chr(116) Chr(65) Chr(71) Chr(120) Chr(116) Chr(65) Chr(71) Chr(112) Chr(116) Chr(90) Chr(109) Chr(82) Chr(116) Chr(65) Chr(109) Chr(112) Chr(116) Chr(65) Chr(74) Chr(82) Chr(116) Chr(65) Chr(71) Chr(112) Chr(116) Chr(90) Chr(109) Chr(120) Chr(116) Chr(65) Chr(109) Chr(72) Chr(61)
Y lo UNICO que copiamos son los números, con un espacio entre ellos, los pegamos en la ventanita dec/char de nuestro amigo paul, presionamos decode y obtenemos la primera desencriptacion en la ventanita text:


copiamos el resultado y pegamos en rot13.com y el resultado lo pegamos en paul en base64, el resultado en text lo copiamos y lo pegamos en hex, y el resultado en text, lo copiamos y pegamos en base64 y finalmente tenemos nuestro resultado final en text:
banfieldcampeon
Entonces, ahora creamos una aplicacion en VB6 con la class clsTwofish.cls usando el siguiente código:
Dim b As New clsTwofish
b.DecryptFile " c:\encrypt_final.zip ", "c:\decrypted_Twofish.zip", False, "banfieldcampeon"
Msgbox "Primera desencriptacion terminada", vbInformation, "Listo"

(las capturas depantalla, a esta altura me parece que estan demas, ya que son similares a las anteriores)

Luego de unos segundos, ya tenemos el archivo c:\decrypted_Twofish.zip, recordemos que ahora tenemos que desencriptar este con blowfish, asi que hacemos algo similar con:
Chr(65) Chr(122) Chr(76) Chr(116) Chr(65) Chr(109) Chr(68) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(109) Chr(68) Chr(116) Chr(65) Chr(74) Chr(76) Chr(116) Chr(65) Chr(109) Chr(90) Chr(116) Chr(65) Chr(109) Chr(72) Chr(116) Chr(65) Chr(119) Chr(82) Chr(116) Chr(65) Chr(109) Chr(86) Chr(116) Chr(65) Chr(119) Chr(82) Chr(116) Chr(65) Chr(122) Chr(72) Chr(116) Chr(65) Chr(109) Chr(90) Chr(116) Chr(65) Chr(122) Chr(76) Chr(61)
string reverse, hex, base64, rot13 y ascii.
Hacemos el camino inverso y obtenemos:
osnaraus_tuto
Creamos una aplicación vb6 para blowfish:
Dim b As New clsBlowfish
b.DecryptFile “c:\decrypted_Twofish.zip ", "c:\decrypted_final.zip", False, "osnaraus_tuto"
Msgbox "Desencriptacion terminada final...", vbInformation, "Listo"

Luego de unos segundos, al fin obtenemos el archivo desencriptado !!!!!!!!!!!
Ese es nuestro archivo final.
Consejos: Hacer una sola aplicación VB6 con todas las encriptaciones y desencriptaciones posibles y un text box para ingresar la “clave”. Les va a ahorrar un trabajo enorme.
Pd: Encriptación – Desencriptacion Ds1 tienen que buscarlo en [ Debe registrarse para ver este enlace ]
Gracias a todos por el apoyo… cualquier duda, estoy a sus ordenes.