Sockets, Shellcode, Porting, and Coding: Reverse Engineering Exploits and Tool Coding for Security Professionals


  • James Foster, Deputy Director of Global Security Development for Computer Sciences, Corp, U.S.A.

The book is logically divided into 5 main categories with each category representing a major skill set required by most security professionals:1. Coding – The ability to program and script is quickly becoming a mainstream requirement for just about everyone in the security industry. This section covers the basics in coding complemented with a slue of programming tips and tricks in C/C++, Java, Perl and NASL. 2. Sockets – The technology that allows programs and scripts to communicate over a network is sockets. Even though the theory remains the same – communication over TCP and UDP, sockets are implemented differently in nearly ever language. 3. Shellcode – Shellcode, commonly defined as bytecode converted from Assembly, is utilized to execute commands on remote systems via direct memory access. 4. Porting – Due to the differences between operating platforms and language implementations on those platforms, it is a common practice to modify an original body of code to work on a different platforms. This technique is known as porting and is incredible useful in the real world environments since it allows you to not “recreate the wheel.”5. Coding Tools – The culmination of the previous four sections, coding tools brings all of the techniques that you have learned to the forefront. With the background technologies and techniques you will now be able to code quick utilities that will not only make you more productive, they will arm you with an extremely valuable skill that will remain with you as long as you make the proper time and effort dedications.
View full description


The market for this book includes the information security, software development, and “hacker” communities. Information security professionals and “hacker-types” alike will be able to utilize this book as a sole resource for learning to understand, write, port, and automate vulnerabilities, exploits, and security tools all in one book. Never before has a book been so comprehensive or complete as it will be the only resource required to understand exploit details from start to finish.


Book information

  • Published: April 2005
  • Imprint: SYNGRESS
  • ISBN: 978-1-59749-005-4

Table of Contents

Section 1 – 0-day Basics Introduction 1 Security Coding 3 NASL Section 2 – Networking 0-Day Code Introduction 4 BSD Sockets 5 Winsock 6 Java Sockets Section 3 - Shellcode Introduction 7 Shellcode Techniques 8 Writing Shellcode Section 4 – Universal Exploitation Introduction 9 Writing Portable Code 10 Writing Portable Network Code Section 5 - Automation Introduction 11 Automating Exploits I 12 Automating Exploits II 13 Automating Exploits III 14 Automating Security Components 15 Automating Identification Tools Appendices: A - Glossary B - Technical Publications and References C - Tool and Application Compedium D - LibWhisker Primer E - Exploit Archives F - Useful Syscalls G - The Complete Data Conversion Table