Título: Como saber que Registro esta asociado al opcode Publicado por: x64core en 2 Diciembre 2011, 03:57 am :D
hola! bueno no se si esto va aqui :P pero lo aprendi de aqui del foro de ing inversa :P bueno lo que quiero saber como puedo saber que registro esta asociado a los opcodes de las intrucciones ya que me e fijado que el opcode de las instrucciones: INC EAX INC EBX INC ECX INC EDX todas son distintos opcodes pero como puedo saber el orden o determinar el opcode con verlo? y tambien para las demas instrucciones? Título: Re: Como saber que Registro esta asociado al opcode Publicado por: Иōҳ en 2 Diciembre 2011, 04:31 am Aprenderse TODOS los opcodes es inhumano!!!, lo puedes observar en el OllyDBG, los opcodes de cada instrucción, de igual manera si tienes instalado el masm32 en su directorio hay un *.chm con los opcodes de cada instrucción.
Nox. Título: Re: Como saber que Registro esta asociado al opcode Publicado por: .:UND3R:. en 2 Diciembre 2011, 04:41 am No entendí muy bien pero creo que estás confundido con la estructura de las instrucciones
[ETIQUETA] NEMÓNICO [OPERANDO1],[OPERANDO2],... La etiqueta es un valor opcional que podemos colocar El nemónico de instrucción es la instrucción en si un ejemplo de ellas puede ser ADD, SUB, MUL, IDIV, etc Operando es hacia que apunta el nemónico, esto quiere decir si utilizamos la Instrucción INC eax si EAX = 1, traducimos que se incrementará el registro EAX (Registro de propósito general de 32 bits). la cantidad de operandos depende de la instrucción, por ejemplo PUSHAD, POPAD, PUSHFD, POPFD no requieren de operandos por lo general las instrucciones que utilizan dos operandos estos poseen los siguientes nombres ADD EAX,EBX ->EAX es el operando de destino y EBX es el operando de Origen En cuanto a los registros de propósito general de 32 bits son los siguientes: EAX ECX EDX EBX EDI ESI ESP En cuanto a los registros de propósito general de 16 bits son los siguientes: AX CX DX BX DI SI SP En cuanto a los registros de segmentos: CS DS SS ES FS GS En cuanto a su utilización, los programas en modo direccionamiento real (aquellos programas que interactúan de manera directa con el hardware de la computadora utilizan registros de 16 bits a diferencia de los programas en modo protegido que estos utilizas por defecto registros de 32 bits Espero que sea lo que haz preguntando, en cuanto todo el contenido que te he explicado a sido el producto del estudio del mismo libro que estás estudiando tú Saludos Título: Re: Como saber que Registro esta asociado al opcode Publicado por: x64core en 2 Diciembre 2011, 04:53 am @Иōҳ
Gracias bro :D lo encontre :D y esta interesante :) @.:UND3R:. gracias tambien :D pero mas que nada queria saber porque tengo estas intrucciones: 00401002 | FE05 1A304000 INC BYTE PTR DS:[40301A] 00401008 | 66:FF05 1F304000 INC WORD PTR DS:[40301F] 0040100F | FF05 1B304000 INC DWORD PTR DS:[40301B] 00401015 | 40 INC EAX 00401016 | 43 INC EBX 00401017 | 41 INC ECX 00401018 | 42 INC EDX lo azules son los opcodes no? :P los rojos son valores que no e podido entender de donde salen :/ lo verde entiendo que son las direcciones tambien el valor 66 ni se de donde sale :/ las primeras tres instrucciones las direcciones son a variables de byte,word, y dword EDITO: tambien como podrais ver el OPCODE de la primera instruccion comparado con la segunda es distinto ( FE y FF ) pero comparando la segunda instruccion con la tercera son iguales :| por eso quisiera saber si hay alguna regla para saber cuando cambia :P o en que situaciones :P ya que dependiendo de los operandos los opcodes cambiar :/ Título: Re: Como saber que Registro esta asociado al opcode Publicado por: Иōҳ en 2 Diciembre 2011, 05:17 am Tiene mucho que ver "qué" es su operando, r/m32 or 64, ptr etc...
para que el opcode cambie. Tú sólo programa en asm(mnemónicos) y deja que el micro procesador haga lo suyo (opcodes) XD. Nox. Título: Re: Como saber que Registro esta asociado al opcode Publicado por: x64core en 2 Diciembre 2011, 05:27 am si bueno :P pero mas que todo lo preguntaba porque estoy tratando sobre usar los opcodes en lenguajes de alto nivel
y que en el codigo fuente de algunos ejemplos solo aparecen por ejemplo: 43h que es INC pero que no se a que registro o direccion o tipo se esta refiriendo para hacerle el incremento :P Por eso saber eso ahorrario mucho depurar con ollydbg :P Título: Re: Como saber que Registro esta asociado al opcode Publicado por: Иōҳ en 2 Diciembre 2011, 05:39 am quieres armar una shell o algo?
xD Título: Re: Como saber que Registro esta asociado al opcode Publicado por: x64core en 2 Diciembre 2011, 05:40 am muy parecida es la tecnica :D por eso! :D
|