Comparte lo que sepas, aprende lo que no conozcas

Durante la pasada October .NET Conference de Málaga llegó a mis manos un librito confeccionado por varios miembros de Solid Quality Mentors (anteriormente Solid Quality Learning) sobradamente conocidos en el mundillo que rodea a las tecnologías Microsoft. El libro expone algunos de los temas tratados en el SQLU Summit 2007 que se celebró en Madrid a mediados del pasado mes de junio. Aquí se puede descargar el índice en formato PDF.

Se ve que el libro está escrito por gente que domina las cuestiones abordadas, aunque tengo que admitir que me resulta ajena buena parte de su contenido: SQL Server 2005, inteligencia de negocio (BI), SharePoint Server 2007… Quizá por este motivo lo que más me gusta es el título. (Leo en el blog de Fernando Guerrero, posible acuñador de la frase, una variación: Comparte lo que sepas y sigue aprendiendo permanentemente.) Este lema encaja perfectamente con la esencia de toda comunidad técnica y, en particular, con la forma de ser de las personas que se reconocen como parte de ella: la búsqueda y la difusión del conocimiento.

Extracción del contenido de un archivo CHM (ayuda basada en HTML)

Si alguien ha pensado alguna vez que los archivos CHM están protegidos de algún modo contra «ingeniería inversa» o «descompilación» está completamente equivocado. Extraer su contenido resulta muy sencillo.

Curiosamente, es el propio motor de ayuda HTML de Windows el que proporciona esta funcionalidad. No hay más que ejecutar lo siguiente en una línea de comandos:

hh -decompile <carpeta> <archivo CHM>

Donde <carpeta> es la carpeta de destino y <archivo CHM> especifica la ruta del archivo CHM a «descompilar». Podremos tratar los ficheros extraídos como queramos, pudiendo incluso generar un nuevo archivo CHM con ayuda de los ficheros .HHC (tabla de contenidos) y .HHK (índice), y las herramientas del HTML Help Workshop. El archivo CHM resultante, aun construido con los mismos componentes, no tiene por qué ser idéntico al original.

Referencias:
HTML Help 1.4 SDK: Using Command Line Switches
HTML Help 1.4 SDK: Decompiling a Help File