Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Puntoinfinito en 21 Marzo 2012, 22:05 pm



Título: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 21 Marzo 2012, 22:05 pm
Buenas!
Ahora que recuerdo, hace ya 2 años tuve un desencriptador que hacia la siguente función:
Si por ejemplo tu tenias esto:

Código:
qwer iot yru

El desencriptador te decia que queria decir:

Código:
Hola que tal

Supongo que asignaba un valor a cada letra, como en esta caso seria:
  • q= h
  • w= o
  • e= l
  • r= a
  • i= q
  • o= u
  • t= e
  • y= t
  • u= l

Y así es como el desencriptador descubria los valores y resolvia el "acertijo" xD

Pues vereis, estoy buscando algo similar, algo que haga esta funcion. A parte de decirme programas me gustaria que me dijieses como se le llama a esto para poder buscarlo por Google, por foros etc

Saludos y gracias por adelantado.


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Eleкtro en 21 Marzo 2012, 22:23 pm
Creo que te refieres al método "Monoalphabetic substitution"

Pero primero el "hola que tal" lo encriptabas, Para luego desencriptarlo, no? Porque sino no se como iba a reconocer el desencriptador el orden de los caracteres... Y menos sin basarse en el idioma del texto...

De ser así, Eso es tán simple que si quieres te lo hago en Batch xDDD, Tú mismo podrías hacerlo también!

PD: Busca por "Caesar cipher"

Salu2


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 21 Marzo 2012, 22:41 pm
Sí! Eso mismo! Encriptas y luego desencriptas.
Era ese nombre!
Vale buscaré!
Saludos Maestro del Batch

PD: Esta web, sirve ?
http://www.secretcodebreaker.com/caesar-cipher.html


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 21 Marzo 2012, 23:06 pm
Mira he estado probando la web y descifrando el siguente mensaje:

Código:
guvq gu d sdvr ohqwr c pe gpezi yj qf ifwj gatwak rrkmaksuy h jplu xmzw vw mv tmbzi brwx nw wdvnax povsmsnknoc

Y descifrando me ha dado:

Código:
esto es X paso lento X la clave al/te la dare aunque lleguemos X cien pero tu ir/en letra sino en/ir numero felicidades

Las X son las que no se
Las [text]/[text] son las que me han dado 2 posibilidades.

¿Da resultados, no?

Te pido porfavor, que después de leer el mensaje lo borres :)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Eleкtro en 21 Marzo 2012, 23:25 pm
Te pido porfavor, que después de leer el mensaje lo borres :)

No hay moderador en este subforo (Bueno, están los moderadores globales xD), Aunque no creo que se deba eliminar este tema sin motivos. Le puede servir de ayuda a alguien más.

Salu2


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 22 Marzo 2012, 16:40 pm
Ah vale :)

Nada pués, sabes como se crea uno en batch?

He encontrado uno... no sé si sera funcionable.


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Eleкtro en 22 Marzo 2012, 17:27 pm
sabes como se crea uno en batch?

Como ya dije, Es MUY fácil. Pero batch es incomodisimo para este tipo de cosas, Habría incompatibilidad con algunos caracteres, Y por ejemplo si una línea contiene un número impar de comillas dobles...

Pero si solo lo quieres utilizar con caracteres alfanuméricos (abcdefghijklmnopqrstuvwxyz 0123456789) entonces no habría problema.

Que séa fácil no significa que lleve su tiempo hacerlo... No estoy muy por la labor ahora la verdad xD, Pero:

By Elektro H@cker - [BATCH] [APORTE] BatOfuser Ofuscador/Desofuscador para bats. (http://foro.elhacker.net/scripting/batch_aporte_batofuser_ofuscadordesofuscador_para_bats-t357078.0.html)

El código que posteé ahí sirve para tu propósito, Solo habría que cambiar las variables "%%alpha:....%%" por letras intercalandolas como gustes.

Ejemplo:
Código
  1. If "%String:~0,1%" EQU "a" (Set "New_String=%New_String%z")
Salu2.



Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 22 Marzo 2012, 18:17 pm
En que se basa el programa para asignar una letra a otra?

He estado mirando relaciones y no encuentro ninguna entre:

q= h
w= o
e= l
r= a
i= q
o= u
t= e
y= t
u= l

Un saludo :)

EDITO: He buscado en san google, y no he visto esas asignaciones si no otras y no hay precisamente pocas :S

Bueno, siguiendo la sustitución de wikipedia aquí te dejo esto:

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. class caesar_cipher:
  5.  
  6.  
  7. def cipher(self):
  8. self.dic_let = {'a':'d','b':'e','c':'f','d':'g','e':'h','f':'i','g':'j','h':'k','i':'l',
  9. 'j':'m','k':'n','l':'o','m':'p','n':'q','o':'r','p':'s','q':'t','r':'u','s':'v','t':'w','u':'x','v':'y',
  10. 'w':'z','x':'a','y':'b','z':'c'}
  11. print "Inserte la cadena a cifrar"
  12. self.cadena = raw_input("Cadena>")
  13. for self.letra in self.cadena:
  14. if self.letra == self.letra.upper():
  15. print self.dic_let[self.letra.lower()],
  16. else:
  17. print self.dic_let[self.letra],
  18.  
  19. if __name__ == '__main__':
  20. print "1-Cifrar o 2-descifrar?"
  21. eleccion = input(">")
  22. if eleccion == 1:
  23. os.system("clear")
  24. t = caesar_cipher()
  25. t.cipher()
  26.  
  27. elif eleccion ==2:
  28. os.system("clear")
  29. t = caesar_cipher()
  30. t.uncipher()

En python sería algo así.
Falta declarar la función uncipher (no lo he hecho yo porque me tengo que ir :( ) y para mejorar sería mejor guardar el diccionario en un archivo de texto para hacer más liviano el poco código que hay.

Un saludo :)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 22 Marzo 2012, 19:44 pm
Gracias a los 2!
Voy a hacer lo que me haveis dicho documentandome un poco por internet.

Saludos!


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 22 Marzo 2012, 19:47 pm
Por cierto, mirar este:

http://sourceforge.net/projects/hhcaesarcipher/files/bin/0.3/CaesarCipher%200.3%20-%20Windows%20Executable.zip/download?use_mirror=tenet

¿Que quiere decir el shift?


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Eleкtro en 22 Marzo 2012, 19:53 pm
¿Que quiere decir el shift?

Shift = Desplazamiento.


Ejemplo:
si pones "hola" y un "2" en el shift, las letras se desplazan 2 veces:

h: "> i > j"
o: "> p > q"
l: "> m > n"
a: "> b > c"

Y el resultado será : jqnc

En resumen, Shift es el número de veces que la letra se desplazará hacia la derecha.

Saludos.


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 22 Marzo 2012, 20:00 pm
Shift = Desplazamiento.


Ejemplo:
si pones "hola" y un "2" en el shift, las letras se desplazan 2 veces:

Ostras, es verdad... Ya no me acordaba, se nota que estoy enfermo (nada grave, un resfriado xD)

Por cierto respondiendo a Runex, lo que he puesto me lo he inventado para hacer el ejemplo, ya te he dicho que no tenia ni idea de lo que era xD, como iva a saber encima encriptaciones. Saludos.

PD: Por cierto, el shift puedes moverlo hasta XX xifras, ¿no?. Entonces es dificil desncriptar un codigo... (más que dificil, largo)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 22 Marzo 2012, 20:37 pm
Por cierto respondiendo a Runex, lo que he puesto me lo he inventado para hacer el ejemplo, ya te he dicho que no tenia ni idea de lo que era xD, como iva a saber encima encriptaciones. Saludos.

Ah vale vale ahora ya me cuadra todo y yo buscando jaja :).

Bueno, si te sirve de algo, mañana te posteo el código completo y si quieres otro ejemplo con el uso del shift, que yo desgraciadamente también estoy constipado y me toca instituto :( xD


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 22 Marzo 2012, 20:51 pm
Jajajaja ;)
Seria todo un esfuerzo, pero si quieres, te daria las gracias!

Ya ves, a mi ya me han obligado con ir al instituto, encima con un poco de fiebre. xD

Saludos!!!


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 23 Marzo 2012, 14:47 pm
Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. class caesar_cipher:
  5. def uncipher(self):
  6. self.dic_let = {'d':'a','e':'b','f':'c','g':'d','h':'e','i':'f','j':'g','k':'h','l':'i',
  7. 'm':'j','n':'k','o':'l','p':'m','q':'n','r':'o','s':'p','t':'q','u':'r','v':'s','w':'t','x':'u','y':'v',
  8. 'z':'w','a':'x','b':'y','c':'z'}
  9. print "Inserte la cadena a descifrar"
  10. self.cadena = raw_input("Cadena>")
  11. for self.letra in self.cadena:
  12. if self.letra == self.letra.upper():
  13. print self.dic_let[self.letra.lower()],
  14. else:
  15. print self.dic_let[self.letra],
  16.  
  17. def cipher(self):
  18. self.dic_let = {'a':'d','b':'e','c':'f','d':'g','e':'h','f':'i','g':'j','h':'k','i':'l',
  19. 'j':'m','k':'n','l':'o','m':'p','n':'q','o':'r','p':'s','q':'t','r':'u','s':'v','t':'w','u':'x','v':'y',
  20. 'w':'z','x':'a','y':'b','z':'c'}
  21. print "Inserte la cadena a cifrar"
  22. self.cadena = raw_input("Cadena>")
  23. for self.letra in self.cadena:
  24. if self.letra == self.letra.upper():
  25. print self.dic_let[self.letra.lower()],
  26. else:
  27. print self.dic_let[self.letra],
  28.  
  29. if __name__ == '__main__':
  30. print "1-Cifrar o 2-descifrar?"
  31. eleccion = input(">")
  32. if eleccion == 1:
  33. os.system("clear")
  34. t = caesar_cipher()
  35. t.cipher()

Ese es el código entero, voy a comer y ahora te edito el mensaje con el código del shift, un saludo :)



Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 23 Marzo 2012, 15:05 pm
Gracias!
Lo voy a probar y te cuento...
Seguire esperando el shift, a ver que currada te has metido!:)
Muchas gracias, eh!



Eii!, gracias por el curro que te has echo!!:D

Quiero ver que tal te va a salir con el shift, esperaré como un vicioso muajaja!
Gracias a todos, de verdad.

Elektro H@cker: No hagas doble post para decir lo mismo


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 23 Marzo 2012, 16:08 pm
Ya he acabado el ejemplo del manejo del shift, aquí tienes el código ya arreglado, espero que te sirva :)
EDITO:: He encontrado un problema, si el shift supera el índice de la lista, lanza error, lo arreglaría pero puede ser lioso , así que si lo que quieres es tomarlo como ejemplo te vendrá bastante bien :).
EDITO2: El problema ya está arreglado en parte sin complicar mucho el código sin embargo sigue dando algunos problemas que ahora si que no sé solucionar :)
Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import os
  5.  
  6. class caesar_cipher_shift:
  7.  
  8. def uncipher_shift(self):
  9. self.dic_let = {'d':'a','e':'b','f':'c','g':'d','h':'e','i':'f','j':'g','k':'h','l':'i',
  10. 'm':'j','n':'k','o':'l','p':'m','q':'n','r':'o','s':'p','t':'q','u':'r','v':'s','w':'t','x':'u','y':'v',
  11. 'z':'w','a':'x','b':'y','c':'z'}
  12. self.diction = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
  13. 'v','w','x','y','z']
  14. print """  
  15.   ______                               _______        __            
  16.  / ____/____ ____  _________ ______   / ____(_)____  / /_  ___  _____
  17. / /    / __ `/ _ \/ ___/ __ `/ ___/  / /   / // __ \/ __ \/ _ \/ ___/
  18. / /___ / /_/ /  __(__  ) /_/ / /     / /___/ // /_/ / / / /  __/ /    
  19. \____/ \__,_/\___/____/\__,_/_/      \____/_// .___/_/ /_/\___/_/    
  20.                                            /_/    """
  21. print "\n\n[+] Inserte el desplazamiento"
  22. self.shift = input(">")
  23. print "[+] Introduce la cadena a descifrar"
  24. self.cadena = raw_input(">")
  25. for self.letra in self.cadena:
  26. if self.letra == self.letra.upper():
  27. self.y = self.diction.index(self.letra.lower()) - self.shift
  28. if self.y > len(self.diction):
  29. self.y = self.diction.index(self.letra)
  30. print self.dic_let[self.diction[self.y]],
  31. else:
  32. self.y = self.diction.index(self.letra) - self.shift
  33. if self.y > len(self.diction):
  34. self.y = self.diction.index(self.letra)
  35. print self.dic_let[self.diction[self.y]],
  36.  
  37. def cipher_shift(self):
  38. self.dic_let = {'a':'d','b':'e','c':'f','d':'g','e':'h','f':'i','g':'j','h':'k','i':'l',
  39. 'j':'m','k':'n','l':'o','m':'p','n':'q','o':'r','p':'s','q':'t','r':'u','s':'v','t':'w','u':'x','v':'y',
  40. 'w':'z','x':'a','y':'b','z':'c'}
  41. self.diction = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
  42. 'v','w','x','y','z']
  43. print """  
  44.   ______                               _______        __            
  45.  / ____/____ ____  _________ ______   / ____(_)____  / /_  ___  _____
  46. / /    / __ `/ _ \/ ___/ __ `/ ___/  / /   / // __ \/ __ \/ _ \/ ___/
  47. / /___ / /_/ /  __(__  ) /_/ / /     / /___/ // /_/ / / / /  __/ /    
  48. \____/ \__,_/\___/____/\__,_/_/      \____/_// .___/_/ /_/\___/_/    
  49.                                            /_/    """
  50. print "\n\n[+] Inserte el desplazamiento"
  51. self.shift = input(">")
  52. print "[+] Introduce la cadena a cifrar"
  53. self.cadena = raw_input(">")
  54. for self.letra in self.cadena:
  55. if self.letra == self.letra.upper():
  56. self.y = self.diction.index(self.letra.lower()) + self.shift
  57. if self.y > len(self.diction):
  58. self.y = self.diction.index(self.letra)
  59. print self.dic_let[self.diction[self.y]],
  60. else:
  61. self.y = self.diction.index(self.letra) + self.shift
  62. if self.y > len(self.diction):
  63. self.y = self.diction.index(self.letra)
  64. print self.dic_let[self.diction[self.y]],
  65.  
  66.  
  67. if __name__ == '__main__':
  68. print """  
  69.   ______                               _______        __            
  70.  / ____/____ ____  _________ ______   / ____(_)____  / /_  ___  _____
  71. / /    / __ `/ _ \/ ___/ __ `/ ___/  / /   / // __ \/ __ \/ _ \/ ___/
  72. / /___ / /_/ /  __(__  ) /_/ / /     / /___/ // /_/ / / / /  __/ /    
  73. \____/ \__,_/\___/____/\__,_/_/      \____/_// .___/_/ /_/\___/_/    
  74.                                            /_/    """
  75. print "\n\n [+] 1-Cifrar o 2-descifrar [+]"
  76. eleccion = input(">")
  77. if eleccion == 1:
  78. os.system("clear")
  79. t = caesar_cipher_shift()
  80. t.cipher_shift()
  81.  
  82. elif eleccion ==2:
  83. os.system("clear")
  84. t = caesar_cipher_shift()
  85. t.uncipher_shift()
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  

Un saludo! :)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 23 Marzo 2012, 17:09 pm
Gracias:D:D:D
jaja, cuanto esfuerzo, no?
Por cierto, sabes que no conocia Python?
El codigo que me pasaste, supuestamente se pone en Python Shell, luego para generarlo como aplicación, como se hace?

Gracias de antemano!


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Eleкtro en 23 Marzo 2012, 17:18 pm
para generarlo como aplicación, como se hace?

Puedes probar suerte con "py2exe" (Está obsoleto y a mi me dió 35238578 problemas hace poco)

Pero te recomiendo cxfreeze (http://cx-freeze.sourceforge.net/)

Salu2.


PD:

setup.py
Código
  1. # Para compilar este script desde la consola:
  2. # python.exe setup.py build
  3.  
  4. from cx_Freeze import setup, Executable
  5.  
  6. setup(
  7.        name = "test",
  8.        version = "0.1",
  9.        description = "test",
  10.        executables = [Executable("TU SCRIPT.py")])



Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 23 Marzo 2012, 17:32 pm
Esto?
http://www.py2exe.org/

Entonces el codigo ese donde lo coloco?


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Eleкtro en 23 Marzo 2012, 17:42 pm
Entonces el codigo ese donde lo coloco?

puntoinfinito, Al menos podrías buscarte un tutorial en Google.

Hay que ponerlo en la misma carpeta que el script del compañero Runex

PD: La lista de parámetros: http://cx-freeze.sourceforge.net/cx_Freeze.html

Salu2


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 23 Marzo 2012, 17:44 pm
Si,si lo encontré ya.
Gracias ;D
Ahora me pongo a la faena y luego iré a ver algo de warzone y a pasarme otra prueba.
Salu2



Por cierto, al ejecutar me sale error, oh *****.

(http://i43.tinypic.com/rvyn90.png)

Tranquilos ya lo busco yo xD

Elektro H@cker: No crees doble post cada 2 minutos, Usa el botón MODIFICAR.


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Eleкtro en 23 Marzo 2012, 17:58 pm
al ejecutar me sale error, oh *****.

Puede ser que Runex lo haya codeado en Python 2.7 y séa lo que te da problemas. (Prueba con Python 2.7.2)

Salu2.


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 23 Marzo 2012, 18:43 pm
Si, como dice Elektro el programa está codeado con la versión 2.7.2 de Python.

De la conversión a .exe poco te puedo decir ya que uso debian y no tengo mucha idea, pero si puedes buscar algun tutorial de py2exe por google como este:

http://foro.code-makers.net/index.php?topic=2465.0 (http://foro.code-makers.net/index.php?topic=2465.0)

O puedes usar Pyinstaller que según lo que he leido por ahí es mejor y crea menos archivos lo que se traduce en una más rápida conversión.

Un saludo y espero que te haya ido bien :)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 24 Marzo 2012, 11:17 am
Buena!
La pruebo como siempre (todo se ha de probar)
Por cierto, me descargue la 2.7.3 xD
Ahora me reinstalo con 2.7.2

Saludos


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 24 Marzo 2012, 22:05 pm
No me funciona con 2.7.2 xD

Por cierto... me podriais decir que foto de perfil me sale?


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 24 Marzo 2012, 23:52 pm
No me funciona con 2.7.2 xD

Por cierto... me podriais decir que foto de perfil me sale?

Te debería funcionar perfectamente, porque la versión es 2.7.2 :S

Respecto a lo de tu foto de perfil, aparece un fantasma de los de gotenks ss3 XD


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 25 Marzo 2012, 10:59 am
Ufff, gracias por lo de la foto de perfil xD
Es que a mi me salia un WTF con un gato :$
Bueno lo intento con linux
(Siento dar tantos problemas xD)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 25 Marzo 2012, 14:05 pm
Ufff, gracias por lo de la foto de perfil xD
Es que a mi me salia un WTF con un gato :$
Bueno lo intento con linux
(Siento dar tantos problemas xD)

Jaja que va, para eso estamos :).
En linux, solo tienes que concederle privilegios con
chmod +x codigo.py

Un saludo :)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Puntoinfinito en 25 Marzo 2012, 21:34 pm
Vale, ¡perfecto ya va!
Mira esto es lo que me pasava con Windows:
(http://i43.tinypic.com/b3tz53.png)
Si sabes que le pasava o algo, dime que es, que me gustaria tenerlo en windows xD

Saludos Runex :)


Título: Re: ¿Como se llama este desencriptador y como se crea?
Publicado por: Runex en 26 Marzo 2012, 14:57 pm
Vale, ¡perfecto ya va!
Mira esto es lo que me pasava con Windows:
(http://i43.tinypic.com/b3tz53.png)
Si sabes que le pasava o algo, dime que es, que me gustaria tenerlo en windows xD

Saludos Runex :)

Me alegro de que te funcione :D.

Sinceramente lo único que se me ocurre para posibles errores  como el tuyo, es el módulo os, que no sé si funcionará igual en sistemas Windows.
De todas formas, de lo que si estoy seguro es que está escrito en 2.7.2 :).

Un saludo :)