Code samples for the No Starch Press Black Hat Go
We are hackers and coders - in that order.
This means that, as hackers, we put a premium on function over elegance as time is always scarce.
When you need to quickly create a solution to a problem, style concerns come secondary.
Prior to Go, you could prioritize ease of use by using dynamically typed languages-such as Python, Ruby or PHP-at the expense of performance and safety.
Alternatively, you could choose a statically typed language, like C or C++, that offers high performance and safety but isn't very user-friendly.
Go is a stripped of much of the ugliness of C, its primary ancestor, making development more user-friendly.
At the same time it's statically typed producing syntax errors at compile time increasing assurance that your code will actually run safely.
Many of the language's features are particularly useful for hackers and adversaries:
- Clean Package Management System
- Cross Compilation
- Rich Standard Library
- Concurrency
- Large Binary size
- Very Verbose
- Chapter 2: TCP and Go: Scanners and Proxies
- Chapter 3: HTTP Clients: Remote Interaction with Tools
- Chapter 4: HTTP Servers: Routing and Middleware
- Chapter 5: Exploiting DNS: Recon and More
- Chapter 6: SMB and NTLM: A Peek Down the Rabbit Hole
- Chapter 7: Databases and Filesystems: Pilfering and Abusing
- Chapter 8: Packet Processing: Living on the Wire
- Chapter 9: Exploit Code: Writing and Porting
- Chapter 10: Extending Tools: Using Go Plugins and Lua
- Chapter 11: Cryptography: Implementing and Attacking
- Chapter 12: Windows: System Interaction and Analysis
- Chapter 13: Steganography: Hiding Data
- Chapter 14: Command and Control: Building a RAT
This repository uses third-party APIs and AI models and is not associated with or endorsed by the API providers or the original developers of the models. This project is intended for educational purposes only.
Please note the following:
Disclaimer: The APIs, services, and trademarks mentioned in this repository belong to their respective owners. This project is not claiming any right over them.
Responsibility: The author of this repository is not responsible for any consequences arising from the use or misuse of this repository or the content provided by the third-party APIs and any damage or losses caused by users' actions.
Educational Purposes Only: This repository and its content are provided strictly for educational purposes. By using the information and code provided, users acknowledge that they are using the APIs and models at their own risk and agree to comply with any applicable laws and regulations.