Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2007
javier20 javier20 is offline
No confirmado
 
Registrado: oct 2006
Posts: 18
Poder: 0
javier20 Va por buen camino
como pasar de asm a hexadecimal?

hola navegando por la red me encontre con un codigo que me llamo mucho la atencion y aun no logro comprender:


Código:
const
  SectionCode: Array[0..6] of Byte = (
    $B8, $00, $00, $00, $00,   // MOV EAX, $00000000
    $FF, $E0);                 // JMP EAX

por lo que veo primero mueve en el registro EAX la direccion 00000000h y despus salta a la misma.

en cuestion el codigo es solo este:

asm
mov eax, $0000000
jump eax
end;

pero mi pregunta es como paso esos valores en asm a hexadecimal?
Responder Con Cita
  #2  
Antiguo 07-10-2007
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
Cita:
Empezado por javier20 Ver Mensaje
pero mi pregunta es como paso esos valores en asm a hexadecimal?

HOLA javier20, ¿no entiendo que quieres decir con pasar esos valores de asm a hexadecimal?, querrás decir que quieres convertir en ASM valores decimales por ejemplo a hexadecimal, ¿por que no explicas mejor lo que quieres?

saludos,
aeff!!
Responder Con Cita
  #3  
Antiguo 08-10-2007
javier20 javier20 is offline
No confirmado
 
Registrado: oct 2006
Posts: 18
Poder: 0
javier20 Va por buen camino
segun el codigo que poste, se pueden ver claramente los valores de array que estan en HEX (0..9 A..F), y aqui va mi pregunta es que me gustaria saber por que el autor de dicho codigo se molesto en pasar dichos valores mencionados arriba que estan en ensamblador(se puede ver por los comentarios) a codigo hexadecimal (se puede ver que esta antepuesto el operador $ ), esta programa es para camiar el EntryPoint de otra aplicacion si quieres puedo postear el programa completo no hay problemas. yo pienso que es como un stub o algo asi, que mas adelante lo escribe en el programa destinado.

se entiende
lo que digo?

saludos
Responder Con Cita
  #4  
Antiguo 08-10-2007
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
saludos, yo no tengo muchos conocimientos de ASM pero he hecho algo en este proderoso lenguaje, si pudieras postear el codigo del programa puede que lleguemos a alguna conclusión...

de todas formas, no se para que se utiliza ese array, pero puedo ver que hay elementos de el que forman parte del resultado final en el que se convierte el codigo en ASM que escribiste mas para abajo, es decir, cuando en ASM escribes un programa usando las instrucciones MOV, JUMP , etc... y haces referencia a los registros EAX, etc... esto af final se transforma en un codigo hexadecimal y luego en binario, es decir:

B800000000 => mov eax, $0000000
FFE0 ......... => jump eax

¿me entiendes lo que te quiero decir?, de todas formas lee el documento que te dejo adjunto.

saludos
aeff!!
Responder Con Cita
  #5  
Antiguo 08-10-2007
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
adjunto

adjunto esta un documento con apuntes de ASM

Última edición por aeff fecha: 14-10-2007 a las 09:39:55.
Responder Con Cita
  #6  
Antiguo 09-10-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Bueno, aunque no sé programar en ensamblador, sí que sé qué es.

Pongamos un segmento de lenguaje máquina (binario) al azar, por ejemplo:

0001 0100 0101 0110 0111 1001 0100 1001 0101 0110 1011 1011

Bien, pues ensamblador lo que hace es coger un grupo de bits (creo recordar que 8, un byte) y darle un nombre, es decir, la instrución jmp corresponde con ocho bits (no sé cuales son, supongamos 0101 0110), a la instrucción eax le pone otro (0100 1001), y así.

Pues bien, resulta que cada grupo de 8 bits que corresponde con una instrucción en ensamblador también se puede representar con dos cifras hexadecimales. Así, lo que antes he escrito en binario es ahora en hexadecimal

14 56 79 49 56 AA

Entonces, cada instrucción en ensamblador se puede representar mediante dos cifras hexadecimales u ocho cifras binarias.
Para traducir de hexadecimal a ensamblador sería cuestión de buscar un poco en internet.

Espero que te sea de ayuda.

Salu2.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
programa para pasar binario a decimal y a hexadecimal RedVenom Varios 7 09-09-2011 15:37:59
Pasar de formato decimal a hexadecimal madmai Varios 2 10-11-2006 10:44:32
Como Imprimir Hexadecimal en Memo??? La__X C++ Builder 3 28-05-2006 01:27:54
Pasar de Hexadecimal a decimal chinchan C++ Builder 2 06-05-2006 14:26:07
Como convierto un número binario a hexadecimal abdel Varios 3 30-05-2004 17:21:46


La franja horaria es GMT +2. Ahora son las 20:27:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi