Fecha de inicio: 08/02/2005 Fecha final: 25/03/2005 Lenguaje utilizado: C++ Notas: * Compilado utilizando Mingw (parte del GNU Compiler Collection) y usando el IDE DevC++... talvez requiera modificarse el codigo si se trata de compilar con otro compilador ejm: Visual C++ Tamaño de ejecutable: 48.573 Bytes Descripcion: Amy es un Virus Prepender, al iniciarse este crea unos 5 hilos suspendidos en memoria para su posterior uso. Funcionamiento: - Se separa el Host original de Amy y este es desencriptado y ejecutado. (Se despierta un hilo suspendido) - Si el dia es 13 de cualquier mes entonces se pasa al PayLoad ---------------------------------------------------| - Amy obtiene su codigo y este mismo es guardado en memoria para su posterior uso. | - Empieza la busqueda de archivos con extension *.exe en el directorio actual y en el directorio de Windows, | al encontrar un archivo este se analiza para determinar si ya esta infectado si no lo esta entonces se procede | a encriptar el archivo original y luego infectarlo. (Se despierta un hilo suspendido) | - Amy se queda en memoria buscando ventanas sospechosas para luego cerrarlas. (Se despierta un hilo suspendido) | | * Payload * <----------------------------------------------------------------------------| - Se procede a mostar en pantalla este mensaje (Se despierta un hilo suspendido) : |--------------------------------------------| | | | MENSAJE | -> Aqui va la foto | | |--------------------------------------------| - Usando la API URLDownloadToFileA se descarga una imagen de la cantante Amy Lee, se procede a crear un archivo HTML con esta imagen y algunos mensajes, el Wallpaper del usuario afectado es cambiado por el HTML generado. (Se despierta un hilo suspendido) Algoritmo de encriptacion/Desencriptacion: - Este es un algoritmo no lineal diseñado por mi, no es muy fuerte pero si te daria unos cuantos dolores de cabeza antes de lograr romperlo. Encriptacion: - Se genera una llave, esta llave consiste en el tamaño en bytes del archivo a infectar multiplicado por 6. - El byte a encriptar se la aplica XOR con la llave generada. (byte ^ llave) - El byte a encriptar es sumado con el tamaño del archivo. (byte + FileSize) - El byte a encriptar es restado con el numero actual de una variable en este caso "J" (al inicio J=1) - Si J es = 100 entonces con cada byte encriptado J va decrementando. -------\ |--> esto lo hace no lineal - Si J es = 1 entonces con cada byte encriptado J va aumentando.-------------/ Desencriptacion: - Se genera una llave, esta llave consiste en el tamaño en bytes del archivo a infectar multiplicado por 6. - El byte a encriptar es sumado con el numero actual de una variable en este caso "J" (al inicio J=1) - El byte a encriptar es restado con el tamaño del archivo. (byte - FileSize) - El byte a encriptar se la aplica XOR con la llave generada. (byte ^ llave) - Si J es = 100 entonces con cada byte encriptado J va decrementando. -------\ |--> esto lo hace no lineal - Si J es = 1 entonces con cada byte encriptado J va aumentando.-------------/ Ejemplos: - un archivo con el contenido: QWERTYUIOPASDFGHJKLZXCVBNM0123456789!"#$%/&/()=?¡ - con un tamaño de: 49 bytes - Asi quedaria encriptado: ©ª»£¨œ§ª«Ÿ¯œ°­­¡žž¢‹Œ¢”Ÿšœ®®ªª®®ªªžžµ±±µµª°¨¤¤—”) - un archivo con el contenido: AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCC - con un tamaño de: 56 bytes - Asi quedaria encriptado: ¹¸·¶µ´³²±°¯®­¬«ª¦¥¤£¢¡ Ÿžœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€ (No lineal =) Ventanas a cerrar: - Registry Editor - Regedit.exe - System Configuration Utility - msconfig.exe - Editor del Registro - Regedit.exe - Utilidad de configuración del sistema - msconfig.exe - Windows Task Manager - taskmgr.exe - Administrador de tareas de Windows - taskmgr.exe Infeccion: Acciones realizadas al encontrar un ejecutable no infectado: - Se encripta el Host. - Se lee el contenido del Host encriptado y se guarda en un lugar de la memoria. - Se crea un archivo temporal con nombre aleatorio. - Se escribe en el archivo el codigo de Amy. - Se escribe en el archivo el codigo encriptado del Host original. - Se escribe la firma del virus = Amy. - Una copia del archivo temporal remplaza al Host original. - El archivo temporal original es borrado con el algoritmo NATO. |------------| | | | HOST | ----> Antes de la infeccion | | |------------| |------------| | | | AMY | | | |------------| ----> Despues de la infeccion | | | HOST | | ENCRIPTADO | |------------| | | | FIRMA | | | |------------| Algoritmo NATO: Este es el algoritmo para la eliminación de archivo standard del North Atlantic Treaty Organization (NATO) su nivel de seguridad es alto. Estructura de funcionamiento: - 1) Sobrescribir la información con = 0x00 y 0xff de manera intercalada unas 6 veces. - 2) la 7 vez se sobrescribe la información con datos aleatorios Este es mi primer virus hecho en C++ ... Es decir: No esperen una maravilla de codigo jeje, este se puede optimizar bastante pero por razones de tiempo puez se quedo asi. Byt3Cr0w/GEDZAC bytecrow@post.cz www.byt3cr0w.tk