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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 ... 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 [355] 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 ... 381
3541  Programación / ASM / Re: Registro W y F (Electronica - ASM para Microcontrolador) en: 16 Julio 2009, 12:27 pm
W (de working) es el registro acumulador, no esta mappeado a ninguna direccion de memoria, F se refiere a un registro de archivo (file), en el caso del ejemplo que das es PORTB, pero podria ser cualquier otro de esos que aparecen en la imagen que viene aca:

http://www.hobbyprojects.com/pic_tutorials/tutorial2.html

Efectivamente el $ terminador de cadena no tiene nada que ver con el uso del $ para identificar la instruccion actual.
3542  Programación / ASM / Re: duda 16 o 32 bits en: 16 Julio 2009, 10:51 am
Interrupciones hay siempre (para una u otra cosa), la API de Windows las usa en versiones antiguas para pasar al Kernel (int 2Eh, ahora existen instrucciones especificas como sysenter/syscall) y la interfaz de Linux siempre que yo sepa (int 0x80). Mi recomendacion seria que arranques con 16 bits pero no inviertas demasiado tiempo en aprender todas las interrupciones de la BIOS (y menos de MS-DOS) existentes, siempre habra tiempo para pasar a 32 y 64 bits.
3543  Programación / ASM / Re: Codigos Inutiles !!! en: 13 Julio 2009, 20:46 pm
Compara el valor final de ecx en estos dos casos:

Código
  1. xor ecx, ecx
  2. mov cl, 0FFh
  3. inc cl

Código
  1. xor ecx, ecx
  2. mov cl, 0FFh
  3. inc ecx



XOR EAX, EAX
Para despues poner en eax la direccion de una funcion de la API no tiene utilidad.
3544  Programación / ASM / Re: Assembler en AMD Athlon Neo en: 13 Julio 2009, 17:22 pm
Si usas un S.O. de 32 bits no vas a tener ningun problema en lo absoluto, si usas uno de 64 desde ya esa version del MASM y el LINK son de 16 bits y no te van a funcionar ya que no se soportan los programas de 16 bits. En cuanto a los entornos para PIC deberian funcionar pero mejor fijarse en el manual ...
3545  Programación / ASM / Re: Que compilador recomiendan? en: 13 Julio 2009, 17:21 pm
Para Windows te recomiendo el paquete MASM32.
3546  Programación / ASM / Re: Error en practica en: 8 Julio 2009, 15:12 pm
Para equilibrar la pila, empujaste dos DWORDs eax y formato.

Asi tiene que funcionar bien:
Código
  1. format pe console
  2. entry start
  3. include 'win32ax.inc'
  4. .data
  5.    formato db "Media %d", 13, 10, 0
  6. .code
  7. start:
  8. xor eax,eax
  9. xor edx,edx
  10. add eax,6
  11. add eax,9
  12. add eax,3
  13. add eax,9
  14. add eax,5
  15. add eax,6
  16. mov ecx, 6
  17. div ecx
  18. push eax
  19. push formato
  20. call [printf]
  21. add esp, 8
  22. call [getchar]
  23. ret
  24. section '.idata' import data readable
  25. library msvcrt,'MSVCRT.dll'
  26. import msvcrt,printf,'printf',getchar,'_fgetchar'
3547  Programación / ASM / Re: Error en practica en: 8 Julio 2009, 14:59 pm
ExitProcess no es necesario, a menos que no arregles la pila correctamente como en este caso, si empujas dos parametros entonces tenes que usar add esp, 08h. Y en getchar no hace falta empujar nada, no tiene parametros  ;D
3548  Programación / ASM / Re: Error en practica en: 8 Julio 2009, 14:27 pm
De nada; fijate que la pila sigue estando mal, el programa da una excepcion en lugar de terminar correctamente.
3549  Programación / ASM / Re: Error en practica en: 8 Julio 2009, 13:51 pm
nt es db (un byte) y eax es un registro de 32 bits, tenes que declarar nt como dd.

Y la division:
Código
  1. xor edx, edx
  2. mov eax,[nt]
  3. mov ecx, 6
  4. div ecx

¿Sabes usar printf? El primer parametro tiene que ser un puntero a una cadena, no un entero.

Por ejemplo en .data:
Código
  1. formato db "Total %d Media %d", 13, 10, 0

Y se llama asi en este caso:
Código
  1. push eax ;ese el resultado de la division
  2. push [nt]
  3. push formato
  4. call [printf]
  5. add esp, 0Ch ;hay que arreglar la pila, 3 parametros x 4 bytes cada uno = 12 = 0Ch

Mas facil:
Código
  1. cinvoke printf, formato, [nt], eax

PD. No te olvides de usar cinvoke o arreglar la pila cuando llames a funciones con convencion de llamada C.
3550  Programación / ASM / Re: [Ayuda] Hook en: 7 Julio 2009, 23:01 pm
Si, una funcion (o lo que sea) se puede escribir en el espacio de memoria de otro proceso perfectamente ...
Páginas: 1 ... 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 [355] 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 ... 381
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines