Compartir objetos del kernel entre procesos (SECURITY_DESCRIPTOR)

En el siguiente ejemplo demuestro como crear un descriptor de seguridad (security descriptor) para permitir el acceso a un objeto del kernel a todos los usuarios, de esta manera puede ser compartido por procesos pertenecientes a diferentes cuentas de usuario. Esto puede resultar útil, por ejemplo, cuando un servicio tiene que compartir un objeto con una aplicación que se esta ejecutando bajo una cuenta de usuario diferente.

Recuperar imagenes jpeg 2

En un artículo anterior hablaba de como recuperar las imágenes borradas de un disco, o tarjeta de memoria, examinando cluster a cluster en busca de las imágenes. Ese programa estaba pensado para utilizarlo directamente sobre un disco o sobre la imagen de un disco, no sirve para examinar otro tipo de archivos, pero usando un sistema parecido podríamos extraer imágenes de cualquier archivo. La única diferencia es que en vez de ir buscando cluster a cluster, tendríamos que ir buscando byte a byte. Este proceso es mucho mas lento así que no es el mas adecuado para examinar discos enteros, sin embargo es perfecto para explorar archivo de un tamaño normal.

Recuperar imagenes jpeg

El siguiente programa sirve para recuperar imágenes jpeg borradas. Se basa en la suposición de que la imagen que se quiere recuperar esta guardada en clusteres consecutivos dentro del disco duro. Esta suposición no siempre tiene que ser cierta, pero si lo es en la mayoría de los casos. Así que si hay suerte, podremos recuperar la imagen.

Pico y xinetd

Bueno, yo sigo jugando con mi micro-servidor web pico. Ahora buscando un poco de seguridad me he fijado en xinetd. Xinetd es un demonio presente en muchos sistemas tipo Unix que gestiona las conexiones de varios demonios. La ejecución de una única instancia de Xinetd reduce la carga del sistema, en comparación con lo que significaría ejecutar cada uno de los demonios que gestiona, de forma individual. Cuando una petición llega a nuestro equipo, a uno de los puertos controlados por el, ejecuta una instancia del programa encargado de manejar esa conexión. Por ejemplo, en el caso de pico, cuando alguien se conecte al puerto 1978 xinetd ejecutara una instancia de nuestro programa para que se encargue de esa conexión, una vez cerrada la conexión nuestro programa también se cierra.

Sudoku en Delphi

El Sudoku es un pasatiempo que últimamente se ha hecho muy popular. El objetivo es rellenar una cuadrícula de 9×9 celdas (81 casillas) dividida en subcuadrículas de 3×3 (también llamadas "cajas" o "regiones") con las cifras del 1 al 9, partiendo de algunos números ya dispuestos en algunas de las celdas. El objetivo es rellenar las celdas vacías, con un número en cada una de ellas, de tal forma que cada columna, fila y región contenga los números del 1 al 9 sólo una vez.

Un poco de C

Ya avise cuando comencé con esta pagina que no solo hablaría sobre de Delphi. Así que voy a poner por aquí un nuevo juguete con el que estoy entretenido desde hace unos días. Se trata de un pequeño servidor web realizado en C y pensado para ser utilizado en linux. Para hacernos una idea de lo pequeño que es basta decir que el código cuenta con solo unas 600 lineas.

Descifrar base64

Siguiendo con la serie de funciones destinadas a crear nuestro pequeño servidor, vamos a ver una función para descifrar una cadena de texto cifrada en base64. Esta función nos sera útil cuando implementemos la identificación de usuarios, es un sistema muy simple, así que solo nos dará un nivel de seguridad básico aunque suficiente para este proyecto.