Reverse Engineering Keyboard Driver: Part 1 (Introduction)

Tldr; (What is the series about)

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 d…


This content originally appeared on DEV Community and was authored by Rishit Bansal

Tldr; (What is the series about)

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!

Why?

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.


HP Omen Light Studio

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:

  1. 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.
  2. Re implementing the functionality on Linux (maybe in C/C++/Python/NodeJS) and possibly make a similar desktop app.

Disclaimer

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!


This content originally appeared on DEV Community and was authored by Rishit Bansal


Print Share Comment Cite Upload Translate Updates
APA

Rishit Bansal | Sciencx (2021-08-21T20:00:05+00:00) Reverse Engineering Keyboard Driver: Part 1 (Introduction). Retrieved from https://www.scien.cx/2021/08/21/reverse-engineering-keyboard-driver-part-1-introduction/

MLA
" » Reverse Engineering Keyboard Driver: Part 1 (Introduction)." Rishit Bansal | Sciencx - Saturday August 21, 2021, https://www.scien.cx/2021/08/21/reverse-engineering-keyboard-driver-part-1-introduction/
HARVARD
Rishit Bansal | Sciencx Saturday August 21, 2021 » Reverse Engineering Keyboard Driver: Part 1 (Introduction)., viewed ,<https://www.scien.cx/2021/08/21/reverse-engineering-keyboard-driver-part-1-introduction/>
VANCOUVER
Rishit Bansal | Sciencx - » Reverse Engineering Keyboard Driver: Part 1 (Introduction). [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/08/21/reverse-engineering-keyboard-driver-part-1-introduction/
CHICAGO
" » Reverse Engineering Keyboard Driver: Part 1 (Introduction)." Rishit Bansal | Sciencx - Accessed . https://www.scien.cx/2021/08/21/reverse-engineering-keyboard-driver-part-1-introduction/
IEEE
" » Reverse Engineering Keyboard Driver: Part 1 (Introduction)." Rishit Bansal | Sciencx [Online]. Available: https://www.scien.cx/2021/08/21/reverse-engineering-keyboard-driver-part-1-introduction/. [Accessed: ]
rf:citation
» Reverse Engineering Keyboard Driver: Part 1 (Introduction) | Rishit Bansal | Sciencx | https://www.scien.cx/2021/08/21/reverse-engineering-keyboard-driver-part-1-introduction/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.