Applied offensive security with the Rust programming language
Whether in movies or mainstream media, hackers are often they are painted as black magic wizards, nasty criminals, or, in the worst cases, as thieves with a hood and a crowbar. In reality, the spectrum of the profile of the attackers is extremely large, from the bored teenager exploring the internet to sovereign State's armies as well as the unhappy former employee. What are the motivations of the attackers? How can they break seemingly so easily into any network? What do they do to their victims? We will put on our black hat and explore the world of offensive security, whether it be cyber attacks, cybercrimes, or cyberwar. Scanners, exploits, phishing toolkit, implants... From theory to practice, we will explore the arcane of offensive security and build our own offensive tools with the Rust programming language, Stack Overflow's most loved language for five years in a row. Which programming language allows to craft shellcodes, build servers, create phishing pages? Before Rust, none! Rust is the long-awaited one-size-fits-all programming language meeting all those requirements thanks to its unparalleled guarantees and feature set. Here is why.
3.5 stars. The book is not cathedral of knowledge, but more of a sampling buffet. It's an easy and fun read that shows you application of rust and is semi-jokingly focused around hacking. No, reading this book alone is not enough to become rustician or a hacker. But that's not the goal, the aim is to have fun and see how to use language in different domains. Just to start your appetite. Don't take it too seriously. This book is somewhat similar to "rust in action" in spirit. This can't be your first book on rust, but it's a good candidate to be the 2nd or the third. Overall it's a nice read and can be finished in one sitting, if you are not planning to do your own coding experiments.
I am about half way through this book, and finding it really hard to continue with it. This books lacks any sort of structure to follow the main project tricoder to completion.
The biggest problem is the main project that you work on throughout the book isn't built upon in a steady progression. There are large jumps in architecture throughout the book. I have working through the book hoping to be able to fill in gaps left out from book and the addition resources in the github repo, and I find it hard not to have to constantly refer the the repo instead of having a steady progress. For example, in Chapter 4, "modules" are introduced and you implement a hand full, but at the end of chapter 4 there isn't any guidance from the author to tie everything together. You can make the argument that it is up to you to use this is a practicing moment sure. But with a project that continues to be built upon as the book progresses, if I where to make an architectural that diverged from the author's designs, I would be stuck reworking my solution to match theirs to follow the book in later chapters.