kerkour.com
In this post, we are going to speed up a port scanner in Rust by using multiple threads instead of only one and see how easily it can be achieved thanks to Rust's type system. This post is an excerpt from my book Black Hat Rust Once you hav...
Rust Walkthroughs
2022-09-28
~7 min read
kerkour.com
The moment has come to get your hands dirty: let's write your first Rust program. As for all the code examples in this course, you can find the complete code in the accompanying Git repository: https://github.com/skerkour/black-hat-rust $ c...
Rust Walkthroughs
2022-09-14
~6 min read
kerkour.com
Last week, we learned what are and how to use combinators. Today, we see how to use Rust's async combinators and how they can make your code more functional and clean. You may be wondering: what combinators have to do with async? Well, the...
Rust Walkthroughs
2022-09-07
~4 min read
kerkour.com
Combinators are a very interesting to make your code cleaner and more functional. Almost all the definitions you'll find on the internet will make your head explode 🤯 because they raise more questions than they answer. Thus, here is my empi...
Rust Walkthroughs
2022-08-31
~6 min read
kerkour.com
After seeing how to craft a shellcode in Rust and how to execute it, it's time to build a more advanced shellcode, in Rust too, to understand where a high-level language really shines. A reverse TCP shellcode establishes a TCP connection to...
Rust Walkthroughs
2022-08-03
~2 min read
kerkour.com
July 13, 2022 Black Hat Rust Applied offensive security with the Rust programming language PDF, Kindle & Epub Buy The Ebook Now! A few months after its official launch, I'm extremely happy to announce that I released the biggest Black Hat R...
Project/Tooling Updates
2022-07-13
~1 min read
kerkour.com
It's an open secret that most of the time and costs spent on any serious software project are from maintenance. Rust is moving fast, and its ecosystem too, so it's necessary to automate your projects' maintenance. The good news is that, in...
Rust Walkthroughs
2022-06-22
~1 min read
kerkour.com
Whether it be with React, VueJS, Angular, or in Rust, modern web applications are composed of 3 kinds of pieces: Components Pages Service Components are reusable pieces and UI elements. An input field, or a button, for example. Pages are as...
Rust Walkthroughs
2022-06-15
~5 min read
kerkour.com
Introduction to Rust generics: Traits Trait Objects (Static vs Dynamic dispatch) This post is an excerpt from my book Black Hat Rust Now you may be wondering: How to create a collection that can contain different concrete types that satisfy...
Rust Walkthroughs
2022-06-08
~3 min read
kerkour.com
Introduction to Rust generics: Traits Trait Objects (Static vs Dynamic dispatch) Imagine that you want to add a camera to your computer which is lacking one. You buy a webcam and connect it via a USB port. Now imagine that you want to add s...
Rust Walkthroughs
2022-06-01
~6 min read
kerkour.com
By default, Rust produces fairly large binaries, which may be annoying when building a RAT. A larger executable means more resources used on the system, longer and less reliable downloads, and easier to be detected. We will see a few tips t...
Rust Walkthroughs
2022-05-25
~1 min read
kerkour.com
May 25, 2022 Tests are not meant to be manually run each time you write code. It would be a bad usage of your precious time. Indeed, Rust takes (by design) a loooong time to compile. Running tests on your own machine more than a few times a...
Rust Walkthroughs
2022-05-25
~1 min read
kerkour.com
I personally find bitsquatting attacks mind-blowing! The idea is that computers suffer from memory errors where one or more bits are corrupted, they are different than their expected value. It can come from electromagnetic interference or c...
Rust Walkthroughs
2022-05-18
~1 min read
kerkour.com
Building a crawler in Rust: Building a crawler in Rust: Design and Associated Types Building a crawler in Rust: Synchronization (Atomic Types and Barriers) Building a crawler in Rust: Implementing the crawler Building a crawler in Rust: Scr...
Rust Walkthroughs
2022-05-18
~1 min read
kerkour.com
A few weeks ago, I wrote: ""Rust moves too fast" and "a programming language is a platform". Some people raised good objections, so I thought it would be good to write a follow-up to explain my thoughts. Nowadays, everyone wants to be agile...
Observations/Thoughts
2022-05-11
~3 min read
kerkour.com
Building a crawler in Rust: Building a crawler in Rust: Design and Associated Types Building a crawler in Rust: Synchronization (Atomic Types and Barriers) Building a crawler in Rust: Implementing the crawler Building a crawler in Rust: Scr...
Rust Walkthroughs
2022-05-11
~2 min read
kerkour.com
Want to learn Rust, offensive security and applied cryptography? Take a look at my book Black Hat Rust where, among other things, you will build your own end-to-end encrypted protocol, a Remote Access Tool, craft shellcodes and exploits and...
Miscellaneous
2022-05-11
~1 min read
kerkour.com
Over the decades, Humans have proved to be pretty bad at producing bug-free software. Trying to apply our approximative, fuzzy thoughts to perfectly logical computers seems doomed. While the practice of code reviews is increasing, especiall...
Observations/Thoughts
2022-05-04
~5 min read
kerkour.com
Building a crawler in Rust: Building a crawler in Rust: Design and Associated Types Building a crawler in Rust: Synchronization (Atomic Types and Barriers) Building a crawler in Rust: Implementing the crawler Building a crawler in Rust: Scr...
Rust Walkthroughs
2022-05-04
~2 min read
kerkour.com
The Hare programming language was announced a few days ago, and, at first glance, its syntax looks similar to Rust. So, why would (smart) people bother to create a new language which aims to fulfill the same niche as Rust (system programmin...
Observations/Thoughts
2022-04-27
~4 min read