- Removed the loop and thread for reading key states; now the client handles this, as the driver maps the address to user mode.
- Added a function to retrieve the VAD root offset.
- Refactored various parts of the code for clarity and performance.
- Reorganization of the CLI logic to separate responsibilities and simplify the structure.
- Modularization of functionalities in dedicated structs, promoting encapsulation and reuse.
- Implementation of lazy initialization to avoid unnecessary instance creation.
- Reduced code duplication with the use of auxiliary functions.
- Improved overall readability of the code, making it easier to maintain and scalable.