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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 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 358 ... 381
3421  Programación / ASM / Re: ¿Como puedo crear una libreria estatica con flat assembler? en: 8 Noviembre 2009, 23:18 pm
Es su codigo con lo minimo comentado para que ensamble ... en fin, ahora ya sabra otra manera de enlazar el codigo de la libreria estatica que quiere generar con las herramientas que no quiere usar.
3422  Programación / ASM / Re: ¿Como puedo crear una libreria estatica con flat assembler? en: 8 Noviembre 2009, 18:37 pm
Si, no lo se, consulta la documentacion de MinGW ... tal vez tambien quieras averiguar sobre otros ensambladores como MASM o NASM.
3423  Programación / ASM / Re: Problema de novato en: 8 Noviembre 2009, 15:20 pm
De nadas  ::)
3424  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
3425  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.
3426  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.
3427  Programación / ASM / Re: Que cosa mas rara en: 7 Noviembre 2009, 08:51 am
De nadas  ::)
3428  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
3429  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.
3430  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'
Páginas: 1 ... 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 358 ... 381
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines