프로젝트 소개
이 프로젝트는 한왕(Hanvon) PV60(Ai Pointer) 음성펜을 프레젠테이션용 페이지 넘김 장치에서 입력 장치로 개조한다. 장치의 실제 제조사는 선전 솽허우 기술(Shenzhen dosmono)이며, 한왕은 OEM 라벨 브랜드이다.
주요 기능: 위/아래 키를 짧게 누르면 페이지 넘김 또는 스크롤; 위 키를 길게 누르면 엔터, 아래 키를 길게 누르면 백스페이스; 음성 키를 한 번 누르면 마이크가 켜지고 입력기 음성 단축키(오른쪽 Alt)가 트리거되며, 다시 누르면 종료; 음성 키를 누르고 있으면 에어 마우스 모드(자이로스코프로 커서 제어) 진입; 트레이에 배터리 잔량 백분율, 연결 상태, 후킹 방식을 표시.
하드웨어는 USB 복합 장치(VID_0611 / PID_3001)로, USB Audio 마이크, HID 키보드, HID 마우스, 그리고 제조사 페이지 0xFF00의 33바이트 송수신 채널을 포함하며, 모든 키 입력과 설정은 제조사 페이지를 통해 이루어진다. 문서에는 키 코드와 배터리 보고 형식(밀리볼트 리틀엔디언, 공식 백분율 공식)이 기록되어 있으며, 펜은 깨어 있는 상태에서만 10초마다 배터리를 한 번 보고한다는 점도 설명한다.
구현은 Interception 키보드 필터 드라이버에 의존하여 펜의 키 입력을 깔끔하게 후킹하며, README는 이 드라이버가 온라인 게임 안티치트 시스템(ACE, Vanguard, VAC/EAC/BattlEye 등)에 의해 의심스러운 것으로 판정될 수 있다고 명확히 경고하며, 게임 전에 드라이버를 제거하고 재부팅할 것을 권장한다. 제거 후 프로그램은 저수준 키보드 훅 폴백 모드로 전환되며, 기능은 여전히 사용 가능하지만 길게 누르면 문자가 새어 나온다.
README에는 또한 여러 실측 결론이 기록되어 있다: 길게 누르기 동작은 펌웨어 매크로가 점유하고 있어 사용자 모드 훅으로는 깔끔하게 후킹할 수 없다; 제조사 DLL(kwma_x64.dll)은 프로세스 힙을 손상시키므로 독립 자식 프로세스로 격리하고 감시 재시작을 추가해야 한다; SDK는 절전 중인 펜에 대해 성공을 거짓 보고하므로 명령을 재전송하고 읽기 전용 요청으로 활성 상태를 탐지해야 한다; 일부 입력기는 주입 표시가 있는 SendInput 이벤트를 무시하므로 드라이버 계층에서 키를 보내야 하며, 가상 키를 스캔 코드로 변환할 때 MAPVK_VK_TO_VSC_EX를 사용해야 한다; 펌웨어 매크로는 설정으로 수정할 수 없으며 설정 쓰기는 휘발성이다.
저장소에는 메인 프로그램, 오디오 호스트 자식 프로세스, 여러 역설계 조사 도구(패킷 캡처, A/B 대조, 명령 열거, 활성 탐지 부하 테스트 등) 및 설계 문서가 포함되어 있다. 빌드에는 .NET 8 SDK가 필요하며, 자체 포함 단일 파일로 게시할 수 있다. 서드파티 구성 요소(제조사 DLL 및 Interception)는 저장소와 함께 배포되지 않으며 직접 준비해야 한다; 제조사 DLL이 없으면 음성 기능이 작동하지 않고 나머지 기능은 정상 작동한다. 경로는 현재 D:\pen-hack\로 하드코딩되어 있으며, 설정은 저장 후 즉시 적용된다. 라이선스는 GNU GPL v3이며, 자체 코드에만 적용된다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.