Programacion en assembler

Solo disponible en BuenasTareas
  • Páginas : 12 (2781 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de octubre de 2010
Leer documento completo
Vista previa del texto
Assembler

La idea para este capítulo es ver algunos conceptos básicos de assembler que van a ser necesarios para programar el virus y de paso vamos a aprender algunas cosas de Ollydbg que nos van a ser útil luego.

No va a ser un ‘curso de assembler’, ya que el tema da para mucho, y además hay muy buenos cursos por la red. Solo vamos a ver algunas cosas básicas que si o si necesitamos saberpara programar nuestro virus.

Una aclaración, de acá en más vamos a utilizar siempre numeración hexadecimal, o sea que emplearemos los caracteres del 0 al 9 mas las letras A, B, C, D, E y F. Hay que acostumbrarse a esto ya que es una forma estándar de representar la información, tanto de los programas (opcodes), como en el dump, la memoria y los registros. De todas formas conviene siempreaclarar que tipo de numeración estamos empleando, para esto se agrega un sufijo al final del número: h-hexadecimal o-octal b-binario d-decimal.

Vamos a instalar un plugin que es muy útil en Ollydbg, y de paso veremos como instalar fácilmente cualquier plugin de este programa. La herramienta que veremos se llama CommandBar, y es muy útil una vez que nos acostumbramos a ella.

Lo que tenemos quehacer es crear una carpeta donde poner todos nuestros plugins, yo la creé dentro del directorio del Olly, de la siguiente forma: C:\OllyDBG\plugins, pero le pueden poner cualquier nombre.

Copiaremos en ese directorio el plugin, en este caso ‘CmdBar.dll’. Luego abrimos el Ollydbg y vamos a la opción del menú que dice Options -> Appearance



Y luego en la solapa ‘Directories’ ponemos elpath donde colocaremos nuestros plugins:



Ahora solo tenemos que reiniciar el Olly y listo.
La próxima vez que necesitemos un plugin solo tenemos que copiarlo dentro de esa carpeta y ya va a estar disponible para utilizarlo.

Lo que hace esta herramienta es ponernos en la parte inferior del Olly una barra desde
donde vamos a poder ingresar algunos comandos, los cuales ya iremos viendo.Para probar como funciona coloquemos en la barra lo siguiente ‘? 012 + 0A0’ y démosle enter:



Lo que hicimos fue utilizar el comando ? para que nos muestre algo y luego le pusimos dos valores en hexa para que los sumara (una aclaración, siempre que pongamos valores en hexa que empiecen con una letra tenemos que anteponerle un cero sino nos da error, como el caso del 0A0). El resultado lomuestra en hexa, en decimal y el valor ASCII correspondiente.

Sigamos ahora con Assembler y empecemos con lo más básico, los registros.

Los registros

Los registros los podemos ver como espacios físicos que residen dentro del procesador y se emplean para controlar instrucciones en ejecución, manejar direccionamientos de memoria y proporcionar capacidades aritméticas y lógicas. Siempre quehablemos de registros vamos a hacer referencia a los registros de 32 bits, los cuales aparecieron con los procesadores 386 en adelante, no a los antiguos registros de 16 bits que utilizábamos en programas DOS.

Registros de uso general:

EAX: también llamado acumulador, es un registro de propósito general pero también muy utilizado en operaciones matemáticas, para obtener datos devueltos poralgunas APIs como por ejemplo FindFirstFileA, etc. Podemos utilizar también los últimos valores como si fuera un registro de de 16 bits (AX), y a su vez podemos dividir AX en dos registros de 8 bits (AH y AL).



Vamos al Olly, abramos el programa que hicimos en el capítulo anterior (o cualquier otro), y sobre la ventana de registros hagamos doble clic sobre EAX, nos muestra una ventana paraeditarlo, y escribamos 12345678 y presionemos OK.


Vemos que EAX toma el valor que ingresamos, ahora vayamos a la barra de comandos y escribamos ? EAX, vemos que nos muestra el valor completo 12345678.
Ahora escribamos ? AX y vemos que nos muestra 5678, las últimas 4 cifras.
Lo mismo si ponemos ? AH muestra 56 y ? AL 78.




EBX: también llamado base, además de su uso general se...
tracking img