나는 드라이버를 쓰고 싶은 PS/2 터치 패드를 가지고있다. (필자는이 사람이 낯선 영역이기 때문에 나는 단지 웹 사용자이다.) 터치 패드는 Windows XP 드라이버와 함께 제공됩니다.이 드라이버는 탭 클릭을 활성화/비활성화하는 메시지를 보냅니다. 나는 그것이 보내는 메시지를 찾으려고 노력하고 있지만 시작하는 방법을 모르겠습니다. "Syser Debugger"와 같은 소프트웨어가 작동합니까? PS/2 버스로 보내는 메시지를 가로 채고 싶습니다.WinXP PS/2 터치 패드 드라이버를 리버스 엔지니어링하는 데 가장 좋은 도구는 무엇입니까?
답변
IDA 프로에서 PEBrowse 전문 대화를 시도, 리버스 엔지니어링하지, 디버깅합니다. 당신은 이것이 대부분의 웹 개발자에게 매우 큰 걸음을 내디뎠다는 것을 깨달아야합니다. 그러나 당신은 이미 그것을 알고 있었습니까?
필자는 실제로 드라이버 수준에서 작업해야하는지 결정하는 것으로 시작합니다. 종종 커널 수준입니다. 사용자 모드 수준은 사용자가 먼저보고 싶은 수준 일 수 있습니다. WinSpy 또는 다른 Windows 디버그 도구와 같은 도구를 사용하여 드라이버 소프트웨어에서 전달되는 messages과 제어판의 마우스 구성 애플릿을 찾으십시오. SendMessage()이라는 Windows API 함수를 사용하여 사용자 모드에서 응용 프로그램에 메시지를 보낼 수 있습니다.
장치 드라이버 개발을위한 첫 번째 중단 점은 Windows DDK docs과 OSR Online입니다.
내 터치 패드에서 작동하는 드라이버의 소스 코드가 이미 있기 때문에이 단계에서 보일 수있는 큰 단계는 아닙니다. 패드를 감지하여 패드 자체에서 감지되는 것처럼 보이는 "탭하여 클릭"을 비활성화하도록 수정해야합니다. – username
IDA Pro - 대화 형 디스어셈블러를 살펴보십시오. 그것은 놀라운 disassembler입니다.
당신은 당신이 '메시지'전송되는 것을 발견 할 경우에 많이 사용되지 않습니다 SmidgeonSoft
시냅스 터치 패드 사양을 읽는 것이 좋습니다. (노트북에 설치된 대부분의 터치 패드는 시냅틱 스입니다.) http://www.synaptics.com/decaf/utilities/ACF126.pdf 나는 당신이 찾고있는 기능을 찾을 것입니다. 적어도 당신은 무엇을 기대해야하는지 알 것이다.
터치 패드 드라이버는 사용자 모드에서 나오는 명령을이 PS/2 명령으로 "변환"합니다.
터치 패드 PS/2 드라이버의 특성을 모르지만 사용자 모드 패널이 드라이버와 통신하는 두 가지 주요 방법을 볼 수 있습니다. - 레지스트리에서 일부 키를 업데이트합니다 (실제로는 매우 일반적입니다) - 드라이버가 사용자 모드 앱이 열리고 특정 명령을 쓰는 대체 "채널"을 제공합니다.
기능을 설정/재설정 할 때 sysinternals의 프로세스 모니터를 사용하여 레지스트리 활동을 기록하려고 할 수 있습니다. 옵션 2에 관해서는 OSR에서 IRP 추적기를 사용해보고 패널과 드라이버 (양식 또는 IRP가 앞뒤로 이동하는) 사이에 특정 통신이 있는지 확인할 수 있습니다. 이 경우, 커널 프로그래밍 지식이 어느 정도 필요합니다. Windows 커널 디버거는 PS/2 드라이버에 대체 채널이 있는지 확인하는 데 유용 할 수 있습니다.
- 1. 설명서가없는 프로그램을 리버스 엔지니어링하는 방법
- 2. 최상위 계층 네트워크 프로토콜을 이해하고 리버스 엔지니어링하는 좋은 도구
- 3. PyGTK에서 시간을 입력하는 데 가장 좋은 도구는 무엇입니까
- 4. 추적 기능을 유지하는 가장 좋은 도구는 무엇입니까
- 5. EXIF 데이터를 얻는 가장 좋은 도구는 무엇입니까?
- 6. DLL/드라이버를 사용하는 가장 좋은 해결책은 무엇입니까?
- 7. NHibernate를위한 좋은 리버스 DB 엔지니어 툴은 무엇입니까?
- 8. 디바이스에서 가져온 바이너리 데이터 세트를 리버스 엔지니어링하는 방법은 무엇입니까?
- 9. 리눅스에서 터치 패드 액세스
- 10. iPhone의 터치 패드 작성자
- 11. 노트북의 프로그래밍 터치 패드
- 12. 공유 분석을위한 가장 좋은 방법/도구는 무엇입니까?
- 13. Linux에서 가장 좋은 UML 설계 도구는 무엇입니까?
- 14. VB에서 단위 테스트를위한 가장 좋은 도구는 무엇입니까?
- 15. Javascript 보안 감사를위한 가장 좋은 도구는 무엇입니까?
- 16. Windows에서 ODBC 드라이버를 디버깅하는 가장 좋은 방법
- 17. 리버스 엔지니어링을 학습하는 데 가장 유용한 도구
- 18. 복잡한 xml 변환을 만드는 데 가장 적합한 도구는 무엇입니까?
- 19. Android 블루투스 터치 패드 에뮬레이션
- 20. Gnome 프로젝트를 탐색하고 개발하는 데 가장 유용한 도구는 무엇입니까?
- 21. 메시지보기에 가장 적합한 도구는 무엇입니까?
- 22. asp.net mvc 코드를 프로파일 링하는 가장 좋은 도구는 무엇입니까?
- 23. 큰 상속 코드 조각을 그릴 수있는 가장 좋은 도구는 무엇입니까?
- 24. VBA에서 쿼리를 최적화하는 가장 좋은 도구는 무엇이며 그 이유는 무엇입니까?
- 25. 코드를 재정렬하는 데 가장 잘 맞는 도구는 무엇입니까?
- 26. XSL 파일을 만드는 데 가장 적합한 도구는 무엇입니까?
- 27. CVS 저장소의 변경 사항을 추적하는 데 가장 효과적인 도구는 무엇입니까?
- 28. Mac에서 C를 실행하고 컴파일하는 데 가장 적합한 도구는 무엇입니까?
- 29. 독립형 jQuery "터치"방법?
- 30. Java 확장 프로그램을 만드는 가장 좋은 도구는 무엇입니까?
간접적으로 만 관련되어 있기 때문에 여기에 남겨 두지 않을 수도 있습니다. 그러나 이것을 읽는 다른 사람들은 리버스 엔지니어링 * USB * 장치에 대한 이야기를 재미있게 볼 수 있습니다. http://www.youtube.com/watch?v= jMf55KVDPaE – username