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


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 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 358 359 360 361 362 363 ... 385
3471  Programación / ASM / Re: Problema de novato en: 8 Noviembre 2009, 14:30 pm
Despues de ensamblar y enlazar ya podes ejecutar tu programa (no hace falta involucrar al compilador gcc):

nasm -f elf test.asm
ld test.o -o test
./test
3472  Programación / ASM / Re: imprimir los bits que hay en una direccion de memoria en: 7 Noviembre 2009, 22:38 pm
Si, de unos y ceros ...

¿Y si usas la g/libc? Tenes disponible la funcion printf por ejemplo, seria mucho mas simple y podrias imprimirlo en hexadecimal ... cuando ya la domines podes incluso depurarla y ver que hace exactamente.
3473  Programación / ASM / Re: imprimir los bits que hay en una direccion de memoria en: 7 Noviembre 2009, 19:48 pm
La direccion 1 seguro que no es valida, mejor intenta con la de tu main, asi sabras el codigo binario de las instrucciones  ::)

PD. No mire el codigo pero depuralo con el gdb en todo caso.
3474  Programación / ASM / Re: Que cosa mas rara en: 7 Noviembre 2009, 08:51 am
De nadas  ::)
3475  Programación / ASM / Re: ¿Como puedo crear una libreria estatica con flat assembler? en: 6 Noviembre 2009, 23:00 pm
Esto es muy especifico de la herramienta que uses, FASM por lo que veo. Yo no puedo ver como hacerlo aca en el manual:

http://flatassembler.net/docs.php?article=manual#2.4

format PE GUI 4.0 LIB fue mi primera intuicion pero no funciona y obviamente no figura ahi.

Agrego, es posible generar archivos objeto COFF y con VC++ entonces generar una libreria estatica, esto es algo muy basico que apenas ensambla, enlaza y funciona pero tendras que hacer mas.

Tu codigo para .obj:
Código
  1. format MS COFF
  2. ;entry DllEntryPoint
  3.  
  4. include 'win32a.inc'
  5. cadena db 'asd',0
  6.  
  7. section '.text' code ;readable executable
  8.  
  9.  
  10. proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
  11.        mov     eax,TRUE
  12.        ret
  13. endp
  14.  
  15. public MiFuncion
  16. public MiFuncion as '_MiFuncion'
  17.  
  18.  
  19. proc MiFuncion
  20.        invoke  MessageBox,HWND_DESKTOP,cadena,cadena,MB_OK
  21.        ret
  22. endp
  23.  
  24. section '.idata' data ;Mimport data ;readable writeable
  25.  
  26.  library user,'USER32.DLL'
  27.  
  28. extrn '__imp__MessageBoxA@16' as MessageBox:dword
  29.  
  30. ;  import user,\
  31. ;         MessageBox,'MessageBoxA'
  32.  
  33. section '.edata' data ;export data readable
  34.  
  35. ;  export 'midll.dll',\
  36. ;         MiFuncion,'MiFuncion'
  37.  
  38.  
  39. section '.reloc' data; fixups data discardable

fasm faLib.asm generara faLib.obj
lib faLib.obj generara faLib.lib

Un ejemplo para llamar a la libreria (MASM):
Código
  1. .386
  2. .model flat, stdcall
  3.  
  4. MiFuncion PROTO C:DWORD
  5.  
  6. .code
  7. main:
  8. call miFuncion
  9. ret
  10. end main

ml call.asm faLib.lib user32.lib
3476  Programación / ASM / Re: Examen de Ensamblador [Ayuda] en: 6 Noviembre 2009, 17:34 pm
¿Se lo estas pasando al enlazador? Como en este caso:
link calling_asm.obj asm_called.lib kernel32.lib user32.lib

Fijate en las opciones del proyecto, ahi podes ver la linea de comandos del enlazador y las opciones.
3477  Programación / ASM / Re: Que cosa mas rara en: 6 Noviembre 2009, 17:33 pm
Sino usas funciones existentes en la g/libc entonces tenes que aplicar la misma logica que en cualquier otro lenguaje de programacion. Tomas el numero y usando divisiones y restos averiguas todos sus digitos, a cada uno de ellos le sumas 48 (es decir '0') para transformarlo en un caracter.

Ejemplo simple:

253= 253 / 10 = 25
        253 % 10 = 3 + 48 = 51 = '3'
        25 / 10 = 2
        25 % 10 = 5 + 48 = 53 = '5'
        2 + 48 = 50 = '2'
3478  Programación / ASM / Re: Que cosa mas rara en: 3 Noviembre 2009, 23:31 pm
Transformandolo a cadena, cada digito del numero en cuestion debe ser transformado a caracter (no olvides el cero terminador de cadena). Otra opcion es usar la libc (printf/sprintf por ejemplo).
3479  Programación / ASM / Re: Que cosa mas rara en: 3 Noviembre 2009, 23:25 pm
En el primer codigo eso depende del contenido de ecx ... a lo que apunte y lo que haya en esa direccion.

El segundo parametro de write es un puntero asi que lo primero que le pasas es un puntero erroneo (ecx=2). En el segundo caso le pasas un puntero a una cadena que contiene un solo caracter, \n, es decir un salto de linea, si queres ver algo de texto usa una cadena como la que puse antes ...
3480  Programación / ASM / Re: Que cosa mas rara en: 3 Noviembre 2009, 21:25 pm
Si, edx es el tercer parametro es decir: size_t count.

Si, lo ensamble y enlace (con as y ld) pero no hace nada, no funciona tal como esta, si pones lo que te dije si escribira eso en la consola.


Páginas: 1 ... 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 358 359 360 361 362 363 ... 385
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines