daniellerch.com: Índice de Software



 Proyectos / Librerías:
Easy-SSL: Librería C++ para programas sockets seguros (SSL). Construida como envoltorio de OpenSSL.
[ project page ]
ConfFile: Librería C++ para leer/manipular archivos de configuracion.
[ project page ]
siteplayer-skmsp1: Librería C++ para controlar el servidor web incrustado SitePlayer. Desarrollado para el módulo SKMSP1 de Selekron.
[ project page ]

 Seguridad - Pruebas de Concepto (PoC):
Dada una clave pública RSA, puede obtenerse su módulo y su exponente de cifrado. Si se es capaz de factorizar el módulo, el siguiente programa permite reconstruir la clave privada a partir de los factores p y q, y del exponente de cifrado.
[ get_priv_key.c ]
Uso de la técnica Man-In-The-Middle en ataques al protocolo ARP. Mediante ARP poisoning engaña a un host cliente y a un host servidor situados en una red local y se situa entre ambos. Redirige el tráfico entre el host cliente y el host servidor.
[ arp-mitm.c ]
Sistema cliente-servidor de shell remota que utiliza paquetes ICMP.
[ icmp-shell-server.c - icmp-shell-client.c ]
Este programa realiza hijacking de la función setuid(). En caso de que se realize la llamada al sistema setuid() con un pid X, se obtendrán privilegios de root (kernel 2.4).
[ hijacking.c ]
Puerta trasera mediante el sistema de ficheros /proc (Kernel 2.6).
[ backdoor_procfs.c - Makefile ]
Sistema de descidrado de contraseñas mediante fuerza bruta: Contraseñas de Linux, resúmenes MD5 y SHA1. Prueba combinaciones de letras hasta la longitud máxima, especificada en PASSWD_LENGTH. Obtiene las contraseñas cifradas de un archivo pasado como parámetro.
[ cracker_linux.c - cracker_md5.c - cracker_sha1.c ]

 Estructuras de datos:
Lista Enlazada (Linked List): Las listas enlazadas están optimizadas para el acceso secuencial.
[ list.h - list.c - example.c - Makefile ]

Tabla de Dispersión (Hash Table): Las tablas de dispersión, también llamadas arrays associativos, están optimizadas para el acceso directo a los elementos.
[ hash.h - hash.c - list.h - list.c - example.c - Makefile ]

Pila (Stack): Estructura de datos de tipo pila.
[ stack.h - list.h - list.c - example.c - Makefile ]

Cola (Queue): Estructura de datos de tipo cola.
[ queue.h - list.h - list.c - example.c - Makefile ]

Conjunto (Set): Estructura de datos de tipo conjunto. Implementa las operaciones de union, interseccion y diferencia.
[ set.h - set.c - list.h - list.c - example.c - Makefile ]

 Factorización:
Sistema distribuido de factorización: Permite factorizar un número utilizando varias máquinas. Usa la librería msieve de Jason Papadopoulos.
[ dfact.tar.gz]
Resolución de matrices sobre GF2: En los algoritmos modernos de factoriación es habitual tener que resolver matrices sobre GF2. El siguiente programa obtiene una matriz de un fichero y proporciona un listado de posibles soluciones. Utiliza la librería para teoría de números NTL.
[ matrix_solve_GF2.cpp]
Método de factorización de Fermat: Implementación basada en GMP.
[ fermat.cpp]
Método de factorización de Kraitchik: Implementación basada en GMP.
[ kraitchik.cpp]

 Otros:
Envoltorio de acceso a bases de datos MySQL.
[ database.h - database.c - resultset.h - resultset.c - example.c - Makefile ]

Control del puerto serie en sistemas Linux.
[ serial.h - serial.c - example.c - Makefile ]

Funciones útiles para cadenas. Implementacion segura de strlcpy y strlcat.
[ strutils.h - strutils.c - example.c - Makefile ]