ClaudeoPK / HIClyde

HIClyde is a library provides kernel-level keyboard/mouse simulation, pretty easy to use
MIT License
4 stars 0 forks source link

I have a question. #1

Open k0kao opened 3 weeks ago

k0kao commented 3 weeks ago

Does the project support kernel-level keyboard/mouse input without installing Driver.sys, such as "CIassDD" or "lnterception"?

Looking at your code, I'm not sure I understand what you mean by "HIC_Load_Device_Routine() - This is a prerequisite for all other methods since HIClyde is working under its own driver(device)." When you do the HIC_Load_Device_routine, are you loading the Logitech keyboard I'm currently using so that it has the same effect as if I were to press the keyboard directly?

I apologize for my lack of English.

ClaudeoPK commented 3 weeks ago

Just like other alternative libraries you mentioned above, My library does support kernel-level keyboard/mouse input. However, It loads a driver.sys into the system in quite a different way. It maps the driver but does not load the driver. about this topic, you can find information regarding driver mappers. Thank you for your attention to my repository and hope it was helpful.

k0kao commented 3 weeks ago

Just like other alternative libraries you mentioned above, My library does support kernel-level keyboard/mouse input. However, It loads a driver.sys into the system in quite a different way. It maps the driver but does not load the driver. about this topic, you can find information regarding driver mappers. Thank you for your attention to my repository and hope it was helpful.

That's why I couldn't see the SYS being loaded even using a program like "Process Haker". Thanks for your answer.

I have one last question.

  1. if I load using HIC_Load_Device_Routine and then call "HIC_Verify_Device_State_Routine" without "HIC_Load_Device_Routine" after rebooting the computer, the return value will be 1. Does "HIC_Verify_Device_State_Routine" also map driver.sys the same as "HIC_Load_Device_Routine"?

  2. HIC_Send_Keyboard_Stroke_Routine works even if I do DisconnectKeyboard, why?

  3. is there any way to clean up the KeyCode? They are different from VK codes. I found the rest of the keycodes but not the ones for delete, Home, PageDwn, PageUp, ArrowKey(Left,Right,Up,Down).

Thanks for your answer :)

ClaudeoPK commented 3 weeks ago
  1. if I load using HIC_Load_Device_Routine and then call "HIC_Verify_Device_State_Routine" without "HIC_Load_Device_Routine" after rebooting the computer, the return value will be 1. Does "HIC_Verify_Device_State_Routine" also map driver.sys the same as "HIC_Load_Device_Routine"?
  2. HIC_Send_Keyboard_Stroke_Routine works even if I do DisconnectKeyboard, why?
  3. is there any way to clean up the KeyCode? They are different from VK codes. I found the rest of the keycodes but not the ones for delete, Home, PageDwn, PageUp, ArrowKey(Left,Right,Up,Down).

Thanks for your answer :)

  1. HIC_Verify_Device_State_Routine only checks whether the driver is currently loaded. in your case, maybe your desktop was not rebooted but asleep(idle, log-off) I guess.
  2. There is an automated reconnection routine for unintended keyboard/mouse unplug. you can turn it off by
    HIC_Toggle_Device_Manager_Routine(HICLYDE_DEVICE_MANAGER_AUTO_DETECT_OFF);
  3. t uses scancodes, not VK codes. You can call MapVirtualKeyA to find a scancode for normal buttons and some keys like you mentioned need to be called with HICLYDE_KEY_E0 flag.