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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Codigos de Yuri Grille
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 [5] 6 Ir Abajo Respuesta Imprimir
Autor Tema: Codigos de Yuri Grille  (Leído 40,152 veces)
Yurix

Desconectado Desconectado

Mensajes: 72


Paz para la guerra y guerra por la paz


Ver Perfil
De Ascii a binario (01011001)
« Respuesta #40 en: 13 Julio 2009, 16:56 pm »

Hola a todos ,este es mi nuevo aporte al foro , (hace días que no pongo nada) , el code es sencillo y efectivo para convertir un byte a su forma binaria en Ascii .

Como funciona , trabajo con la instrucción BT de la cual hablamos en el post sobre Par o Impar , lo que hago con ella es empezar a ver el ultimo bite ,el numero 7 si es 1 la pongo en la variable binario , si es 0 lo mismo . Después decremento AL hacia el bite 6 y se repite la operación , esto se repite hasta llegar al bite 0 que es el ultimo. Este code se puede modificar para que trabaje con strings o con un rago de memoria , pero eso es para después.Chao people y comenten

; Convertir un numero hexadecimal a "binario" por ejemplo la letra a es 61h

Prototipo
IntToBin  proto :BYTE,:DWORD
--------------------------------------------------------

Función

IntToBin  proc Numero:BYTE,lpBinario:DWORD
 
  mov al,7h
 mov ebx,lpBinario ; Binario es la string donde se alojara elnumero convertido
 mov cl,Numero


   aun2:
   dec     eax
   bt      ecx, eax
   mov byte ptr ds:[ebx],31h
   jb      nocero2
   mov byte ptr ds:[ebx],30h

   nocero2:
 inc ebx
 cmp al,0FFh ; VER si es el fin ...
 jnz aun2

ret
IntToBin endp


Uso de la función

invoke IntToBin,0A0h,addr binario
--------------------------------------------------------

El code es libre siempre que se indique el autor de este.jajaja

Chao.
PD: Todos los que quieran ayudar , estoy haciendo un pequeño escrito sobre instrucciones inútiles y quisiera que mandaran tips sobre estos temas , ej de instrucción inútil

"inc cl" ;<< Nada mas inútil que usar este code debe de estar prohibido , sabes por que ?
Porque es mejor hace "inc ecx" y el resultado es el mismo y nos ahorramos un byte

00401000 >    FEC1          inc     cl
00401002      41            inc     ecx

Ley numero 1 > Nunca incrementes un registro low como es el caso de "al cl dl bl"
Parece sencillo pero lo he visto en algunos casos (personales) XD
----------------------------------------------------------------------------
Otro caso es este:
(Objetivo : Poner en 7 a eax)

00401000 >    33C0          xor     eax, eax
00401002      83C0 07       add     eax, 7
-------------------
00401005      B8 07000000   mov     eax, 7

Cual es mejor??
link http://foro.elhacker.net/asm/codigos_inutiles-t261032.0.html


Salu DOs



« Última modificación: 13 Julio 2009, 20:49 pm por Yurix » En línea



http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.
Yurix

Desconectado Desconectado

Mensajes: 72


Paz para la guerra y guerra por la paz


Ver Perfil
Convertir a hexadecimal !!!
« Respuesta #41 en: 10 Agosto 2009, 19:04 pm »

hola a todos , después de unos días sin postear nada , vengo con algo que te puede interesar , es una forma de convertir un sector de memoria a ASCII Hexadecimal , esto te puede ser util para un editor hex o etc ...

Espero que te sea util y recuerdes que al utilizar el code digas el nombre de su autor  P>)
Este codigo es libre ....

Aqui lo pongo con su loop para convertir un rango de memoria

Código
  1. mov ecx,100  ;<< Esta es la cantidad de bytes a comvertir
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. repetimos:
  4. xor eax,eax
  5. mov al, byte ptr ds:[Texto + ecx - 1]
  6. mov ax, word ptr ds:[eax*2 + tabla]
  7. mov word ptr ds:[convertido + ecx*2 - 2],ax
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  9. loop repetimos
  10.  
  11. ; la variable texto es el lugar por donde empezaremos a convertir !!
  12. ; la varible tabla es una *(tabla) *((precalculada , << a que suena a matematico , para acelerar el proceso))
  13. ;
  14.  
  15. convertido db 200 dup (?),0
  16.  
  17. Texto byte "Hola esto es una forma muy rapida de convertir a hexadecimal",0
  18. Titulo db "Convirtiendo una string a hexadecima modo rapido ...",0
  19.  
  20. tabla db "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F5051"
  21. tabla2 db "52535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3"
  22. tabla3 db "A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF"
  23.  

Si tienes alguna duda dímelo !!!


En línea



http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Convertir a hexadecimal !!!
« Respuesta #42 en: 10 Agosto 2009, 19:24 pm »

Interesante... aunque talvez se podria hacer sin utilizar un tabla que contenga los 255 posibles valores hexadecimales de un byte...
En línea

Yurix

Desconectado Desconectado

Mensajes: 72


Paz para la guerra y guerra por la paz


Ver Perfil
Re: Convertir a hexadecimal !!!
« Respuesta #43 en: 10 Agosto 2009, 19:29 pm »

Eso ya esta hecho , mira en los codes de YST , este lo hice para algo muy rapido ... solo para eso . Si quieres ahorrar espacio este no es el indicado !!! aunque , que son 512 bytes ?? no mucho !!

SaluDoS
En línea



http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.
Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Convertir a hexadecimal !!!
« Respuesta #44 en: 12 Agosto 2009, 09:35 am »

¿ds es un registro?
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: Convertir a hexadecimal !!!
« Respuesta #45 en: 12 Agosto 2009, 11:10 am »

Si, es un (d=data) registro de segmento:
http://en.wikipedia.org/wiki/X86#x86_registers
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
Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Convertir a hexadecimal !!!
« Respuesta #46 en: 12 Agosto 2009, 11:20 am »

Si, es un (d=data) registro de segmento:
http://en.wikipedia.org/wiki/X86#x86_registers

La página de wikipedia esa me va genial, segmentos de mi procesador 64 bits que podria usar :P
Y una cosa, no funcionan los registros de 64 bits en un pc de 32 verdad, me refiero a que si yo creo un .exe en FASM usando registros x86_64 no iran bien en un pc de 32.
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: Convertir a hexadecimal !!!
« Respuesta #47 en: 12 Agosto 2009, 11:25 am »

Un PE de 64 bits no se puede ejecutar en una maquina (o S.O.) de 32 bits.
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
Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Convertir a hexadecimal !!!
« Respuesta #48 en: 12 Agosto 2009, 11:33 am »

Un PE de 64 bits no se puede ejecutar en una maquina (o S.O.) de 32 bits.

Es verdad no me acordaba, pero tampoco tiene que ser un PE, puedes ser un ELF.
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: Convertir a hexadecimal !!!
« Respuesta #49 en: 12 Agosto 2009, 12:53 pm »

Si, efectivamente puede ser un ELF o ELF64 y se mantiene el mismo principio.
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 3 4 [5] 6 Ir Arriba Respuesta Imprimir 

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