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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 [342] 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 ... 381
3411  Programación / ASM / Re: Tamaño de word en: 17 Noviembre 2009, 08:10 am
Un char (caracter) ocupa un byte unicamente, el tema esta en el alineamiento en memoria pero en x86 una palabra son 2 bytes, una doble palabra (DWORD) son 4 bytes.

Habria que ver que modificadores estas usando para el compilador, si yo genero ESE codigo con VC++ no hace nada al optimizarlo ...
3412  Programación / ASM / Re: Pregunta acerca de S.Os en: 15 Noviembre 2009, 18:45 pm
Si, cualquier PC (incluidas las mas modernas) arranca en modo real.
3413  Programación / ASM / Re: Puerto serie i Api CreateFile (MASM32) en: 12 Noviembre 2009, 22:24 pm
Usar la API de Windows en MASM es practicamente lo mismo que usarla con C/C++, aca tenes un tutorial:

http://www.codeproject.com/KB/system/SerialPortComm.aspx

Mas informacion en la MSDN:
Communications Resources.
Serial Communications in Win32
3414  Programación / ASM / Re: ¿Como puedo acceder a direcciones de memoria sin usar eax? en: 11 Noviembre 2009, 01:37 am
El tema no es la pregunta, sinó el tipo de pregunta.

¿ Porqué no quieres usar EAX ?  :huh:

Eso no tiene lógica... Por eso las respuestas. ;D

Es que hay que leer el hilo completo no solo el titulo  ;)
3415  Programación / ASM / Re: Dudas varias, simples pero grandes para un noob como yo ^^ en: 9 Noviembre 2009, 22:41 pm
De nadas  :)
3416  Programación / ASM / Re: Dudas varias, simples pero grandes para un noob como yo ^^ en: 9 Noviembre 2009, 22:27 pm
que diferencia hay entre usar un registro u otro?

Existen diferentes convenciones de llamada, esto lo escribi antes sobre la de usada por los servicios de Linux:

A grosso modo en Linux se pone en eax el numero del servicio y los siguientes parametros van en ebx, ecx, edx, esi, edi y ebp.

En /usr/include/asm/ unistd.h/unistd_32.h/unistd_64.h encontraras los numeros de los servicios.



que diferencia hay entre usar un registro u otro? Vienen a ser como almacenes de memoria?

Si: registro.
3417  Programación / ASM / Re: Dudas varias, simples pero grandes para un noob como yo ^^ en: 9 Noviembre 2009, 22:14 pm
1- que significa que:
Código
  1. int 0x80
Llama al kernel? Que es 0x80?

0x80 es el numero de interrupcion que sera llamada, es la elegida por Linux como interfaz para sus servicios  (los manejadores de interrupcion estan en modo Kernel).

2- En el siguiente codigo:
se que el segundo subrallado calcula los bytes que ocupa la llamada al hola, pero como puedo especificar desde donde quiero contra bytes? Para que sirve en un hello world una lectura de este tipo si ni si quiera la expresamos en pantalla?
Que significa el primer subrallado?

Los cuenta desde esa posicion, justo despues del final de msg. ¿A que lectura te referis? Solo hay una escritura en pantalla ... eso pone en el registro edx el valor de len.

3-que son:
section   .text
_start:   
section   .data

Deduzco que deben ser clases o metodos del ensamblador, pero no lo concretizo.

No, son secciones del ejecutable, la sección de codigo y la de datos mas precisamente (ver ELF y PE por ejemplo).
3418  Programación / ASM / Re: Duda sobre e en: 9 Noviembre 2009, 22:03 pm
De nadas  ::)
3419  Programación / ASM / Re: Duda sobre e en: 8 Noviembre 2009, 23:34 pm
Si queres hacerlo por separado mira el codigo original: sys_write es la clave (en las 5 primeras lineas se hace la escritura). Lo que queres hacer es llamar a la funcion write para que escriba en la consola otra vez.
3420  Programación / ASM / Re: Problema de novato en: 8 Noviembre 2009, 23:32 pm
A grosso modo en Linux se pone en eax el numero del servicio y los siguientes parametros van en ebx, ecx, edx, esi, edi y ebp.

En /usr/include/asm/ unistd.h/unistd_32.h/unistd_64.h encontraras los numeros de los servicios.

1 es __NR_exit y el 0 que se le pasa como parametro en ebx es el valor de retorno del programa (http://linux.die.net/man/2/exit).

4 es __NR_write y el 1 que le pasas como primer parametro en ebx es STDOUT (salida por consola), el segundo parametro (ecx) deberia ser el puntero a la cadena y el tercer parametro (edx) el tamaño de la cadena.

http://linux.die.net/man/2/write

Igual si lees los comentarios del codigo ahi te indica todo.
Páginas: 1 ... 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 [342] 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 ... 381
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines