02 Introducción a la programación de virus en ASM

Páginas: 10 (2288 palabras) Publicado: 23 de septiembre de 2015
Capítulo 2
Temas básicos de Windows

En este capítulo vamos a ver algunos conceptos que hay que tener bien claros antes de comenzar a programar nuestro código. Vamos a ver como hace Windows para ejecutar un programa y como sería el formato básico de un programa en MASM.
Como siempre vamos a ver lo básico y le dejo a cada uno la tarea de profundizar cada tema. Aunque parezca menos importante,si realmente queremos programar virus de calidad es necesario que se entiendan determinadas cosas.

Empecemos.
Vamos a realizar nuestro primer programa en assembler para explicar todo sobre el.
Lo que va a hacer nuestro programa es simplemente mostrar un mensaje en una ventana.

Para esto vamos a abrir el RadASM y seleccionamos Archivo -> Nuevo archivo y nos va a dejar una pantalla vacía para quecomencemos a escribir nuestro código.

Dentro de esta ventana copiamos lo siguiente:

.386
.model flat, stdcall
option casemap:none

include windows.inc
include user32.inc
include kernel32.inc

includelib user32.lib
includelib kernel32.lib

.data

mensaje db "Primer programa de prueba", 0
titulo db "Sector Virus", 0

.code

codigo:

push MB_OK + MB_ICONINFORMATION
push offset titulo
pushoffset mensaje
push 0
call MessageBox

push 0
call ExitProcess

end codigo
Antes que nada vamos a guardarlo, para esto hacemos clic en Archivo -> Guardar archivo y seleccionamos donde guardarlo. Podemos crear una carpeta donde iremos poniendo nuestro código generado, por ejemplo yo creé la carpeta C:\Laboratorio, y le ponemos algún nombre. Yo le puse asm001.asm.

Ahora hay que compilarlo yluego generar el ejecutable para poder correrlo, para esto hacemos clic primero en el icono que dice ‘Ensamblar’ y luego sobre el que dice
‘Estructurar’ (prefiero como se dice en inglés, ‘Link’ y ‘Build’).


Por último le damos a ejecutar y voilá, nos muestra la famosa ventanita con el mensaje que le pusimos.



Ahora veamos rápidamente que es cada cosa:

.386

Esto le dice al ensamblador que vamosa usar el conjunto de instrucciones del 80386, también podemos usar .486, .586., .486p, etc.


.model flat, stdcall

.model especifica el modelo de memoria del programa, en Win32 hay un solo tipo de memoria, la plana (flat). Con este modelo de memoria es como si tuviéramos 4 Gb de memoria disponible para nuestro programa (2^32 = 4294967296, ya que estamos trabajando en 32 bits).

Cuandoejecutemos nuestro programa vamos a ver esos 4 Gb de memoria, lo cual no significa que tengamos 4 Gb de memoria RAM disponible. Windows utiliza parte de la RAM y parte del disco rígido para ejecutar los programas de acuerdo al requerimiento de memoria que tenga, a este método se lo denomina ‘memoria virtual’, obviamente no utiliza disco rígido a menos que sea absolutamente necesario ya que la velocidadde acceso es mucho menor.

El SO (sistema operativo), para optimizar el proceso de manejo de memoria la fragmenta en bloques, a los cuales llama ‘páginas de memoria’, esta ‘pagina’ representa el bloque mínimo de memoria a leer o a escribir, normalmente en Windows es de 4Kb.

Para poder manejar este esquema utiliza unas tablas denominadas ‘tablas de páginas’ por medio de las cuales relacionasecciones de esa memoria que nosotros utilizamos con memoria física real.

Cuando referenciamos una dirección de memoria, Windows traduce la dirección virtual en una real, luego verifica si está cargada en memoria. En caso de que no sea así genera lo que se llama un ‘fallo de página’ y la carga en memoria RAM para que la podamos utilizar.

stdcall Indica al ensamblador el orden que debe seguirse parapasar parámetros, ‘izquierda a derecha’ o ‘derecha a izquierda’

option casemap:none

Esto simplemente le indica al compilador que sea sensible a mayúsculas y minúsculas, o sea que no es lo mismo poner messagebox que MessageBox. Cuidado con esto que a veces nos olvidamos y nos genera varios dolores de cabeza.

include

Este comando sirve para adjuntar dentro de nuestro código otros archivos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Introducción a la programación de virus en ASM
  • 03 Introducción a la programación de virus en ASM
  • Programacion En Lenguaje Asm
  • Introducción A Los Virus
  • Introducción a la programación
  • Introducción A La Programacion
  • introducción a la programacion
  • Introduccion A La Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS