Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Azav

#21
¡Gracias Baku por compartirlo!, se puede hacer muy buenas interfaces con esto.

Yo también tengo un kit de efectos para VB6 guardado por ahí, si mal no recuerdo tenía para forms traslúcidos, títulos en movimiento y efecto agua.  Si les interesa lo subo también.

¡Saludos!
#22
Python / Re:[ DoS ] vBullettin / Bytes / UDP [ Source ]
Octubre 18, 2014, 02:45:12 AM
Se ve bien, ¡gracias por traerlo!
#23
Python / Azav Cipher Algorithm
Octubre 10, 2014, 12:38:57 AM
¡Buenas a todos!

Vengo a dejarles aquí un código para encriptar y desencriptar texto. Lo he llamado Azav Cipher, lo he creado completamente yo en Python 3.4

Características del cifrado:
+ No tiene una cantidad máxima de caracteres a encriptar.
+ No usa clave.
+ Para un mismo texto plano se generan siempre textos encriptados diferentes y no siempre de igual largo (lo hice así intencionalmente).
+ Desencripta perfecto cualquiera de los textos encriptados.
+ En esta segunda versión le he creado una GUI con tkinter, bastante simple pero ha quedado bien.

Código: python
from random import randint, choice
from tkinter import Tk, messagebox, Text, Button

def encode(string):
#Pasamos a binario el mensaje original:
binMSG = ""
i = 0
while i < len(string):
caracter_MSG_binario = bin(ord(string[i])).replace("0b", "").zfill(8)
binMSG = binMSG + caracter_MSG_binario
i += 1
#Dividimos el mensaje binario en dos cadenas de igual largo.
Segmento1 = binMSG[:(int(len(binMSG)/2))]
Segmento2 = binMSG[(int(len(binMSG)/2)):]
#A cada segmento agregamos una cadena aleotoria inicial para generar encriptaciones diferentes para un mismo mensaje.
Segmento1 = random_bin_chain(8) + Segmento1
Segmento2 = random_bin_chain(8) + Segmento2
# (0 = @), (1 = $), (1 = &), (2 = *)
i = 0
cadena_final = ""
while i < len(Segmento1):
if Segmento1[i] == Segmento2[i] == "0":
cadena_final += "@"
elif Segmento1[i] == Segmento2[i] == "1":
cadena_final += "$"
elif Segmento1[i] == "1" and Segmento2[i] == "0":
cadena_final += "&"
elif Segmento1[i] == "0" and Segmento2[i] == "1":
cadena_final += "*"
i += 1
#Transformamos los simbolos en caracteres normales (letras y numeros) y acortamos la cadena a la mitad.
simbolos = ["@", "$", "&", "*"]
valores = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.="
i = k = 0
while i < 4:
for elemento in simbolos:
match = elemento + simbolos[i]
coincidencias = cadena_final.count(match)
j = 1
while j <= coincidencias:
cadena_final = cadena_final.replace(match, choice(valores[k:k+4]), 1)
j += 1
k += 4
i += 1
return cadena_final
#El largo de la cadena final es siempre mayor a 2*(string + 2)
#El largo de la cadena final es siempre menor a (8/3)*(string + 2)

def decode(string):
simbolos = ["@", "$", "&", "*"]
valores = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.="
#Lo primero es obtener la cadena de simbolos ["@", "$", "&", "*"]
#Para ello transformamos las letras en simbolos.
listavalores = []
k = 0
while (k+4) <= len(valores):
listavalores.append(valores[k:k+4])
k += 4

i = k = 0
while i < 4:
for elemento in simbolos:
match = elemento + simbolos[i]
for caracter in listavalores[k]:
string = string.replace(caracter, match)
k += 1
i += 1
cadena_simbolos = string[8:]
#La cadena de simbolos representa la suma de los dos segmentos del mensaje
segmento1 = segmento2 = ""
for elemento in cadena_simbolos:
if elemento == "@":
segmento1 = segmento1 + "0"
segmento2 = segmento2 + "0"
elif elemento == "$":
segmento1 = segmento1 + "1"
segmento2 = segmento2 + "1"
elif elemento == "&":
segmento1 = segmento1 + "1"
segmento2 = segmento2 + "0"
elif elemento == "*":
segmento1 = segmento1 + "0"
segmento2 = segmento2 + "1"
cadena_binaria = segmento1 + segmento2
#Ahora queda transformar la cadena binaria a texto plano.
if (len(cadena_binaria) % 8) == 0:
repeticiones = (len(cadena_binaria) // 8)
j = k = 0
valor_original = ""
while k <= (repeticiones - 1):
segmento_8 = cadena_binaria[j:j + 8]
ascii_value = bin_to_ascii(segmento_8)
str_value = chr(ascii_value)
valor_original = valor_original + str(str_value)
j += 8
k += 1
else:
return ("Invalid text to decode.")
return valor_original

def random_bin_chain(large):
binary_chain = ""
for i in range(0, large):
binary_chain = binary_chain + str(randint(0, 1))
return binary_chain

def bin_to_ascii(bin_number):
    bin_number_str = str(bin_number)
    if len(bin_number_str) == 8:
        i = 0
        dec_number = 0
        while i <= 7:
            dec_number = dec_number + (int(bin_number_str[i]) * (2 ** (7 - i)))
            i += 1
        return dec_number
    else:
        return "Error decoding."

def load_GUI():
def EncodeClicked():
string = txtInput.get('1.0', 'end').strip()
if len(string) > 0:
result = encode(string)
txtInput.delete('1.0', 'end')
txtInput.insert('1.0', result)
else:
messagebox.showwarning("Azav Cipher","The plain text must contain at least 1 character.")

def DecodeClicked():
string = txtInput.get('1.0', 'end').strip()
if len(string) >= 4:
if decode(string) != "Invalid text to decode.":
result = decode(string)
txtInput.delete('1.0', 'end')
txtInput.insert('1.0', result)
else:
messagebox.showwarning("Azav Cipher","The encoded text is not valid to decode.")
else:
messagebox.showwarning("Azav Cipher","The encoded text must contain at least 4 characters.")

#Main Window
mainWindow = Tk()
mainWindow.geometry("520x270")
mainWindow.title("Azav Cipher")
#TextBox
txtInput = Text(mainWindow, height="12", width="60", relief = 'flat')
txtInput.place(x=20, y=20)
#Encode & Decode Buttons
cmdEncode = Button(mainWindow,  text = 'Encode', width = 30, command = lambda:EncodeClicked()).place(x=20, y = 230)
cmdEncode = Button(mainWindow,  text = 'Decode', width = 30, command = lambda:DecodeClicked()).place(x=285, y = 230)
#Start
mainWindow.mainloop()


load_GUI()


¡Espero a alguien le sirva!  ;)
#24
Presentaciones y cumpleaños / Me presento: Azav
Octubre 07, 2014, 11:45:58 PM
Escribo para presentarme, puede ser que algunos me conozcan como azav3, participo activamente en el foro indetectables pero también quise venir a darme una vuelta por aquí, hacer mis aportes y compartir con esta comunidad.

Entré al mundo del malware el año 2010, y aunque los estudios me mantienen un poco ocupado intento mantenerme al día. Soy de Chile, actualmente estudio Ingeniería y este es mi mayor hobby.

El año pasado ANTRAX me pidió ayuda para armar la Malware Data Base (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login), me invitó a participar del foro pero justo después de eso estuve retirado del asunto, y ahora, un año y medio después estoy regresando. He vuelto entrar a mi skype (szudisch para quienes quieran agregarme) y aunque no he visto a ANTRAX, varios de mis amigos siguen ahí.

Bueno, era más o menos eso, un saludo a todos, espero formar parte de esta comunidad y de a poco ir conociendo a sus usuarios. :)