internet security for the paranoid.
ari edelkind - C libraries and programs
C libraries and programs
structural get_opts - command-line argument
lx_lib - an extended, structural library,
allowing for more secure programming practices. Current functionality
includes strings, descriptors, and certain list functions.
minilib - small library intended to make various
libnaw - network library call wrapper, enabling
authentication of individual network connections.
slowget - metered load testing program to
simulate slow downloads (i.e. from modem users). If you only load test
your systems over an ethernet link, you may find this a good idea.
fmtlib - shared library that wraps
format-based function calls and may be used to locate format string
security problems during normal execution.
socketwinch - socket redirection program
that reads from many sockets and writes to one single socket. Useful
for running services that log to unix domain sockets in
chroot(2) environments, converting between STREAM and DGRAM
styles of sockets, etc.
Forthcoming: iomaster (+iomlib) - i/o
multiplexing daemon, with associated packet protocol library. While
this is intended for use with tape devices, it is being written with
extensibility in mind and may find countless more generic uses.
Currently, this package is accessible only through privileged CVS.
small C programs
pathize.c - compress delimited strings;
originally meant for usage with the PATH environment variable to increase
performance by eliminating redundancy. Additional functionality includes
removing specified string segments.
Requires structural get_opts.
gcc -o pathize pathize.c -I../get_opts -L../get_opts -lget_opts
nologin.c - meant to be used for the login
shell of users without login shell requirements. Embarrassingly simple.
gcc -o nologin nologin.c -I../minilib -L../minilib -lminilib -static
dlinfo.c - displays dynamic symbol information.
If you would like to use dlinfo to discover information about a library
that it's not linked with, add the library to your LD_PRELOAD environment
gcc -o dlinfo dlinfo.c -D_GNU_SOURCE=1 -ldl
The _GNU_SOURCE macro is only necessary for gnu libc systems,
and -ldl is only used on systems that have it. Some systems (netbsd,
openbsd) do not support RTLD_NEXT; dlinfo will not work (or compile) on
pwcr.c - a purely brute-force, incremental
password cracker. Unless you use a distributed method, incorporating a
serious number of machines, this is not a feasible, time-effective method
for cracking passwords greater than six characters. On a single machine,
cracking an eight-character password will take years. Depending on
how many characters you include and the speed of your machine, it may take
hundreds of years. But nonetheless, it can help. Includes options
to allow the user to begin cracking at a specified password value or a
minimum (and/or maximum) password length. The program also displays the
current sequence attempted, at intervals, so you may stop the cracker, then
let it pick up at a later time where it left off, with minimal overlap.
Requires structural get_opts.
gcc -o pwcr pwcr.c -I../get_opts -L../get_opts -lget_opts
swapbits.c - demonstrates one method of
swapping every successive pair of bits in a file.
gcc -o swapbits swapbits.c
base64.c - base64-encodes or -decodes a string.
It may be used as an object for inclusion with other code, or it can be compiled
as a library.
gcc -c base64.c
For use in other programs, you may find
See the patch page.
ari edelkind - [contact]