Sei sulla pagina 1di 6

INGENIERIA INVERSA

En el desarrollo de sistemas de informacin

Jossel Ramn Osorto Rodrguez

Ingeniera Inversa en el Desarrollo de los Sistemas de Informacin

Definiciones Importantes: Ingeniera Inversa (desde el punto de vista de desarrollo de Sistemas de Informacin): Es un mtodo de bsqueda, anlisis y comprensin del producto final, en este caso un sistema de informacin, y de esta manera se logra obtener un conjunto de elementos que de otra manera no sera posible obtener como ser: conocimiento, ideas o en pocas palabras informacin no disponible. Varios autores citan este proceso desde el punto de vista en cual estn investigando, pero de cierta manera coinciden en elementos comunes que ayudan a describir ms a fondo dicho mtodo. Gutirrez (2012) menciona es el proceso mediante el cual se parte de un objeto, dispositivo o sistema para descubrir el proceso tecnolgico mediante el cual se le ha confeccionado (). Medina (2012) expresa el mtodo de la ingeniera inversa de la siguiente manera: No es generar cdigos, sino que el cdigo fuente es examinado, analizado y convertido en entidades para el depsito. Rodrguez (2009) expresa en su artculo: es la forma de conocer como fue construido algo y como funciona y dependiendo de la aplicacin para lo que fue utilizado podemos deducir si es legal o ilegal lo que se est haciendo.

En la actualidad el empleo de la ingeniera inversa en el desarrollo de los sistemas de informacin juega un papel importante. Este mtodo ayuda en gran medida a desarrollar sistemas que hacen o imprimen mayor duracin del ciclo de vida del sistema o mejoran su utilizacin y contenidos.

La Ingeniera inversa, como lo menciona Medina (2012), Silicia y De la Morena (2009), basada en el desarrollo de sistemas de informacin, genera ciertos beneficios que disminuyen la complejidad, facilitan el mantenimiento y la comprensin, recuperacin del diseo, entre los beneficios mencionados podemos encontrar:

Reducir la complejidad. Generar diferentes alternativas. Recuperar y/o actualizar la informacin perdida.} Detectar efectos laterales. Facilitar la reutilizacin.

Tipos de Ingeniera inversa


Este mtodo de desarrollo, anlisis y comprensin, para la aplicacin en los Sistemas de Informacin, ha sido dividido en varios tipos de acuerdo a la forma y estructura en la cual se desea atacar o visualizar el cdigo del sistema mismo. Sin embargo para determinar cul de los tipos es el mejor o de mayor utilizacin, o cul de ellos ofrece mejores resultados, o en todo caso cul de ellos facilita en mejor medida encontrar de manera ms eficiente, efectiva y rpida la estructura completa del Sistema de Informacin al cual se est aplicando dicho mtodo, esto nicamente lo decidir con que elemento fundamental til del sistema en si se cuenta, como podra ser el cdigo fuente mismo, la estructura de la base de datos, la interfaz grfica del usuario, o las estructuras internas, ya sean diagramas de datos o estructura de los procesos, entre otros. Entendido esto se podr ver y analizar lo que algunos editores y autores citan respecto a los tipos de ingeniera existente, de igual manera se puede hacer en gran medida una separacin de lo que ellos proponen desde una perspectiva ms general y una de manera ms especfica. De manera general Jurez Ramrez (2006) y Gutirrez coinciden en proponer dos tipos de ingeniera de la siguiente manera: (1) Basado en el cdigo fuente: El cdigo fuente est disponible; sin embargo, aspectos de ms alto nivel no son conocidos, existe una documentacin pobre o existe documentacin pero no corresponde, por ejemplo, en trminos de actualizacin (2) Basado en el programa ejecutable: No existe cdigo fuente disponible, as que los esfuerzos se concentran en descubrir el correspondiente cdigo fuente

Silicia y De la Morena (2009) proponen tres tipos de ingeniera, sin embargo ISSA (2011) propone un cuarto tipo desde el punto de vista de la comunicacin: (1) Ingeniera inversa de datos: Se aplica sobre algn cdigo de bases datos (aplicacin, cdigo SQL, etc.) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidadrelacin. (2) Ingeniera inversa de lgica o de proceso: Cuando la ingeniera inversa se aplica sobre cdigo de un programa para averiguar su lgica o sobre cualquier documento de diseo para obtener documentos de anlisis o de requisitos. (3) Ingeniera inversa de interfaces de usuario: Se aplica con objeto de mantener la lgica interna del programa para obtener los modelos y especificaciones que sirvieron de base para la construccin de la misma, con

objeto de tomarlas como punto de partida en procesos de ingeniera directa que permitan modificar dicha interfaz. (4) Ingeniera inversa de protocolos de comunicacin: Independientemente del medio fsico, se analiza el comportamiento de la comunicacin, analizan tramas y documentan protocolos, para la implementacin de nuevos sistemas, replicas o interfaces.

Programas Utilizados en la Ingeniera Inversa


Como es lgico, en la bsqueda para lograr descifrar los secretos bsicos y funcionamiento de los sistemas de informacin utilizando el mtodo de ingeniera inversa, se han creado ciertos programas o aplicaciones lo cual facilitan en si el poder extraer de forma bruta lo que es el cdigo fuente de los sistemas, para su posterior anlisis y mejora en todo caso.

Sin embargo la cantidad de software creado para este fin es de gran escala por lo que solamente se mencionaran los que de una u otra manera se encuentran ms a la vista de los buscadores de la web, entre ellos podemos ver: OlliDBG: Desensamblador y depurador Peld: Programa que analiza cabeceras PE para determinar ciertos parmetros (unpacker utilizado y otros). (Garca 2010) Green UML: con esta herramienta puede crearse un diagrama de clase UML desde el cdigo fuente o generar cdigo dibujando un diagrama de clase WinTranslator: Sirve para general modelos de clase o tarjetas CRC de software escritos en C++, C#, Java, PHO, Delphi o ADA, funciona particionando sistemas de software grandes en mltiples diagramas con objetos enlazados al cdigo fuente relacionado. CodeLogic: Este sistema se utiliza para descubrir y representar grficamente la lgica interna ms profunda de cualquier cdigo Java. (Gutierrez 2012). wxHexEditor: Es un editor hexadecimal con interfaz de usuario grfica para archivos grandes y dispositivos. AthTek Code to FlowChart: es un avanzado conversor de cdigo fuente a diagrama de flujo, para el ingeniero de software y escritores de documentos. Puede generar automticamente diagramas de flujo / diagramas NS, desde el cdigo fuente, y ayuda a los usuarios a entender las complejas estructuras del programa por medio de diagramas visuales. DB-MAIN es una herramienta de modelado y arquitectura de datos. Devgems Data Modeler es la herramienta definitiva para modelar bases de datos con un interfaz fcil y sencillo.

Derechos de autor en la Ingeniera Inversa Este tema propone un encuentro entre lo moralmente valido y lo necesario para mejorar, la discusin ha sido amplia en base a determinar si este mtodo es una mezcla de imitacin de ideas y la innovacin de las mismas y lo que implica para los creadores iniciales de dichos sistemas. Lo que s es completamente valido es que en la actualidad muchas empresas desarrolladoras de Sistemas de Informacin ha tenido que incluir en sus especificaciones que el proceso de aplicacin de ingeniera inversa a cualquiera de sus productos caer directamente en la violacin de los derechos de autor y se podr proceder a generar una demanda al que intenta realizar este mtodo. Bonilla (2012) lo menciona de la siguiente manera: Hay que dejar en claro que la ingeniera inversa de software que tiene como objetivo el duplicado o el estudio con propsito comercial, como el empleo de aplicar ingeniera inversa a un producto para estudiarlo y hacer en base a este un producto de competencia, puede ser considerado como una violacin a las leyes de copyright e incluso en muchos casos, el uso de un programa bajo licencia prohbe esta prctica. En el caso de la ingeniera inversa de hardware, se recurre al desmontaje de un dispositivo con la intencin de comprobar cmo es que funciona, pero al igual que sucede en la ingeniera inversa de software, aqu tambin est prohibido hacer esto con la intencin de fabricar un producto similar.

Conclusin Se puede concluir que realmente en la vida actual el proceso de Ingeniera Inversa produce en gran escala un riguroso y admirable proceso de anlisis e innovacin de las ideas propias originada en el proceso de concepcin del proyecto. En el desarrollo de los sistemas de informacin se puede ver que el resultado es muy interesante ya que en este medio la devaluacin del producto se realiza de manera rpida por la mejora continua, pero sin embargo la simplicidad contra la complejidad y el bajo mantenimiento, atestan un punto fundamental en la validez y utilidad del mtodo de la Ingeniera Inversa.

Referencias Bonilla, I. (2012), Qu es ingeniera Inversa?, Recuperado el 6 de febrero de 2013, de http://dsp.mx/es/blog/sistemas-de-informacion/62-que-es-ingenieria-inversa Free Download Manager (n.d). Recuperado el 7 de febrero de 2013, de http://www.freedownloadmanager.org/es/downloads/ingenier%C3%ADa_inversa_gratis/ Garcia, D. (2010). Ingeniera inversa: Modifica un programa. Recuperado el 7 de febrero de 2013, de http://www.redeszone.net/2010/11/22/ingenieria-inversa-modifica-un-programa/ Gutierrez, J. (2012), Programas para hacer ingeniera Inversa en sistemas de Informacin, Recuperado el 6 de febrero de 2013, de http://dsp.mx/es/blog/sistemas-de-informacion/80programas-para-hacer-ingenieria-inversa-en-sistemas-de-informacion IISA (2011), Ingeniera Inversa de Software y Hardware. Recuperado el 7 de febrero de 2013, de http://www.ingenieria-inversa.com.ar/index.php/off-shore/217 Juarez Ramirez, R., Licea, G., Cristobal Salas, A. (2006). Ingeniera Inversa y reingeniera aplicada a proyectos de software desarrollados por alumnos de nivel de licenciatura. Tesis de licenciatura. Universidad de Baja California, Mexico. Recuperado de http://www.iiisci.org/journal/CV$/risci/pdfs/X581YP.pdf Medina, M. (2012). Ingeniera inversa y reingeniera de software. Recuperado el 6 de febrero de 2013, de http://www.slideshare.net/moimedinaq/ingeniera-inversa-y-reingeniera-desoftware Rodriguez, F. (2009), Ingeniera inversa de software: Cmo obtienen los seriales los crackers? Recuperado el 6 de febrero de 2013, de http://culturacion.com/2009/12/ingenieria-inversade-software-%C2%BFcomo-obtienen-los-seriales-los-crackers/ Silicia y De la Morena (2009), Qu es la Ingeniera Inversa? Recuperado el 7 de febrero de 2013, de http://cnx.org/content/m17432/latest/