Opcodes,informacion Indocumentada

Iniciado por x64core, 16 Julio 2013, 12:25 PM

0 Miembros y 2 Visitantes están viendo este tema.

x64core

Solamente algunos opcodes indocumentados

[AAM]       
[AAD]
[SALC]       
[ICEBP]     
[UMOV]       
[LOADALL]
[CMOV]       
[FCMOV]     
[FCOMI]     
[RDPMC]
[INT01]     
[SALC]       
[UD2]


Undocumented OpCodes: AAD

----------------------------------------------------------------------------

AAD - D5 IMM8 - ASCII Adjust before Division


Undocumented:  Available to all Intel x86 processors
               Useful in production source code.
                                                              AAD
Flags:                               ASCII Adjust before Division
+-+-+-+-+-+-+-+-+-+                       +----------+----------+
|O|D|I|T|S|Z|A|P|C|                       | 11010101 |   DATA   |
+-+-+-+-+-+-+-+-+-+                       +----------+----------+
|+| | | |+|+|+|+|+|                       |    D5    |     IMM8 |
+-+-+-+-+-+-+-+-+-+                       +----------+----------+


This instruction is the multiplication counterpart to AAM. As is the
case with AAM, AAD uses the second byte as an operand. This operand is
the multiplicand for AAD. Like AAM, AAD provides a way to execute a MUL
IMM8 that is unavailable through any other means in the CPU. Unlike MUL,
or IMUL, AAD sets all of the CPU status flags according to the result.
Intel states that the Overflow Flag (OF), Auxiliary carry Flag (AF), and
Carry Flag (CF) are undefined. This assertion is incorrect. These flags
are fully defined, and are set consistently with respect to any other
integer operations. And again, like AMM, beginning with the Pentium,
Intel has finally acknowledged the existence of the second byte of this
instruction as its operand. Intel says:

"Note: imm8 has the value of the instruction's second byte. The second
byte under normally assembly [sic] of this instruction will be 0A,
however, explicit modification of this byte will result in the operation
described above and may alter results."

This instruction exists in this form on all Intel x86 processors. See
the file AAD.ASM for diagnostics source code for this instruction.

----------------------------------------------------------------------------



completo aqui http://www.rcollins.org/secrets/ (ademas contiene informacion importante no documentada por intel)


Opcodes funcionan para evadir emulacion de algunos AVs mier***  :silbar: , ademas podemos usar algunos de los nuevos conjunto de
instrucciones SSE 3, SSE 4 para ello tambien, pueda que quieran usar cpuid para obtener los conjuntos de instrucciones
soportados por la cpu.

Agregado a enlaces utiles.




Karcrack

Muy buen enlace :D Me pregunto que pasará con AMD :P

cpu2

Hola

Algunas de esas instrucciones estan documentadas en los tomos de AMD.
AAM, ADD, CMOV, RDPMC y UD2, no sabia de las demas. ljmp no esta documentada al menos en los tomos de AMD.

Un saludo.


x64core

Ellos fueron documentados a'nos despues, el descubrimiento de estos opcodes no es reciente

Karcrack

El problema es que he leído que esos opcodes son exclusivos de Intel. Nada tienen que ver con x86... Entonces AMD no debería de tenerlos siquiera mapeados :/

cpu2

#5
Si, los probe en un i686 y en un amd64, no funcionan tienen que ser solo para la i386, las que mencione si son validas.

Un saludo.

x64core

#6
Quiero decir 3 son documentados por intel. fueron documentados a-nos despues ya que tengo los viejos manuales de intel y
aun no estaban, esto esta disponible desde el a'no 2000.
Hasta ahorita 3/7 Antivirus vencidos, no mencionare nombres ya que despues vienen llorando. pero para tener algo en mente:



y otro famoso vencido por SSE 4  
malware empaquetado con simple encriptacion, injeccion ha sido existosa :)
Este ultimo dependiente de hardware por supuesto, pero viene ser muy util