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.
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:
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!
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.
Using dotPeek we can decompile the binary, search for the class that is in charge of keeping track of the trial.
Let’s see how to solve this .net crackme. Let’s try the crackme with some random credentials to see how it goes.
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!
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.