콘텐츠로 건너뛰기

글로벌 후킹이라

얼마전 친구가 재미있는 프로그램을 보여주는 바람에 거기에 탄력이 붙어서 저도 비슷한 프로그램을 만들어 보려고 어제, 오늘 삽질을 좀 했습니다.

프로그램은 스페셜포스라는 게임의 로그인을 빨리 해 주게 만들어 주는 프로그램인데요. 원리는 무척 간단합니다. 프로그램과 스페셜포스 클라이언트를 띄워 놓습니다. 그리고 로그인 도우미 프로그램은 F3키로 작동을 시작하고 또 다른 특정 키로 동작을 멈추게 됩니다.

이 프로그램의 동작은 스페셜포스에 들어가려는 방을 클릭하고 F3키를 눌러주면 마지막에 마우스가 클릭했던 좌표를 기억해 그 좌표로 연속적인 더블클릭을 하게 만드는 일종의 매크로 프로그램입니다. 방이 가득 차 있으면 다른 사람이 빠져 나갈 때 까지 보통 마구 클릭을 하게 되는데요. 그걸 매크로가 대신 해 주게 만드는 것이지요^^ㅋ

원리가 간단해서 쉽게 구현할 수 있을 줄 알았는데, 좀처럼 쉽지가 않네요. 일단 다른 언어들 보다 자바가 익숙하니 자바로 만들어 보려 했었는데, 이곳저곳에서 관련 자료를 찾아 다니다 알게 된 사실이 자바의 VM에서는 글로벌 후킹을 지원하지 않는다고 하는군요. 스페셜포스 클라이언트 안에서의 마우스가 클릭한 좌표를 알아내야 하는데, 자바로 만든 폼 외의 이벤트 처리가 불가능 하니 마우스좌표를 후킹해서 알아내야 하는 것 같은데 불가능 한 것 같습니다…;; JNI를 사용하면 가능하다고는 하는데, 제가 다룰 줄을 몰라 서요…OTL 좌표만 알아내면 클릭 이벤트는 Robot클래스를 이용하면 대강 구현이 가능할 것 같은 느낌 이었거든요.

후크
후크

혹시 다른 언어로라도 쉬운 방법으로 만들 수 있는 정보를 아시는 분은 좀 가르침을 부탁드리겠습니다. 마음을 바꿔서 델파이나 비쥬얼베이직으로 만들어 보려고 잠시 휴식하고 있습니다.

그냥 재미삼아 만들어 보려 했다가 완죤히 탄력이 붙어버렸습니다. 후킹기술 같은게 필요하다는 생각은 못하고 시작 했었다가 좌절중입니다. 한번 만들어 보면서 조금 알아두면 도움이 될 것 같다는 생각까지 하게 되니 이거 멈출 수가 없네요.

이상으로 싸인펜의 삽질 뉴스입니다..ㅜㅜ


8 개의 댓글

  1. 저도 최근에… 기억속에서 사라졌던 게임 ‘아크로드’를 다시 하고 있는데 아크로드는 윈도우 모드를 지원하지 않더군요. 헌데…@_@ 아크로드를 윈도우 모드로 돌려주는 녀석이 있길래 열심히 활용하고 있습니다.^^ 그녀석도 글로벌 후킹…

    1. 좀 연구해 볼 값어치가 있는 것 같습니다..음흐흐흐~
      또 다시 새롭게 떠오른 아이디어가 있어서, 가능한지 우선 테스트를 좀 해 봐야겠습니다.
      구지 필요하다면 글로벌 후킹이 아니더라도 비슷하게 사용할 수 있을 법한것들에 대한 자료를 좀 찾아 냈거든요^^ㅋ

      조그마한 툴이지만, 이런것들 만들어 내는 사람들을 보면 참 재주가 좋은것 같습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다