Ir al contenido

Diferencia entre revisiones de «Ofuscación»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
InternetArchiveBot (discusión · contribs.)
Rescatando referencia 1 y marcando 0 como roto #IABot (v1.6.1)
InternetArchiveBot (discusión · contribs.)
Rescatando 0 referencia(s) y marcando 1 enlace(s) como roto(s) #IABot (v2.0beta15)
Línea 50: Línea 50:
== Enlaces externos ==
== Enlaces externos ==
*[http://www.ioccc.org/main.html Competición de código ofuscado en C]
*[http://www.ioccc.org/main.html Competición de código ofuscado en C]
*[http://jsblock.ath.cx/proteger-ofuscar-javascript/ Protección online de librerías javascript]
*{{Enlace roto|1=[http://jsblock.ath.cx/proteger-ofuscar-javascript/ Protección online de librerías javascript] |2=http://jsblock.ath.cx/proteger-ofuscar-javascript/ |bot=InternetArchiveBot }}
{{ORDENAR:Codigo ofuscado}}
{{ORDENAR:Codigo ofuscado}}
* [http://www.ioccc.org/ The International Obfuscated C Code Contest (''Concurso internacional de código en C ofuscado'')]
* [http://www.ioccc.org/ The International Obfuscated C Code Contest (''Concurso internacional de código en C ofuscado'')]

Revisión del 05:04 20 jun 2019

La ofuscación se refiere a encubrir el significado de una comunicación haciéndola más confusa y complicada de interpretar.

Informática

En computación, la ofuscación se refiere al acto deliberado de realizar un cambio no destructivo, ya sea en el código fuente de un programa informático o código máquina cuando el programa está en forma compilada o binaria, con el fin de que no sea fácil de entender o leer.

El código ofuscado es aquel código que, aunque se tiene el código fuente, ha sido enrevesado específicamente para ocultar su funcionalidad (hacerlo ininteligible).

La ofuscación binaria se realiza habitualmente para impedir o hacer más difícil los intentos de ingeniería inversa y desensamblado que tienen la intención de obtener una forma de código fuente cercana a la forma original.

Como un efecto lateral, la ofuscación, en ocasiones, hace que los programas resultantes sean más pequeños (aunque puede hacer que los programas sean más grandes en otros casos).

Algunos tienden más a la ofuscación que otros. C, C++ y Perl son los más citados como fácilmente ofuscables. Las macros de preprocesador son usadas a menudo para crear código complicado de leer enmascarando la gramática y sintaxis estándar del lenguaje del cuerpo principal de código.

Aparte de los lenguajes más conocidos, existen lenguajes de programación esotéricos. Además, también se puede buscar que el código fuente resulte una obra de ascii art. Existen otros programas ofuscados llamados quine que al ejecutarse la salida debe ser el código fuente del programa.

También hay programas ofuscadores que pueden actuar sobre el código fuente, código objeto o ambos para dificultar la ingeniería inversa.

Ejemplos

Un ejemplo simple de ofuscación es llamar a las variables o funciones con palabras reservadas del lenguaje añadiendo algún símbolo

 int int_;

Con esta línea se define una variable de tipo entero.

 long int _int(int int_){return int_-int_};

Con esta línea definimos una función con un parámetro entero que devuelve un valor long int, que por otra parte siempre será 0.

 _int-_int;

Esto equivale a poner 0.

 (_int-_int)!;

Esto equivale a poner 1.

 (((!(int_-int_)<<!(int_-int_))<<(!(int_-int_)<<!(int_-int_)))|(!(int_-int_)<<!(int_-int_)));

Esto equivale a poner 10.

Otros objetivos

La ofuscación puede servir para otros propósitos. Los médicos han sido acusados de usar una jerga para encubrir hechos desagradables de un paciente. El autor y doctor Michael Crichton ha afirmado que la escritura médica es un "intento altamente capacitado y calculado de confundir al lector". [1] De forma similar, el lenguaje basado en texto, como gyaru-moji y algunas formas de leet speak es ofuscado para hacerlo incomprensible a terceras personas.

Enlaces externos