PDF de programación - Occam's Razon #4 2009

Imágen de pdf Occam

Occam's Razon #4 2009gráfica de visualizaciones

Publicado el 29 de Noviembre del 2019
75 visualizaciones desde el 29 de Noviembre del 2019
4,4 MB
64 paginas
Creado hace 10a (18/08/2009)
Occam’s
Razor

Número 4, Año 2009

Dirección:

David Martínez Oliveira

Editores:

David Martínez Oliveira

Fernando Martín Rodríguez

Colaboradores:

Fernando Martín Rodríguez,

David Martínez Oliveira,

Snortel, Mappy Porto, Er Boyer,

Huakin Paquete, Chinao,
Tamariz el de la Perdiz.

Maquetación y Grafismo

Publicidad

Occam’s Razor Direct

occams-razor@uvigo.es

Impresión

Por ahora tu mismo. . . Si te

apetece

c2009 The Occam’s Razor

Team

Esta obra está bajo una licencia
Reconocimiento 3.0 España de
Creative Commons. Para ver

una copia de esta licencia, visite

http://creativecommons.org/
licenses/by/3.0/es/ o envie una
carta a Creative Commons, 171
Second Street, Suite 300, San
Francisco, California 94105,

USA.

Editorial
Seguimos en Marcha
by The Occam Team

Ha pasado más de un año y medio desde el último número de Occam’s

Razor y muchos de vosotros os habéis estado preguntando cuando llegaría el
próximo número. Bien, pues aquí lo tenéis. Como se suele decir más vale tarde
que nunca... o no hay tres sin cuatro.

Una revista libre tiene un montón de ventajas. Todos las conocéis, pero tiene
una desventaja muy grande. Solo se le puede dedicar el tiempo libre, algo que,
en estos días, escasea tanto como el sentido común.
Este último año y medio ha sido un año de grandes cambios para nuestros
principales colaboradores. Nuevos trabajos, nuevos países y nuevas criaturas
sobre la faz de la tierra. A ellas va dedicado este número.
Grandes cambios que consumen mucho tiempo. Pero, poco a poco, arañando
horas a los días hemos conseguido traer a la luz un nuevo número de Occam’s
Razor. Esta vuestra revista.
En este número os encontraréis menos artículos, pero más extensos. Esperamos
que os agrade el formato y sobre todo, vuestros comentarios al respecto.
Además de la secciones habituales (con la excepción de “En la Práctica” que in-
tentaremos que vuelva en el próximo número), estrenamos una nueva sección:
“La cacharrería”, con la intención de que os guste, tanto como nos ha gustado
a nosotros escribirla, y que se acabe convirtiendo en una sección habitual de
Occam’s Razor.
Otra novedad en este número es la inclusión de hiper enlaces en el documento
PDF. Esto fue sugerido por un lector tras la edición del segundo número
(gracias Cruz Enrique Borges Hernández) y finalmente lo hemos incorporado.
Aprovechando los enlaces, hemos añadido en la mayoría de los artículos un
cuadro de recursos en Internet, para que os resulte más sencillo conseguir
información adicional.
Como os habíamos anunciado este número es un especial sobre seguridad,
donde podréis encontrar artículos sobre criptografía, vídeo vigilancia o reco-
nocimiento biométrico.
A modo de dossier, hemos preparado tres artículos en los que os destripamos
los entresijos de las redes TCP desde tres niveles diferentes. Las aplicaciones,
las librerías y las llamadas al sistema. Todo lo que necesitáis saber sobre
paquetes y protocolos.
Que disfrutéis este número y, como siempre, vuestros comentarios y colabo-
raciones para seguir mejorando, serán muy bienvenidos.

The Occam’s Razor
Team

Las opiniones expresadas en los artículos, así como los contenidos de los mismos, son responsa-
bilidad de los autores de éstos.
Puede obtener la versión electrónica de esta publicación, así como el código fuente de la misma
y los distintos ficheros de datos asociados a cada artículo en el sitio web:
http://webs.uvigo.es/occams-razor

3| OCCAM’s Razor

RINCÓN DE LOS LECTORES

El Rincón de los lectores
Vuestros comentarios, sugerencias,...

por The Occam’s Razor Team

Erratas

enviado por Roberto González Cardenete

Fuentes LATEX
enviado por muchos de vosotros

Hola,
no sé si esta errata os la han comunicado ya. Es
en el tercer número, artículo sobre inteligencia artifi-
cial y aprendizaje máquina, tabla 3. Para la previsión
"lluvioso.el error es 2/5 y para "nublado.es 0/4. En
la tabla aparece de forma opuesta, 0/4 para "lluvioso2
2/5 para "nublado.
De igual manera ocurre para el atributo "Hace vien-
to". La regla "SI"tiene un error de 3/6 y la regla
"NO"de 2/8.
Enhorabuena por la revista y muchas gracias: es un
placer leerla.
Un saludo,

Muchas gracias Roberto por apuntarnos esta errata.
Ya le hemos incluídos estos cambios en la última edi-
ción.

Muchos de vosotros nos habéis escrito solicitando las
fuentes de todos los números de Occam’s Razor. Eso
es lo que decíamos en la web. Como ya sabréis tene-
mos algunos problemas de espacio y hasta ahora solo
nos ha sido posible mantener las fuentes de la última
revista, puesto que los ficheros de fuentes son bastante
voluminosos.
Queremos agradecer a todos los que os habéis ofrecido
para hacer un mirror de estos ficheros y comunicaros
que a partir de este número todos los ficheros estarán
accesibles para descargar.
Todos los que todavía estéis interesados en ha-
cer un mirror de estos ficheros podéis poneros
en contacto con nosotros de nuevo (para que no
se nos despiste nadie entre todos los mails ar-
chivados) y en la página oficial de la revista
(http://webs.uvigo.es/occams-razor)mantendremos una
lista con todos estos mirrors y el tipo de acceso que
proporciona.

Otra Utilidad de vim

enviado por Luis Rodríguez

Se os ha olvidado comentar, como utilidad para pro-
gramadores, que si presionamos la tecla " %.en modo
comando sobre un {,( o [, el cursor se nos moverá au-
tomáticamente hacia el correspondiente },),], lo cual
es tremendamente útil a la hora de depurar programas
que utilizan esta sintaxis de llaves, paréntesis o cor-
chetes para anidar estructuras de control, ya que un
ítem de estos sin emparejar no se moverá.
Un saludo,

Totalmente de acuerdo, una muy útil funcionalidad de
vim. Como os comentábamos en el artículo, hay cien-
tos de interesantes comandos ofrecidos por vim, como
este que nos comenta nuestro amigo Luis. Simplemen-
te ejecutad el comando help (ya sabéis ESC : help) y
a leer!.

Felicitaciones

enviado por muchos de vosotros

Seguimos recibiendo y agradeciendo todas vuestras fe-
licitaciones que nos animan a continuar con esta vues-
tra revista, aunque a veces sea un poco a trompicones.
Intentamos que esta sección, al igual que todas las de-
más de la revista os resulte útil y por esa razón no
incluimos todos estos mensajes, que aunque muy ne-
cesarios para nosotros.
En cualquier caso.
MUCHAS GRACIAS POR VUESTRO APOYO!!

ENVIADNOS...

Vuestros comentarios, sugerencias, ideas, críti-
cas (constructivas claro), correcciones, solucio-
nes, disoluciones o cualquier cosa que se os ocu-
rra... a:

occams-razor@uvigo.es

LOS ESPERAMOS!!!!

OCCAM’s Razor | 4

RATAS DE BIBLIOTECA

libpcap. Tu propio sniffer en 5 líneas
... bueno, 5 líneas y un call-back

por Snortel

Capturar paquetes es una de esas cosas “Si-

natra”, vamos, que cada sistema hace “a su ma-
nera”. Afortunadamente para nosotros algunas
personas se han preocupado de escribir una li-
brería para poder llevar a cabo esta tarea de una
forma portable. Estamos hablando de la librería
libpcap.

Una de las herramientas básicas relacionadas con la
seguridad informática es el sniffer o capturador de pa-
quetes o analizador de protocolos, o... Bueno, tienen
muchos nombres, dependiendo del uso que se le quiera
dar.
Estos programas normalmente utilizan lo que se co-
noce como “sockets RAW”, los cuales, desafortunada-
mente, tienen un interfaz diferente en cada sistema
operativo. La librería libpcap nos permite utilizar esta
funcionalidad independientemente del sistema opera-
tivo.

EL CÓDIGO

Sin más preámbulos vamos a ver el código de nuestro
sniffer de cinco líneas y un callback utilizando libpcap.

#include <pcap . h>
#include <s t d i o . h>
#include < s t d l i b . h>

s t a t i c int count = 1 ;

void ip_cb ( u_char ∗ args ,

const struct pcap_pkthdr ∗ ph ,
const u_char ∗ p ) {

p r i n t f

( "Hemos␣ r e c i b i d o ␣ %d␣ p a q u e t e s ! ! ! . ␣ "

pcap_loop ( h , −1,
return 0 ;

ip_cb , a r g s ) ;

}

Vale, no son exactamente cinco líneas, pero sí cinco
llamadas a funciones de libpcap. Aunque aparente-
mente este programa es muy tonto (cuenta paquetes
en el interfaz eth0), enseguida veréis que es mucho
más potente de lo que parece.
Lo primero que aparece es nuestro callback. Esta es
la función que libpcap ejecuta cada vez que captura
un paquete. En nuestro caso, esta función utiliza una
variable estática para llevar la cuenta de los paquetes
capturados.
En el programa principal es donde está lo interesante.

CONFIGURANDO LA CAPTURA

El programa comienza obteniendo información sobre
la configuración del interfaz eth0. Esta llamada os la
podéis ahorrar si no vais a trabajar con paquetes de
“broadcast” ya que su única finalidad es obtener la
máscara de red asociada con el interfaz.
A continuación le decimos a libpcap que queremos
capturar paquetes “en directo” en el interfaz “eth0”. De
especial interés es el tercer parámetro. Este paráme-
tro le dice a libpcap que intente configurar el interfaz
de red en modo promiscuo, es decir, la tarjeta de red
informará al sistema operativo de todos los paquetes
que ve, no solo de los paquetes dirigidos a ella.
En estos momentos ya estamos en condiciones de cap-
turar paquetes, y la sentencia if (y la siguiente sec-
ción) que sigue a continuación os la podéis ahorrar si
no queréis utilizar el filtrado de paquetes que ofrece
la librería.

"Ha , ␣ha , ␣ha ! ! ! ! "
" %d␣ p a q u e t e s ! ! ! \ n" , count++, count ) ;

FILTRANDO PAQUETES

}
int main ( int argc , char ∗ ∗ argv ) {

e r r [PCAP_ERRBUF_SIZE] ;
h ;

char
pcap_t ∗
struct bpf_program f p ;
bpf_u_int32
bpf_u_int32
u_char ∗

maskp ;
netp ;
a r g s = NULL;

pcap_lookupnet
h = pcap_open_live ( " eth0 " , BUFSIZ, 1 , − 1 , e r r ) ;
i f ( a r g c > 1) {

( " eth0 " , &netp , &maskp ,

e r r ) ;

pcap_compile ( h , &fp , argv [ 1 ] , 0 , netp ) ;
p c a p _ s e t f i l t e r

( h , &f p ) ;

}
/ ∗ Cuenta ! ! ! , Cuenta ! ! ! M al di t o ! ! !

Ha , ha , ha ! ! ! ! ∗/

Como os decíamos, la parte central del programa uti-
liza el sistema de filtrado de paquetes proporcionado
  • Links de descarga
http://lwp-l.com/pdf16992

Comentarios de: Occam's Razon #4 2009 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad