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)
| | | |-+  errores al compilar asm
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: errores al compilar asm  (Leído 14,724 veces)
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #10 en: 4 Mayo 2014, 19:45 pm »

muchas gracias eternal idol.
esta muy interesante los tutos y bueno pues ya pude ensamblar.
bueno quisiera preguntarte lo siguiente.
1.-¿se puede ensamblar el codigo de masm en nasm?
2.-¿quisera saber si cuales la estructura para imprimir por consola es que quisiera saber hacerlo tanto en consola como por gui?
3-¿todos los programas sigues esta sintaxis como la de los tutos que me pasate o cambia?
4.-como quiero aprender asm para despues inciarme en ingieneria inversa quisiera saber si ¿aprendiendo a ensamblar de este modo despues podria intepretar cualquier programa desensamblado?
por que e visto que loscodigo se pueden pueden esribir diferente pero hacen lo mismo o solo con la experencia ire dandoe de todos esos detalles.


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #11 en: 4 Mayo 2014, 19:58 pm »

Que yo sepa, no, aunque no use mas que un par de veces NASM:
http://www.nasm.us/doc/nasmdoc2.html#section-2.2

Hay que usar la API de Windows: GetStdHandle con STD_OUTPUT_HANDLE y WriteConsole.

No se a que sintaxis en particular te referis, esos tutoriales son para MASM ...

Si, las diferencias no son tan grandes como para no entender un codigo.


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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #12 en: 5 Mayo 2014, 00:59 am »

hola gracia spor la respuestas.
bueno pues estuve buscando lo que me dijiste y encontre este ejemplo y me compila pero cuando lo ejecuto no imprime nada nose si me podrias ayudar a correjirlo y acompletarlo para que lea datos y lo buelba a imprimir y s i no es mucha molestia que me digas como funciona el codigo que agreges.

Código
  1. .386
  2.  
  3. .model flat,stdcall
  4.  
  5. option casemap:none
  6.  
  7.  
  8. include \masm32\include\windows.inc
  9. include \masm32\include\kernel32.inc
  10.  
  11. includelib \masm32\lib\kernel32.lib  
  12.  
  13. .data
  14. ;se declara la variable con el texto hello world con salto de linea y final de cadena
  15. output db "Hello World!", 0ah, 0h  
  16.  
  17. .code
  18. start:
  19.  
  20. ;le indicamos que seba a usar el estandar de salida
  21. ; getstdhandle como tiene tres  tipos de opcion y aqui se indica que se usara el de salida
  22. invoke GetStdHandle, STD_OUTPUT_HANDLE
  23. ;aqui es la linea que no entiendo bien se que se escribe en la patalla con writeconsole  y se supone que eax es un acumulador se guarda hay y luego nose por que usan sizeof ebx y NULL
  24. invoke WriteConsole, eax, addr output, sizeof output, ebx, NULL
  25.  
  26. invoke ExitProcess, 0
  27.  
  28. end start
  29.  

bueno espero que me puedas ayudar y gracias de nuevo y si me equivoco en algo corregeme porfavor.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #13 en: 5 Mayo 2014, 01:13 am »

En el registro EAX esta el valor de retorno de GetStdHandle. sizeof calcula el tamaño de la cadena en cuestion. No entiendo la razon de usar EBX en ese contexto. ¿Cual es su valor? Es indefinido y ahi tenes que poner un puntero a un DWORD:

  _Out_       LPDWORD lpNumberOfCharsWritten,
lpNumberOfCharsWritten [out]
    A pointer to a variable that receives the number of characters actually written.

Código
  1. .data
  2. ...
  3. written dd 0
  4. ...
  5. invoke WriteConsole, eax, addr output, sizeof output, offset written, NULL

Todo esto es basicamente uso de la API de Windows, no esta relacionado con assembly necesariamente, asi que primero busca en la MSDN la documentacion de las funciones de consola y practica con C/C++ si tenes problemas.
« Última modificación: 5 Mayo 2014, 01:15 am por Eternal Idol » 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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #14 en: 5 Mayo 2014, 06:59 am »

hola Eternal Idol.
bueno gracias entonces revisar los tutoriales y me pondre en practica gracias por todo nos vemos saludos.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #15 en: 5 Mayo 2014, 09:54 am »

De nadas, con el arreglo del EBX ya deberia funcionar (ejecuta el programa desde cmd sino se te va a cerrar la consola automaticamente sin ver nada).
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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #16 en: 5 Mayo 2014, 21:00 pm »

hola perdon pero no teentendi bien eso de con el arreglo ebx deberia de funciona.
nose si me pueda explicar.
y bueno si cuando ejecuto el programa no me muestra nada segun y buscando encontre que me faltaba iniciar el stout con allocConsole yahora si me habre rapido la consola y segun yo el codigo queda asi.

Código
  1. .386
  2.  
  3. .model flat,stdcall
  4.  
  5. option casemap:none
  6.  
  7. include \masm32\include\windows.inc
  8. include \masm32\include\kernel32.inc
  9. includelib \masm32\lib\kernel32.lib  
  10.  
  11. .data
  12. ;se declara la variable con el texto hello world con salto de linea y final de cadena
  13. output db "Hello World!", 0ah, 0h  
  14. ;data
  15. ;written dd 10
  16. .code
  17. start:
  18.  invoke AllocConsole
  19. invoke GetStdHandle, STD_OUTPUT_HANDLE
  20.  
  21. invoke WriteConsole, eax, addr output, sizeof output, offset written, NULL
  22. invoke ExitProcess, 0
  23.  
  24. end start
  25.  
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #17 en: 5 Mayo 2014, 21:09 pm »

Si el SUBSYSTEM es CONSOLE no hace falta llamar a AllocConsole, y en este caso deberia serlo. Asi genere el ejecutable yo:
ml /Cp /coff console.asm /link /subsystem:console

Ahora con ejecutarlo desde cmd.exe (tecla de Windows + R, cmd) deberias ver la cadena.

PD. Ahi en tu codigo tenes comentado written por ejemplo.
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
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #18 en: 5 Mayo 2014, 21:39 pm »

hola si es cierto mi error fue que yo al momento de likear lo ponia asi.
SYSTEM:WINDOWS
Y ERA COMO TU ME DIJISTE
SYSTEM:CONSOLE.

muchas gracias nos vemos saludo.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: errores al compilar asm
« Respuesta #19 en: 5 Mayo 2014, 21:41 pm »

De nadas  ::)
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 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines