Esto es un copy&paste esto fue echo por un usuario de elhacker.net miren:
Temario:
Parte 1 – Fundamentos para la escritura.
1. Introducción
1.1.- ¿Qué es un virus informático?.
1.2.- Requisitos.
1.3.- Disclaimer.
2. Funciones para abrir/leer/escribir archivos binarios
2.1.- Open.
2.2.- CLOSE.
2.3.- PUT.
2.4.- GET.
2.5.- Buffers y funcion Space()
2.5.1.- ¿Qué es un buffer?
2.5.2.- ¿Cómo crear un Buffer en VB?
2.5.3.- Prototipo del procedimiento Space()
2.5.4.- Pequeña descripción de Space()
3. Estructura Viral – Parte 1.
3.1.- Prepending Method.
3.1.2.- Funcionamiento
.
3.2.- Buscando Marca de Infección.
3.2.1.- Formas de marcado de ficheros.
3.2.2.- Importancia de la marca de infección.
3.2.3.- Modificar la DOS Stub del PE (Portable Executable)
3.2.4.- Size padding
3.2.5.- Firma debajo del huésped
3.3.- Infectando el host
3.3.1.- VSC – Qué es? Y su importancia en el virus.
3.3.2.- ¿Cómo obtengo el tamaño total del virus después de haberlo compilado?
4. Estructura Viral – Parte 2.
4.1.- Regenerando el fichero infectado.
4.2.- Ejecución.
4.3.- ¿Qué función realiza CreateProcess?
4.4.- ¿WaitForSingleObject?
Parte 2 – Técnicas de Búsqueda de hosts.
5. Virus de Acción directa.
5.1.-¿Qué es un virus de acción directa?
5.2.-Exe registry hooking
5.3.-Búsqueda de ficheros mediante APIs (FindFirstFile – FindNextFile - FindClose)
6. Virus Residentes en memoria.
6.1.- Infección de procesos en memoria.
6.2.- Búsqueda de ficheros cada cierto tiempo. (Timer)
Parte 3 – Técnicas Virales.
7. Encripción.
7.1.-String Crypting
7.2.-Operación Xor
7.3.- Host Crypting
8. Protección (Armoring).
8.1.-Packers
8.2.-Anti-Debugging
8.2.1.-IsDebuggerPresent()
8.2.2.-Detectando BreakPoints
8.2.3.-GetTickCount()
8.2.4.-¿Y qué si nos debuggean?
9. Payload
10. Estructura viral, compilando y preparando un huésped.
10.1.-Estructura Viral.
10.2.-Compilando
10.3.-Preparando huésped.
11. Despedida, Agradecimiento
s, Referencias y Contacto.
Introducción
El principal objetivo de este taller es ayudar al lector a entender el tema de la programación de los virus informáticos orientada completamente a Visual Basic 6.
Al final de éste, el usuario habrá adquirido los conocimientos necesarios y fundamentos principales para desarrollar su propia especie viral.
El autor de éste documento, asume que usted tiene los conocimientos necesarios para desarrollar al menos un “hello world” en el compilador de Microsoft (visual basic 6) en todo caso recomiendo ir a
Para ver este enlace Registrate o Inicia Sesionwww.google.com
y buscar tutoriales.
También se asume el conocimiento del concepto general de la palabra “virus informático” y sus correspondient
es clasificacione
s, si éste no fuera el caso, definamos entonces
¿Qué es un virus informático?
“Los virus son programas capaces de auto reproducirse copiándose en otro programa al que infectan, todo ello sin conocimiento del usuario”
Ésta es la definición más acertada y la que nos queda perfecto para este documento, creo después de leer esta simple oración tenemos completamente respondida la duda y sí aún no fuera así al final de éste taller daré algunas referencias hacia documentos que recomiendo leer para entender mejor los conceptos básicos.
Requisitos
• Compilador Microsoft Visual Basic 6 (viene en el Visual Studio 6)
• Visor de Texto API (viene en el paquete de Visual Studio 6)
• Win32.HLP – Referencia de API’s (
Para ver este enlace Registrate o Inicia Sesionwww.google.com
)
• Conocimiento en el uso de las API’s (Application Programming Interface)
• Conocimiento medio de Windows (El registro, el WFP, etc)
• Editor Hexadecimal.
• Paciencia, Cerebro y motivación (Muy importante!)
Estos son los requisitos mínimos para poder empezar con éste taller, si no tienes el compilador de VB6 anda a comprarlo a tu tienda más cercana!! Sin él no podrás compilar ninguno de los ejemplos mostrados!
Disclaimer:
Por supuesto! Siempre hay un disclaimer y éste taller no se salva de él, aclaro completamente, NO ME HAGO RESPONSABLE DE LOS CONOCIMIENTOS ADQUIRIDOS AL FIN DE ÉSTE, recuerda que el conocimiento es poder y todo poder conlleva a una responsabilida
d, si tu objetivo al tomar éste taller es el de estar fastidiando gente y esparciendo tus especies por doquier es mejor que no leas, sin embargo sé que muchos lo harán, pero queda bajo responsabilida
d de cada uno el uso que se le de a ésta información, y como dijo un reconocido escritor de virus “Destruir es fácil, lo difícil es crear”.
Sí cumples los requisitos y estás de acuerdo con lo anteriormente dicho, empecemos ya con este taller/curso! PD: los códigos aquí mostrados puede que contengan errores, esto para evitar script kiddies.
Funciones para Abrir/Escribir/Leer archivos binarios.
Open
Es fundamental saber como abrir un archivo, leer y escribir en él, a continuación detallaré el funcionamiento de Open para su posterior uso en nuestra especie (Sé que muchos ya se lo saben, pero apenas vamos comenzando, con calma.)
Ésta es la sintaxis de Open:
Open FICHERO For Binary Access Tipo de Acceso As #Numero
FICHERO = Obviamente el fichero que vamos a abrir
Tipo de Acceso = Aquí colocaremos el tipo de acceso al fichero
Numero = Colocaremos el numero que identifica el fichero abierto (Este número es muy importante!)
Tipos de Acceso
Existen dos tipos de Acceso los cuales son Write y Read, que obviamente como lo indica su nombre sirven para ello.
CLOSE
Close nos permitirá cerrar el archivo una vez hechas las operaciones tanto de lectura como de escritura pasándole como parámetro el número que identifica el fichero a cerrar.
Prototipo:
Close #Numero
PUT
Put, nos permite escribir el contenido de una variable dentro del archivo binario y su prototipo es el siguiente:
Put #Numero, , variable
Como pueden ver ese “numerito” nos es muy importante para especificar el archivo al que hay escribir, después de este valor dejamos dos comas, (si hay otro valor pero no estoy muy seguro para que sirve, si no me equivoco se especifican valores hexadecimales para especificar la posición en la cual escribir, sin embargo esto no lo necesitaremos), y por ultimo una variable con los datos a escribir en el archivo.
Ejemplo de escritura en un archivo:
Dim szValueToWrite as String
szValueToWrite = “Hola mundo!”
Open “archive.txt” for Binary Access write as #1
Put #1,,szValueToWrite
Close #1
GET
Si el anterior nos permitía escribir datos, obviamente este nos permitirá leerlos.
Prototipo de GET:
Get #Numero, , buffer
Y vamos de nuevo, el numero identificador del archivo al cual leeremos datos, seguido de dos comas y la variable del buffer donde se almacenarán los datos
Buffers y Función Space()
¿Qué es un buffer?
Los buffers son areas reservadas de memoria donde podemos almacenar datos, en C por ejemplo haciendo un char variable[1024]; creamos un buffer 1024 bytes en el cual almacenaremos datos del tipo ya antes mencionado (char)
¿Cómo crear un Buffer en VB?
Para crear un buffer en VB donde almacenaremos los datos leídos de los ficheros declararemos una variable de tipo string y usaremos la función Space.
Prototipo de Space:
Function Space(X As Long)
Descripción:
Crea X espacios dependiendo del argumento pasado a la función.
Código:
Dim szEspacio as String
szEspacio = Space(62) ‘Genera 62 espacios
El siguiente es un ejemplo de lectura de un archivo:
Dim szEspacio as String
Open “archivo.exe” for Binary Access Read as #1
szEspacio = Space(LOF(1)) ‘LOF(1) = tamaño de todo el archivo
Get #1, , szEspacio
Close #1
Esctructura Viral – 1era Parte.
Prepending Method.
El método de infección prepender está basado en los virus de sobre-escritura, si se puede decir “una evolución”, ya que a diferencia de estos, los prependers son capaces de regenerar el fichero infectado y correrlo.