Logo Studenta

Resumo de Informática Básica (7)

¡Estudia con miles de materiales!

Vista previa del material en texto

Algunos  compiladores  y  herramientas  de  poscompilación  producen  código  ofuscado  (esto  significa  
que  intentan  producir  resultados  que  son  muy  difíciles  de  descompilar).  Esto  hace  que  sea  más  
difícil  revertir  el  código  ejecutable.
El  éxito  de  la  descompilación  depende  de  la  cantidad  de  información  presente  en  el  código  que  
se  descompila  y  de  la  sofisticación  del  análisis  realizado  en  él.  Los  formatos  de  código  de  bytes  
utilizados  por  muchas  máquinas  virtuales  (como  Java  Virtual  Machine  o .NET  Framework  Common  
Language  Runtime)  a  veces  incluyen  metadatos  en  el  nivel  superior  que  hacen  que  la  
descompilación  sea  más  flexible.  Los  lenguajes  de  máquina  suelen  tener  muchos  menos  
metadatos  y,  por  tanto,  son  mucho  más  difíciles  de  compilar.
En  comparación,  un  desensamblador  traduce  un  ejecutable  exclusivamente  a  lenguaje  
ensamblador  que,  por  otro  lado,  todavía  depende  del  soporte  de  hardware  y  todavía  tiene  un  nivel  
mínimo  de  abstracción  (apenas  superior  al  código  de  máquina),  pero  es  legible  por  humanos  (y  
este  código  puede  revertirlo).  a  ser  ensamblado  en  un  programa  ejecutable).
Un  buen  descompilador  debería  implementar  análisis  de  tipos.  Aquí,  la  forma  en  que  se  utilizan  
los  registros  o  regiones  de  memoria  da  como  resultado  restricciones  en  el  tipo  de  ubicaciones.  
Por  ejemplo,  una  instrucción  AND  implica  que  el  operando  es  un  número  entero;  Los  programas  
no  utilizan  este  tipo  de  operaciones  en  valores  de  punto  flotante  (excepto  en  código  de  biblioteca  
especial)  o  en  punteros.  Una  declaración  AND  genera  restricciones;  ambos  operandos  pueden  
ser  números  enteros,  o  un  número  entero  y  el  otro  un  puntero  (en  este  caso,  la  tercera  restricción  
surge  en  el  orden  de  los  dos  operandos  cuando  los  tipos  son  diferentes).
Se  pueden  reconocer  varias  expresiones  de  alto  nivel  mediante  el  conocimiento  de  estructuras  o  
disposiciones.  Sin  embargo,  es  difícil  distinguir  muchas  de  las  posibilidades  debido  a  la  libertad  
del  código  máquina  o  también  porque  algunos  lenguajes  de  alto  nivel  como  C  permiten  la  
conversión  y  la  aritmética  de  punteros.
Descompilar  es  el  acto  de  utilizar  un  descompilador,  aunque  si  se  utiliza  como  nombre  puede  
referirse  a  la  salida  de  un  descompilador.  Se  puede  utilizar  para  recuperar  código  fuente  y  es  muy  
útil  en  casos  de  seguridad  informática,  interoperabilidad  y  corrección  de  errores.
Machine Translated by Google
Definiciones  y  características  del  ID,  EGO  y  SUPEREGO
A  continuación  hice  un  diagrama  donde  podemos  ver  cuáles  son  las  características  
de  cada  uno  de  ellos  y  en  qué  se  diferencia  cada  uno  del  otro.
Machine Translated by Google

Continuar navegando

Materiales relacionados

261 pag.
Fundamentos_de_programacion_C_Java

Escola Santa Afra

User badge image

Jose Francisco Freire

123 pag.
Lenguajes-de-programacion

User badge image

Contenido de Estudio