gentoo linux, java, software libre y otras hierbas
abr, 30 2009 - 6:29 pm

Video tutorial de introducción a las shellcodes en Linux

Uff… ya llevo bastante sin pasarme por este, mi querido blog. Puesto que ya no cuento con el mismo tiempo de antes es muy poco lo que puedo publicar; así que, aprovecho a colocar trabajos de la universidad que, de una u otra forma, podrían serviles a alguien. El video tutorial que verán a continuación con tiene una pequeña (muy pequeña) introducción a lo que son los shellcodes en Linux:

También lo subí a Youtube, por si no te gusta blip.tv. No es definitivamente el mejor video que hemos hecho, pero de seguro le será útil a alguien. Si deseas necesitas el video original, me puedes escribir solicitándolo, aunque creo que es suficiente con que esté en internet; no pongo el link descarga por cuestiones de recursos ;)

Te recomiendo además esta animación en donde se explica qué es y cómo funcionan las vulnerabilidades de buffer overflow.

13 Comentarios | deja el tuyo

abr, 18 2009 - 10:22 am

Tip: resaltar sintaxis de código en nano

Nano es sin duda mi editor de texto favorito: es simple, es rápido y anticuado (?). Me encanta usarlo aun cuando estoy en un entorno gráfico y tengo la posibilidad de usar Gedit o Kate. Este tip es bastante sencillo y hace que nano resalte el código fuente de los programos que estemos editando.

Basta con crear un archivo llamado .nanorc en el directorio home (nano ~/.nanorc) de nuestro usuario, y poner algo como esto (para PHP):

syntax "php" "\.php[2345s~]?$"
color brightblue "(.*)\("
color blue "\$[a-zA-Z_0-9$]*|[=!<>]"
color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color green "[.,{}();]"
color red "('[^']*')|(\"[^"]*\")"
color brightyellow "(#.*|//.*)$"
color brightyellow start="/\*" end="\*/"
color brightblue "(<\?(php)?|\?>)"
color white start="\?>" end="<\?(php)?"

Este es un listado completo de la configuración para el resaltado de sintaxis en otros lenguajes de programación. Personalmente tengo sólo los que uso (Java, C/C++, SQL, Python, HTML y PHP), pero hay muchos más. Además, como puedes ver son fáciles de crear o modificar. El resultado es algo como esto:

resaltar sintaxis nano

¡Nada mejor que nano!

23 Comentarios | deja el tuyo

abr, 17 2009 - 11:11 am

Ejemplo fullscreen y cómo crear ventanas sin bordes en Java

Este es un tip bastante útil que nos permitirá poner las ventanas de nuestras aplicaciones en Fullscreen (pantalla completa), y de paso aprenderemos a crear ventanas sin bordes (lo cual es útil si queremos hacer algún splash de inicio para nuestra aplicación).

En el siguiente ejemplo usaremos básicamente los siguientes métodos y clases:

  • Método setUndecorated de la clase JFrame, el cual recibe un parámetro boolean. Si le enviamos true, quitará los bordes de la ventana.
  • La clase GraphicsDevice nos permite manejar objetos que representan dispositivos gráficos, como la pantalla del computador. En este caso creamos el  objeto con la instrucción GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); que nos devuelve un objeto que representa la pantalla en donde se está mostrando nuestro programa.
  • El método setFullScreenWindow, de la clase GraphicsDevice, nos permite poner nuestro programa en pantalla completa. Además, aunque no lo usemos en el ejemplo, contamos con el método isFullScreenSupported que nos permite saber si es posible poner la ventana en modo fullscreen o no.

Código fuente del ejemplo…

import javax.swing.*;
import java.awt.GraphicsEnvironment;
import java.awt.GraphicsDevice;
import java.awt.event.*;

public class EjemploFullscreen extends JFrame implements ActionListener{
        private JButton boton;
        private boolean estaFull = false;
        static GraphicsDevice grafica=
                GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        public EjemploFullscreen() {
                super("Ejemplo pantalla completa en Java");

                boton = new JButton("Presioname");
                boton.addActionListener(this);
                getContentPane().add(boton);

                setSize(640, 400);
                setUndecorated(true);
                setVisible(true);
        }

        public static void main(String[] args) {
                new EjemploFullscreen();
        }

        public void actionPerformed(ActionEvent e) {
                if(!estaFull)
                        grafica.setFullScreenWindow(this);
                else
                        grafica.setFullScreenWindow(null);
                estaFull = !estaFull;
        }
}

Descargar código fuente

15 Comentarios | deja el tuyo

« Entradas anteriores