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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Ruby] [APORTE] Text Protector
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ruby] [APORTE] Text Protector  (Leído 2,987 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
[Ruby] [APORTE] Text Protector
« en: 23 Marzo 2012, 21:06 pm »




Un pequeño code para proteger sus archivos con contenido de texto para que queden inteligibles a ojos de otra persona.


Ejemplo:

Antes:
Código:
En un lugar de la Mancha, de cuyo nombre no quiero acordarme...

Después:
Código:
charlist[31,1]charlist[14,1]charlist[0,1]charlist[21,1]charlist[14,1]charlist[0,1]charlist[12,1]charlist[21,1]charlist[7,1]charlist[1,1]charlist[18,1]charlist[0,1]charlist[4,1]charlist[5,1]charlist[0,1]charlist[12,1]charlist[1,1]charlist[0,1]charlist[39,1]charlist[1,1]charlist[14,1]charlist[3,1]charlist[8,1]charlist[1,1]charlist[80,1]charlist[0,1]charlist[4,1]charlist[5,1]charlist[0,1]charlist[3,1]charlist[21,1]charlist[25,1]charlist[15,1]charlist[0,1]charlist[14,1]charlist[15,1]charlist[13,1]charlist[2,1]charlist[18,1]charlist[5,1]charlist[0,1]charlist[14,1]charlist[15,1]charlist[0,1]charlist[17,1]charlist[21,1]charlist[9,1]charlist[5,1]charlist[18,1]charlist[15,1]charlist[0,1]charlist[1,1]charlist[3,1]charlist[15,1]charlist[18,1]charlist[4,1]charlist[1,1]charlist[18,1]charlist[13,1]charlist[5,1]charlist[81,1]charlist[81,1]charlist[81,1]





- Testeado con archivos .bat (ANSI y UTF-8), .cmd, .rb, .rbw, .py, .pyw, .txt (ANSI y UTF-8), .reg y .vbs. Pero debería soportar cualquier archivo de tipo texto.

- No hay ningún tipo de problema con ningún caracter convencional de un teclado.

- Soporta una gran cantidad de caracteres adicionales.

Espero que os guste.

Salu2.


Citar

 Modo de empleo:

  Protector.rb [Opción] [Archivo]

 Opciones:

  [-p] [--proteger]       | Protege un archivo.

  [-d] [--desproteger]  | Desprotege un archivo.


Código:
# -*- coding: UTF-8 -*-
exit if Object.const_defined?(:Ocra)

def logo
 puts "
   _____           _       ___           _             _
  /__   \\_____  __| |_    / _ \\_ __ ___ | |_  ___  ___| |_  ___  _ __
    / /\\/ _ \\ \\/ /| __|  / /_)/ '__/ _ \\| __|/ _ \\/ __| __|/ _ \\| '__|
   / / |  __/>  < | |_  / ___/| | | (_) | |_|  __/ (__| |_| (_) | |
   \\/   \\___/_/\\_\\ \\__| \\/    |_|  \\___/ \\__|\\___|\\___|\\__|\\___/|_|

"
 sleep 0.50
 puts "
                           By Elektro H@cker

                   ▄░░░░░░░░░░░░░░░░░░░░░░░░▄█████░░
                   ███▄▄░░░░░░░░▄▄▄▄▄▄▄▄█████████▀░░
                   ██████▀░▄▄████████████████████░░░
                   ▀████░▄███████████████████████▄░░
                   ░███░▄███████████████████████████
                   ░▀█░█████████████████▀▀░░░██░████
                   ▄▄█████████████████▀░░░░░░██░████
                   ███▀▀████████████▀░░░░░░░▄█░░████
                   ███▄░░░░▀▀█████▀░▄▀▄░░░░▄█░░▄████
                   ░███▄▄░░▄▀▄░▀███▄▀▀░░▄▄▀█▀░░█████
                   ▄▄█▄▀█▄▄░▀▀████████▀███░░▄░██████
                   ▀████▄▀▀▀██▀▀██▀▀██░░▀█░░█▄█████░
                   ░░▀▀███▄░▀█░░▀█░░░▀░█░░░▄██████░▄
                   ████▄▄▀██▄░█░░▄░░█▄░███░████▀▀░▄█
                   █▀▀▀▀▀▀░█████▄█▄▄████████▀░▄▄░▄██
                   ░▄▄█▀▀░░░▀█▀██████████▀░▄███░░█▀░
                   ██▀░░░▄▄▀░░▄░▀▀▀████▀░▄████░░░░░░
                   █▀░░▄██░░▄██░░░░░░▀█░░████░░▄███▄
                   ░░▄███░▄███░░░░░░░░░░░░▀▀░░▄░░░▀▀
 "
 sleep 1
end

def help()
  print "\n Modo de empleo:\n\n"
  print "  " + __FILE__.split('/').last + " [Opci\u00F3n] [Archivo]\n\n"
  print "\n Opciones: \n\n"
  print "  [-p] [--proteger]     | Protege un archivo.\n\n"
  print "  [-d] [--desproteger]  | Desprotege un archivo.\n"
  Process.exit
end

def proteger(file)
 File.open(file, 'r').each_line do |string|
  print "Procesando línea: " + string.encode("utf-8")
  length = (string.length)-1
   until $long == length
    enc(string[$long,1])
   end
 write($newstring)
 $newstring = ''
 $long = 0
 end
end

def desproteger(file)
 File.open(file, 'r').each_line do |string|
  dec(string)
 end
end

def enc(character)
 while not character.eql? $charlist[$shift,1] and not character.encode("utf-8").eql? $charlist[$shift,1]
  $shift += 1
 end
 $newstring = $newstring + "charlist[" + $shift.to_s + ",1]"
 $shift = 0
 $long += 1
end

def dec(string)
 string = string.gsub("charlist[0,1]", ' ').gsub("charlist[1,1]", 'a').gsub("charlist[2,1]", 'b').gsub("charlist[3,1]", 'c').gsub("charlist[4,1]", 'd').gsub("charlist[5,1]", 'e').gsub("charlist[6,1]", 'f').gsub("charlist[7,1]", 'g').gsub("charlist[8,1]", 'h').gsub("charlist[9,1]", 'i').gsub("charlist[10,1]", 'j').gsub("charlist[11,1]", 'k').gsub("charlist[12,1]", 'l').gsub("charlist[13,1]", 'm').gsub("charlist[14,1]", 'n').gsub("charlist[15,1]", 'o').gsub("charlist[16,1]", 'p').gsub("charlist[17,1]", 'q').gsub("charlist[18,1]", 'r').gsub("charlist[19,1]", 's').gsub("charlist[20,1]", 't').gsub("charlist[21,1]", 'u').gsub("charlist[22,1]", 'v').gsub("charlist[23,1]", 'w').gsub("charlist[24,1]", 'x').gsub("charlist[25,1]", 'y').gsub("charlist[26,1]", 'z').gsub("charlist[27,1]", 'A').gsub("charlist[28,1]", 'B').gsub("charlist[29,1]", 'C').gsub("charlist[30,1]", 'D').gsub("charlist[31,1]", 'E').gsub("charlist[32,1]", 'F').gsub("charlist[33,1]", 'G').gsub("charlist[34,1]", 'H').gsub("charlist[35,1]", 'I').gsub("charlist[36,1]", 'J').gsub("charlist[37,1]", 'K').gsub("charlist[38,1]", 'L').gsub("charlist[39,1]", 'M').gsub("charlist[40,1]", 'N').gsub("charlist[41,1]", 'O').gsub("charlist[42,1]", 'P').gsub("charlist[43,1]", 'Q').gsub("charlist[44,1]", 'R').gsub("charlist[45,1]", 'S').gsub("charlist[46,1]", 'T').gsub("charlist[47,1]", 'U').gsub("charlist[48,1]", 'V').gsub("charlist[49,1]", 'W').gsub("charlist[50,1]", 'X').gsub("charlist[51,1]", 'Y').gsub("charlist[52,1]", 'Z').gsub("charlist[53,1]", '0').gsub("charlist[54,1]", '1').gsub("charlist[55,1]", '2').gsub("charlist[56,1]", '3').gsub("charlist[57,1]", '4').gsub("charlist[58,1]", '5').gsub("charlist[59,1]", '6').gsub("charlist[60,1]", '7').gsub("charlist[61,1]", '8').gsub("charlist[62,1]", '9').gsub("charlist[63,1]", '\\').gsub("charlist[64,1]", '|').gsub("charlist[65,1]", '@').gsub("charlist[66,1]", '#').gsub("charlist[67,1]", '~').gsub("charlist[68,1]", '!').gsub("charlist[69,1]", '$').gsub("charlist[70,1]", '%').gsub("charlist[71,1]", '&').gsub("charlist[72,1]", '/').gsub("charlist[73,1]", '(').gsub("charlist[74,1]", ')').gsub("charlist[75,1]", '=').gsub("charlist[76,1]", '?').gsub("charlist[77,1]", '<').gsub("charlist[78,1]", '>').gsub("charlist[79,1]", ';').gsub("charlist[80,1]", ',').gsub("charlist[81,1]", '.').gsub("charlist[82,1]", '-').gsub("charlist[83,1]", '_').gsub("charlist[84,1]", '+').gsub("charlist[85,1]", '*').gsub("charlist[86,1]", '[').gsub("charlist[87,1]", ']').gsub("charlist[88,1]", '{').gsub("charlist[89,1]", '}').gsub("charlist[90,1]", '`').gsub("charlist[91,1]", '\'').gsub("charlist[92,1]", '^').gsub("charlist[93,1]", '"').gsub("charlist[94,1]", ':').gsub("charlist[95,1]", '…').gsub("charlist[108,1]", '…').gsub("charlist[109,1]", '‚').gsub("charlist[135,1]", '¡').gsub("charlist[136,1]", '¢').gsub("charlist[129,1]", '£').gsub("charlist[139,1]", 'Š').gsub("charlist[145,1]", 'Ö').gsub("charlist[141,1]", '•').gsub("charlist[142,1]", '—').gsub("charlist[143,1]", 'µ').gsub("charlist[121,1]", 'à').gsub("charlist[147,1]", 'é').gsub("charlist[148,1]", '·').gsub("charlist[149,1]", 'Ô').gsub("charlist[150,1]", 'Þ').gsub("charlist[151,1]", 'ã').gsub("charlist[152,1]", 'ë').gsub("charlist[158,1]", 'Ž').gsub("charlist[114,1]", '‰').gsub("charlist[132,1]", '‹').gsub("charlist[156,1]", '”').gsub("charlist[162,1]", 'š').gsub("charlist[158,1]", 'Ž').gsub("charlist[159,1]", 'Ó').gsub("charlist[160,1]", 'Ø').gsub("charlist[102,1]", '™').gsub("charlist[162,1]", 'š').gsub("charlist[163,1]", '¤').gsub("charlist[164,1]", '¥').gsub("charlist[165,1]", '¦').gsub("charlist[166,1]", 'ç').gsub("charlist[110,1]", 'ú').gsub("charlist[168,1]", '¨').gsub("charlist[97,1]", '­').gsub("charlist[170,1]", 'ï').gsub("charlist[172,1]", 'á').gsub("charlist[112,1]", 'é').gsub("charlist[174,1]", 'í').gsub("charlist[175,1]", 'ó').gsub("charlist[179,1]", 'ì').gsub("charlist[180,1]", 'ò').gsub("charlist[130,1]", 'ù').gsub("charlist[182,1]", 'Á').gsub("charlist[183,1]", 'É').gsub("charlist[184,1]", 'Í').gsub("charlist[186,1]", 'Ú').gsub("charlist[187,1]", 'À').gsub("charlist[188,1]", 'È').gsub("charlist[189,1]", 'Ì').gsub("charlist[190,1]", 'Ò').gsub("charlist[191,1]", 'Ù').gsub("charlist[192,1]", 'ä').gsub("charlist[195,1]", 'ö').gsub("charlist[196,1]", 'ü').gsub("charlist[197,1]", 'Ä').gsub("charlist[198,1]", 'Ë').gsub("charlist[125,1]", 'Ï').gsub("charlist[201,1]", 'Ü').gsub("charlist[202,1]", 'ñ').gsub("charlist[203,1]", 'Ñ').gsub("charlist[204,1]", 'ª').gsub("charlist[205,1]", 'º').gsub("charlist[207,1]", '¿').gsub("charlist[209,1]", '´').gsub("charlist[210,1]", '€').gsub("charlist[211,1]", 'ç').gsub("charlist[212,1]", 'Ç').gsub("charlist[214,1]", 'Û').gsub("charlist[215,1]", '°').gsub("charlist[216,1]", 'ß')
 print "Procesando línea: " + string.encode("utf-8")
 File.open('desprotegido.bat', 'a+') do |escribir|
  escribir.print string
 end
end

def write(string)
 File.open(ARGV[1].split('.').first + "_PROTEGIDO_." + ARGV[1].split('.').last, 'a+') do |escribir|
  escribir.print $newstring + "\n"
 end
end



### Control de errores ###

def errors()
 if ARGV.empty? or ARGV[0] == "/?"
   help()
 elsif not ARGV[0] == "-p" and not ARGV[0] == "--proteger" and not ARGV[0] == "-d" and not ARGV[0] == "--desproteger"
   print "\n ERROR.   Opcion incorrecta...\n\n"
   help()
 elsif (ARGV[1])==()
   print "\n ERROR.            Debe escribir la ruta del archivo...\n\n"
   Process.exit
 elsif not File.exist? (ARGV[1])
   print "\n ERROR.            El archivo no existe...\n\n"
   Process.exit
 elsif
  fileext = (ARGV[1].split('.').last)
  ext = $extensions.include?fileext
    if ext == false
      print "\n ERROR.            ." + fileext + " no es un formato compatible...\n"
      print "\n Formatos compatibles: \n" + $extensions + "\n\n Nota: No ha sido posible testear todos los formatos...\n"
      Process.exit
    end
  end
end



### vars ###

$charlist = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\\|@#~!$%&/()=?<>;,.-_+*[]{}`\'^":…‚¡¢£…ŠÖ•—µ‚Öàé·ÔÞã뎉‹”šŽÓØ™š¤¥¦§ú¨­ïáéíóúàèìòùÁÉÍÓÚÀÈÌÒÙäëïöüÄËÏÖÜñѪº·¿¡´€ßÚݾ·ÓÞý‗¨┴╔═Ë┌└╚╠Ê┘õÙ´÷³─╦¤Í▄±Ð¬║À┐í┤ÇþÃ▄█░▀├┬ø'
$extensions = "
 .1st .ans .bat .cmd .cs  .diz .doc .eml .err .fft
 .js  .log .lst .me  .nfo .odt .php .py  .pyw .rb 
 .rbw .rft .reg .rpt .rtd .rtf .rtx .saf .sig .sub
 .sxg .sxw .tex .thp .tmd .tvj .txt .unx .vbs .vct
 .vnt .wbk .wp  .wpd .wpt .wri .xdl .xml .yml"
$newstring = ''
$long = 0
$shift = 0
file = ARGV[1]



### Proceso ###

logo()
errors()

if ARGV[0] == "-p" or ARGV[0] == "--proteger"
  File.open(file, 'a+') do |escribir|
    escribir.print "\n"
  end
 proteger(file)
 print "\n\nArchivo protegido.\n"
end

if ARGV[0] == "-d" or ARGV[0] == "--desproteger"
 desproteger(file)
 print "\nArchivo desprotegido.\n"
end


__END__



« Última modificación: 23 Marzo 2012, 22:09 pm por EleKtro H@cker » En línea



FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: [Ruby] [APORTE] Text Protector
« Respuesta #1 en: 3 Abril 2012, 15:59 pm »

Tremendo Aporte :DDD


En línea

Asdf debería ser algún tipo de función.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RUBY] (APORTE) MoveIt (Complemento para el menú SendTo de Windows)
Scripting
Eleкtro 5 5,530 Último mensaje 7 Marzo 2012, 09:45 am
por Eleкtro
[APORTE] [RUBY] Shack (Imageshack Uploader)
Scripting
Eleкtro 0 1,837 Último mensaje 19 Marzo 2012, 15:18 pm
por Eleкtro
[Batch] [APORTE] Text Protector
Scripting
Eleкtro 2 3,739 Último mensaje 29 Diciembre 2012, 13:42 pm
por Eleкtro
[BATCH/RUBY] [APORTE] REG2BAT (Convierte archivos REG a BAT)
Scripting
Eleкtro 1 4,434 Último mensaje 17 Septiembre 2012, 10:10 am
por Eleкtro
[Ruby] [APORTE] FINDUS (Find Duplicates)
Scripting
Eleкtro 0 1,592 Último mensaje 14 Abril 2012, 17:58 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines