elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Aporte]Cripter en python(Encriptador de archivos)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Aporte]Cripter en python(Encriptador de archivos)  (Leído 3,330 veces)
Baal.

Desconectado Desconectado

Mensajes: 5



Ver Perfil
[Aporte]Cripter en python(Encriptador de archivos)
« en: 9 Enero 2013, 06:51 am »

Saludos a toda la comunidad, este es mi primer post y aporte, es bastante sencillo pero espero que les pueda servir a muchos.
Debo agregar que este script lo hice en python 2.7.3 y fue creado hace bastante tiempo(cuando mis conocimientos en python eran de principiante.)

EDITO: espero no parecer molesto.. pero me gustaría que comenten.

PD: Esta es su versión simple todavía no he terminado el modo complejo.
Agrego, sucede que si el archivo a cifrar no esta en "C:/" no funciona, modifique el raw_input con ".replace" y funciono correctamente (aun que no se encuentre en dicha ruta), espero les sirva y cualquier problema dejen comentario o manden PM.
Código
  1. # !usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. # ----------------
  4.  
  5. import os
  6. import sys
  7. import hashlib
  8. import random
  9. import time
  10.  
  11. print """
  12.   ###############################
  13.   #     .                     ___        ____                  #
  14.   #     |\  /|     | ___    |   \ | _   |__/ _|._          #
  15.   #     | \_/ |  ___| \__.   |     |/  | |     |             #
  16.   #     |     | /___| ___|   |___/ |   | |     |           #
  17.   #                                                                 #
  18.   #        by: Baal                                          #
  19.   #                               Happy hacking...          #
  20.   ###############################
  21. """
  22. def main():
  23. print """
  24.   |1)- Random MD5 Cryptik algorithm(modo complejo)
  25.   |2)- String MD5 Cryptik algorithm(modo simple)
  26.   |3)- Agregar bytes antes de cifrar(Recomendado)
  27.   |4)- Leer estructura de un archivo
  28.   |5)- Creditos
  29.   |6)- Extras
  30.   |7)- Salir
  31.         """
  32.  
  33. choice= int(raw_input("elige una opcion[1-6]: "))
  34. if choice==1:
  35. hint= "Seleccione/Desplaze el archivo:"
  36. _choiceFILE= raw_input(hint).replace('"', '')
  37.  
  38. _hint= "Numero de iteraciones?: "
  39. print "   #Cuantas mas iteraciones se hagan, mas indetectable sera el archivo "
  40. print "   #pero su peso incrementara notablemente.                            "
  41. print "   #Demasiadas iteraciones no aseguran 100% de indetectabilidad        "
  42. _iterFILE= int(raw_input(_hint))
  43. rang = range(_iterFILE)
  44. rang = 1
  45. while _iterFILE >= rang :
  46.  
  47. #comienza a ejecutarse con random
  48. r = random.randrange(1,90)
  49.  
  50. #secuencia algoritmica de ataque
  51. Rndm_Sec_x= "CryptikFatalodMethod"
  52. Rndm_Sec_y= "AttackqOfPunpkinHeack"
  53. Rndm_Sec_z= "BaaLCrushStackSequency"
  54. _codec= Rndm_Sec_x + Rndm_Sec_y + Rndm_Sec_z #1 and 15
  55. __codec= Rndm_Sec_x + Rndm_Sec_z + Rndm_Sec_y # 16 and 30
  56. __codec_= Rndm_Sec_y + Rndm_Sec_x + Rndm_Sec_z # 31 and 45
  57. ___codec= Rndm_Sec_y + Rndm_Sec_z + Rndm_Sec_x # 46 and 60
  58. ___codec__= Rndm_Sec_z + Rndm_Sec_y + Rndm_Sec_x # 61 and 75
  59. ____codec__= Rndm_Sec_z + Rndm_Sec_x + Rndm_Sec_y # 76 and 90
  60.  
  61. if r>=1 and r<=15:
  62. h=hashlib.md5()
  63. h.update(_codec)
  64. h.hexdigest()
  65. crypt1= h.hexdigest()
  66. print crypt1
  67.  
  68. FILEr= open(_choiceFILE, "rb+")
  69.  
  70. while True:
  71. allins= 9999*9999
  72. fr= FILEr.readline(allins)
  73. lr= [fr]
  74. FILEr.flush()
  75. print lr
  76. if fr== "":
  77. break
  78. FILEr.close()
  79. # r+
  80. fo= open(_choiceFILE, "r+").read()
  81. # modifica el string
  82. fo= fo.replace("\x02", "\xc0")
  83. foo= fo.replace("\x4d", "\x12")
  84. fooo= fo.replace("\x3a", "\xa2")
  85.  
  86. _fo= fo.replace("\x2e", "\x00")
  87. __fo= fo.replace("\xbb", "\xe2")
  88. ___fo= fo.replace("\x0d", "\x9c")
  89.  
  90. # remplaza el archivo o crea uno nuevo
  91. open(_choiceFILE, "ab+").write(fo)
  92. open(_choiceFILE, "ab+").write(foo)
  93. open(_choiceFILE, "ab+").write(fooo)
  94.  
  95. open(_choiceFILE, "rb+").write(_fo)
  96. open(_choiceFILE, "rb+").write(__fo)
  97. open(_choiceFILE, "rb+").write(___fo)
  98. fw= open(_choiceFILE, "a+").write(crypt1)
  99. print "Encrypted rutine: 1,15"
  100.  
  101. if r>=16 and r<=30:
  102. h=hashlib.md5()
  103. h.update(__codec)
  104. h.hexdigest()
  105. crypt2= h.hexdigest()
  106. print crypt2
  107.  
  108. FILEr= open(_choiceFILE, "rb+")
  109.  
  110. while True:
  111. allins= 9999*9999
  112. fr= FILEr.readline(allins)
  113. lr= [fr]
  114. FILEr.flush()
  115. print lr
  116. if fr== "":
  117. break
  118. FILEr.close()
  119. # r+
  120. fo= open(_choiceFILE, "r+").read()
  121. # modifica el string
  122. fo= fo.replace("\x0e", "\x78")
  123. foo= fo.replace("\xef", "\xb2")
  124. fooo= fo.replace("\x20", "\xff")
  125.  
  126. _fo= fo.replace("\x10", "\x2a")
  127. __fo= fo.replace("\xa1", "\xa2")
  128. ___fo= fo.replace("\x44", "\xcb")
  129.  
  130. # remplaza el archivo o crea uno nuevo
  131. open(_choiceFILE, "ab+").write(fo)
  132. open(_choiceFILE, "ab+").write(foo)
  133. open(_choiceFILE, "ab+").write(fooo)
  134.  
  135. open(_choiceFILE, "rb+").write(_fo)
  136. open(_choiceFILE, "rb+").write(__fo)
  137. open(_choiceFILE, "rb+").write(___fo)
  138. fw= open(_choiceFILE, "a+").write(crypt2)
  139. print "Encrypted rutine: 16,30"
  140.  
  141. if r>=31 and r<=45:
  142. h=hashlib.md5()
  143. h.update(__codec_)
  144. h.hexdigest()
  145. crypt3= h.hexdigest()
  146. print crypt3
  147.  
  148. FILEr= open(_choiceFILE, "rb+")
  149.  
  150. while True:
  151. allins= 9999*9999
  152. fr= FILEr.readline(allins)
  153. lr= [fr]
  154. FILEr.flush()
  155. print lr
  156. if fr== "":
  157. break
  158. FILEr.close()
  159. # r+
  160. fo= open(_choiceFILE, "r+").read()
  161. # modifica el string
  162. fo= fo.replace("\xcc", "\xd8")
  163. foo= fo.replace("\xa0", "\x42")
  164. fooo= fo.replace("\x1d", "\x12")
  165.  
  166. _fo= fo.replace("\x23", "\x20")
  167. __fo= fo.replace("\x2a", "\xaa")
  168. ___fo= fo.replace("\x10", "\xf7")
  169.  
  170. # remplaza el archivo o crea uno nuevo
  171. open(_choiceFILE, "ab+").write(fo)
  172. open(_choiceFILE, "ab+").write(foo)
  173. open(_choiceFILE, "ab+").write(fooo)
  174.  
  175. open(_choiceFILE, "rb+").write(_fo)
  176. open(_choiceFILE, "rb+").write(__fo)
  177. open(_choiceFILE, "rb+").write(___fo)
  178. fw= open(_choiceFILE, "a+").write(crypt3)
  179. print "Encrypted rutine: 31,45"
  180.  
  181. if r>=46 and r<=60:
  182. h=hashlib.md5()
  183. h.update(___codec)
  184. h.hexdigest()
  185. crypt4= h.hexdigest()
  186. print crypt4
  187.  
  188. FILEr= open(_choiceFILE, "rb+")
  189.  
  190. while True:
  191. allins= 9999*9999
  192. fr= FILEr.readline(allins)
  193. lr= [fr]
  194. FILEr.flush()
  195. print lr
  196. if fr== "":
  197. break
  198. FILEr.close()
  199.  
  200. fo= open(_choiceFILE, "r+").read()
  201. # modifica el string
  202. fo= fo.replace("\x78", "\xda")
  203. foo= fo.replace("\x18", "\xb0")
  204. fooo= fo.replace("\x3a", "\x32")
  205.  
  206. _fo= fo.replace("\x00", "\x2c")
  207. __fo= fo.replace("\xb3", "\x40")
  208. ___fo= fo.replace("\xda", "\x5d")
  209.  
  210. # remplaza el archivo o crea uno nuevo
  211. open(_choiceFILE, "ab+").write(fo)
  212. open(_choiceFILE, "ab+").write(foo)
  213. open(_choiceFILE, "ab+").write(fooo)
  214.  
  215. open(_choiceFILE, "rb+").write(_fo)
  216. open(_choiceFILE, "rb+").write(__fo)
  217. open(_choiceFILE, "rb+").write(___fo)
  218. fw= open(_choiceFILE, "a+").write(crypt4)
  219. print "Encrypted rutine: 46,60"
  220.  
  221. if r>=61 and r<=75:
  222. h=hashlib.md5()
  223. h.update(___codec__)
  224. h.hexdigest()
  225. crypt5= h.hexdigest()
  226. print crypt5
  227.  
  228. FILEr= open(_choiceFILE, "rb+")
  229.  
  230. while True:
  231. allins= 9999*9999
  232. fr= FILEr.readline(allins)
  233. lr= [fr]
  234. FILEr.flush()
  235. print lr
  236. if fr== "":
  237. break
  238. FILEr.close()
  239. # r+
  240. fo= open(_choiceFILE, "r+").read()
  241. # modifica el string
  242. fo= fo.replace("\xff", "\x80")
  243. foo= fo.replace("\xda", "\x4c")
  244. fooo= fo.replace("\x2a", "\xc6")
  245.  
  246. _fo= fo.replace("\x30", "\xae")
  247. __fo= fo.replace("\x5f", "\x62")
  248. ___fo= fo.replace("\x58", "\xdd")
  249.  
  250. # remplaza el archivo o crea uno nuevo
  251. open(_choiceFILE, "ab+").write(fo)
  252. open(_choiceFILE, "ab+").write(foo)
  253. open(_choiceFILE, "ab+").write(fooo)
  254.  
  255. open(_choiceFILE, "rb+").write(_fo)
  256. open(_choiceFILE, "rb+").write(__fo)
  257. open(_choiceFILE, "rb+").write(___fo)
  258. fw= open(_choiceFILE, "a+").write(crypt5)
  259. print "Encrypted rutine: 61,75"
  260.  
  261. if r>=76 and r<=90:
  262. h=hashlib.md5()
  263. h.update(____codec__)
  264. h.hexdigest()
  265. crypt6= h.hexdigest()
  266. print crypt6
  267.  
  268. FILEr= open(_choiceFILE, "rb+")
  269.  
  270. while True:
  271. allins= 9999*9999
  272. fr= FILEr.readline(allins)
  273. lr= [fr]
  274. FILEr.flush()
  275. print lr
  276. if fr== "":
  277. break
  278. FILEr.close()
  279. # r+
  280. fo= open(_choiceFILE, "r+").read()
  281. # modifica el string
  282. fo= fo.replace("\xf2", "\xdf")
  283. foo= fo.replace("\x21", "\x34")
  284. fooo= fo.replace("\x82", "\x6e")
  285.  
  286. _fo= fo.replace("\x13", "\x54")
  287. __fo= fo.replace("\x3a", "\x21")
  288. ___fo= fo.replace("\x5f", "\x7a")
  289.  
  290. # remplaza el archivo o crea uno nuevo
  291. open(_choiceFILE, "ab+").write(fo)
  292. open(_choiceFILE, "ab+").write(foo)
  293. open(_choiceFILE, "ab+").write(fooo)
  294.  
  295. open(_choiceFILE, "rb+").write(_fo)
  296. open(_choiceFILE, "rb+").write(__fo)
  297. open(_choiceFILE, "rb+").write(___fo)
  298. fw= open(_choiceFILE, "a+").write(crypt6)
  299. print "Encrypted rutine: 76,90"
  300.  
  301. # rompe el ciclo
  302. rang += 1
  303. #fileOpen= open(_choiceFILE, "r")
  304. #fileOpen.readlines()
  305. if choice==2:
  306. hint___= "Seleccione/Desplaze el archivo:"
  307. _choiceFILE= raw_input(hint___)
  308.  
  309. ENCODING= raw_input("cadena/frase con la que se encriptara el archivo: ")
  310.  
  311. _hint__= "Numero de iteraciones?: "
  312. _iterFILE= int(raw_input(_hint__))
  313. rang = range(_iterFILE)
  314. rang = 1
  315.  
  316. hint_data= "Guardar cadena de encriptacion en un .txt?(s/n)"
  317. chDATA= raw_input(hint_data)
  318.  
  319. while _iterFILE >= rang :
  320. h=hashlib.md5()
  321. h.update(ENCODING)
  322. h.hexdigest()
  323. cryptik= h.hexdigest()
  324. print cryptik
  325.  
  326. FILEr= open(_choiceFILE, "rb+")
  327.  
  328. while True:
  329. allins= 9999*9999
  330. fr= FILEr.readline(allins)
  331. lr= [fr]
  332. FILEr.flush()
  333. print lr
  334. if fr== "":
  335. break
  336. FILEr.close()
  337. fw= open(_choiceFILE, "a+").write(cryptik)
  338.  
  339. #¿guardara la data? ¿si/no?
  340. if chDATA.lower()== 's' and chDATA.upper()=='S':
  341. fr__DATA= open("MD5__data.txt", "w")
  342. fr__DATA.write("\n")
  343. fr__DATA.write("Cadena original: ")
  344. fr__DATA.write(ENCODING)
  345. fr__DATA.write("\n")
  346. fr__DATA.write("Cadena cifrada: ")
  347. fr__DATA.write(h.hexdigest())
  348. #rompe ciclo
  349. rang += 1
  350.  
  351.  
  352. if choice==3:
  353. print """
  354. #Agregar strings vacios previene bugs y fallos
  355. #el peso se agregara en Bytes
  356. #ej: 1024b = 2kb
  357. """
  358. hint= "Seleccione/Desplaze el archivo:"
  359. addBytes= raw_input(hint)
  360.  
  361. print "\n"
  362. print "#No agregar caracteres ni strings!"
  363. _hint= "\nNumero de bytes?: "
  364. NumBytes= int(raw_input(_hint))
  365. rang= range(NumBytes)
  366. rang= 1
  367.  
  368. while NumBytes >= rang :
  369. fw= open(addBytes, "a+").write(".")
  370. #1025 = 2kb
  371. fr= open(addBytes, "r")
  372. fb= fr.readlines()
  373. lr= [fb]
  374. print lr
  375. rang += 1
  376.  
  377.  
  378. if choice==4:
  379. ___hint= "Seleccione/Desplaze el archivo:"
  380. ChRF= raw_input(___hint)
  381. fr= open(ChRF, "r")
  382. fb= fr.readlines()
  383. lr= [fb]
  384. print lr
  385.  
  386. if choice==5:
  387. print """
  388.  
  389. programa y algoritmos:
  390.      Creado por Baal.
  391.      version: python 2.7
  392. """
  393. if choice==6:
  394. print """
  395. sección en construccion...
  396. """
  397. if choice==7:
  398. # salir del programa
  399. sys.exit()
  400.  
  401. if __name__ == "__main__":
  402. main()

Debo mencionar que el modo complejo falla hay veces, y deja los archivos inutiles, es decir que no siempre sirve.. lo tal vez positivo es que trae una pequeña opción de iteracion, al estilo backtrack 5 (encoder: shikata ga nai)


« Última modificación: 10 Enero 2013, 00:29 am por Baal. » En línea

knowledges Programming: Python(85%), C(55%), C++(%55), Vb 6 (65%), ASM(30%), Java(20%), Pascal(15%), Ruby(5%), perl(5%), SQL(5%).
Batch(75%), vbscript(3%), bash(3%)
Web:
HTML(99%), javascript(40%), Php(40%).
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: [Aporte]Cripter en python(Encriptador de archivos)
« Respuesta #1 en: 10 Enero 2013, 20:48 pm »

Hola, muy buen día.

¡ Lindo código colega ! . Sin embargo le di una leída bien a la rápida y tienes algo que no es un error, pero que no estás usando bien... Me refiero a que usas choice = int(raw_input()) y pues solo necesitas usar "input()" en ves de raw_input(). También podrías reducir muchas líneas si usases for y exec

Saludos, Javier.


En línea

Baal.

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: [Aporte]Cripter en python(Encriptador de archivos)
« Respuesta #2 en: 11 Enero 2013, 13:58 pm »

Hola, muy buen día.

¡ Lindo código colega ! . Sin embargo le di una leída bien a la rápida y tienes algo que no es un error, pero que no estás usando bien... Me refiero a que usas choice = int(raw_input()) y pues solo necesitas usar "input()" en ves de raw_input(). También podrías reducir muchas líneas si usases for y exec

Saludos, Javier.

Saludos, gracias por contestar..
Bueno como había menciona este codigo es viejito, y tiene muchas faltas(sin contar que se puede reducir mucho), pero como decidí hacer uno nuevo este lo deje como recuerdo, y con las esperanza de que a alguien le sirviera.
Sobre el input, si es verdad por que raw_inpt es para string e input para int,pero de todos modos me gusta usarlo así.
Gracias de nuevo!.
« Última modificación: 11 Enero 2013, 14:01 pm por Baal. » En línea

knowledges Programming: Python(85%), C(55%), C++(%55), Vb 6 (65%), ASM(30%), Java(20%), Pascal(15%), Ruby(5%), perl(5%), SQL(5%).
Batch(75%), vbscript(3%), bash(3%)
Web:
HTML(99%), javascript(40%), Php(40%).
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: [Aporte]Cripter en python(Encriptador de archivos)
« Respuesta #3 en: 11 Enero 2013, 17:51 pm »

Claro, la cosa es que es bien sucio hacer el int(raw_input()) , usas más bytes, es sucio y además para que usar eso si tienes input() ?

Saludos.
En línea

Baal.

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: [Aporte]Cripter en python(Encriptador de archivos)
« Respuesta #4 en: 11 Enero 2013, 21:34 pm »

Es cierto  :laugh:, no se enoje .. nada mas lo decía como sugerencia. Y es un codigo antiguo
En línea

knowledges Programming: Python(85%), C(55%), C++(%55), Vb 6 (65%), ASM(30%), Java(20%), Pascal(15%), Ruby(5%), perl(5%), SQL(5%).
Batch(75%), vbscript(3%), bash(3%)
Web:
HTML(99%), javascript(40%), Php(40%).
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Aporte] Twisted Project [Python]
Scripting
madpitbull_99 0 2,158 Último mensaje 19 Diciembre 2010, 21:38 pm
por madpitbull_99
[Aporte][Source] Encriptador texto plano [GTK+ y C]
Programación C/C++
avesudra 4 3,889 Último mensaje 29 Junio 2012, 00:12 am
por avesudra
Encriptador en Python
Programación General
NIKOLAY7 3 3,097 Último mensaje 7 Enero 2013, 21:25 pm
por NIKOLAY7
[AYUDA]Encriptador de Archivos en VBS
Análisis y Diseño de Malware
danny920825 4 5,012 Último mensaje 11 Marzo 2014, 03:13 am
por danny920825
Aporte muy simple de guardar archivos con python y mdos
Scripting
tincopasan 1 2,246 Último mensaje 7 Julio 2016, 14:33 pm
por peter_lyon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines