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.

Image for post
Image for post
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


Image for post
Image for post
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!

Image for post
Image for post
Photo by Spencer on Unsplash

Understanding the architecture

The first thing we need is to analyze the instruction set and write a list of them. I extracted the instructions from this awesome manual and generated a file as the one you can see in the screenshot below. …


Image for post
Image for post
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:

Image for post
Image for post

Cool graph, isn’t it?

In the top part we can see there’s a pattern, right here:

Image for post
Image for post

So, what’s going on here? Well, basically…

cl is being used as an index, compared against a hardcoded value which increments each time (0,1,2..9) …

About

Syscall59 — Alan Vivona

Golang, Python, Javascript, Linux & Infosec. https://twitter.com/syscall59

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