ROllerozxa

Blog posts (page 2)

Screenshot of a page on the Android developer reference website. The screenshot shows the documentation for a constant by the name of DISALLOW_FUN, which is gone over later in the blog post.

Jokes and Humour in the public Android API

1599 words

Previously I have covered a relatively obscure now-removed placeholder string in Android that doubles as an easter egg, the fictitious carrier by the name of El Telco Loco. But this time it is about methods and other parts of the publicly facing Android API that may generally be more humourous than they are useful. Easter eggs, jokes, whatever you want to call them, that are visible to Android app developers rather than regular users.

Screenshot of the Tensy main menu showing the game title. Around it are the logos for Windows, Android, Linux (AppImage right behind it), WebAssembly, PSVita, Haiku OS and macOS.

Porting a game to 7 platforms

3079 words

When making a game or another kind of general purpose program, you would usually want to ensure that it runs on more than one platform. Targeting a higher-level, cross-platform library rather than OS-specific APIs usually gets you most of the way there, but there are still many other considerations that are needed if you want it to be available and function across several platforms.

When faced with this predicament, one may also wonder how to port your software to as many platforms as possible. That’s what I wanted to give a try, and ended up porting a game of mine to 7 platforms in total.

Screenshot of the reminder email received from OVH's abuse team the day after the attack. The background is a tiling list of firewall logs that were attached to the abuse reports showing a bunch of dropped and blocked connections to a certain IP. Some text in the email is scaled up which is the following: 'As explained in a previous message, this problem requires immediate action. Should the abusive behavior continue, we would be forced to suspend your service, as per our Terms. Please answer to this e-mail indicating which measures you've taken to stop the abuse behaviour.'

Post-mortem: The 2025-04-18 IP spoofing attack

1802 words

DDoS attacks are an unfortunate reality on the Internet when you are hosting websites, or any other kind of service. The concept of a DDoS attack is relatively simple: you have a bunch of attacker-controlled computers, and you have one victim. They all send requests to the victim at once and the target gets overloaded, happening either at the network or at the software layer.

But there are countless other possible attacks an Internet accessible server could receive, some possibly rarer than others. And the target ended up being me on the 18th of April 2025, when a regular DDoS attack ended up being something more that I had definitively not anticipated. An IP spoofing attack.

Screenshot of the Markdown source for the "The Luanti Techage Backdoor" blog post to the left, and to the right is a generated PDF version of it run through the process that is described in this blog post.

Generating PDF documents from Markdown

1235 words

When you are supposed to write something and submit it as a PDF document, generally the most common tool that comes to mind are traditional word processors such as LibreOffice Writer. Such word processors also provide various WYSIWYG formatting tools, and then allow you to export the document as a PDF.

But there are of course other ways to write your text documents, such as using the simple yet effective Markdown markup language. This blog post goes over how I generate PDF documents from Markdown, using Pandoc and Weasyprint.

The main screenshot of the Techage package showing the machines and such that are provided by the modpack. The code for the backdoor is semi-transparently overlaid to the right of the image.

The Luanti Techage Backdoor

1881 words

In early January of 2022, a modpack for Luanti (named Minetest at the time) called Techage received a pull request from a well known community member by the name of HybridDog. The pull request was about adding a config file for the Lua static analyser Luacheck, and then going through the mod’s codebase to fix any warnings that it found.

At a first glance, it looks like a pretty typical maintenance and code quality PR. But within this noise of line changes to fix linter warnings, there was an odd and ominous piece of code that was added, heavily obfuscated with an encrypted payload and hidden in plain sight. A backdoor.

Screenshot of the Ly display manager at the log in screen. There is green text flowing down the screen in the background, and an ASCII art box is visible in the center containing fields for entering user credentials.

Display Managers, and Ly

1006 words

A display manager is an essential component in a typical Linux graphical environment. Its origins date to the original design of the X Window System with client and server components that may be on other ends of a network, managing authentication for remote graphical X environments.

However, for modern personal computers running a Linux distribution nowadays, it is simply the intermediate between the initial bootup sequence and starting your window manager or desktop environment of choice, providing local account switching and authentication. It disappears as soon as you log in, and in many cases is seamlessly tied to your desktop environment of choice making you not even notice it.