-prus-, я пользовался первыми двумя приведенными источниками. Особенно ине понравился реальный пример с переполнением буфера, когда в регист eip записывается адрес команды call eax из динамически подгружаемой библиотеки
P>1. Разработка средств безопасности и эксплойтов (Джеймс К. Фостер, Винсент Лю)
P>2. Защита от взлома. Сокеты, shell-код, эксплойты (Джеймс С. Фостер)
P>3. Программирование боевого софта под Linux (Иван Скляров)
Но я не нашел анализа существующей массы шелл-кодов, меня интересует например: 80% всех шелл-кодов запускаю шелл и т.д