elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [?]Incognitas, en assembler u.u
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [?]Incognitas, en assembler u.u  (Leído 5,303 veces)
Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
[?]Incognitas, en assembler u.u
« en: 4 Diciembre 2009, 17:10 pm »

Tengo varias preguntas

1.- Para que se usaria
Código:
assume fs:nothing
?

2.- si no me equivoco se usaria el segmento -fs- para accesder a  TIB, mas especificamente en  fs:[0], pero es la unica utilidad que tiene ese segmento y el
  • por que iria?

3.-
En este codigo, teniendo en cuenta que ya tengo un contenido en los registros esi y edi

Código:
mov     ecx, 0Eh                         
cld                                             ; limpia el byte de dirección de la comparación
repe    cmpsb                              ; compara [esi] con [edi] byte a byte
jnz     Inicio

3.1.-por que usaria cld?
Se que limpia DF, pero no  entiendo segun lei es el que se
usa para recorrer una cadena de manera ascendente o descendente en memoria.

3.2.-
Y el repe va decrementer ecx y comparando esi y edi ahora por que no tiene parametros ese

repe    cmpsb   

osea un destino y una fuente,
segun lei vi esto:

Código:
REPE/REPZ CMPS destino, fuente

pero en ese codigo dan porsentado que va a comparar bit a bit [esi] y [edi]?

4.-

4.1.- Ahora sobre los segmentos aveces veo en el olly

MOV DWORD PTR DS:[40207C],EAX

eso significa que va a mover eax al contenido de memoria en 40207C y en el segmento ds?

Y al revez

add eax,ds:[ebx] , que añadiria el registro eax al contenido de direccion de memoria en el segmento DS Y la direccion EBX?

4.2.-

no solo Usan DS si no tmb SS

eso si no entiendo

MOV DWORD PTR SS:[40207C],EAX

se que es stack segment ose el segmento de pila, y eso es todo pero no entiendo por que lo usan.

4.3.- Ahora hay varios segmentos eso quiere decir que tmb se usan para hacer por ejemplo MOV o ADD, etc?

algun ejemplito xD

Disculpen por la molestia pero e estado buscando info pero nada concreto, u.u






En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Yurix

Desconectado Desconectado

Mensajes: 72


Paz para la guerra y guerra por la paz


Ver Perfil
Re: [?]Incognitas, en assembler u.u
« Respuesta #1 en: 4 Diciembre 2009, 18:08 pm »

Hola man:

fs:nothing , hasta donde se espara que el ensamblador te permita usar FS: , en masm tienes que ponerlo , si no lo haces entonces puedes usar los opcodes directamente EJ: db 90


Se usa mov ecx para la longitud de lo que quieres comparar ,
CLD limpia el flag de direccion , se usar por "seguridad" para que la comparacion con repe cmpsb sea en la direccion correcta, puedes quitarlo si no hay ninguna manipulacion con el flag D

repe cmpsb no tiene parametros porque esa instruccion siempre usa esi edi para comparar , es como el loop que decrementa solo a ECX no a mas nigun registro.

Olly lo desambla de esta forma:
00401009      F3:A6         repe    cmps byte ptr es:[edi], byte ptr ds:[esi]

Pero para usarlo con masm debes poner  : repe cmpsb , no se cual uses?

"pero en ese codigo dan porsentado que va a comparar bit a bit [esi] y [edi]?"
Bueno es mejor pensar que compara byte a byte ya que dice cmpsB  << esa B indica que compara byte por byte , si lo cambias por W compara de dos en dos WORD *(dos bytes) y D (dword) son 4 bytes.Mas nada

MOV DWORD PTR DS:[40207C],EAX
Mueve el contenido de EAX *(XXXX XXXX) a el espacio de memoria entre los corchetes []

EAX y todos los demas registros que terminan en X se subdividen en  una zona alta y baja y otra que incluye a estas dos , ejemplo

eax >> ax >> ah >>al

AX es una palabra o word , ah y al son bytes

MOV byte PTR DS:[40207C],al

Al en este caso es el extremo derecho del registro eax.

Ademas estan >
EAX
ECX >> cx >>ch y cl
EDX >> asi .....
EBX ....

-------

Los registros de segmento son> ES CS SS DS FS GS

Te recomiendo que uses OLLY

Realmente no se porque usan SS en ese caso , puede ser para despistar un poco (no se aquien?) , otra explicacion en otro caso !! puede usarse para ahorrar espacio en los casos en que se quiera trabajar con la pila Ej:

00401009       890424              mov     dword ptr SS:[esp], eax
0040100C     64:890424           mov     dword ptr FS:[esp], eax

Como ves uno es mas grande que otro , si estas haciendo una Shell puede que sea mejor usar SS cuando trabajas con la pila , esa es una explicacion al tema.

NoxOner no es molestia preguntar !!
Si lo es responder !! :xD

Animo y sigue preguntando


Yurix
El macho alfa




En línea



http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.
Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: [?]Incognitas, en assembler u.u
« Respuesta #2 en: 4 Diciembre 2009, 18:29 pm »

no es que el caso es que debe tener algun fin usar los segmentos en los MOV, ADD, etc, si yo uso FS para acceder a la TIB, ps me dio la curiosidad y la interrogante de por que ponian SS, DS, y segun lo que lei

Citar
Poniendo ya un ejemplo de acceso con la instrucción ADD (sumar),
una forma de utilizarla sería "add eax,ds:[ebx]", que añadiría al registro EAX el contenido de la dirección de
memoria en el segmento DS y la dirección EBX.

ntoncs si tiene un fin bueno, too tiene un fin pero el usar el segmento "adecuado" es lo que quiero entender y aveces no tengo por q usar ningun segmento para algun mov, add, etc.
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Yurix

Desconectado Desconectado

Mensajes: 72


Paz para la guerra y guerra por la paz


Ver Perfil
Re: [?]Incognitas, en assembler u.u
« Respuesta #3 en: 4 Diciembre 2009, 18:33 pm »


Hola , yo simpre uso DS:  y como te explique para las operaciones con la pila uso SS:
Confieso que realmente no se cual puede "ser mejor"?

Saludos
En línea



http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.
Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: [?]Incognitas, en assembler u.u
« Respuesta #4 en: 5 Diciembre 2009, 00:25 am »


Hola , yo simpre uso DS:  y como te explique para las operaciones con la pila uso SS:
Confieso que realmente no se cual puede "ser mejor"?

Saludos

si tu me dices que usas ds pero por que lo usas?, me dices que para las operaciones con la pila usas ss: bueno eso entiendo por que algo asi entendi viendo los tutes de narvaja cuando apuntaba a una direccion de pila usaba ese segmento, pero en fin debe tener una finalidad usar los segmentos en un MOV, ADD, etc, y es lo que deseo saber :), derepente el moderador de esta zona podria responder a mi pregunta :)
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [?]Incognitas, en assembler u.u
« Respuesta #5 en: 5 Diciembre 2009, 02:29 am »

Es lo mismo, al menos en Windows:

cs=001b ss=0023  ds=0023  es=0023  fs=003b  gs=0000.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: [?]Incognitas, en assembler u.u
« Respuesta #6 en: 5 Diciembre 2009, 20:46 pm »

Es lo mismo, al menos en Windows:

cs=001b ss=0023  ds=0023  es=0023  fs=003b  gs=0000.

:O muxas gracias, pero deseo saber cuando es el momento indiciado de usarlos en un MOV o ADD, etc y cuando no es necesario? ya que e visto que lo usan y si lo usa, creo que cambia el resultado...  :silbar:
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [?]Incognitas, en assembler u.u
« Respuesta #7 en: 6 Diciembre 2009, 11:36 am »

Creo recordar que por defecto siempre se usa ds, usar ss o es no tiene sentido alguno ya que nunca pueden cambiar el resultado al tener el mismo valor. fs es otra historia, ahi mismo podes ver que tiene otro valor y como ya mencionaste antes es usado por Windows para algunas estructuras internas.

En definitiva no hace falta especificar el segmento normalmente.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda, con problema ecuación lineal 3 incognitas
Programación C/C++
mr.ads 0 1,387 Último mensaje 16 Marzo 2016, 05:56 am
por mr.ads
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines