miércoles, diciembre 29, 2004

Programación en Cocoa

Cocoa es uno de los frameworks que utiliza Mac OS X para desarrollar aplicaciones. Está implementado en Objective-C, una superconjunto de C con una serie de extensiones modeladas a partir de SmallTalk.

A partir de Cocoadevcentral pueden seguirse varios tutoriales para el desarrollo de aplicaciones en Mac OS X con el apoyo de este framework. Desde una FAQ no oficial sobre el entorno, pasando por la FAQ de Objective C, la libreria de referencia de Apple o Stepwise

Personalmente hasta que no consiga terminarme de leer el Building Cocoa Applications: A Step-by-Step Guide, poco podré ver los enlaces, por lo menos para tener una base donde empezar :)

lunes, diciembre 27, 2004

Azureus y Bittorrent

Ultimamente he estado mirando un poco la Red Bittorrent. Probando el cliente original escrito en Python. Quien quiera conocer algo más de esta red P2P puede consultar la página de documentación existente en el proyecto - con especificacines de protocolos, FAQ y otra documentación -.

Un cliente del que me habian hablado muy bien y que he probado en Mac OS X y Win32 es Azureus. Está escrito en Java y es multiplataforma. Llama la atención sus actualizaciones automáticas, la posibilidad de limitar el ancho de banda, funcionar relavamente bien detrás de un firewall donde no tiene todo los puertos abiertos, el uso de upnp.

La interfaz sin embargo me parece poco intutitiva, en especial a la hora de sacar las opciones en pestañas como si fuera el Firefox o Mozilla, así como las ventanas emergentes en plan Messenger que saca en la esquina derecha.

Tutorial de WiX

(via rido) Los ficheros .msi son un poco complicados de crear. Microsoft publicó hace poco una herramienta opensource, WiX que permite generar a partir de una entrada XML y de los diferentes componentes de nuestro proyecto, un fichero de instalación .msi para distribuir el software.

Pues bien, han colgado un tutorial para su uso bastante interesante :)

viernes, diciembre 24, 2004

Anecdotario informático

Ayer me ocurrio una de esas que te quedas a cuadro. Después de estar tres horas intentando hacer funcionar una cinta de backup Seagate Travan, acordandome del ntbackup, el almacenamiento extraible y otras monsergas, resulta que al desmontar la unidad de cinta, para ver que podía estar fallando, me doy cuenta que ha saltado la goma que arrastra la cinta. Una unidad altamente fiable .... :(

martes, diciembre 21, 2004

Active Scripting

Si hay alguien interesado en conectar sus programas con Active Scriping, (por ejemplo embeber VBScript o JScript), puede consultar este artículo de la MSDN que nos ayuda a integrar alguno de los lenguajes que dan soporte a Active Scripting en nuestra propia aplicación. Puede ser útil para implementar un sistema de macros, depuración u otra herramienta que nos interese.

domingo, diciembre 19, 2004

Reproducciendo música tracker en Mac OS X

Si teneis ganas de reproducir esos viejos ficheros de la época dorada de la DemoScene en vuestro Mac, mirad CodoModX un programa que apoyándose sobre MikMod reproduce un montón de formatos de tracker (.xm, .mod,.it..)

A disfrutar la musica de la World Of Commoodere o Agony de nuevo :)

viernes, diciembre 17, 2004

Agujeros de seguridad en Unix (por D. J. Bernstein)

(leido en Slashdot o la bitácora de fernand0). D. J. Bernstein (autor entre otras cosas del magnífico qmail) da un curso en la Universidad de Illinois sobre como localizar problemas de seguridad en Unix. Ha colgado en la web las presentaciones del curso, así como alumnos suyos han colgado alguno de los 44 fallos encontrados.

jueves, diciembre 16, 2004

GMANE

Ojeando los blogs de Sun he pillado una referencia a gname.org, un site web que se dedica a ser una pasarela entre listas de correo y NNTP, creando su propia jerarquía de news (distinta a la de Usenet), y que permite la lectura de dichas listas con software como gnus, FreeAgent o slrn.

Tienen un interesante listado de listas dedicadas a linux, redes o editores (otra guerra vim vs emacs ;) )

miércoles, diciembre 15, 2004

Una extraña del MSN Messenger y proxy socks

Estaba instalando el Messenger a unos equipos me he encontrado con un curioso problema al usar el proxy socks. Una vez instalado el programa y seleccionado el uso de proxy tipo socks (Herramientas->Opciones->Conexion).

Bajo esas circunstancias tenia un divertido (y críptico error 0x81000363). En principio, pensaba que era un error del servidor de socks, pero por curiosidad, lancé el ethereal para observar el problema, y se ve como correctamente la aplicación intenta comunicarse correctamente a través de socks.

Solo que efectua una comprobación de que versión del cliente existe e intenta bajarsela. Aquí empiezan los problemas. No sé exactamente porqué ocurre esa situación.

Parece ser que la instalación que efectué via runas no es lo más apropiado para el Messenger. Al instalarse con esa versión última - cuya url saqué de las trazas de red - no se produce ningún error de conexión.

Un fantasma interesante cuanto menos...

martes, diciembre 14, 2004

Conditional Forwarding en DNS

Me ha llamado la atención del servidor DNS de Windows 2003 de utilizar conditional forwarding, es decir, de mandar las peticiones DNS a un servidor DNS o a otro en función del nombre a resolver. Puede configurarse en la pestaña forwarders.

En bind puede implementarse con el uso de forward zones. A falta de experimentación podria hacerse con la opcion forwarders dentro de la zona que nos interesara.

lunes, diciembre 13, 2004

Ripeando DVD en Mac OS X

Leyendo esta noticia sobre la codificación de DVD en DivX para Mac OS, he encontrado algunos enlaces interesantes:
  • Shepmaster's DVD Ripping Tutorial. Lo que más me llama la atención de este tutorial es que no ripea los DVD a DivX, sino que lo hace a QuickTime, ganando soporte para multiples bandas sonoras o subtitulos. El codec que usa en este caso es 3ivx.
  • DVDBackup permite hacer copias de seguridad de tus DVD's al disco duro. Util si tienes un portatil y vas en un viaje largo :).
  • Handbrake es una aplicación que permite ripear directamente desde DVD o desde los direvtorios VIDEOS_TS extraidos de uno. Es de fuentes abiertas. El codec que usa es mpeg4.

sábado, diciembre 11, 2004

Algunos enlaces sacados de Apple Developer Connection

  • TCL/TK Aqua un port nativo para Mac OS X de lenguaje tcl (además del toolkit gráfico tk).
  • Estupendo artículo sobre técnicas de depuración en Mac OS X: qué variables pueden activarse, que funciones tienen los programas para dar soporte a la depuración, el uso del gdb para depurar...
  • Articulo para volcar la información de IPC que pasa por los puertos Mach. Solo para gente que quiera meterse muy a fondo dentro del kernel Mach que es OS X.
  • Las fuentes del sistema base (Darwin) de la última revisión de Mac OS X, la 10.3.6

miércoles, diciembre 08, 2004

Recuperando password de NT / Windows 2000

Supongamos que se ha perdido la password de administrador de un Windows NT o 2000. En principio, la consola de rescate no nos permite acceder a la instalación del sistema operativo sin esa clave. Siempre he pensado que eso es una tonteria, desde el momento en que puedes arrancar desde un CDROM, puedes arrancar cualquier sistema operativo, saltandose esa limitación.

De hecho, lo que hace Offile NTPassword & Registry editor no es más que arrancar un Linux donde se han incluido varios programas que permiten editar las ramas del registro de NT / 2000 donde se almacena la información de seguridad, permitiendo un sencillo reseteo de la password.

Interesante en el programa anterior es la posibilidad de edición del registro, de utilidad para detectar programas espia o reparar problemas.

martes, diciembre 07, 2004

Como hacer imágenes con Mac OS X

El otro día me surgió la necesidad de hacer una imagen iso de un DVD con Mac OS X. En Windows suelo usar el Nero y en Linux el readcd o un cat /dev/scd. Cuando iba a instalar a través de fink el port de cdrecord, se me ocurrió mirar la utilidad de Discos (Aplicaciones/Utilidades) que tiene una opción para crear imágines dmg.

Selecciónando la unidad en cuestión, y dandole a generar imagen ya tenia un .dmg con mi DVD. Posteriormente, la grabas y asunto concluido. Todo sin tener que irme a la linea de comandos :)

lunes, noviembre 29, 2004

Secure Client y el NAT

He estado teniendo algunos problemas con el uso del SecureRemote / SecureClient que utiliza Checkpoint para crear VPN. En principio, el protocolo que utiliza, ipsec no permite su uso en situaciones donde exista NAT. Sin embargo, hay trabajos en el IETF para permitir su uso en situaciones donde exista NAT. Dicha especificación es la NAT-T, RFC 3193 y draft-02 de dicha especificación. El cliente L2PT de Microsoft (actualizado) las soporta.

Checkpoint ha implementado para evitar las limitaciones del NAT dos mecanismos: el uso de encapsulación sobre UDP, es decir meter IPSEC dentro de UDP en vez de usar los tipos de protocolos IP 50 (ESP) e IP 51 (AH). Esto puede configurarse en el Firewall-1 sobre las opciones de la gateway en la parte de Remote Access, activando la opción Support NAT traversal mechachanish (UDP encapsulation), seleccionando un puerto para el mismo (por defecto 2746).

Si existen problemas de fragmentación en el intercambio de claves, puede activarse el soporte de IKE sobre TCP, en las propiedades globales del firewall.

Por último un par de enlaces sobre el tema:

jueves, noviembre 25, 2004

Algunas notas de estilo para programar en C

Ojeando osnews, hay un enlace a un artículo en DeveloperWorks (IBM) con un pequeño manual de buenas prácticas para programar en C.

Para ver otras referencias, se puede consultar la notación húngara - muy usada en los entornos de Microsoft - o los standar para el kernel de Linux, en cualquier fuente del kernel Documentation/CodingStyle, la cual pone a caer de un burro a la notación húngara :)

sábado, noviembre 20, 2004

Entrevistas en ACM Queue

Hay colgados varias entrevistas interesantes con personajes del mundo de la ingeniería informática. He llegado a ellas a través de una referencia a una entrevista a Mike Deliman, ingenierio responsable del sistema operativo que corren los rovers de la nada. Entre otras entrevistas: John Gosling (Sun), Wayne Rosing (Google) o Mario Mazzola (Cisco)

Algunos enlaces sobre LDAP

Llevo algún tiempo pensando en montar un servidor LDAP con OpenLDAP. Mi idea es almacenar en él las libretas de direcciones de los programas de correo que uso, fundamentalmente Microsoft Outlook Mail.app (la aplicación de Mail de Mac OS X) y mutt.

OpenLDAP me da el servicio de LDAP de forma segura y usando SSL - al menos Microsoft Outlook y Mail.app lo soportan sin problemas -

A continuación pongo una recopilación de enlaces con lo que estoy leyendo sobre el tema:

  • Tutorial en YoLinux sobre la instalación y configuración de OpenLDAP.
  • Introducción a LDAP en O'Reilly Network.
  • Script para exportar a formato .ldif la libreta de contactos del Outlook.
  • Construyendo una libreta de direcciones con ayuda de LDAP.

martes, noviembre 09, 2004

Componentes que no debe de usarse en IIS

Llevo un tiempo buscando un problema con un IIS que decidia colgarse cada dos o tres días, sin dejar rastro alguno. Lo peor es que no había una traza clara de la causa que lo producía. Los volcados que había recogido hasta entonces (con utilidades como adplus) no llegaban a nada claro.

Para poder buscar el fallo de manera más sencilla:

  • Desactiva el FailFast de COM. Con esto conseguimos que en caso de casque de un componente, la excepción sea atrapada por el debugger.
  • Aislar la web que falla. Esto hace que se ejecute como un proceso independiente al cual podemos conectarnos con el debugger.
  • Desactivar el Enable Debug Excepcion Caching en las propiedades del sitio del CMS.

Tras efectuar estos pasos, resulta que todo acaba en una violación general de protección, porque a una función, WaitForMultipleObjects, se está pasando handles inválidos. Hasta aquí no dice mucho. Sin embargo, si se observa una traza de pila y los módulos cargados por el IIS en dicho proceso, me encuentro con un viejo y problemático conocido: wininet.

Este módulo nunca debe de ser cargado por el IIS. Simplemente no está soportado. De ahí a llegar al módulo que lo estaba usando fue relativamente fácil, puesto que en las trazas de pela que tenía hacia referencia a un software que usaba: el proveedor de OLE DB para Sharepoint o Exchange, msdaipp, el cual se utiliza para acceder a funcionalidades Webdav.

lunes, octubre 18, 2004

Servicios de red en Windows

Hasta la versión de Windows 2003 los sistemas operativos de Microsoft han venido con multitud de servicios activados, alguno de los cuales no son muy conocidos, y con un historial de seguridad que ha dejado bastante que desear - en especial en aquellos servicios dependientes de de las RPC - . En la lista de full-disclosure he encontrado un estupendo artículo que habla de las interioridades de los servicios de Windows, una interesante lectura para comprender su funcionamiento.

lunes, octubre 11, 2004

Multimedia Research Institute

Mike Melanson mantiene una interesante página sobre multimedia: protocolos de red, formatos de audio y video, codecs. Tenemos de desde lo más más basico, siguiendo por los formatos de ficheros, quizás lo que a mi más me interesa. Llevo un tiempo pensando en desarrolalr una pequeña extension para la shell de Windows que me permita saber el CODEC de audio y video que hay dentro de un .avi o cualquier otro formato contenedor.

Collations en el SQL Server

Hoy me he encontrado contrado con un desagradable problema con un SQL Server 2000 y un Microsoft MSCMS. Al recuperar un backup de una base de datos con un collation determinado, en otro servidor que estaba instalado con uno diferente, el CMS ha dejado de funcionar al cambiar a la nueva base de datos, puesto que era incapaz de realizar comparaciones debido al cambio de collactions. Existe un artículo en la KB de Microsoft que habla sobre los problemas de transferencia de bases de datos.

martes, octubre 05, 2004

¿Es el directorio activo realmente distribuido?

Una de las ventajas que supuestamente tenía el directorio activo - implementado a partir de Windows 2000 - es que es un servicio distribuido, y que la falla de uno de los controladores de dominio que lo apoyan, harían que el resto de los controladores asumieran el rol de aquel que ha fallado.

Sin embargo esto no es así: existe una serie de roles que están soportados por un único controlador de dominio, a saber, schema master, domain name master, pdc emulator, rid master y infraestructure master. Estos roles no se traspasan automáticamente a otro controlador cuando el aquel que lo tenía falla por cualquier circunstancia.

En los diferentes libros y cursos de Microsoft sobre el directorio activo hacen una advertencia: Tener a mano la diferentes utilidades que permiten una recuperación del directorio activo...

jueves, septiembre 23, 2004

exec.library

Aunque nunca tuve un Amiga, siempre me ha llamado bastante la atención. En especial el core de su sistema operativo, conocido como exec.library. Buscando un poco por Internet he pescado este artículo publicado en la Byte Magazine de 1991 que habla de la estructuras internas de la exec.library, fundamentalmente una serie de rutinas de manejo de listas, sobre la cual se van construyendo, las diferentes estructuras del sistema. Hace algún tiempo encontré el PDF uno de los Rom Kernel Manual del Amiga, y leí algo sobre el core del sistema, y a pesar de haber pasado 20 años, creo que merece la pena de volver a mirar a esos ordenadores y a algunas de sus ideas.

viernes, septiembre 17, 2004

Algunos enlaces de Party's

He asistido a varias lan partys, pero nunca he ido a una que se centre en el mundo de las demos. Ojeando esta tarde Codepixel me he enterado que una de las mayores lan partys (sino la mayor) del mundo vuelve a la carga. Se trata de The Party, que se celebrará del 27 al 29 de Diciembre en Aars (Dinamarca). Ojeando un rato Codepixel he encontrado enlaces a otras partys que se han celebrado este año: The Gathering 2004 o Assembly'04. Otros enlaces a sitios de demos desde Scene.org o en español en Escena

jueves, septiembre 09, 2004

Algunos trucos para el Windows XP SP2

En O'Reilly Net hay un artículo de Mitch Tulloch hablando de los posibles problemas que se puede encontrar a la hora de aplicar el SP2 a Windows XP. Añade una serie de enlaces a las páginas soporte de Microsoft, interesantes de leer antes de instalar el Service Pack en nuestros PC's.

jueves, agosto 26, 2004

Dumbug

Dumbug es un debugger de fuentes abiertas para Win32. Apoyandose en él, la gente de Phenoelit ha escrito un ltrace para Windows (el ltrace de Unix), una utilidad que permite averiguar las diferentes llamadas que hace un ejecutable a funciones localizadas en librerias dinámicas (DLL's). De utilidad para depurar binarios y estudiar el comportamiento del sistemas.

martes, agosto 24, 2004

VPN-1 (Firewall-1 NG): Algunas notas de problemas

Me he encontrado con algunos problemas de configuración en el Firewall-1 que administro. Los detallo aquí por si a alguien le sirven de ayuda. Para empezar, cuando nos instalaron el Firewall (Un Nokia IP330, con el Checkpoint NG R55 AI), no configuraron en los módulos las VPN. Al configurar la VPN en los módulos, la primera sorpresa que me llevo es que es incapaz de generar los certificados que necesita par funcionar. La autoridad interna de certificación (ICA) no funcionaba bien, parece ser que porque cuando se generó no tenía un nonbre FQDN. Conectado al los fires, tocó resetearla (fw sic_reset). Esto hizo que se perdieran las relaciones de confianza con los otros módulos del firewall, y que hubiese que restablecerla.
El segundo problema que me encontré fue la topología y la activación del antispoofing. Al no tener definida que patas eran externas o internas, cuando usaba el SecureClient para conectarme no escogia adecuadamente la IP con la cual tenía que negociar el IPSEC (vamos, una traza de tcpdump mostraba que se estaba conectando a la IP interna). Por otro lado, el antispoofing me dio problemas (tanto como que perdí la conexión con los módulos desde con la management). Al final tuve que optar, dado el particular direccionamiento que tengo por desactivarlo y hacer el antispoofing en los routers de borde, asegurandome que no salen IP's de la LAN y que no entran IP's RFC 1918.
Por otra parte, el SecureClient / SecureRemote tiene una particularidad divertidad: el Office Mode no está soportado por el SecureRemote, y estuve dando vueltas al asunto un rato hasta que descubrí en las páginas de soporte de Checkpoint esa diferencia.
Tendré que leer más documentación. De momento, he encargado el libro Essential Check Point FireWall-1 NG (la primera edicción dedicada a la versión 4.x me encantó).

martes, agosto 17, 2004

Como crear un CD de arranque de Windows XP actualizado

Con el service pack 2 de XP recien salido, es interesante preparar una versión actualizada de la instalación de XP con el service pack incluido. Un ejemplo de como hacerlo puede encontrarse en este pequeño artículo. Para buscar más información sobre este tipo de procesos, en el centro de soporte de Microsoft puede buscarse por slipstreaming, saliendo varios artículos sobre el tema.

lunes, agosto 09, 2004

Xcode 1.5

(via MacSlash) Apple acaba de publicar la nueva versión de su entorno de desarrollo, Xcode. Entre otras mejoras: velocidad, soporte para depurado remoto, soporte para subversion, gcc 3.3 optimizado,...

domingo, agosto 08, 2004

Windows XP SP2

El tan esperado Service Pack 2 d Windows XP está ya en puertas. El que tenga acceso a las subcripciones de la MSDN, ya está los discos con Windows XP SP2. En esta entrada de los blogs de Microsoft puede verse con algún detalle las fechas de salida del service pack. Lo interesante será saber como afectan los cambios introducidos a la compatibilidad de los programas.

jueves, agosto 05, 2004

Captive

Esta estupenda estupenda utilidad permite usar el ntfs.sys y ntoskrnl.exe de un sistema Windows para poder leer y escribir sistema de ficheros NTFS en Linux. Esta utilidad se ha incluido en diversos CDROM de rescate que usan Linux, permitiendo un acceso de escritura al sistema de ficheros, que está muy verde en el driver actual del kernel.

miércoles, agosto 04, 2004

Ginspect

Esta pequeña utilidad en PHP permite generar filtros para el tcpdump y en INSPECT, el lenguaje que usa el Checkpoint Firewall 1 (puede usarse con la ayuda de fw monitor. Tenemos un pequeño howto que sirve de guia para el uso. Por último, el enlace desde donde se puede bajar.

lunes, agosto 02, 2004

Implementacion de excepciones C++ en Visual Studio

En este magnífico artículo de CodeProject se explica al detalle las excepciones C++ del Visual Studio. Desde la implementacion,apoyandose sobre el manejo de excepciones estructuradas de Windows (SEH).
Desde la explicación de los marcos de pila, el manejo de las excepiones, como se identifica los bloques try{..},catch{...}...

viernes, julio 30, 2004

Fedora Legacy Project

Este proyecto busca dar soporte a las distribuciones Redhat que el fabricante no soporta porque han alcanzado su ciclo de vida. Soporta varias herramientas para actulizaciones automáticas como apt o yum, existiendo una buena colección de réplicas a lo largo del mundo.

lunes, julio 26, 2004

Spotlight

Esta es la nueva tecnología de búsqueda que implementará la próxima versión de Mac OS X, Tiger. La idea es integrar en la búsqueda los metadatos que tienen los diferentes ficheros que están grabados en el ordanador. Uno de los desarrolladores es Dominic Giampaolo, el padre del BeFS, y autor del libro Practical Filesystem Design

Seguridad en Mac OS X

(via Slashdot). Han publicado la gente de Net Security una referencia a un documento para comprobar la seguridad de Mac OS X.

jueves, julio 22, 2004

Depurando en Windows (II): Los símbolos

Normalmente, si somos los que hemos realizado la aplicación, dispondremos de los ficheros de símbolos generados por el compilador que usemos. ¿Pero que pasa si se produce un error dentro una libreria de Windows?. En ese caso, podemos usar los simbolos del sistema operativo para poder depurar - aproximadamente - dentro del API. Además, siempre es una manera interesante de comprender el funcionamiento de las tripas de Windows. Sin embargo, los paquetes de símbolos del enlace anterior, tienen un problema: solo están disponibles con los Service Pack: ¿qué pasa si hemos instalados hotfixes - inevitable en Windows - en el sistema?. En ese caso, puede que sea necesario actualizar los símbolos desde el servidor de descarga de Microsoft, tal como se comenta en este artículo de la KB de Microsoft.

El programa que se encarga de esto es symchk, incluido con las Debugging tools para Windows.Nos permite recorrernos todas las librerias y ejecutables del sistema y bajarnos a un repositorio local los símbolos que estén disponibles.

Por ejemplo, si queremos bajar todos los símbolos de ejecutables y librerias que estén bajo C:\WINNT\SYSTEM32 al directorio C:\symbols:

symchk /r c:\WINNT\system32\ /s SRV*C:\symbols*http://ms crosoft.com/download/symbols

Es más cómodo sin embargo, bajarse antes todo el conjunto de símbolos pertenecientes a la versión del sistema y service pack que se vaya a depurar, por ahorrar ancho de banda.

lunes, julio 19, 2004

Port del sistema de paquetes de Gentoo a Mac OS X<

(via Slashdot) La gente de gentoo ha portado su sistema de paquetes a Mac OS X, uniendose así a fink como posibilidad de usar una gran cantidad de software de fuentes abiertas en Mac OS X, y poniendo a disposición de Mac OS todo ell árbol de fuentes disponible para gentoo.

WEBSTRETCH

Webstretch es una pequeña utilidad escrita en Java para controlar toda la comunicación de un proxy con un servidor remoto. Permite modificar las caracteristicas de la misma. Al estar escrito en Java, es multiplataforma, pudiendose usar en el sistema operativo que más nos convenga

martes, julio 13, 2004

Herramientas de depuración de Windows (I)

Una de las herramientas que pone gratuitamente Microsoft a los desarrolladores, son las Debugging Tools: una colección de depuradores (debuggers) para localizar fallos en las aplicaciones o en el mismo núcleo del sistema operativo. Existe un directorio de enlaces a documentos de como empezar a usar estas herramientas. Otro depurador con el cual puede completarse estas tareas, llamado OllyDbg.

jueves, julio 08, 2004

Criaturas de silicio

Todos hemos oido hablar de los pequeños huevos de pascua que tienen algunos programas - ejemplo el famoso pinball que traía el Excel -. Bien, pues hay gente que se dedica a garabatear sus dibujos en los chips. No tiene desperdicio darse una vuelta por Molecular Expressions y mirar un poco el zoo que pueblan los chips de MIPS, HP o IBM.

Browser Helper Objects (BHO)

Los BHO son extensiones que pueden añadirse al Internet Explorer. Usados para crear barras de herramientas, modificar el comportamiento del IE, etc, tienen otro uso más oscuro: aprovechando ciertas vulnerabilidades del IE - inyectar código en la zona local desde Internet - hay algunos BHO que se instalan, y se dedican a espiar las conexiones HTTPS hacia ciertos bancos, recogiendo números de tarjetas, o claves causando un grave problema de seguridad.

Invesitango algo del tema por Internet, he dado con una lista de los BHO que nos podemos encontrar en el sistema. Interesante, puesto que a través del GUID de los mismos, puede localizarse las DLL asociadas y lo que se (supone) que hacen.

martes, junio 29, 2004

Linux kmalloc internals

Acabo de pescar un pequeño documento sobre la implementación de kmalloc en Linux: esta es la función encargada de reservar memoria en el núcleo. Hay otros documentos interesantes en la página del autor.

Mac OS X 10.4 "Tiger"

Apple acaba de presentar en la WWDC la nueva versión de Mac OS X. Alguna de las novedades: integración de RSS en Safari, búsqueda de información almacenada en el ordenador, xcode 2.0, iChat con soporte para Jabber, características de accesibilidad.

martes, junio 22, 2004

Mayday: Arquitectura distribuida de filtrado para servicios de Internet

Leyendo un poco sobre redes overlay, he acabado en un artículo de David G. Andersen, donde habla de combinar este tipo de redes con sistemas de autentificación ligeros (como puede ser ciertos atributos de un paquete IP - puerto, dirección destino, dirección origen ), para crear una red resistente a ataques de denegación de servicios (DOS).

jueves, junio 17, 2004

Replicar el directorio activo con firewalls por medio

He tenido que enfrentarme un par de veces a este problema. Hace algún tiempo me pasaron una referencia sobre el tema que me ha sido bastante útil. Resumiendo. El directorio activo necesita que se comuniquen:
  • RPC endpoint mapper 135/tcp, 135/udp
  • NetBIOS name service 137/tcp, 137/udp
  • NetBIOS datagram service 138/udp
  • NetBIOS session service 139/tcp
  • RPC dynamic assignment 1024-65535/tcp
  • SMB over IP (Microsoft-DS) 445/tcp, 445/udp
  • LDAP 389/tcp
  • LDAP over SSL 636/tcp
  • Global catalog LDAP 3268/tcp
  • Global catalog LDAP over SSL 3269/tcp
  • Kerberos 88/tcp, 88/udp
  • DNS 53/tcp, 53/udp
  • WINS resolution (opcional) 1512/tcp, 1512/udp
  • WINS replication (opcional) 42/tcp, 42/udp
  • Network time protocol (NTP) 123/udp
Lo más problemático es que las RPC usan puertos dinámicos. En estas condiciones, habría que dejar el firewall abierto practicamente a todo el tráfico. Sin embargo, el puerto usado para RPC con el controlador de dominio, puede fijarse, como comentan el artículo con la clave de registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Tcp/IP Port

(un valor DWORD especificando el puerto)

Otra solución que propone el artículo es configurar IPSEC o PPTP. Lo cual, puede dar quebraderos de cabeza con si existe NAT (network address traslation) por medio.

sábado, junio 12, 2004

La moda de los weblogs

Sun se apunta a la moda de los Weblogs. Habrá que mirar la parte de Solaris con tranquilidad :).

miércoles, junio 09, 2004

Vulnerabilidades en 802.11

Algunas vulnerabilidades de la familia de protocolos 802.11, centradas en la denegación de servicio: Hablando algo del tema, la norma 802.11 para los interesados.

jueves, junio 03, 2004

Integrar Xgrid y Cocoa

Xgrid es una tecnología de Apple que permite la creación de clústeres ad hoc, aprovechando los recursos libres de ordenadores. En el Mac Developer Center de O'Reilly hay un par de artículos para integrar esta tecnología con Cocoa, uno de los entornos de programación que tiene Mac OS X. El primero es una introducción a XGrid: instalación, uso, ejemplos con la linea de comandos, mientras que el segundo tiene el código de un ejemplo.

martes, junio 01, 2004

Bletchley Park

Una de las claves para la victoria aliada durante la 2º Guerra Mundial fue la rotura de los sistemas criptográficos alemanes y japoneses. En Bletchley Park se concetró los científicos que consiguieron romper Enigma y otros códigos. Allí se construyó Colossus el primer ordenador electrónico - con válvulas de vacio - que ayudó a romper códigos a tiempo - la máquina enigma podía complicarse añadiendo rotores a la misma -.

domingo, mayo 30, 2004

Alternaticas a autoconf

Hace poco encontré un pequeño artículo sobre alternativas autoconf. Con el paso del tiempo me he convencido que su uso es anticuado. Que sea una estandar en los paquetes de software libre, no creo que lo hagan cómodo o rápido: perder el tiempo comprobando si existe o no stdlib.h, stdio.h o cualquiera de las cabeceras y librerias de POSIX, es tener un entorno tan poco estandar de desarrollo como raro.

Además, muchos de los ficheros de configuración generados no comprueban la existencia de varias versiones de productos (por ejemplo hace poco compilando un paquete de SNMP para Python me di cuenta que si tenias dos versiones de Python, te detecta la primera y no la segunda, sin ningún tipo de parámetro extra para indicar que versión quieres usar).

miércoles, mayo 26, 2004

RFC 1918 y los servidores de nombres raiz (root name server)

Leyendo full-disclosure he encontrado un dato curiosisimo: más del 30% de las queries que llegan a los servidores de nombres raíz proceden de direcciones reservadas para redes privadas (ver RFC1918), caunsando un problema de carga en la infraestructura de red. Todo el que tenga una red con estos rangos de direcciones y que acceda a Internet a través de una traducción de direccions (del inglés NAT, Network Addresss Traslation), debería asegurarse que ninguna dirección del rango privado sale sin traducir. Una simple ACL en los routers, quitaría de muchos problemas.

Perl hash howto

Acabo de encontrar este tutorial sobre el uso de hash en Perl (realmente prefiero python como lenguaje de script, pero de momento, nada puede compararse con la cantidad de módulos de perl que existen en CPAN)

martes, mayo 25, 2004

Tablas SNMP

Una de las cosas más curiosas que tiene el SNMP es como obtener la información de las MIB - management information base - que hace referencia a las tablas. La información de las mismas se obtiene en orden columna fila, frente al orden lexicográfico al que estamos acostumbrados de los identificadores. Aunque realmente si devuelve el orden lexicográfico de los oid, identificadores de objectos
14
25
36
Para más información, la sección 25.6 del maravilloso TCP/IP Illustrated Volumen 1

sábado, mayo 22, 2004

Pequeñas utilidades: read-edid

Durante mucho tiempo configurara las XFree86 en Linux, ha sido una tarea bastante laboriosa, en especial si no se tenia a mano las especificaciones exactas del monitor, en especial con monitores clónicos que no aparecian en las listas de configuración de las distribuciones Linux. A partir del año 1996, la mayoría de los monitores y tarjetas empezaron a soportar PnP, para una mejor autoconfiguración. Sin embargo, a pesar de que la versión 4.x de las XFree86 puede leer en ciertas tarjetas de video esta información, no siempre es posible. Por eso John Fremlin escribió read-edid, un programa para poder obtener toda esa información y que vuelcalas líneas necesarias para configurar el monitor. Gracias al mismo, pude conseguiir el modeline para mi Presario X1005AE.

jueves, mayo 20, 2004

Como obtener una copia completa del IE6SP1 en Windows 2000

Microsoft capó el instalador del Internet Explorer 6SP1 en Windows 2000 para que no pudiese bajarse toda la instalación, lo cual causa algún que otro dolor de cabeza. Hay una manera muy sencilla de poder hacer el cambio:
  • Bajarse el fichero de instalación del Internet Explorer 6SP1, ie6setup.exe
  • Descomprimirlo, con ie6setup.exe /c. Preguntará una carperta donde pondrá los ficheros que extrae.
  • Ejecutar el fichero ie6wzd.exe /d:1. Eso bajará todos los componentes del Explorer para todas las plataformas que soporta.
  • Copiar el fichero ie6setup.exe a la carpeta donde nos hayamos bajado los ficheros del explorer.
Ya tenemos todo lo necesario para ir instalando el Internet Explorer en varios ordenadores y ahorrando ancho de banda.

miércoles, mayo 19, 2004

Cuando los retornos de carro son un problema

En MSDOS las líneas de texto están delimitadas por los caracteres ASCII 10(LF) 13(CR). En Unix se usa CR. Esto crea un curioso problema cuando generas un fichero en MSDOS y quieres usarlo en una aplicación en Unix. Hace poco me enfrenté con este problema al instalar un jboss en Unix y desplegar un fichero .war de aplicación realizado en Windows. El resultado es que no se enteraba excesivamente bien del final de línea en el Unix, con los consiguientes problemas.

sábado, mayo 15, 2004

Gusano Dabber

dabber no sería más que otros de los gusanos que pueblan Internet, sino fuera porque utiliza una vulnerabilidad en el sasser para propagarse - concretamente un buffer overflow en el servidor ftp que lleva - . Que se empiece a tener noticias de la propagación de Dabber da una idea de los millones de máquinas infectados con Sasser. No deja de ser curioso que los escritores de virus empiecen a tener por objetivos estos troyanos. Me pregunto si en el futuro tendremos virus que actúan como vacunas contra otros virus.

viernes, mayo 14, 2004

Permisos en Unix

He escrito un pequeño documento explicando como son los permisos en un sistema de ficheros tipo Unix. Se aceptan sugerencias :)

miércoles, mayo 12, 2004

Practical File System Design with the Be File System

Dominic Giampaolo ha publicado en formato PDF su libro sobre diseño de sistemas de ficheros. Existe una reseña del mismo en Slashdot. Algunas de las características interesantes que tiene el BeFS son metadatos arbitrarios, índices, y consultas por atributos.

viernes, mayo 07, 2004

ASP, vbscript y control de errores

El control de errores en vbscript es sencillamente horroroso. Puedes deshabilitarlo usando la instrucción on error resume next, y comprobar si se ha producido algún error a través de Err.Number, siendo distinto de cero en caso de error. Puede activarse el control de errores de nuevo con on error goto 0. Incluso el on error goto linea de los antiguos BASIC, da más control del que ofrece vbscript. Si encima has usado lenguajes como Python con un estupendo control de errores a través de excepciones, ya es para volverse loco. Y dudo mucho que Microsoft quiera variar esto, en especial cuando está promocionando la plataforma .NET Algunos ejemplos del código espagueti que se genera: on error resume next file.WriteLine("...") if Err.Number=0 then file.WriteLine("...") end if if Err.Number=0 then file.WriteLie("...") end if on error goto 0

miércoles, mayo 05, 2004

Pequeño artículo sobre WiX

WiX es un software para generar paquetes de instalación de Microsoft. En la web de O'Reilly hay un artículo mostrando su uso a través de un pequeño ejemplo.

martes, mayo 04, 2004

iTunes 4.5

Aunque todavía no he probado a fondo la última versión de iTunes, hay algo que si he notado: la velocidad de carga es muy superior a la de la versión anterior. Sólo por eso, merece la pena actualizarse. Eso sí, con ciertos cambios en el esquema DRM que no le gustan a todo el mundo.

jueves, abril 29, 2004

Ollydbg (I)

Leyendo la lista de vulv-dev de Security Focus he dado con varios post que hacen referencia a Ollydbg, un desemsablador para Windows. De su página web destacan las siguientes propiedades (traducción directa):
  • Interfaz de usuario intuitivo, sin comándos crípticos.
  • Análisis de código - reconoce procedimientos, bucles, llamadas al API, tablas, constantes, cadenas, ...
  • Búsqueda en ficheros objeto - Localiza rutinas en ficheros objeto y librerias -.
  • Permite la definición por parte del usuario de etiquetas, comentarios y descripciones de las funciones.
  • Entiende las información de depuración de Borland.
  • Permite salvar parches entre sesiones, escribiendo en el ejecutable y actualizacndo la información de relocalización.
  • Arquitectura abierta - permite completmetos desarrollados por terceros.
  • Sin instalación. No toca el registro ni los directorios del sistema.
Y mucho más, según puede verse en su página web.

martes, abril 27, 2004

Varios enlaces de Latex

Ojeando una noticia de Slashdot, sobre información para usar Latex - un sistema especialmente adecuado para la preparación de documentos científicos y matemáticos -, he recopilado algunos enlaces de interés:

lunes, abril 26, 2004

Vulnerabilidades TCP(II)

Siguiendo con el fallo de TCP, se publicado el documento completo de los problemas del TCP con el flag RST y el tamaño de ventana. La osvd, tiene un completa referencia a de la vulnerabilidad.

sábado, abril 24, 2004

COM en Mac OS X

COM (Component Object Model) es una tecnología de componentes desarrollada por Microsoft. Esa tecnología puede encontrarse también en Max OS X, implementado como parte del Core Foundation Framework. En el MacDevCenter de O'Reilly, el artículo citado antes presenta una interesante introducción a su uso, así como algunos ejemplos.

miércoles, abril 21, 2004

Vulnerabilidades TCP

Durante bastante tiempo se ha sabido que el TCP es vulnerable a un ataque de denegación de servicio que permite terminar las conexiones TCP de manera prematura. Dicho ataque consiste en mandar segmentos TCP con los flags SYN o RST a una máquina, haciendose pasar por la máquina real que debe de mandar el flujo TCP. Esto se debe a la facilidad de falsificar la dirección en el paquete IP y el puerto del segmento TCP. Para que este tipo de ataques tenga éxito el emisor del paquete falso debe de ser capaz de averiguar el número de secuencia del paquete TCP que espera la máquina objeto del ataque. Este es un número de 32 bits, con lo cual, en principio la posibilidad de dar con el ataque es 1/2^32. Sin embargo acaba de publicarse un aviso donde se hace referencia a un artículo de Paul A. Watson publicado en la CansecWest titulado Slipping In The Window: TCP Reset Attacks, donde comenta que la probabilidad de acertar con un número de secuencia elevado es mucho más de 1/2^32, debido a que la implementación realmente acepta una ventana de valores. Las conexiones TCP que duren mucho, por ejemplo las usadas en BGP, pueden verse afectados por este problema. Un ataque a los protocolos BGP, compromete el rutado entre los diferentes sistemas autónomos que forman Internet y puede dar lugar a un ataque de denegación de servicios a escala mundial.

martes, abril 20, 2004

libstdc++, gcc y compatibilidad binaria

Una de las peoreos cosas que te puede pasar en un Linux es un problema con el ABI (Aplication Binary Interface) y el C++. En el desarrollo del gcc se suelen producir cambios en el ABI de C++, que dan lugar a incompatibilidades en función de la versión del compilador que estés usando. Estas incompatibilades se tralaslanda a las librerias dinámicas creadas por estos compiladores y contra las cuales se enlazan los ejecutables, en especial porque el compilador de C++ se apoya en libstdc++ para implementar la libreria estandar de C++ - y normalmente, las versiones de esta libreria no ofrecen compatibilidad binaria. Un ejemplo: MapXtreme 4.7 y Suse 9.0 . El instalador de este programa - puro java - tiene un jre (java runtime enviroment) compilado con el gcc-2.9x. El compilador de C++ usa la libreria dinámica libstdc++v2 para implementar las funciones de la libreria estándar. Sin embargo, Suse 9.0 tiene el gcc-3.0 y usa la libstdc++v3, la cual no es compatible binario con la anterior. La solución es utilizar una libreria de una versión anterior de Redhat o Suse, compilada con dicho compilador, lo cual no deja de ser un malabarismo para salir del paso.

domingo, abril 18, 2004

Comparando binarios con isomorfimos gráficos

Todd Sabbin ha publicado un artículo sobre la comparación de ficheros binarios. Sus utilidades pueden ser varias, quizás la más creativa sea usarla en binarios de un Service Pack o Hotfix de software sin fuentes para ver que parte del binario ha cambiado y así sacar la vulnerabilidad.

Visual C++ Toolkit 2003

Microsoft se apunta a la moda (abierta por Borland hace unos años) de proporcionar de manera gratuita la versión en linea de comandos de los compiladores de sus entornos de desarrollo. En este caso concreto viene incluido con las librerias estándar de C así como las STL. Puede usarse sin problemas junto al SDK de Windows y generar código preparado para correr en el CLR. Parece ser que no hay excesivas restricciones en cuanto su uso, pero habrá que leer la EULA para asegurarse.

miércoles, abril 14, 2004

daapd

DAAP - digital audio access protocol - es el protocolo de red usado por iTunes. Hay gente que ha programado un daemon que lo implementa, lo cual permite montar un servidor en casa que nos sirva streaming hacia el iTunes. Dicho daemon, daapd junto con la implementación opensource de Rendezvous permite montar un servidor de streaming hacia iTunes en un Linux (o sistema Unix).

Parches de Seguridad de Microsoft 14/04/2004

Microsoft acaba de publicar un boletín con referencia a 4 parches de seguridad para toda la familia Windows 2000 / XP / 2003. Aunque sean sólo 4 parches, merece la pena leer la cantidad de fallos que corrigen, en especial el trabajo de auditoria llevado a cabo por la gente de eEye. Mencionar que la mayoría de estos fallos son remotos, lo cual hace pensar que no tardará mucho en aparece nuevos gusanos que las aprovechen.

miércoles, abril 07, 2004

rsync (I)

rsync es una de esas utilidades que sabes que existen, pero que nunca se te ocurren usar para facilitar el trabajo de administrar sistemas. Su principal virtud es que permite realizar copias incrementales con gran facilidad. Entre algunos usos:
  • Creación de espejos.
  • Distribuir ficheros en varias máquinas desde un repositorio central.
  • Realizar copias de seguridad completas e incrementales.
Hay varios servidores de FTP, que ofrecen el servicio rsync, facilitando la labor de montener espejos locales con los ficheros que interesan (por ejemplo ftp.funet.fi o ftp.sunet.se ofrecen dicho servicio) Si se quiere obtener todos los módulos de un servidor rsync, al cual se tiene acceso anónimo puede usarse: rsync -n server::, por ejemplo rsync -n ftp.sunet.se:: nos dará todos los módulos a los cuales se tiene acceso. Para hacer una copia local de un módulo, ejemplo, pub/aminet puede usarse rsync --arv --delete ftp.sunet.se:pub/aminet/ . (ojo con el "/" al final del directorio, es obligatorio para que haga el espejo correctamente. Ejecutando cada cierto tiempo esta orden tendremos un espejo actualizado de los directorios pub/aminet

lunes, abril 05, 2004

WiX Windows Installer XML

La gente de Microsoft acaba de publicar WiX, software que permite la creación de paquetes .msi y .msn (paquetes de instalación de Windows). El código fuente está disponible bajo licencia Common Public License.

OSVDB: Base de datos de vulnerabilidades

OSVDB es una base de datos de vulnerabilidades, creada por voluntarios, que busca tener una información actualizada de todos los problemas de seguridad. Dispone de sindicación vía rss, facilidades de búsqueda en función de tipo de vulnerabilidad, producto, versión, etc

sábado, abril 03, 2004

Como generar un compilador cruzado en un momento<

Bajarse las binutils, gcc y gdb en las versiones que se quieran. En el ejemplo se usan la 2.14 de las binutils, la 3.3.2 del gcc y la 5.3 del gdb. Si queremos que el compilador genere código para h8/300, se instale en /usr/local/h8 y sólo se necesita el compilador de C: bzcat binutils-2.14.tar.bz2 | tar xvf - cd binutils-2.14 ./configure --prefix=/usr/local/h8 --disable-nls --target=h8300-hms make make install export PATH=$PATH:/usr/local/h8/bin gunzip -c gcc-3.3.2.tar.gz | tar xvf - cd gcc-3.3.2 ./configure --prefix=/usr/local/h8 --disable-nls --target=h8300-hms --enable-languages="c" make make install gunzip -c gdb-5.3.tar.gz cd gdb-5.3 ./configure --prefix=/usr/local/h8 --disable-nls --target=h8300-hms make make install Una explicación más detallada en este documento. Este procedimiento puede usarse en Linux o con el entorno cygwin

viernes, abril 02, 2004

Sincronizando los favoritos de los navegadores

Cuando se trabaja con varios ordenadores - casa, oficina, portatil - y varios sistemas operativos - Mac OS X, Linux, Windows -, se produce un pequeño lio a la hora de tener los enlaces favoritos sincronizados. Y lo peor es que ir con el fichero .html a cuestas no es la situación ideal. No existe ninguna manera estándar de almacenar los favoritos de un navegador, que sean fácilmente exportables a otro, y en el mundo descentralizado de redes que se vive hoy en día, tenerlos en algún servidor y que el navegador sea capaz de bajarlos y sincronizarlos sin problemas. Algo parecido a lo que se puede lograr con IMAP en el mundo de email. Existen algunas soluciones como mod_roaming (Sólo disponible para Netscape) o diversas utilidades como bookie (pero sólo para Mozilla) o syncbkmk (pero sólo sincroniza localmente favoritos de Internet Explorer y Mozilla, o los servicios .Mac que ofrece Apple (restringido a Mac OS). Ninguna aporta:
  • Independencia de localización: Los favoritos deberían residir en un servidor accesible de manera segura en Internet.
  • Independencia de navegador: Debería ser usable con cualquier navegador.
  • Posibilidad de trabajar en modo desconectado.

miércoles, marzo 31, 2004

Xgrid: segunda ronda

Apple acaba de presentar la segunda preview de la tecnología Xgrid: una implementación simple de clusters sin necesidad de complicados conocimientos para poder usarla. Un ejemplo de puede ser este cluster usando Povray para renderizar de manera distribuida. Un detalle de la arquitectura puede encontrarse aqui. Existe un cliente que le pasará el trabajo a un controlador el cual se encargará de distribuirlo entre los diferentes ordenadores que comparten micro con sus tareas o bien que están dedicados a tiempo completo. Esto permite aprovechar las capacidades de micro sobrantes en la red. Una implementación chula de Xgrid sería su uso para ripear DivX :) La noticia original en Slashdot, de los comentarios de la misma, algunos enlaces:

martes, marzo 30, 2004

Generando librerías dinámicas

Ulrich Drepper (mantenedor de la glibc en Linux) ha escrito un documento de como escribir librerias dinámicas ELF.

Algunos problemas de generación de compiladores cruzados con el gcc

He estado generando un compilador cruzado sobre Windows XP, usando como compilador nativo el Mingw y el entorno msys. La arquitectura destino era el Hitachy H8 H8/300. Las binutils (ensamblador, linker, etc) compilan sin problemas bajo este entorno. Hay problemas con el gcc. Cuando se genera un compilador cruzado, en principio el gcc necesita la existancia de una pequeña implementación de la libc para poder compilar la libgcc. Sin embargo, puede evitarse los errores anulando el código de alguna de las funciones. Por otra parte, el fixincludes y collect2 no compilan bajo MinGW32 por la ausencia de ciertas funciones POSIX en el entorno (fork, signal, pipe, ...)

domingo, marzo 28, 2004

Chaos: Usos imaginativos de un cluster Mosix

OpenMosix es una extensióndel kernel de Linux que permite realizar clusters con una solo imagen corriendo. La gente de Chaos se han currado un LiveCD que puede usarse para crear un cluster de máquinas especializadas en correr el John The Ripper, un cracker de password. La situación es sencilla. ¿Uso de las 20 máquinas de la oficina a partir de las 10 de la noche?. Es más, es capaz de arrancar a través de red en máquinas que soporten PXE en la BIOS. Quien quiera jugar con ella que la baje Interesante otra distribución igual, pero para ripear DVD a DivX. Habrá que buscarla.

sábado, marzo 27, 2004

Bienvenidos

Este weblog voy a contar mis aventuras como administrador de sistemas y programador. Encontrarás refencias a software que uso, problemas con Windows 2000, Linux y Mac OS X, documentos que he escrito, etc.