드라이버 개발 해 주실 분 구합니다

   조회 2010  

▶ 주의사항 : 개인정보를 남기는것은 본인의 책임입니다. 사회통념에 어긋나는 구인. 구직은 강퇴에 이르는 지름길 입니다.

 

 현재 저는 파이썬으로 업무 자동화를 진행하고 있습니다. 자동화 특성상 키보드와 마우스 입력은 반드시 필요한데, 몇몇 프로그램들 (팀뷰어 등 원격 프로그램 및 기타)은 키보드 입력 이벤트를 막습니다. 그런데 또 사람이 키보드나 마우스로 조종해보면 잘 됩니다. 그것은 소프트웨어 입력 신호와 하드웨어 입력 신호가 다르기 때문이라고 합니다.

드라이버 수준에서 하드웨어 입력 신호를 보내면 해결되는 일이라고 해서, 중국에서 만든 가상 드라이버 dll파일을 깃허브에서 구해서 써보니까 잘 營윱求 그런데 라이센스 문제로 그 파일을 못 쓰게 됐습니다.


그래서 키보드와 마우스의 입력 신호를 컴퓨터로 보내줄 수 있는 드라이버를 만들어 주실 분을 구합니다. 드라이버는 dll파일로 파이썬에서 불러와서 제어할 수 있었으면 좋겠습니다. 정리하자면 키보드 입력 이벤트를 막는 원격 프로그램에서 드라이버가 직접 입력을 보내되 그 입력은 제가 제어할 수 있게끔..

말하자면 가상 키보드 가상 마우스 드라이버인 셈입니다.


도와주실 분은 쪽지 부탁드립니다

짧은글 일수록 신중하게.
Risingdream 11-15
원격에서 스크립트를 실행하는 방법으로 처리하면 안되나요?
     
넵 비용 문제 때문에 어렵습니다
송진현 11-15
아두이노 UNO장치에 uart데이터 송신된걸 keyBoard로 echo하도록 펌업하고

그 상태에서 아두이노 HID를 keyBoard로 변경한뒤

cp2102같은 uart같은 장치로 통신하면 아마.. 가능하지 않을 꼼수를 생각해봅니다..

인터넷에서 레오파드? 그녀석만 된다고 하지만 잘 찾아보면 펌업으로 uNO도 가능합니다.
     
무아 11-18
레오나르도나 우노나 가격차이는 그다지 나지않으니까 레오나르도 쓰는게 간편할 거 같네요.
그런데 그게 키보드 이벤트나 마우스 클릭 이벤트 같은 건 가능하겠지만 특정 좌표로 마우스 포인트를 옮겨라 같은 것은 좀 어렵지 않을까요?
          
송진현 11-18
아마도 현 좌표값을 읽고 uart로 쏴서 아두이노가 마우스가 상대적 위치를 계산해서 가능하지 않을까 생각해봅니다..
     
조언 감사합니다. 사실 아두이노는 처음부터 염두에 두고 있었는데, 이미 잘 돌아가는 dll파일이 있는 상황에서 다른거 또 공부하고 시간 쓰고 이럴 여력이 없었습니다. 아직까지도 염두에 두고는 있습니다.
pilsuni 11-16
CodeSign 이슈입니다. 친숙한 말로 인증서를 이용한 드라이버파일 Sign(증명) 관련 이슈입니다.
이게 드라이버 파일만 체크하는 경우도 있고, 드라이버를 사용하는 프로그램까지 체크하는 케이스가 존재합니다.

2007년 네트워크 드라이버 인증서가 1년에 500만냥 했는데,,, 키보드는 얼마나 할지 모르겠네요 ㅎ
제 생각에 키보드 드라이버 및 프로그램 인증서가 존재하여야 안정적으로 서비스가 가능할 것으로 예상됩니다.
(인증서는 개인에게는 발급되지 않으며 기업이 인증기관에 발급 요청하여야 하고, 경우에 따라 발급을 거부할 수도 있습니다.)
     
pilsuni 11-16
오픈 라이브러리가 코드 싸인이 되지 않아 제공되는 경우도 있는듯 하더군요..... 노턴 360이 바이러스 의심이라며 납치(보관소 이동)을 하기도 합니다.
오늘 아침에 darknet 라이브러리를 이용한 프로그램을 2개 납치하더군요... 복구를 선택하기는 했는데, 코드 싸인이 되어 있지 않기 때문에 또 납치 할꺼라는 ㅎㅎㅎ(코드싸인은 프로그램 개발 후, 업체에서 정식으로 서비스하는 프로그램이라고 증명하는 것입니다.)
          
