JafarAkhondali / acer-predator-turbo-and-rgb-keyboard-linux-module

Linux kernel module to support Turbo mode and RGB Keyboard for Acer Predator notebook series
GNU General Public License v3.0
342 stars 59 forks source link

reverse engineering guide #78

Closed ghtesting2020 closed 1 year ago

ghtesting2020 commented 1 year ago

Hi i was wondering when the video guide will be available for "As most of the contributions in this project are less related to the C code and as I don't own a Predator anymore, I'll soon release a video tutorial on how to reverse engineer other features of your laptop and implement it in this project." it is incredible you were able to reverse engineer this and i am curious how you did it.

JafarAkhondali commented 1 year ago

Hi, Sorry I got few problems and couldn't record the video, but I'll definitely record it.
Also I'm not sure publishing a tutorial on reverse engineering Acer software is legal or not.
To get started, I used DotPeek to understand logic of PredatorSense(it was developed in C# so DotPeek is really useful here).
I Also Used WMI Explorer and Process manager to monitor and detect WMI changes(and play with PredatorSense at the same time). Once you know what WMI functions are used, and what are the parameters, you can play with them programmatically in Windows, but not Linux. Because Windows allows WMI calls in user-space, but in order to use WMI calls in Linux, you'll have to create a driver as a bridge to communicate with kernel-space.
Some challenges might be finding WMI ID and WMI Function Ids which can be detected by WMI Explorer or de-compiling ACPI table(WMI Explorer is much easier but it requires Windows).

JafarAkhondali commented 1 year ago

I just started recording the guide, it's my first time recording a tutorial in English so I hope this would work for https://www.youtube.com/watch?v=97-WNhUmoig&list=PLv2kA4LxAI4Dq2ic_hU9bdvxIzoz5SzBr