6.1 Network Layer Service Specification 73
6.4.11 Challenge-Request 75
Los código objeto pueden ser muy útiles en muchas si- tuaciones sin embargo consigo traen problemas que pue- den generar errores muy difíciles de corregir, por ejem- plo cuando un objeto importa funciones de otro código objeto que ha sido modificado, el intento de la librería o el programa que importó la librería de ejecutar el código
con parámetros incorrectos o inexistentes puede generar un error que generalmente el compilador no detecta ya que el código objeto no es verificado, únicamente uni- do. Este tipo de error se puede solucionar reescribiendo el código de manera correcta y re compilarlo a código objeto.
31.3 Referencias
[1] http://www.alegsa.com.ar/Dic/codigo%20objeto.php
31.4 Enlaces externos
• Wikcionariotiene definiciones y otra informa- ción sobrecódigo objeto.Wikcionario
el código objeto es el resultado de la compilación del có- digo fuente. Puede ser en lenguaje máquina o bytecode, y puede distribuirse en varios archivos que corresponden a cada código fuente compilado. Luego un enlazador (lin- ker) se encarga de juntar todos los archivos de código objeto para obtener el programa ejecutable. - See mo- re at: http://www.alegsa.com.ar/Dic/codigo%20objeto. php#sthash.ktzQpZxJ.dpufCódigo objeto: Conjunto de instrucciones y datos escritos en un lenguaje que entien- de el ordenador directamente: binario o código máquina. Provienen de la traducción de cierto código fuente, es un fragmento del programa final y es específico de la plata- forma de ejecución.
Ofuscación
La ofuscación se refiere a encubrir el significado de una comunicación haciéndola más confusa y complicada de interpretar.
32.1 Informática
Encomputación, la ofuscación se refiere al acto delibe- rado de realizar un cambio no destructivo, ya sea en el
código fuentede unprograma informáticoocódigo má- quinacuando el programa está en formacompiladao bi- naria, con el fin de que no sea fácil de entender o leer. EnInternet, la ofuscación refiere a crear una publicación o formar parte del grupo los Ofuscados.
El código ofuscado es aquél código que, aunque se tiene elcódigo fuente, ha sido enrevesado específicamente para ocultar su funcionalidad (hacerlo ininteligible).
La ofuscación binaria se realiza habitualmente para im- pedir o hacer más difícil los intentos deingeniería inversa
ydesensambladoque tienen la intención de obtener una forma decódigo fuentecercana 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++
yPerlson 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, existenlenguajes de programación esotéricos. Además, también se puede buscar que el código fuente resulte una obra deascii art. Existen otros programas ofuscados llamadosquineque al ejecutarse la salida debe ser el código fuente del progra- ma.
También hay programas ofuscadores que pueden actuar sobre elcódigo fuente,código objetoo ambos para difi- cultar laingeniería inversa.
32.1.1 Ejemplos
Un ejemplo simple de ofuscación es llamar a las variables o funciones con palabras reservadas del lenguaje añadien- do 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.
32.2 Otros objetivos
La ofuscación puede servir para otros propósitos. Los médicos han sido acusados de usar unajergapara encu- brir hechos desagradables de un paciente. El autor y doc- torMichael Crichtonha afirmado que la escritura médica es un “intento altamente capacitado y calculado de con- fundir al lector”. De forma similar, el lenguaje basado en texto, comogyaru-mojiy algunas formas deleet speak
es ofuscado para hacerlo incomprensible a terceras per- sonas. lomelo
32.3. ENLACES EXTERNOS 55
32.3 Enlaces externos
• Competición de código ofuscado en C • Protección online de librerías javascript
• The International Obfuscated C Code Contest (Con- curso internacional de código en C ofuscado) • Cómo proteger código en Java por medio de la ofus-
cación de código
• - Ofuscador de Codigo PHP online • FOPO - Free Online PHP Obfuscator • Análisis de ofuscación de código en Javscript
ColdFusion
Coldfusion (Adobe ColdFusion) es una plataforma de desarrollo rápido de aplicacionesweb que usa ellenguaje de programaciónCFML. En este aspecto, es un producto similar aASP,JSPoPHP.
ColdFusion es una herramienta que corre en forma
concurrente con la mayoría de los servidores web de
Windows,Mac OS X,LinuxySolaris(también en servi- dores web personales enWindows 98y puede ser usado paraintranets). El servidor de aplicaciones web de Cold- Fusion trabaja con el servidorHTTPpara procesar peti- ciones de páginas web. Cada vez que se solicita una pági- na de ColdFusion, el servidor de aplicaciones ColdFusion ejecuta elguiono programa contenido en la página. Ellenguaje de programaciónCFML, propio de Coldfu- sion, puede crear y modificar variables igual que en otros lenguajes de programación que nos son familiares. Posee
control de flujode programas, comoIF,Case,ciclo, etc. Tiene muchas funcionesbuilt-inpara realizar tareas más complicadas, por ejemplo: para averiguar qué día de la semana será el 3 de agosto del 2027
DayOfWeekAsString(DayOfWeek('2027/08/03')) No es unlenguaje de bases de datos, pero interacciona de manera simple con bases de datos(Sybase,Oracle,
MySQL,SQL Server, oAccess). UsandoSQLestándar, las páginas y aplicaciones web pueden fácilmente recu- perar, guardar, formatear y presentar información diná- micamente.
Muchas de las funciones poderosas de ColdFusion, co- mo leer desde y escribir en discos duros del servidor, son basadas en tags. Así como el tag
puede tener argumentos como 'width' o 'align', el tag <CFFILE> tiene argumentos que especifican 'ac- tion=read/write/copy/delete', path=' etc.
El tag <CFFORM> construye automáticamente todo el código JavaScript para verificar los campos requeridos antes de hacer elformulario. ColdFusion también tiene tags paraCOM,CorbayAppletsyServletsdeJava. ColdFusion fue diseñado para desarrollar sitios comple- jos y de alto tráfico. ColdFusion está diseñado para correr en máquinasmulti-procesador, y permite construir sitios que pueden correr enclustersde servidores.
Es un lenguaje que se ejecuta en el servidor. A diferencia de JavaScript y Applets Java, que se ejecuta en el cliente, ColdFusion se ejecuta en el servidor web. Esto signifi- ca que los guiones escritos en ColdFusion correrán de la misma manera en cualquiernavegador web.
33.1 Historia
ColdFusion fue desarrollado inicialmente por J. J. Allai- re, y su primera versión apareció en julio de 1995. En
2001, estando en el mercado la versión 5, Allaire fue adquirido porMacromedia, que en junio de2002lanzó ColdFusion MX (6.0), llamado de esta manera para se- guir la nomenclatura de sus otros productos. Esta versión fue completamente reescrita en Java desde cero, y fue di- señada, entre otros aspectos, para integrarse de manera sencilla conMacromedia Flash, el producto estrella de la compañía.
ColdFusion MX 7 fue lanzado en febrero de 2005, meses antes de la adquisición de Macromedia porAdobe Sys- tems. En la actualidad está disponible la versión 11.
33.2 Versiones
• 1995: Allaire Cold and Fusion, versión 1.0 • 1996: Allaire Cold and Fusion, versión 1.5 • 1996: Allaire Cold and Fusion, versión 2.0 • Junio 1997: Allaire Cold and Fusion, versión 3.0 • Enero 1998: Allaire Cold and Fusion, versión 3.1 • Noviembre 1998: Allaire ColdFusion, versión 4.0
(a partir de esta versión se le conoce como ColdFu- sion, ya que antes era “Cold and Fusion”)
• Noviembre 1999: Allaire ColdFusion, versión 4.5 • Junio 2001: Macromedia ColdFusion, versión 5.0 • Mayo 2002: Macromedia ColdFusion MX, version
6.0, Updater 1, Updater 2, Updater 3 56
33.3. EJEMPLOS DE CÓDIGO 57
• Julio 2003: Macromedia ColdFusion MX, version
6.1, hot fix, Updater 1
• 2005: Macromedia ColdFusion MX 7, 7.0.1, 7.0.2 • 30 de julio, 2007: Adobe ColdFusion 8
• 4 de abril, 2009: Adobe ColdFusion 8.0.1 • 5 de octubre, 2009: Adobe ColdFusion 9 • 13 de julio, 2010: Adobe ColdFusion 9.0.1 • 15 de mayo, 2012: Adobe ColdFusion 10 • 31 de mayo, 2012: Adobe ColdFusion 9.0.2 • 31 de agosto, 2012: Adobe ColdFusion 10 Update
1
• 11 de septiembre, 2012: Adobe ColdFusion 10 Up-
date 2
• 16 de octubre, 2012: Adobe ColdFusion 10 Update
3
• 2 de noviembre, 2012: Adobe ColdFusion 10 Up-
date 4
• 19 de noviembre, 2012: Adobe ColdFusion 10 Up-
date 5
• 11 de diciembre, 2012: Adobe ColdFusion 10 Up-
date 6
• 15 de enero, 2013: Adobe ColdFusion 10 Update 7 • 27 de febrero, 2013: Adobe ColdFusion 10 Update
8
• 10 de abril, 2013: Adobe ColdFusion 10 Update 9 • 14 de mayo, 2013: Adobe ColdFusion 10 Update
10
• 9 de julio, 2013: Adobe ColdFusion 10 Update 11 • 12 de noviembre, 2013: Adobe ColdFusion 10 Up-
date 12
• 10 de enero, 2014: Adobe ColdFusion 10 Update
13
• 14 de octubre, 2014: Adobe ColdFusion 10 Update
14
• 9 de diciembre, 2014: Adobe ColdFusion 10 Up-
date 15
• 29 de abril, 2014: Adobe ColdFusion 11
• 22 de septiembre: Adobe ColdFusion 11 Update 1 • 14 de octubre, 2014: Adobe ColdFusion 11 Update
2
• 9 de diciembre, 2014: Adobe ColdFusion 11 Up-
date 3
33.3 Ejemplos de código
Consulta a una base de datos:
<cfquery name="nombredelaconsulta”datasour- ce="conexion_odbc"> SELECT * FROM table WHERE campo = 'hola' </cfquery>
Mostrar la respuesta de la consulta:
<cfoutput query="nombredelaconsulta"> #nombredela- consulta.campo# <!---Las variables se escriben entre # #. Este texto es un comentario ---> </cfoutput>
Dar valores y mostrar variables:
<cfset sCadena = “Hola mundo!"> Contenido de la va- riable: <cfoutput>#sCadena#</cfoutput>
Usar servicios web:
<cfinvoke webservice="http://web.service/service?wsdl" method="prueba”returnVariable="resultado">
33.4 Enlaces externos
• Web oficial de ColdFusion en Adobe • Adobe ColdFusion community • Introducción a Adobe ColdFusion
Coloreado de sintaxis
Un ejemplo de códigoHTMLcon coloreado de sintaxis
El resaltado de sintaxis, a veces llamado coloreado de