씨디공장 11-16
과거 글을 보니 업무라는게 게임 매크로를 뜻하는걸로 보입니다.
원격에서 동작 안하는건 게임가드 같은 보안 프로그램 때문일겁니다.
게임 클라이언트 영역에서는 키보드/마우스 제어를 못하게 막았겠죠.
말씀하신 그 이슈로 막는건 아닐겁니다.

저건 드라이버를 만들어도 매주 패치를 해야 되는 상황이 벌어질 확률이 높아서 수지타산이 안맞습니다.
드라이버가 만능은 아니고, 다른 방법으로 해결하는게 충분히 있으니 여기에 목메지 마시길...
     
지금 pilsuni님께서 해주신 말씀을, 제 주변에 다른 개발자가 똑같이 말했었는데,

가상 하드웨어 드라이버 제가 지금 해결하려는 이 파일로 멀쩡히 잘, 그리고 가볍게 돌아가는거 보고

소스가 있으면 좀 더 살펴보겠다고 했습니다만, 실제로 쓰고 있는 파일은 제작자가 갑자기 깃허브에서 글 내리고, 단톡방도 없애고, 서버도 슬슬 자주 내리고,
무엇보다 중국 내 공식 홈페이지 등등 자취 감추고 있더군요.

그래서 이와 비슷한 소스를 깃허브에서 제가 찾은걸 보여줘서 검토해달라고 부탁해놨는데, 필터 드라이버라는거 같습니다.

먼저 찾아서 잘 쓰던것 - 소스 못 구함
새로 찾은 것 - 필터 드라이버로써 조만간 막힐 수 있음

이런 상황인데.. 드라이버 인증서 없이도 잘 쓸 수 있는, 무언가 방법이 있는거 같습니다. 다만 알 수가 없을 뿐..

제가 이 글을 올릴 당시엔 새로 드라이버를 하나 개발하려고 구인을 한창 하던 때였는데 그 사이 정말 정신없이 알아보고 하다가 결국

지금 쓰고 있는 드라이버의 서버인증을 스킵하는 방향으로 다시 알아보는 중입니다. 현재 상황은 그렇고.. 저도 제가 무슨 말을 했는지
모르겠군요 좀 횡설수설 했습니다만 아무튼 댓글 감사합니다.
HaeJuK 11-17
DirectInput 을 이용하는 게임 및 프로그램들은 WINAPI로 Send Post Message 나 SendInput KdbEvent 등 으로 보낼 수가 없습니다.
드라이버 단에서 보내야 되는데
1. 키보드 보안 드라이버가 동작 중인 게임은 당연히 이것도 차단 합니다.
2. 드라이버는 디지털 코드 싸인이 되어야 윈도우가 로드 할 수 됩니다.
    결국 개인이 만들어서 하려면 윈도우를 테스트 모드로 부팅해야 되는데 게임보안 관련 솔루션이 도입되어 있다면 감지 후 차단 합니다.
3. 우선 디아렉트 X 게임 말고는 상위 WINAPI로 보통 들어 갑니다. 그걸 먼저 테스트 해보심이 좋을듯 합니다.
     
넵 감사합니다.
스카이크 11-19
그냥 송진현님 말씀처럼 간단히 atmel이나 PIC 계열 마이크로프로세서를 이용해서 마우스 키보드 USB HID 장치를 만들어 신호를 주시는게
좋습니다.
HID 장치로 잡히기 때문에 드라이버 문제가 전혀 발생하지 않습니다. 골아프게 드라이버니 인증서니 신경 쓸거 없이 그냥 프리패스!~! 된다는 말이죠.

예전에 어떤 프로그램에서 숫자를 입력하고 엔터를 치는 기능만 하는 부분을 PIC마이크로칩으로 간단히 해결 한 적이 있습니다.

더 좋은 점은 이게 하드웨어 락 역활을 할 수 있다는 겁니다. 이거 안끼우면 프로그램이 정상 동작 하지 않으니까요.
     
여러 개발자님들의 말씀이나, 송진현님, 스카이크님의 말씀에 의하면 아두이노를 이용해서 실제로 하드웨어에서 신호를 보내는게 가장 확실한 방법이라고 생각됩니다.

다만, 이제부터 아두이노를 배우고, 또 아두이노와 파이썬 사이의 통신도 배우고 하는 문제를 떠나서

이런 걱정 거리도 있습니다. 과거에 모 회사에서 사용자가 설정해놓은 대로 움직이는 매크로 장치를 출시했는데, 실제로 하드웨어 장치이기 때문에

제대로 작동했었습니다. 다만, 나중에는 그 장치의 "이름"을 탐지해서 그 장치가 컴퓨터에 연결 되어 있으면 아예 자기네 프로그램을 켜지 않는 등

단지 입력이 안되는거 이상의 문제가 생기게 해놓더군요. 그 장치 이름을 모 회사에서 업데이트를 통해 바꿔주면 또 제대로 돌아가고 그랬습니다.

그런데 이 "이름" 이라는게 장치 관리자에서는 업데이트를 통해 이름을 바꾸기 전이나 후나 composite usb device로 항상 동일한데, 어디서 보면 또 samsung usb device 이런 식으로 매번 바뀌는 부분도 있더군요. 장치의 "이름" 이라는게 어디에 있는 어떤 이름이 탐지되는건지 모르겠는 상황에서, 구글로 검색하려고 해도 이게 "장치 이름" 이런 식으로 치면 뭐.. 당연하지만 엉뚱한 내용만 잔뜩 나오고
누군가에게 물어보려고 해도 개발자님들이야 기술은 잘 아시지만 이런 이슈는 아예 처음이시다 보니 저한테 조언해줄 수 있는 사람도 없더군요.

그래서 저는 그 아두이노 장치의 이름을 적절히 제가 바꿔줄 수 있다면 정말 깔끔하게 잘 쓸 수 있을 텐데.. 어디에 있는 어떤 이름이 탐지되는건지, 하나의 장치가 이름이 몇개나 있는건지 모르겠습니다.
이런 부분도 좀 걱정되긴 하는데, 혹시 스카이크님께서 짐작가시는 바가 있으면 조언 부탁드립니다.
          
송진현 11-21
HID하나당 1개의 장치로 감지하는 것으로 알고 있습니다.

윈도우에서 HID관련하여 뭔가를 해본적이 없어서 잘 모르겠지만

리눅스에서 ISUSB명령어 HID볼 수 있어요.
               
두분 다 감사합니다 ~
          
pilsuni 11-22
음 hid descriptor 까지 체크 가능하겠군요.
저도 관심 있는 분야라, 맹그러서 사용하기는 하는데...
descriptor 를 동적으로 변환 가능한지 한번 트라이 해봐야 겠네요.
구글링을 열심히 해봐야 하나 ㅎㅎ
아니면 디스크립터를 엉터리로 복제를 ㅡㅡ;;;
               
감사합니다
                    
지금 status가 어떻게 되는지요?

윈도우용 Input Device Driver  (USB Joystick)를 특히 특정 개발 Workbench 에서 만 작동하도록 c로 개발 경험 있습니다.

윈도우 장치관리자에서 시스템 글로벌 스콥의 드라이버로 등록을 시키는것도 옵션이겠지만
그냥 특정 소프트웨어에서만 적용되게끔 만드는것도 나쁘지 않습니다.

또는 위에 분들이 언급한것과 거의 동일 하다고 해야하나요?
BPI-Nano 라는 바나나파이 보드가 있습니다. 라즈베리파이Nano와 동일 싸이즈이구요. OTG인풋이 있으니 거기에 USB로 연결하고 바나나파이 네노에서 위에 언급된 하드웨어 역할을 해도 되긴됩니다.

하지만 저는 첫번째 옵션이 더 좋다고 생각하는데요. 굳이 없어도 되는 하드웨어를 꼭 물리적으로 물려야 하는 이유가 있을까요? 이런 더미드라이버는 충분이 제작이 가능하고 또 꼭 디바이스메니져에 등록이 되어야만 드라이버가 아닌데요.




Job
제목Page 1/3
2014-04   2797538   회원K
2014-05   3100560   정은준1
11-22   881   허수아비
11-13   2011   의롭게살리라
11-02   2016   미니아웃
10-09   3338   이병영
10-05   3595   프로시아
10-05   2979   jobnet
09-18   4027   jobnet
09-07   4301   qualia
09-01   3819   안규민
08-31   930   jobnet
07-27   6310   나파이강승훈
07-11   6773   황진우
07-10   2762   차넷컴퓨터
07-09   4786   치커리
07-09   4254   박현
06-25   5537   구창모
06-22   2618   jobnet
06-21   4343   황진우
06-04   5395   stellar
05-31   5496   김영기대전