This tutorial will help you build a custom Linux distribution for your IoT/Embedded project using Buildroot (i.e: a Raspberry Pi). There are some other options out there but I find Buildroot to be consistent and easy enough so we’ll stick to it for the propose of this article.

Photo by Etienne Girardet on Unsplash

What is Buildroot?

Buildroot is a community-driven and open-source set of tools that will help you generate an entire root file system that you can then flash into a device.
It can build toolchains, rootfs, bootloaders, kernels and libraries all by its own.

You can read more about it on its official page:

Installation and docs

To start…

Photo by Ben on Unsplash

The Game Boy uses a 8-bit computer chip similar to an Intel 8080. As it has only 256 instructions it’s an interesting candidate for experiments such as writing an assembler from scratch — and that’s what this article is about.

Here I’ll describe the process I went through when I wrote this Game Boy assembler in Node.js.

In case you want to try it just issue the following:

# option 1: using npm
npm install -g game-boy-assembler
# option 2: using docker
docker run -ti alanvivona/gameboy

Now let’s jump into the process of writing such a thing!

Photo by Matt Artz on Unsplash

Today we are going to generate a simple keygen to crack this beautiful crackme named “Get The Password”. Here’s the beast:

Today we are dealing with yet another .net crackme. Let’s see how it goes…

The crackme is a sort of X-times usage trial. After we’ve opened the executable 10 times we have the opportunity to test if we cracked the trial or not.

testing the trial validation

Using dotPeek we can decompile the binary, search for the class that is in charge of keeping track of the trial.

Learning how to crack a .net binary

Photo by mahdis mousavi on Unsplash

Let’s see how to solve this .net crackme. Let’s try the crackme with some random credentials to see how it goes.

Photo by fer gomez on Unsplash

This time I’m tackling this crackme called Mexican. In order to solve this, we will use radare2’s to analyze the binary and find the flag. Then we’ll have to patch the binary in order for it to output the flag. Let’s jump right in!

If we open the binary using radare2 and go to the main function we see a call to the flag function… but something is odd 🤔

We’ll be facing an alien binary this time. Level 2 alien technology, to be precise. Found on ruins of an ancient alien civilization.

You can download the binary using this link and follow along:

Let’s jump right into it!

Taking a quick look at the code-flow in the main function we can see there is a direct comparison between two strings (using the strcmp function) and there’s no much more logic into it.

Running the binary using ltrace shows the exact value of the strings being compared.

In the following screenshot, you can see my input was just a bunch…

This time I’m tackling this beautiful crackme, the third of the series. To solve this we will use radare2’s macros and unicorn emulation. Let’s jump right in!

Some Introductory Analysis

The crackme asks for a 4 digit password that the user needs to input one digit at the time. Similar to a PIN.

Looking at main we can see the “check_code_int” function is called near the end of its largest block.

Syscall59 — Alan Vivona

Golang, Python, Javascript, Linux & Infosec.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store