Feb 24, 2017 01:39 PM
(This post was last modified: Feb 24, 2017 01:39 PM by ElmagoLoko.)
The best resources for learning exploit development
Exploit development is considered to be the climax in the learning path of an ethical hacker or security professional. It is strongly advisable to have mastered the basics before delving into this topic. Exploit development is hard and it’s not something you learn at school or university (usually), not something any of your geek friends will talk about all day long. Only those who are brave to study hard can achieve the joy of controlling the EIP, popping a shell and taking control of a machine while the oblivious user yells at Microsoft for the nth crash of his beloved program.
What are the prerequisites for learning about exploit development?
Well, if you want to comprehend and hopefully start developing your own exploits you should have at least a basic knowledge of x86/64 bit system architecture (Windows, Linux or Mac according to your target), low level programming, possibly assembly, C/C++ or Python is fine as well for many tasks, then you should have in mind how the computer memory works (RAM), the concept of stack, heap, CPU registers, the most common operations, system calls, segmentation fault, buffer overflow, race condition and so on. You also should be familiar with disassemblers and a background in reverse engineering or malware analysis may be useful before starting to develop your own exploits.
Let’s see some resources that can help you to be prepared before attempting the big jump onto the high level world of exploit development, the Olympus of the Godly Hackers.
x86/64 bit system architecture:
Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration
Introductory Intel x86-64: Architecture, Assembly, Applications, & Alliteration
Intermediate Intel x86: Architecture, Assembly, Applications, & Alliteration
Assembly language:
http://www.drpaulcarter.com/pcasm/
google.com/file/d/0Bw1xURlCeiXiQXV6YzR1RzdqcDg/view?usp=sharing]Assembly Language Step-by-Step: Programming with Linux
Virus Scan:
Here
The Art of Assembly Language
google.com/file/d/0Bw1xURlCeiXiMHFFQjFCT0Zua0U/view]Download
Scan
Windows Assembly Language Megaprimer
Assembly Language Megaprimer for Linux
C/C++:
google.com/file/d/0Bw1xURlCeiXiUUpkbW9aZ1cwdEE/view?usp=sharing]C Programming Absolute Beginner’s Guide
Scan:
google.com/file/d/0Bw1xURlCeiXia1M2UWZCM0VKX1E/view?usp=sharing]The C Programming Language
Scan
Introduction to Computer Science CS50x
google.com/file/d/0Bw1xURlCeiXiRGNWSUdMeVpZMkU/view?usp=sharing]Programming: Principles and Practice Using C++
Scan
google.com/file/d/0Bw1xURlCeiXiaEVVU05FRDNRbmc/view?usp=sharing]C++ Primer
Scan
google.com/file/d/0Bw1xURlCeiXiczlmVEpWWl95ZTQ/view?usp=sharing]Accelerated C++: Practical Programming by Example
Scan
Python:
Python has a wonderful official documentation, apart from that you can use the following books/courses:
Learn Python the hard way
How to think like a computer scientist
google.com/file/d/0Bw1xURlCeiXiZFNqVjZOX2JteUU/view?usp=sharing]Learning Python
Scan
Introduction to computer science and programming using Python MITx 6.00.1x
When you feel comfortable with the prerequisites, then you can start learning exploit development following these great resources!
I compiled a list of books, tutorials, courses, tools and vulnerable applications that you can use for your study.
BOOKS
google.com/file/d/0Bw1xURlCeiXiMGlQOUF2bl9aRDg/view?usp=sharing]Hacking – The art of exploitation
Scan
google.com/file/d/0Bw1xURlCeiXiRTVCMktPME95bUE/view?usp=sharing]A bug Hunter’s Diary: A Guided Tour Through the Wilds of Software Security
Scan
google.com/file/d/0Bw1xURlCeiXidkdvRzFkb2hmSE0/view?usp=sharing]The Shellcoder’s Handbook: Discovering and Exploiting Security Holes
Scan
google.com/file/d/0Bw1xURlCeiXidW5EVmJTMEtlaG8/view?usp=sharing]Sockets, shellcode, Porting, and coding: reverse engineering Exploits and Tool coding for security professionals
Scam
google.com/file/d/0Bw1xURlCeiXiRmlGYmgzdWNnanM/view?usp=sharing]Writing Security tools and Exploits
Scan
google.com/file/d/0Bw1xURlCeiXiSVp1amhaYnNRUlk/view?usp=sharing]Buffer overflow attacks: Detect, exploit, Prevent
Scan
google.com/file/d/0Bw1xURlCeiXiTWFtY3NZQ3ZjQjA/view?usp=sharing]Metasploit toolkit for Penetration Testing, exploit Development, and vulnerability research
Scan
Exploit development is considered to be the climax in the learning path of an ethical hacker or security professional. It is strongly advisable to have mastered the basics before delving into this topic. Exploit development is hard and it’s not something you learn at school or university (usually), not something any of your geek friends will talk about all day long. Only those who are brave to study hard can achieve the joy of controlling the EIP, popping a shell and taking control of a machine while the oblivious user yells at Microsoft for the nth crash of his beloved program.
What are the prerequisites for learning about exploit development?
Well, if you want to comprehend and hopefully start developing your own exploits you should have at least a basic knowledge of x86/64 bit system architecture (Windows, Linux or Mac according to your target), low level programming, possibly assembly, C/C++ or Python is fine as well for many tasks, then you should have in mind how the computer memory works (RAM), the concept of stack, heap, CPU registers, the most common operations, system calls, segmentation fault, buffer overflow, race condition and so on. You also should be familiar with disassemblers and a background in reverse engineering or malware analysis may be useful before starting to develop your own exploits.
Let’s see some resources that can help you to be prepared before attempting the big jump onto the high level world of exploit development, the Olympus of the Godly Hackers.
x86/64 bit system architecture:
Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration
Introductory Intel x86-64: Architecture, Assembly, Applications, & Alliteration
Intermediate Intel x86: Architecture, Assembly, Applications, & Alliteration
Assembly language:
http://www.drpaulcarter.com/pcasm/
google.com/file/d/0Bw1xURlCeiXiQXV6YzR1RzdqcDg/view?usp=sharing]Assembly Language Step-by-Step: Programming with Linux
Virus Scan:
Here
The Art of Assembly Language
google.com/file/d/0Bw1xURlCeiXiMHFFQjFCT0Zua0U/view]Download
Scan
Windows Assembly Language Megaprimer
Assembly Language Megaprimer for Linux
C/C++:
google.com/file/d/0Bw1xURlCeiXiUUpkbW9aZ1cwdEE/view?usp=sharing]C Programming Absolute Beginner’s Guide
Scan:
google.com/file/d/0Bw1xURlCeiXia1M2UWZCM0VKX1E/view?usp=sharing]The C Programming Language
Scan
Introduction to Computer Science CS50x
google.com/file/d/0Bw1xURlCeiXiRGNWSUdMeVpZMkU/view?usp=sharing]Programming: Principles and Practice Using C++
Scan
google.com/file/d/0Bw1xURlCeiXiaEVVU05FRDNRbmc/view?usp=sharing]C++ Primer
Scan
google.com/file/d/0Bw1xURlCeiXiczlmVEpWWl95ZTQ/view?usp=sharing]Accelerated C++: Practical Programming by Example
Scan
Python:
Python has a wonderful official documentation, apart from that you can use the following books/courses:
Learn Python the hard way
How to think like a computer scientist
google.com/file/d/0Bw1xURlCeiXiZFNqVjZOX2JteUU/view?usp=sharing]Learning Python
Scan
Introduction to computer science and programming using Python MITx 6.00.1x
When you feel comfortable with the prerequisites, then you can start learning exploit development following these great resources!
I compiled a list of books, tutorials, courses, tools and vulnerable applications that you can use for your study.
BOOKS
google.com/file/d/0Bw1xURlCeiXiMGlQOUF2bl9aRDg/view?usp=sharing]Hacking – The art of exploitation
Scan
google.com/file/d/0Bw1xURlCeiXiRTVCMktPME95bUE/view?usp=sharing]A bug Hunter’s Diary: A Guided Tour Through the Wilds of Software Security
Scan
google.com/file/d/0Bw1xURlCeiXidkdvRzFkb2hmSE0/view?usp=sharing]The Shellcoder’s Handbook: Discovering and Exploiting Security Holes
Scan
google.com/file/d/0Bw1xURlCeiXidW5EVmJTMEtlaG8/view?usp=sharing]Sockets, shellcode, Porting, and coding: reverse engineering Exploits and Tool coding for security professionals
Scam
google.com/file/d/0Bw1xURlCeiXiRmlGYmgzdWNnanM/view?usp=sharing]Writing Security tools and Exploits
Scan
google.com/file/d/0Bw1xURlCeiXiSVp1amhaYnNRUlk/view?usp=sharing]Buffer overflow attacks: Detect, exploit, Prevent
Scan
google.com/file/d/0Bw1xURlCeiXiTWFtY3NZQ3ZjQjA/view?usp=sharing]Metasploit toolkit for Penetration Testing, exploit Development, and vulnerability research
Scan


