1) gdb is a great debugger. Of course you don't really
need to use it directly if you want something a little more
pretty get a front-end
ddd, kdbg or something like that
kgdb for kernel debugging
2) for a disassembler check out ldasm
3) The elf file format for your viewing pleasure
http://www.nondot.org/sabre/os/files...tables/ELF.pdf
4) The thing is there is not much of a cracking warez scene
in linux b/c most of the programs available also have the
source code available. So there aren't a lot of cracker
toolz.
5) Self repairing executables aren't really feasible b/c
of privilege separation. Linux a real multi-user
operating system and as such users aren't allowed
to mess with the executables with out privileges.
You can write self-modifying code but it will only be
in memory. You could conceivably do it but it would
be silly.
6) For packers try UPX and tinlink
7) If you are interested in encryption check out gnupg
8) You will want to check out nasm if gas and at&t
syntax is bugging you.
if you really want to learn.
check out
www.tldp.org
for software go to
http://freshmeat.net
and as always
www.google.com