miércoles, 2 de febrero de 2011

ANTLR y JavaCC

ANTLR

ANTLR es una herramienta que proporciona un marco de trabajo para la construcción de reconocedores, intérpretes, compiladores y traductores de lenguajes a partir de gramáticas enriquecidas con acciones. En resumen proporciona todo lo necesario para el desarrollo de este tipo de sistemas, entre los más importantes:

· Construcción de analizadores léxicos.

· Construcción de analizadores sintácticos.

· Mecanismos de construcción y recorrido de árboles de sintaxis abstracta (AST).

· Mecanismos de tratamiento de plantillas.

· Mecanismos de detección y recuperación de errores.

Como ventajas adicionales que diferencian a ANTLR de otras herramientas similares podemos citar la posibilidad de generar el código de salida en diferentes lenguajes como Java, C, C++, C# o Python, y el hecho de disponer de un entorno de desarrollo propio llamado ANTLRWorks que nos permitirá construir de una forma bastante amigable las gramáticas de entrada a la herramienta, proporcionando representaciones gráficas de las expresiones y árboles generados, e incluyendo un intérprete y depurador propio.

JavaCC

El generador JavaCC (Java Compiler Compiler) es una herramienta para generar programas escritos en lenguaje Java; acepta como entrada una especificación de un determinado lenguaje y produce como salida un analizador para ese lenguaje. En la manera más simple de funcionamiento, la especificación proporcionada define las características sintácticas y lexicográficas de un lenguaje y se genera un analizador léxicosintáctico del lenguaje especificado; pero también es posible completar una especificación léxico sintáctica con la inclusión adecuada de código para que el programa generado llegue a ser un analizador completo del lenguaje.

Obtención de un analizador léxico-sintáctico

• Pasos para la generación del analizador

1.- Edición de la especificación (editor de texto plano)

vi | edit |· · · NombreFichero.jj

(el nombre del fichero puede tener cualquier extensión; suele usarse .jj)

2.- Ejecución del generador

javacc NombreFichero.jj

Si el nombre elegido para la especificación es NombreDeLaEspecif (más adelante se indica la manera de dar un nombre a la especificación), como resultado de la generación se obtiene (además de otros ficheros auxiliares) el fichero

NombreDeLaEspecif.java

3.- Compilación del analizador generado

javac NombreDeLaEspecif.java

Como resultado de la compilación se obtiene (además de otras clases auxiliares) el fichero

NombreDeLaEspecif.class

• Ejecución del analizador generado

Si el nombre del fichero donde se encuentra el texto fuente (escrito en el lenguaje para el que se ha generado el analizador) que se pretende analizar es Programa.len

java NombreDeLaEspecif <>

Si se desea que los resultados del análisis, en vez de presentarse por pantalla, queden grabados en un fichero de nombre Salida.dat

java NombreDeLaEspecif <> Salida.dat

Mas información:

http://www.lpsi.eui.upm.es/webcomp/jgperez/java/IntrodJavaCC.pdf

http://www.antlr.org/

Descargas:

ANTLR

JavaCC



lunes, 31 de enero de 2011

DEFINICIÓN DIRIGIDA POR LA SINTAXIS

Una definición dirigida por la sintaxis es una generalización de una gramática independiente de contexto en la que cada símbolo gramatical tiene asociado un conjunto de atributos que pueden ser sintetizados o heredados. Específica la traducción de una construcción en función de los atributos asociados con sus componentes sintácticos, a continuación se nombran tales atributos:

Atributos sintetizados. Se pueden calcular durante un solo recorrido ascendente del árbol de análisis sintáctico.

Atributos heredados. Sirven para expresar la dependencia de una construcción en de un lenguaje en el contexto en el que aparece.

Construcción de Árboles Sintácticos

El uso de árboles de análisis sintáctico como representación intermedia permite que la traducción se separe del análisis sintáctico. Las rutinas de traducción invocadas durante el análisis sintáctico deben activarse con dos clases de limitaciones. La primera, una gramática que resulte adecuada para el análisis sintáctico puede no reflejar la estructura jerárquica natural de las construcciones del lenguaje. La segunda, el método de análisis sintáctico restringe el orden en que se consideran los nodos de un árbol de análisis sintáctico. Pues este orden puede no coincidir con el orden en que se va disponiendo de la información sobre una construcción.

Gramáticas con atributos por la izquierda (GAI)

· Subconjunto de gramáticas con atributos

· Generan traductores de una sola pasada

· La información manipulada está disponible en la ejecución

· La información siempre fluye:

De arriba abajo

De abajo a arriba

De izquierda a derecha

Nunca de derecha a izquierda

Páginas Consultadas:

Traducción dirigida por la sintaxis. Javier Vélez Reyes. [Seriado en línea]. [http://www.lsi.uned.es/procleng/apuntes/2006-2007/TraduccionDirigidaPorlaSintaxis.pdf]. Consulta realizada: 31 de Enero, 2011.

TRADUCCIÓN DIRIGIDA POR SINTAXIS. JAVIER CARVAJAL.. [Seriado en línea].[ http://www.di-mare.com/adolfo/cursos/2008-1/pp-TradSintax.pdf ] Consulta realizada: 31 de Enero, 2011.

sábado, 29 de enero de 2011

Hacking Ético


Causas de Ataques

  • Los incidentes son atribuibles a errores significativos de gestión en la seguridad.
  • La mayoría de ataques son mala configuración, personas descuidadas
  • 3 de cada 4 ataques los atacados no se enteraron
  • La mayoría de los ataques no eran sofisticados
  • El 85% de los objetivos oportunísticos no dirigidos
  • El 96% pueden ser prevenidos con una política de seguridad bien armada

Principales Riesgos

  • Riesgos asociados a la Infraestructura de frontera.- Ataques de virus o gusanos, ataques de intrusos.
  • Riesgos asociados a la red interna.- Propagación de virus través de la red LAN/WAN, Utilización de recursos en forma inadecuada
  • Riesgos asociados a las aplicaciones.- Vulnerabilidad de las aplicaciones, aplicaciones mal configuradas.

Hacking Ético como un control de calidad

Definición de Hacker

· Es una persona que disfruta aprendiendo detalladamente de los sistemas de computación, y de cómo ampliar sus capacidades.

· Es una persona que programa entusiastamente y que disfruta de la programación y su aprendizaje en vez de sentirse obligado utilizarla o aprenderla.

El mundo de los sombreros

  • White Hat à Los chicos buenos
  • Gray Hat à Mercenarios
  • Black Hat à Los chicos malos

Objetivo del Hacking Ético

Realizar un intento de instrucción controlado a los sistemas de información de la compañía con el objetivo de identificar las vulnerabilidades a las que están expuestas las redes.

Ambientes de Penetración

  • Caja Blanca à Con información del objetivo
  • Caja Negra à Sin información del objetivo
  • Caja Gris à Hibrido

Enfoque metodológico

Discovery: Identificación y adquisición de hosts

Enumeración:

  • Port scanning de equipos de targets
  • Banner retrieval/ footprinting de equipos de targets

Identificación de vulnerabilidades: identificación de debilidades y vulnerabilidades

Explotación:

  • Explotación de debilidades y vulnerabilidades
  • Escala de privilegios

Mas información en:

jueves, 27 de enero de 2011

Reconocimiento facial en Facebook

En la red social Facebook. Se está a punto de implementar un sistema de reconocimiento facial mediante el cual, al subir una foto, se reconocerán automáticamente las caras de todos los amigos que allí se encuentran y se sugerirá su etiqueta mediante un solo click. Sin dudas es lo que muchos fanáticos estaban esperando, pero activa una alarma para el resto ya que esto violaría en alguna forma su privacidad.

Facebook anunció que cuando sea implementada esta nueva herramienta darán a conocerlo y cada uno decidirá si activarla o no.

Vía:

Tecnología 7

Imprimir desde el móvil con Gmail for mobile y Google Cloud Print



Ahora podemos usar también nuestro móvil para enviar a imprimir nuestros documentos creados en él.

No hace falta llegar al trabajo, puedes utilizar una combinación de servicios que Google ofrece gratuitamente.

Uno de los servicios – aplicaciones que Google presenta es Gmail para móviles (Gmail for mobile) y la otra aplicación indispensable es Google Cloud Print.

La primera aplicación, Gmail for mobile, es la que permite enviar vía Gmail (el correo de Google) los archivos o emails que deseemos. La segunda aplicación, Google Cloud Print, nos ofrece un medio para imprimir desde cualquier aplicación o dispositivo, Sistema Operativo o navegador, sin necesidad de instalar drivers.

Vía:

Tecnología 7


jueves, 13 de enero de 2011

Tablet Toshiba Folio 100 basada en Tegra 2 en fase de distribución

La Folio 100 es una tablet de 10.1 pulgadas, con resolución de 1024×600, se ejecuta en Android 2.2 y hay una buena probabilidad de que reciba la actualización a Android Honeycomb 3.0 muy pronto.

La tablet de 760 gramos de peso tiene 16 GB de memoria interna ampliable con ranura SDHC con soporte para 32 GB adicionales. También viene con dos puertos USB 2.0 y ranura HDMI, que soporta la reproducción a 1080p. También posee cámara de 1.3M píxeles y altavoces estéreo 2×0.5W.

Vía: