domingo, 4 de octubre de 2015

Bandit Level 20 → Level 21



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit20
- Pass: GbKksEFF4yrVs6il55v6gwY5aVje5f0j



La descripción es la siguiente:


Básicamente, nos está indicando que disponemos de un binario, con bit suid habilitado para el user bandit21



Al ejecutarlo sin ningún parámetro actual, nos indica que hará una conexión TCP a un puerto dado sobre localhost y que si éste recibe el password del level 20 de la otra conexión, el password del level 21 será mostrado.

El siguiente diagrama clarifica un poco todo esto:


Por tanto, hay que:
  1. Iniciar una nueva conexión SSH.
  2. Levantar un daemond que permanezca en modo 'listenign' y que al recibir una conexión, envíe el password del level 20:



Como se puede ver, netcat es la herramienta perfecta para hacer esto.

Levantado el daemon, tan solo queda volver a ejecutar suconnect argumentándole el puerto para poder resolver el level:




Con el fin de clarificar un poco todo, he editado el título de las terminales como:
  • CLIENT: Para el terminal que ejecuta suconnect.
  • SERVER: Para el terminal que ejecuta el daemond.


Esto es todo por ahora. Hasta la próxima entrada!

domingo, 27 de septiembre de 2015

Bandit Level 19 → Level 20



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit19
- Pass: IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x



La descripción es la siguiente:


Como se puede observar, en este caso nos está diciendo que debemos hacer uso de setuid. Esto ya fue comentado de pasada en este otro wargame.

La resolución de este level es muy sencilla y pasa por pasarle al binario bandit20-do como parámetro actual, un comando que nos permita visualizar el contenido del fichero bandit20:



Aunque no es del todo necesario, podemos ver a continuación, el desensamblado del binario:



Hasta el próximo level!

sábado, 19 de septiembre de 2015

Bandit Level 18 → Level 19



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit18
- Pass: kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd


Este nuevo level introduce algo distinto a los anteriores. Si retomamos parte del texto del nivel anterior, vemos que nos avisa de algo:

NOTE: if you have solved this level and see ‘Byebye!’ when trying to log into bandit18, this is related to the next level, bandit19

De manera tal que si hacemos la conexión SSH, obtendremos el comentado Byebye!:



Veamos que pistas nos proporciona el enunciado de este level:


Todo parece indicar que el fichero .bashrc (fichero que se carga al iniciar una 'shell de login interactiva) ha sido modificado de tal manera que no nos proporcione un shell. Por tanto, lo que debemos hacer es forzar la conexión SSH argumentando la shell que deseamos usar de la siguiente manera:



El resto, es sencillo. Tan solo debemos leer el contenido del fichero 'readme'.

Esto es todo por el momento!



Resúmenes de "Gestión de Proyectos Informáticos". Grado en Ingeniería Informática de la UNED


El objetivo de esta asignatura es proporcionar los conocimientos y habilidades necesarios para llevar a cabo tareas de dirección y gestión de proyectos informáticos de manera organizada y sistemática, de forma que se obtengan productos con la calidad que demandan los clientes y usuarios.

Una asignatura con muchísimo temario que si no se planifica con mucha antelación, se corre el riesgo de no llegar a cubrirla al completo.

A continuación, anexo los enlaces con los resúmenes que he ido haciendo de cada uno de los temas que se estudian del texto base "INGENIERÍA DEL SOFTWARE, UN ENFOQUE PRÁCTICO (7ª Edicion 2010) "

  1. El software y la ingeniería del software.
  2. Modelos del proceso.
  3. Desarrollo ágil.
  4. Principios que guían la practica.
  5. Tendencias emergente en Ingeniería del software.
  6. Conceptos de Administración de proyectos.
  7. Métricas de producto.
  8. Métricas de proceso y de proyecto.
  9. Estimación para proyectos software.
  10. Calendarización del proyecto.
  11. Administración del riesgo.
  12. Conceptos de calidad.
  13. Técnicas de revisión.
  14. Aseguramiento de la calidad del software.
  15. Estrategias de prueba de software.
  16. Administración de la configuración del software.
  17. Mejoramiento del proceso de software.


Esto es todo por ahora. Hasta la próxima entrada!


Práctica de Procesadores del Lenguaje II 2k15



Sin duda alguna es una asignatura tremendamente compleja pero a su vez apasionante.

En este caso, el alumno deberá comprender el análisis semántico, así como el proceso final de traducción de un lenguaje formal a las serie de instrucciones manejables por un microprocesador.

Los objetivos que se persiguen son:


  • Aprender a valorar la semántica subyacente a las construcciones sintácticas.
  • Aprender a integrar el sistema de tipos dentro de un compilador.
  • Estudiar la traducción de cada una de las construcciones de un lenguaje imperativo.
  • Aprender a dar soporte a la ejecución de invocaciones recursivas de subprogramas.
  • Aprender a dar soporte a la declaración anidada de subprogramas.
  • Conocer los procesos de generación de código ejecutable.
Y cuyo contenido es:
  • Análisis semántico
    • Gramáticas con atributos
    • Tabla de símbolos
    • Tipos de datos y verificación de tipos
  • Ambientes de ejecución
    • Organización de la memoria
    • Ambientes de ejecución estáticos
    • Ambientes de ejecución basados en pila
    • Paso de parámetros
  • Generación de código
    • Código intermedio
    • Generación de estructuras de datos
    • Generación de código para expresiones
    • Generación de código para sentencias de control
    • Generación de código para invocación de subrutinas
    • Optimización de código

El objetivo de la práctica es realizar un compilador del lenguaje PascUned, variación del lenguaje de programación Pascal, en sus fases de análisis semántico, generación de código intermedio y generación de código final.

En cuanto a la resolución de la práctica, los siguientes enlaces contienen el enunciado de la práctica, el proyecto completo para Eclipse y la memoria práctica:
See you soon!

Práctica de la asignatura de Sistemas Distibuidos 2k15


Presentación de la asignatura dada por el E.D.: 
El objetivo de esta asignatura es aprender los principios básicos sobre sistemas distribuidos, así como caracterizarlos y clasificarlos en función de una serie de parámetros básicos y distinguir entre los distintos tipos de modelos utilizados en sistemas distribuidos. Además, se pondrán de manifiesto la heterogeneidad, tanto de los medios de transmisión (cable coaxial, fibra óptica, canales inalámbricos,...) como de los dispositivos hardware y componentes software que los integran.
Esto hace necesario la aparición de una capa de abstracción software, comúnmente denominada Middleware (capa intermedia), la cual proporciona servicios a las aplicaciones distribuidas tales como la comunicación entre procesos (mediante RPC y Sockets) o invocación de objetos distribuidos (mediante RMI y CORBA).

También se estudian dos de los servicios más habituales ofrecidos por cualquier sistema distribuido, el servicio de archivos distribuidos y el servicio de nombres distribuidos.

Desde mi punto de vista es una asignatura complicada de estudiar, por lo extenso del temario. Sin embargo, la práctica compensa. Es de las más gratificante que he hecho a lo largo de estos años. Eso sí, como casi todas las prácticas en la UNED, se lleva mucho tiempo dejarla medianamente completa.

Si más preámbulos subo la práctica de este año, la cual trata de construir un "Sistema básico de microblogging tipo Twitter® usando Java RMI". 

Los ficheros para su descarga son:

domingo, 13 de septiembre de 2015

Ejecutar ELF 32 bits en arquitectura de 64 bits


Me ocurre a menudo que tengo que realizar alguna acción que alguna vez hice y que al tiempo debo repetir y claro, como generalmente no las anoto, pues me toca volver a bucear por la web hasta que encuentro lo que necesito.

Especialmente esto me ocurre cada vez que participo en algún CTF y sinceramente, me da bastante coraje tener que volver a dedicar tiempo a algo que en su día ya se lo dediqué.

Es por esto, por lo que comenzaré a escribir entradas con pequeñas 'recetas' de aquello que no quiero volver a buscar cada vez que lo necesite hacer.

Por tanto, abro esta nueva categoría con una receta que me permite ejecutar ELF de 32 bits en arquitecturas de 64 bits, como es el caso de la distribución Kali Linux 2.

  1. Compruebo que arquitecturas tengo habilitadas:
    dpkg --print-foreign-architectures
  1. Si en la lista aparece i386, voy al paso 5. En caso contrario, la añado:
    dpkg --add-architecture i386
  1. Actualizo:
    apt-get update
  1. Por último la instalo:
    apt-get install sl-modem-daemon:i386
  1. Fin del proceso.

sábado, 20 de junio de 2015

Bandit Level 17 → Level 18



Los datos de conexión para este nivel son:

- Host: bandit.labs.overthewire.org
- User: bandit17
- Pass: xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn



Los objetivos son claros:


La resolución de este reto es sencilla. Basta con hacer uso del comando grep:



Esto es todo por ahora. ¡Hasta el próximo reto!

jueves, 12 de febrero de 2015

CVE-2011-4862: Buffer overflow in libtelnet/encrypt.c


Un miembro de la lista de CrackSLatinoS a.k.a Boken (@Boken_), ha planteado una manera diferente de colaborar, motivar, aprender y practicar temas relacionados con la ingeniería inversa.

Para ello, propone la resolución de una serie de exploits de diferentes niveles de dificultad, del cual éste writeUp se encarga de documentar el primero de ellos de nivel medio.

El post original publicado en la lista el 11/12/2014 fue:


http://www.cvedetails.com/cve/2011-4862
La idea principal es que todo el que quiera hacer su versión de este exploit y comprender en profundidad el fallo, vaya comentando aquí sus avances, dudas, problemas y demás. Hay tanto exploits como detalles del mismo, pero la cuestión es que cada uno que lo intente y se atasque venga aquí a explicar sus problemas y pueda continuar.
Ni es un concurso, ni hay fecha de entrega. El único objetivo es que todo el que crea que no sabría hacerlo, pero quiera, utilice este post para conseguirlo. A ver si al final de este hilo entre todo lo comentado se pueden montar uno o varios tutes conjuntos.
Boken


Los detalles de esta vulnerabilidad son:
Buffer overflow in libtelnet/encrypt.c in telnetd in FreeBSD 7.3 through 9.0, MIT Kerberos Version 5 Applications (aka krb5-appl) 1.0.2 and earlier, Heimdal 1.5.1 and earlier, GNU inetutils, and possibly other products allows remote attackers to execute arbitrary code via a long encryption key, as exploited in the wild in December 2011.
Como no podía ser de otra manera, soez y yo nos pusimos a resolverlo con un resultado altamente satisfactorio para nosotros. Este tipo de retos siempre nos dejan muy buen sabor de boca. 

Ni que decir tiene que tan solo mostramos una pequeña prueba de concepto y que dista mucho de la POC original que en su día hicieron NighterMan y BatchDrake. Sin duda la de ellos es infinitamente más elaborada.

Espero que disfrutéis de esta lectura, tanto como nosotros redactándola. Aquí os dejamos todo lo necesario:
¡Hasta el próximo exploit!


lunes, 2 de febrero de 2015

Entrevista a Sergio Llata a.k.a. thEpOpE




Con esta entrada, intento recuperar el flujo de entrevistas a personas que de alguna manera, me aportan y hacen crecer en lo técnico y en lo humano. 

Esta vez, lo haremos de la mano de Sergio Llata (@sergiollata) a.k.a. thEpOpE. 

Fue en la rooted 2k14, donde tuve el inmenso placer de conocerle personalmente y en donde pude contemplar brevemente su enorme potencial.


Desde entonces, no solo hemos mantenido una buena amistad, sino que además hemos conseguido juntar y formar un equipo con unas cuantas mentes inquietas, del cual posiblemente hable en próximas entradas. Sin más preámbulos empezamos con la interview.


  • ¿Cuéntanos un poco a que te dedicas en tu día a día? 
Todo empezó allá en el año 1974, en un pueblo que dista 12 km de Santander (España). Allí nacía un servidor, siendo el tercero de 4 hermanos... (esto parece el inicio de una novela). Bueno, vamos al grano de la pregunta: actualmente tengo 40 años, y no me dedico a nada relacionado con la informática, o al menos de un modo directo. Aunque es algo que siempre se ha rumoreado de mí tanto en las listas de CracksLatinoS, o en el canal #crackers del IRC-Hispano, para salir de todad duda he de decir que, efectivamente, desde el año 2000 soy sacerdote católico. Realmente mi día a día consiste en ejercer mi sacerdocio como párroco en una localidad de la diócesis de Santander.
  • ¿De dónde viene o de dónde sacaste el nick thEpOpE? 
El nick creo que está claro :) En el año 1998, cuando aún estaba estudiando en el seminario, mi hermano puso un modem 33k en casa, y de este modo empezamos a tener Internet. Anteriormente siempre había firmado como DJ Dos, S.O.S. , o simplemente con mi nombre. A raíz de conectarme al IRC, tuve que elegir un nick, y ahí estuvo la pega. Inicialmente me atrajo la idea de Bishop, por el doble significado que tiene en castellano. Pero pensé que siempre habría alguien que podría ponerse un nick en jerarquía superior, y además me parecía que iba a hacer uso del nick de un modo no ofensivo a lo que significa. Además fundé el #canal_catolico también en IRC-Hispano, lo cual daba una identidad interesante. De ahí surgió mi nick inicial, que originalmente tenía corchetes [ThePope] ; y finalmente, cuando quité los corchetes lo dejé con una grafía un poco más h4xor, y que además era el estilo que adopté para la página con tutoriales (y otras lindezas ;) que tuve enlazada desde la web de karpoff. En mi caso he usado otros nicks, como Horeb y MrKhaki.
  • Estoy deseando que nos cuentes como fueron tus comienzos, especialmente en lo que a términos como 'spectrum', 'dibujo', 'música', 'scene', ...
Los comienzos son fáciles de explicarlos. Cuando yo tenía 13 años a mi hermano alguien le regaló un Spectrum+ de 48kb. Hay que pensar que en aquella época en mi casa no había electricidad a 220V, y teníamos que usar un transformador, junto con la única TV que había en casa. Aunque los juegos que venían de demostración eran divertidos, pronto me cansé de ellos, y empecé a experimentar y probar los programas del manual. Así es como poco a poco fui haciendo mis primeros pinitos en Basic de Sinclair. Pronto descubrí que con Basic poco o nada se podía hacer, y aunque la MicroManía tenía bastante enjundia como revista de juegos, cuando mi hermano empezó a la universidad trajo un día una revista que regalaban una cinta.. MicroHobby. Eso fue el lanzamiento total: listados en ensamblador de z80, artículos de programación, herramientas, consultorio de dudas, etc. En el instituto pude intercambiar un montón de material con gente que tenía la misma afición, pero desgraciadamente debía ser casi el único que le gustaba el ensamblador y listados hexadecimales.
Fue a raíz de los concursos de MicroHobby como me puse a hacer los primeros pinitos en dibujos pixel a pixel, así como destripar algunos juegos, en busca de los ansiados pokes de vidas infinitas, o quitar las limitaciones de tiempo que tenían las demos jugables que venían en MicroHobby. Debido al concurso de aventuras conversacionales que hizo MicroHobby me enrolé en ese mundo también, haciendo muchas colaboraciones en el fanzine Z for Zero. En este período llegó a casa un Macintosh Classic, y posteriormente un PC - 386. Fueron dos ordenadores que me introdujeron en el mundo de formatos de sonido, formatos de gráficos, compresores, Motorola 68000...
Justo al año siguiente yo empecé a la universidad, me matriculé en Físicas. A decir verdad lo hice con la intención de hacer Física Electrónica, pero la idea del seminario y la vocación llevaban tiempo en la mente y en el corazón. Y cuando terminé el segundo curso en la universidad, me fui al seminario. En el seminario teníamos una sala con 2 ordenadores Macintosh :) Y posteriormente nos permitieron tener ordenador personal en la habitación :) En ese periodo desarrollé una aventura conversacional para PC, desarrollé un sistema de sonido para PC que permitía incluir sonidos y música en este tipo de juegos (hay unos cuantos juegos por ahí que llevan música mía):
e hice una librería para QBasic que permitía gestionar el CD-Rom, SoundBlaster, ratón, etc...
Al mundo de la scene ... es otra historia muy larga. Porque realmente fue la evolución desde los IRC de ingeniería inversa. Al participar en las parties, nos juntamos unos cuantos que nos gustaba este tema (inicialmente Cathedral :O , y posteriormente Nocturns). A mí me tocó la parte de sonido, a decir verdad, me dediqué a reversar motores de sonido de intros de 64kb, y de 4kb, para después desarrollar el nuestro propio.
  • ¿Cómo ha sido tu evolución en el mundo del (Hack | Crack)ing?
No me considero hacker. Más bien siempre me he considerado cracker. Y no por romper cosas... sino porque "lo virtual" me ha resultado siempre muy etéreo. Me ha gustado más todo lo que se pueda toquetear en local.
Mis inicios en esto indudablemente están en la etapa del Spectrum, cuando usaba el MONS para desensamblar y poder buscar los pokes de los juegos (un parche en toda regla, vamos). También para buscar las contraseñas y poder jugar a las segundas partes sin haber terminado la primera. Después estuve en relación con todo lo de Macintosh (tenía un debugger en la propia instalación del sistema 7 MacsBugs , y un editor de recursos que desensamblaba los recursos de código), y cuando tuve mi 486 cayó por mis manos una versión del win32dasm. La etapa del IRC trajo el resto: sice, trw2000, ollydbg... A todo esto hay que añadir que anteriormente a Internet, no había más posibilidad que la biblioteca de la universidad, y un montón de cintas de spectrum y diskettes que intercambiábamos por correo ordinario.
  • Sabemos de buena tinta que fuiste parte importante en grupos de mucha importancia tales como TNT o WkT! ¿qué nos puedes contar de tu paso por esos te@ms? y sobre todo  ¿en que crees que habéis podido influir para las actuales generaciones?
Bueno, parte importante no me he considerado nunca. En TNT coincidí con miembros españoles, como Xasx (fundador de TNT), Metamorfer, SkUaTeR, y Karlitoz. Salvo con Metamorfer, he tenido la suerte de poder dialogar personalmente y compartir mesa con el resto. TNT me aportó el vértigo de lo que eran originalmente los 0days. Hoy sale un programa, y en menos de 24 horas había que sacar la medicina. Mi conexión de Internet no daba para tanto, y mi tiempo tampoco.
A través del canal #crackers de IRC-Hispano pudimos hacer varias kedadas en la Euskal
Party. La primera fue en la edición 8 de la Party. A partir de ahí entré en contacto con gente de WkT!. En esta época hice buenos amigos de faena donde coincidíamos en la Party: Uri (int3pids), Xezaw (48bits), Shotgan (Nocturns), Ripe (7a69 ezine), Dreg (fr33project), noukeys.
MrBlack hizo campaña de reclutamiento en una party, y finalmente fuimos tres miembros de TNT quienes adquirimos colores :) Si TNT era vértigo, WkT! era madurez. Ante todo se apreciaba lo que cada uno hacía, porque aportaba mucho al resto. Buenos tutoriales, buenas herramientas, nuevas líneas de investigación. Y todo en español. De WkT! guardo un gratísimo recuerdo, y eso que me tocó en la última época, justo cuando se apagó...
No sé a qué nivel hayamos podido contribuir entre todos a las actuales generaciones. Cuando Shaddy dijo en su entrevista que un tutorial mío había marcado un antes y un después en cómo hacer él los suyos, me sentí orgulloso de saber que el tiempo que invertí en hacer aquello había merecido la pena para otros.
  • Dinos que es lo primero que te viene a la cabeza si te pregunto por:
    • Ingeniería Inversa: hexadecimal, estructuras de datos
    • Hacker: admiración por lo que hacen...
    • amn3s1a: diversión a raudales, y buena gente... Como tú dijiste en cierta ocasión: me ha quitado 15 años de encima
    • Mr. Snow: un buen amigo, y una bestia parda. Cuando hacemos retos juntos nos complementamos muy bien. También me viene a la cabeza alguna noche loca por Bilbao (El Alicates, El Siete, y Jade ...)
    • Marcan: valium :) A gente como Marcan no se les debería permitir salir de este país. Debería poner por escrito y con lenguaje humano todo lo que hierve en esa cabeza.
    • Euskal Encounter: Añoranza... con menos participantes era más divertido. Actualmente es el punto de encuentro con otros grupos, y gente "de toda la vida".
    • DemoScene, Intro y 4 K.: Asombro, emoción, arte, cultura digital
    • Criptografía: "Tú verás lo que haces, pero yo a la carcel no voy a verte" (la frase de mi madre cuando ve determinadas herramientas en pantalla). Realmente es lo que ha dado sentido a las pocas matemáticas que sé.
    • Matemática: Qué pena que las he cogido cariño ahora... son el lenguaje del orden
    • Amistad: "Un amigo es aquel que conoce todo de ti, y aún así te sigue queriendo". De estos he tenido muy pocos. La informática me ha dado amigos que los aprecio como hermanos (eSn-mIn, Jade, noukeys)
    • CTF: ¿el fin de semana? ¡¡madre mía, a ver qué ratos me quedan libres para poder echar un cable al grupo!!
  • ¿Cual es el lenguaje de programación que más te gusta y por qué? 
Por herencia, el Basic (he dicho Basic, no VBasic :p). Actualmente me gusta mucho el
python, me parece un lenguaje de aprendizaje rápido, y versátil. A decir verdad apenas programo, y aunque me cuesta mucho escribir 5 líneas seguida en él, el C me ha parecido siempre la mejor opción para cosas grandes y serias. Para des-programar lo tengo claro, ensamblador (da igual de qué máquina sea :), y de hecho sigo haciendo algunas cosas directamente en ensamblador.
  • ¿Cómo percibes el 'mundo hacker' de hoy en día?, ¿Qué cambiarías de él? y ¿Qué no? 
Lo percibo monetizado, convertido en moneda de cambio, y todo lo que se monetiza se oxida. Ahora cualquiera que use Kali o haya hecho un curso de 30 horas sobre seguridad en sistemas, ya se considera hacker... :S Cambiaría muchas cosas, para empezar a quienes hacen las leyes en este país; y también todo ese lenguaje importado con títulos y palabrejas raras... ¿a quién se le ocurre autodenominarse "researcher"? ¿Dónde está la creatividad original y 'typical spanish' del Jamón y el Vino?. No cambiaría a las personas concretas que siguen dándole duro, con ganas de abrir nuevos caminos, y que siguen marcando nuevas fronteras...
  • ¿Qué consejos le darías a los que empiezan o están comenzando? 
Leer, preguntar, probar. Volver a leer, volver a preguntar, volver a probar. Aunque digan que el tiempo es oro, prefiero la paciencia, que es una virtud. Cuanto más aprendas, más te darás cuenta de lo que aún te queda por aprender.
  • ¿Cómo ves tu futuro? 
No lo veo :) No soy adivino ni clarividente, pero espero no perder nunca la curiosidad de conocer, saber, y cambiar en mí lo que sea un obstáculo para los demás.
  • ¿A quién admiras? y ¿a quién no?
Admiro a las personas que se entregan desinteresadamente, especialmente en favor de otros. No admiro a quienes quieren sacar tajada...
  • ¿Nos recomiendas algún libro en especial?
Pues si digo el Evangelio de Marcos quizás no lo toméis en serio, pero os lo recomiendo. El manual de Spectrum +2, ahi está mi base...
  • ¿Qué tipo de música te gusta?, ¿Podrías recomendarnos alguna canción?
Me gusta prácticamente todo, el pop rock en español, la música de los 80; pero me motiva bastante la música electrónica y el hardstyle. Por lo experimental en el momento en que se publicó y que siempre me ha parecido una genialidad: Un mundo separado por un mismo Dios, de Nacho Cano. Algo más actual, y que me ha parecido motivadora para los CTF : Kronos & Drone, "Level 2" 
  • ¿Qué opinas de CrackSLatinos y de su creador (Sr. Ricardo Narvaja)?
Me parece que ha hecho una labor de continuidad bastante positiva, y ha conseguido mantener una comunidad internacional unida por el mismo idioma. Del modo en que se hizo inicialmente prefiero no opinar. A Ricardo no lo conozco personalmente, ni tampoco he coincidido chateando con él como para tener una idea. Como persona no puedo opinar, pero por el hecho de haber estado ahí haciendo lo que ha hecho de modo altruista ya merece mi más sincero respeto.
  • ¿A quién te gustaría que hiciésemos la próxima entrevista?
A Uri o Xezaw.
  • ¿Hay algo que no te hayamos preguntado y que te gustaría decir?
crAck & prAy </mentiras>


Aquí termina la entrevista y no quiero finalizar sin dejaros algunos de los fabulosos trabajos con los que nos ha obsequiado Sergio:


Quiero dar las gracias a todos aquellos que han colaborado en la realización de esta interview, especialmente a C1b3r Pr13st! (@ciberpriest)

Nos vemos en la próxima!



domingo, 1 de febrero de 2015

Práctica de Procesadores del Lenguaje II 2k14


Esta asignatura es la continuación a la de PL I, vista en el la entrada anterior.

Sin duda alguna es una asignatura tremendamente compleja pero a su vez apasionante.

En este caso, el alumno deberá comprender el análisis semántico, así como el proceso final de traducción de un lenguaje formal a las serie de instrucciones manejables por un microprocesador.

Los objetivos que se persiguen son:

› Aprender a valorar la semántica subyacente a las construcciones sintácticas.
› Aprender a integrar el sistema de tipos dentro de un compilador.
› Estudiar la traducción de cada una de las construcciones de un lenguaje imperativo.
› Aprender a dar soporte a la ejecución de invocaciones recursivas de subprogramas.
› Aprender a dar soporte a la declaración anidada de subprogramas.
› Conocer los procesos de generación de código ejecutable.

Y cuyo contenido es:
  • Análisis semántico
    • Gramáticas con atributos
    • Tabla de símbolos
    • Tipos de datos y verificación de tipos
  • Ambientes de ejecución
    • Organización de la memoria
    • Ambientes de ejecución estáticos
    • Ambientes de ejecución basados en pila
    • Paso de parámetros
  • Generación de código
    • Código intermedio
    • Generación de estructuras de datos
    • Generación de código para expresiones
    • Generación de código para sentencias de control
    • Generación de código para invocación de subrutinas
    • Optimización de código

La práctica continúa partiendo de la de PL I como es de esperar. Tanto el enunciado como las directrices se pueden descargar en los siguientes enlaces:
En cuanto a la resolución de la práctica, los siguientes enlaces contienen el proyecto completo para Eclipse, la memoria práctica y los casos de prueba:

Exactamente igual que en la entrada anterior, quiero dar las gracias a mis compañeros Armando Platero y Alejandro González de Aguilar y al profesor D. Javier Vélez Reyes (@javiervelezreye), su inestimable ayuda y dedicación, ya que si ellos hubiera sido casi imposible, el haber podido realizar esta práctica. A todos ellos, !muchísimas gracias!




Práctica de Procesadores del Lenguaje I 2k14


Se trata de una asignatura, la cual desde hace muchos años tenía enormes ganas de cursar y por la cual el alumno debe de aprender a construir y utilizar los analizadores léxicos y sintácticos; cuyos objetivos generales son:

› Conocer la estructura interna de un compilador.
› Comprender el proceso de análisis formal de un lenguaje.
› Aprender las fases que lo constituyen conceptualmente.
› Distinguir los diferentes tipos de lenguajes existente.
› Conocer los diferentes algoritmos utilizados en el análisis sintáctico de lenguajes.


En cuanto al contenido de la asignatura tenemos:
  • Introducción 
    • Estructura de un compilador
    • Proceso de traducción
  • Análisis léxico
    • Proceso de análisis léxico
    • Expresiones regulares
    • Autómatas finitos
  • Análisis sintáctico
    • Proceso de análisis sintáctico
    • Gramáticas libres de contexto
    • Árboles sintácticos
    • Ambigüedad
    • Notación EBNF
  • Análisis sintáctico descendente
    • Análisis sintáctico descendente recursivo
    • Análisis sintáctico LL (1)
    • Recuperación de errores sintácticos descendentes
  • Análisis sintáctico ascendente
    • Análisis sintáctico LR (0)
    • Análisis sintáctico SLR (1)
    • Análisis sintáctico LALR (1)
    • Análisis sintáctico LR (1)

Para la práctica del año 2k13/14, el Equipo Docente propuso realizar un compilador del lenguaje HAda, que implementa un lenguaje similar a PASCAL usando la sintaxis del lenguaje Ada. En los siguientes enlaces se puede obtener el enunciado y las directrices de implementación proporcionadas por el E.D: 
En cuanto a la resolución de la práctica, los siguientes enlaces contienen el proyecto completo para Eclipse, la memoria práctica y los casos de prueba:

No quiero finalizar esta entrada sin dar las gracias a quienes hicieron posible el que pudiera aprender y entender esta fantástica asignatura y que sin ellos no hubiera sido posible la realización de esta práctica y la siguiente de Procesadores del Lenguaje II. Por ello, gracias Armando Urrestarazu Platero por tu increíble constancia; gracias Alejandro González de Aguilar por tus incansables ganas de enseñar y por esas nocturnas horas que me has dedicado y gracias al tutor D. Javier Vélez Reyes (@javiervelezreye) por guiarnos desde el principio con auténtica pasión y vocación y por sus apuntes de la asignatura, que más que apuntes, bien podrían ser la biografía básica.




martes, 20 de enero de 2015


Las Jornadas X1RedMasSegura se celebrarán los días 22 y 23 de Mayo en el Salón de Actos de la Escuela Técnica Superior de Ingenieros de Telecomunicación de la Universidad Politécnica de Madrid (ETSIT-UPM).


Durante estos dos días se tendrá la oportunidad de escuchar a verdaderos profesionales de la Seguridad traduciendo sus conocimientos y experiencias para hacerlas llegar a los usuarios finales de Internet con la finalidad de hacer más sencillo su paso en la Red, tan presente hoy en día en nuestras vidas.

Novedades

La edición 2015 repetirá de nuevo la experiencia de los talleres, celebrándose para ciberabuelos, padres, educadores, musicales para niños, empresas y empresarios, disCAPACITADOS e internautas en general, así como cualquiera que surgiera viabilidad para su celebración.

A diferencia de las dos ediciones anteriores los talleres se desarrollarán desde los meses febrero/marzo con la finalidad de poder realizarlos, además, en localidades distantes de Madrid, ciudad donde se culminará la edición 2015 con la celebración de las jornadas los días 22 y 23 de mayo.

Estos talleres, que seguirán siendo TOTALMENTE GRATUITOS, se desarrollarán a solicitud de los
interesados y tras el estudio de viabilidad y desarrollo por las partes, teniendo en cuenta la logística a la hora del desplazamiento de/l/los ponente/s, designados por Organización de X1RedMasSegura para participar en la actividad

Patrocinios y Colaboraciones 2015

Si deseas patrocinar o colaborar en la edición 2015 de las Jornadas X1RedMasSegura puedes ponerte en contacto con nosotros en: info@x1redmassegura.com y/o descargarte el dossier de información y patrocinio.

Buscamos colaboración principalmente en los siguientes aspectos. Los patrocinadores se encargarán
directamente de la aportación de recursos sin intervenir la organización de x1RedMasSegura más allá de la coordinación. Figurarán en la publicidad y página web como tales además de ser nombrados en todos los eventos.

COMUNICACIÓN 
  • Publicidad y difusión
  • Cartelería e impresiones
  • Acreditaciones

LOGÍSTICA 
  • Catering 2 Jornadas x 300 personas
  • Catering Talleres (400 personas total)
  • Catering Networking
  • Viajes y Alojamiento ponentes no residentes en Madrid (Jornadas)
  • Realización de talleres fuera de Madrid

MATERIALES 
  • Agradecimiento autoridades y ponentes
  • Agradecimiento asistentes Jornadas y Talleres
  • Agradecimiento staff (personal apoyo en Jornadas y Talleres)
  • Premios concurso Infografías para niños (6 en total)

Cualquier otra ayuda será bienvenida ya que x1RedMasSegura es una iniciativa sin ánimo de lucro que persigue llevar el uso seguro y responsable de Internet a todos los ciudadanos.

Cierre confirmación patrocinios el domingo 3 de mayo de 2015.