Leyendo un ebook sobre Reversing me topé con una duda.
Existen 2 tipos de desensambladores, creo que eran recursivos (Olly, IDA, PEBrowser) y otros creo lineales como Softice.
Existen así disintas técnicas para engañarlos y hacer que desensamblen mal. 
Por ejemplo este código:
-   
-   jmp after 
-   db 0x0f 
- after: 
-   mov  eax, [var] 
-   push  eax 
-   call    function 
-   
-   
OllyDbg, al ser recursivo, desensambla perfectamente bien ese codigo. (Claro está que hay trucos no mucho mas complicados que ese que lo logran engañar.)
Pero en el caso de Softice, interpreta el codigo como:
-   
-   jmp    dir1 
-   jmp    dir2 
-   xlat 
-   INVALID 
-   jmp   far[eax+24] 
-   pushad 
-   
-   
Ahora la duda que me surge.... 
 ¿Como es que el CPU nunca se confunde? (Me refiero ctambien a  técnicas que engañan hasta a IDA y Olly)