This post is an introductory post to a series that will describe my journey to analyze and learn how the keyboard backlight driver on my laptop works, and then re-implement it on my own. I wanted a place to dump my thoughts and different things I try, and learn in the process.
This post is just an intro to the series, if you're looking for the actual action, head over to the next post in the series!
I recently upgraded to a new laptop (HP Omen 15-en0037AX). The laptop has a four-zone RGB LED backlight on the keyboard. Like most laptops that ship with such a keyboard, the manufacturer shipped a preinstalled app (Omen Light Studio) on windows to customize the various lighting modes on the keyboard.
Unfortunately, this app is only available for Windows, which is a problem, as I am primarily a Linux user.
Since I have always been interested in cybersecurity and have taken part in multiple CTF (Capture the Flag) events, I have a basic understanding of how to Reverse Engineer C/C++ binaries using tools like Ghidra but have never reversed an actual real-life application. In this series I want to (hopefully) achieve two things:
- Reverse Engineer the Omen Light Studio App, and figure out how it interfaces with the hardware on the laptop to control the keyboard's lighting.
- Re implementing the functionality on Linux (maybe in C/C++/Python/NodeJS) and possibly make a similar desktop app.
This series is going to be me documenting all my approaches (right or wrong), and also explaining various concepts I learned in the process. Currently, I have no idea where this will lead to or what tools/languages I need to know/learn, but all that begins from the next post. See you there!