JR Computacion Todo sobre Linux
   
 
  Capitulo 1

De momento aquí os dejo una pequeña

tabla con instrucciones en lenguaje ensamblador sacada de diversos libros y paginas Web.
También una
tabla de conversión ASCII – Hexadecimal. Para que toméis contacto con el Olly Debugger incluyo dos manuales (muy buenosmanuales, mirad la carpeta correspondiente a este capitulo) dePOPE No es necesario estudiar el lenguaje ensamblador, pero estaría bien que le echarais unvistazo por lo menos a las instrucciones de salto.

ENSAMBLADOR

Registros de la CPU

La CPU tiene 14 registros internos, cada uno de 16 bits. Los primeros cuatro,
AX, BX,CX, y DX  son registros de uso general y también pueden ser utilizados como registros de 8 bits, para utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX. Los registros son conocidos por sus nombres específicos:

AX Acumulador

BX Registro base

CX Registro contador

DX Registro de datos

DS Registro del segmento de datos

ES Registro del segmento extra

SS Registro del segmento de pila

CS Registro del segmento de código

BP Registro de apuntadores base

SI Registro índice fuente

DI Registro índice destino

SP Registro del apuntador de la pila

IP Registro de apuntador de siguiente instrucción

F Registro de banderas

Instrucciones lógicas.

Son utilizadas para realizar operaciones lógicas sobre los operandos.

AND

NEG

NOT

OR

TEST

XOR

Instrucciones aritméticas.

Se usan para realizar operaciones aritméticas sobre los operandos.

ADC

ADD

DIV

IDIV

MUL

IMUL

SBB

SUB

Operaciones CALL y RET

La instrucción CALL transfiere el control a un procedimiento llamado, y la instrucción

RET

regresa del procedimiento llamado al procedimiento original que hizo la llamada. RET

debe ser la ultima instrucción en un procedimiento llamado. Los formatos generales para

CALL , RET son:

(etiqueta) CALL (procedimiento)

(etiqueta) RET (inmediato)

El código objeto particular que CALL y RET generan depende de si la operación implica un procedimiento NEAR (cercano) o un procedimiento FAR (lejano).

Instrucciones para ciclos

LOOP Transfieren el flujo del proceso, condicional o

incondicionalmente, a un destino repitiéndose esta acción hasta que el contador sea cero.

LOOP

LOOPE

LOOPNE

Instrucciones de conteo

Se utilizan para decrementar o incrementar el contenido de los contadores.

DEC

INC

Instrucciones de comparación
Son usadas para comparar operandos, afectan al contenido de las banderas.

CMP

CMPS (CMPSB) (CMPSW)

Instrucciones de banderas

Afectan directamente al contenido de las banderas.

CLC

CLD

CLI

CMC

STC

STD

STI

Instrucciones de salto

Son utilizadas para transferir el flujo del proceso al operando indicado.

JMP

JA (JNBE)

JAE (JNBE)

JB (JNAE)

JBE (JNA)

JE (JZ)

JNE (JNZ)

JG (JNLE)

JGE (JNL)

JL (JNGE)

JLE (JNG)

JC

JNC

JNO

JNP (JPO)

JNS

JO

JP (JPE)

JS

Instrucción JMP

Propósito: Salto incondicional

Sintaxis:

JMP destino

Esta instrucción se utiliza para desviar el flujo de un programa sin tomar en cuenta las

condiciones actuales de las banderas ni de los datos.

Instrucción JA (JNBE)

Propósito: Brinco condicional

Sintaxis:

JA Etiqueta

Después de una comparación este comando salta si está arriba o salta si no está abajo o si no es igual.

Esto significa que el salto se realiza solo si la bandera CF esta desactivada o si la

bandera ZF esta desactivada (que alguna de las dos sea igual a cero).

Instrucción JAE (JNB)

Propósito: salto condicional

Sintaxis:

JAE etiqueta

Salta si está arriba o si es igual o salta si no está abajo.

El salto se efectúa si CF esta desactivada.

Instrucción JB (JNAE)

Propósito: salto condicional

Sintaxis:

JB etiqueta

Salta si está abajo o salta si no está arriba o si no es igual.

Se efectúa el salto si CF esta activada.

Instrucción JBE (JNA)

Propósito: salto condicional

Sintaxis:

JBE etiqueta

Salta si está abajo o si es igual o salta si no está arriba.

El salto se efectúa si CF está activado o si ZF está activado (que cualquiera sea igual a

1).

Instrucción JE (JZ)

Propósito: salto condicional

Sintaxis:

JE etiqueta

Salta si es igual o salta si es cero.

El salto se realiza si ZF está activada.

Instrucción JNE (JNZ)

Propósito: salto condicional

Sintaxis:

JNE etiqueta

Salta si no es igual o salta si no es cero.

El salto se efectúa si ZF está desactivada.

Instrucción JG (JNLE)

Propósito: salto condicional, se toma en cuenta el signo.

Sintaxis:

JG etiqueta

Salta si es más grande o salta si no es menor o igual.

El salto ocurre si ZF = 0 u OF = SF.

Instrucción JGE (JNL)

Propósito: salto condicional, se toma en cuenta el signo.

Sintaxis:

JGE etiqueta

Salta si es más grande o igual o salta si no es menor que.

El salto se realiza si SF = OF

Instrucción JL (JNGE)

Propósito: salto condicional, se toma en cuenta el signo.

Sintaxis:

JL etiqueta

Salta si es menor que o salta si no es mayor o igual.

El salto se efectúa si SF es diferente a OF.

Instrucción JLE (JNG)

Propósito: salto condicional, se toma en cuenta el signo.

Sintaxis:

JLE etiqueta

Salta si es menor o igual o salta si no es más grande.

El salto se realiza si ZF = 1 o si SF es diferente a OF

Instrucción JC

Propósito: salto condicional, se toman en cuenta las banderas.

Sintaxis:

JC etiqueta

Salta si hay acarreo.

El salto se realiza si CF = 1

Instrucción JNC

Propósito: salto condicional, se toma en cuenta el estado de las banderas.

Sintaxis:

JNC etiqueta

Salta si no hay acarreo.

El salto se efectúa si CF = 0.

Instrucción JNO

Propósito: salto condicional, se toma en cuenta el estado de las banderas.

Sintaxis:

JNO etiqueta

Salta si no hay desbordamiento.

El salto se efectúa si OF = 0.

Instrucción JNP (JPO)

Propósito: salto condicional, toma en cuenta el estado de las banderas.

Sintaxis:

JNP etiqueta

Salta si no hay paridad o salta si la paridad es non.

El salto ocurre si PF = 0.

Instrucción JNS

Propósito: salto condicional, toma en cuenta el estado de las banderas.

Sintaxis:

JNP etiqueta

Salta si el signo esta desactivado.

El salto se efectúa si SF = 0.

Instrucción JO

Propósito: salto condicional, toma en cuenta el estado de las banderas.

Sintaxis:

JO etiqueta

Salta si hay desbordamiento (overflow).

El salto se realiza si OF = 1.

Instrucción JP (JPE)

Propósito: salto condicional, toma en cuenta el estado de las banderas.

Sintaxis:

JP etiqueta

Salta si hay paridad o salta si la paridad es par.

El salto se efectúa si PF = 1.

Instrucción JS

Propósito: salto condicional, toma en cuenta el estado de las banderas.

Sintaxis:

JS etiqueta

Salta si el signo está prendido.

El salto se efectúa si SF = 1.

Instrucciones de transferencia

Son utilizadas para mover los contenidos de los operandos. Cada instrucción se puede

usar

con diferentes modos de direccionamiento.

MOV

MOVS (MOVSB) (MOVSW)

Instrucciones de carga

Son instrucciones específicas de los registros. Son usadas para cargar en algo en

registro

bytes o cadenas de bytes.

LODS (LODSB) (LODSW)

LAHF

LDS

LEA

LES

Instrucciones de la pila

Estas instrucciones permiten el uso de la pila para almacenar y extraer datos.

POP

POPF

PUSH

PUSHF

TABLA DE CONVERSION
 

Bueno espero que mientras leíais esta introducción estuvierais bajando el OllY, si es así
Para seguir el curso debe estar registradfo en la pagina gracias

 

podemos pasar al siguiente capitulo y empezar a trastear con el primer crackme.

 
JR Computacion
 
Importante
 
Registrese para poder acceder a todo el material que se presenta aqui es facil y no se compromete en absoluto es gratis
Temas que se podran tratar
 
Linux
Windows Word Exel y LINUX e hacking
Encuestas
 
Prticipe en las mismas para saber que se incluira en la pagina
Tu Anuncio
 
Si queres anunciar algo contactate y te diremos las condiciones para que tu anuncio o blog aparezca aqui
 
Hoy habia 22 visitantesvisitando esta pagina
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis