Lasiyan
Active

메이플스토리 필터키 프로그램

윈도우 환경에서 필터키를 적용하는 프로그램


지원 환경

  • 64bit Windows 10 이상의 버전
  • 한국어, English, 日本語 지원
  • 일부 환경에서 VC++ 재배포가 필요할 수 있음 (메이플스토리 설치 시 자동 설치됨)

사용자 가이드

프로그램은 어떠한 정보도 수집하지 않으며, 네트워크를 사용하지 않습니다.
따라서 관리자 권한을 사용하여도 안전합니다.

기본적으로 끄기다른 프리셋 버튼들을 클릭하여 동작합니다.

각 UI에 마우스를 올리면 잠시 후 상세 설명이 나타납니다.

권장 옵션(★)을 활성화하면 더욱 편리하게 사용 가능합니다.

  • 프로그램이 종료되면 자동으로 필터키가 꺼지게 만들어줍니다.
  • 더블클릭/우클릭 시 필터키가 꺼져 상점 구매 실수를 방지합니다.
  • 게임 중 단축키를 통해 편하게 필터키 ON/OFF가 가능합니다.

끄기 버튼을 누르고 Ctrl+Alt+F12를 누르면 고급 옵션이 나타납니다.

사용자 가이드 (고급)

해당 문서는 KR 사용자를 대상으로 작성되었습니다.
해외 사용자는 각 UI에 마우스를 올리면 나타나는 툴팁을 참고 바랍니다.

프리셋 이름 수정

프리셋은 끄기, 그리고 기본 값인 켜기, 프리셋 2와 같은 각 버튼을 의미합니다.

프리셋은 Ctrl 키를 누른 상태에서 버튼 클릭을 통해 각 이름을 변경할 수 있습니다.

단, 끄기는 고정된 프리셋(0번)이므로 수정하지 못 하도록 제한되었습니다.

단축키로 프리셋 켜기/끄기

단축키를 통해 끄기 기능과 마지막으로 활성화했던 프리셋을 전환합니다 (토글 방식). 활성화했던 프리셋이 없으면 기본값으로 첫 번째 프리셋인 켜기가 사용됩니다.

※ 단축키 지정 시 메이플에서 사용되는 기본 키(예를들어 Enter)를 사용하면 해당 기능이 동작하지 않습니다.

마찬가지로 자신의 키세팅과 중복되는 키 바인딩을 단축키로 사용하면 스킬이 나가지 않는 것과 같이 기능이 동작하지 않습니다.

프리셋별 단축키 지정하기

해당 옵션을 체크하고 Alt키를 누르면 각 프리셋 버튼에 단축키를 지정할 수 있습니다.

대부분의 사용자는 토글 방식을 권장하지만, 직업 별로 서로 다른 여러 프리셋을 사용하는 유저는 해당 옵션을 사용할 수 있습니다.

ESC/Enter를 누르면 필터키 끄기

해당 기능은 현재 테스트 중이며, 안정성이 확인되면 배포 예정입니다.

ESC 또는 Enter를 누르면 필터키를 끌 수 있습니다.

채팅을 자주 하는 사용자에게 유용할 수 있습니다. 다만 해당 기능은 켜기까지 자동으로 지원하지 않으므로,

단축키를 통한 프리셋 전환 기능과 함께 사용하길 권장드립니다.

ESC/Enter를 눌러도 가끔 프리셋이 늦게 꺼져요

Enter(또는 ESC) 키가 입력되면 메이플스토리와 이 프로그램이 각각 그 입력을 받습니다.

이 프로그램은 키 입력 즉시 필터키를 끄도록(이벤트 방식) 설계되어 있지만, Windows의 입력 처리·스케줄링 상황에 따라 이 프로그램이 이벤트를 처리하는 타이밍이 간헐적으로 지연될 수 있습니다.

그 사이 메이플스토리가 먼저 Enter를 인식하면 프리셋이 늦게 꺼진 것처럼 보입니다.

이를 완전히 없애려면 메이플스토리가 입력을 받기 전에 이 프로그램이 키를 가로채는(후킹) 방식이 필요합니다.

하지만 이는 키로거 등에서 쓰는 기법이라 게임 보안 프로그램이 위험 행위로 차단·탐지할 수 있어 의도적으로 사용하지 않았습니다. (또한 보호된 게임 안에서는 후킹 자체가 막혀 오히려 동작하지 않을 수 있습니다.)

마우스를 움직이면 필터키를 종료하기

이 옵션을 활성화하면 사용자가 마우스를 일정 거리 이상 움직일 때 필터키가 꺼집니다.

이 옵션을 만든 의도는 팬텀 시드링 스위칭을 고려하여 만들었으나 인벤토리 열기가 불편하고, 특정 직업(ex. 신궁)에서 불편하다는 의견이 있었습니다.

가능한 단축키 방식 사용을 권장드립니다.

필터키를 설정할 때 제어판 동기화

일반적으로 대부분의 윈도우 설정은 그 값이 레지스트리에 저장됩니다. 이 프로그램 역시 레지스트리를 수정합니다.

이 과정에서 윈도우 설정이 그 값을 읽어오려면 설정(이것도 일종의 프로그램이다)이 재시작 되어야 합니다.

이 옵션을 키면 우리가 FK(현재 프로그램)에서 필터키 값을 수정하고 윈도우에 수정되었음을 알립니다. 그럼 윈도우는 새로운 값을 조회하여 자신의 내용을 업데이트합니다.

대부분의 사용자는 이 기능이 필요하지 않으나, 일부 사용자가 윈도우 설정과 이 프로그램을 동시에 사용하는 경우가 있어 추가되었습니다.

그러나 동기화 과정 자체도 시간이 소요되고 특히 단축키를 통한 필터키 전환 시 간헐적으로 늦은 지연이 발생하는 경우가 있습니다.

프리셋 상태 오버레이

설정된 위치에 필터키를 키거나 끌 때 오버레이를 출력합니다.

저는 필터키를 쓰는 과정에서 현재 이게 켜진 것인지 아닌지를 판단하기 위해 오버레이를 확인합니다. 보통 프로그램 자체는 트레이에 넣고 따로 조작하지 않습니다.

장기간 사용을 통해 안정성이 검증된 기능이며 중이며 OSD 자체가 큰 리소스를 사용하지 않으므로 사용하는 것을 권장합니다.

특정 프로세스에서 벗어나면 필터키 종료

간혹 2개 이상의 게임을 하거나 필터키가 켜진 상태에서 유튜브 공략을 보는 경우가 있었습니다.

이 옵션을 사용하면 필터키가 켜진 상태에서 메이플스토리를 즐기다가 다른 게임을 클릭(전환) 시 필터키가 자동으로 꺼집니다.

그리고나서 다시 메이플스토리로 전환되면 이전 사용하던 필터키가 다시 활성화됩니다.

프로스세에 게임 실행파일을 넣어주시면 됩니다. 보통 경로를 이동하지 않았으면 기본 경로는 C:\Nexon\Maple\MapleStory.exe 입니다.

전체화면 게임 안에서 단축키 기능 활성화

메이플스토리가 전체화면으로 실행되면 온전한 성능 사용을 위해 여러 리소스를 독점합니다. 이 과정에서 관리자 권한이 필요하며, 보통 관리자 권한으로 프로그램을 활성화 시 HotKey 방식이 정상 동작합니다.

그러나 간혹 해당 기능이 동작하지 않는 사용자를 위하여 제공된 옵션으로, HotKey 대신 단축키를 이 직접 프로그램에서 읽어들여 처리하도록 로직을 변경합니다.

HotKey는 윈도우에서 판단해서 필요한 정보만 제한적으로 제공, RawInput은 전체 정보에서 내가 판단하여 필요한 정보만 수집

대부분의 사용자는 사용할 일이 없습니다.

이 기능의 TMI가 궁금하다면?

해당 기능이 활성화되면 단축키 사용 시, RegisterHotKey API 대신 RegisterRawInputDevices를 사용합니다.

RegisterHotKey미리 등록한 특정 조합에 대해서만 윈도우가 키 스트림을 판단하여 이벤트(입력 여부)를 프로그램에 전달합니다.

반면 RegisterRawInputDevices는 키보드에서 누르는 키 자체를 프로그램이 받을 수 있도록 등록하는 방식입니다.

전자의 경우 일반적으로 단축키를 사용하는 많은 프로그램들에서 사용되는 방식이며 윈도우 자체에서도 권장하는 방식입니다.

후자의 경우 역시 공식적인 API를 통해 구현되었고 특정 프로그램의 입력을 가로채는 후킹 방식과 거리는 멀지만, 일부 안티치트 프로그램 또는 보안 프로그램에서 해당 함수를 키로거 함수로 판단하고 기능을 제한할 수 있습니다.

메이플의 경우, 비-관리자 권한과 해당 옵션을 사용하면 기능이 동작하지 않으며, 이는 넥슨 보안프로그램이 비-관리자 프로그램에서 RegisterRawInputDevices 호출을 제한합니다.

이는 메이플스토리는 실행 시 관리자 권한으로 실행되며, 필터키 프로그램은 비-관리자 권한으로 실행될 경우 윈도우(OS)에서 키스트림을 읽는데 제한이 발생할 수 있습니다.

반드시 확인하세요

필터키 프로그램은 OSP(오픈 소스 프로젝트)로 시작한 만큼, 수정, 사용자 간 공유되어 여러 종류의 프로그램들이 인터넷 상에 존재합니다.

그러나 필터키 특성 상 키보드 입력을 직접 제어하는 경우가 많습니다.

따라서 반드시 사용 중인 프로그램이 외부 서버와 네트워크 통신을 하는지 확인하여야 합니다.

다행히 윈도우는 작업관리자 프로세스 탭에서 해당 기능을 제공합니다.

프로그램 사용 중 해당 프로그램의 네트워크 사용량이 변됭되는지 확인해야 합니다.

만약 외부에서 이 프로그램을 다운받았다면 lasiyan.com/verify 에서 파일을 검증하세요

주의 사항

  • 본 프로그램은 접근성(필터키) 시스템 설정을 직접 변경하므로, 보안 정책이 엄격한 환경에서는 일부 또는 전체 기능이 제한될 수 있습니다.
  • 전역 단축키 등록, 백그라운드 입력 감지 등은 안티치트·EDR·백신이 민감하게 판단할 수 있어 경고/기능 제한이 발생할 수 있습니다.
  • 단축키가 게임 키세팅이나 다른 프로그램과 겹치면 해당 기능이 동작하지 않을 수 있습니다.
  • 서명되지 않은 빌드는 SmartScreen에서 알 수 없는 게시자로 표시될 수 있습니다.

보안/운영 주의사항 상세보기

시스템 설정 변경 관련

  • 본 프로그램은 Windows 필터키 설정을 적용하기 위해 SystemParametersInfo(SPI_SETFILTERKEYS)를 호출합니다.
  • 따라서 회사 보안 정책, 공용 PC 정책, 게임 보안 정책 등에서 시스템 설정 변경 행위를 제한하는 경우 기능 일부 또는 전체가 차단될 수 있습니다.

게임/뱅킹/보안 제품 경고 가능성

  • 게임 보안(안티치트), 뱅킹 보안 모듈, EDR/백신 제품은 다음 항목을 민감하게 판단할 수 있습니다.
    • 전역 단축키 등록
    • 백그라운드 입력 상태 감지
    • 시스템 접근성 설정 변경
    • 자동 실행 레지스트리 등록
    • 외부 프로세스 이름 조회
  • 위 판단에 따라 경고 팝업, 기능 제한, 앱 종료가 발생할 수 있습니다.
  • 특히 독점 전체화면 + 보안 모듈 환경에서는 비관리자 권한에서 Raw Input 기반 단축키가 제한될 수 있습니다.
  • 이 경우 앱에서 관리자 권한 재실행을 안내할 수 있으며, 재실행 시 UAC 확인 창이 표시됩니다.

전역 단축키 관련

  • 기본 단축키 기능은 Windows RegisterHotKey / UnregisterHotKey로 구현됩니다.
  • 전체화면 게임 안에서 단축키 기능 활성화 옵션을 켠 경우, 단축키 경로가 Raw Input (RegisterRawInputDevices + WM_INPUT)으로 전환됩니다.
  • 아래 옵션이 켜진 경우에만 단축키 등록을 시도합니다.
    • 단축키를 통한 프리셋 변경 기능 사용
    • 단축키를 통한 프리셋 토글 기능 활성화
  • 해당 옵션을 끄면 관련 단축키 등록/호출 루틴은 수행되지 않습니다.
  • 단축키가 다른 프로그램과 겹치면 동작하지 않을 수 있습니다.

    예: MapleStory에서 F1에 스킬을 올리고 토글키도 F1로 설정하면 스킬이 나가지 않을 수 있음

백그라운드 입력 감지 관련

  • 백그라운드에서 ESC / Enter 입력 시 필터키 끄기 기능은 RawInput(RegisterRawInputDevices + WM_INPUT) 이벤트로 해당 키 입력을 감지해 동작하며, 입력을 가로채지 않고 관찰만 하는 비침습 방식입니다.
  • 마우스 기반 OFF 기능(더블클릭/이동 감지)은 백그라운드 상태에서 마우스 입력 상태를 주기적으로 확인합니다.
  • 관련 옵션을 끄면 해당 감지 루틴은 비활성화됩니다.

자동 실행 관련

  • 윈도우 시작 시 자동 실행 옵션은 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run에 현재 exe 경로를 등록합니다.
  • 옵션을 끄면 해당 레지스트리 값이 삭제됩니다.
  • exe 파일이 이동/삭제된 경우, Windows는 해당 항목을 무시하며 부팅이나 다른 작업에 영향을 주지 않습니다.

프로세스 포커스 감지 관련

  • 특정 프로세스 전환 시 프리셋 끄기 옵션은 포그라운드 윈도우의 프로세스 이름을 주기적으로 확인합니다.
  • PROCESS_QUERY_LIMITED_INFORMATION 권한으로 QueryFullProcessImageName을 호출하며, 대상 프로세스의 메모리를 읽거나 조작하지 않습니다.
  • 관련 옵션을 끄면 해당 감지 루틴은 비활성화됩니다.

전역 단축키 / 백그라운드 입력 감지 / 프로세스 감지 기능은 해당 옵션을 켠 경우에만 동작합니다.

배포 신뢰(서명/SmartScreen)

  • SmartScreen 및 일부 백신의 경고 여부는 코드 서명 여부, 배포 이력, 사용자 평판에 영향을 받습니다.
  • 코드 서명이 없는 빌드는 알 수 없는 게시자로 표시될 수 있습니다.

권한 관련

  • 기본 실행 권한은 asInvoker이며, 관리자 권한 자동 상승을 요구하지 않습니다.
  • 다만 보안 정책 또는 시스템 정책에 따라 관리자 권한 실행이 필요할 수 있습니다.
  • 관리자 권한 실행 시 메인 창 제목에 (관리자 모드)가 표시됩니다.
  • 앱 내부 재실행(관리자 권한 요청 포함) 시 ShellExecute를 사용하며, 성공 시 기존 인스턴스를 종료합니다.
  • 단일 인스턴스 동작은 일반 실행 기준으로 유지되며, 앱 내부 재실행 경로는 재시작 인자를 통해 예외 처리됩니다.
  • 관리자 권한으로 실행된 인스턴스도 기존 인스턴스 활성화 메시지를 수신할 수 있도록 예외 처리하여, 중복 실행 시 기존 창을 전면으로 복원하도록 보완했습니다.

설정 저장 범위

  • 설정은 HKEY_CURRENT_USER\Software\FilterKeyHelper에 저장됩니다.
  • 즉, 현재 로그인한 사용자 계정 기준으로만 적용되며, 다른 사용자 계정/다른 PC와 자동 동기화되지 않습니다.

동기화 옵션 관련

  • 필터키를 설정할 때 제어판과 동기화 옵션을 켜면 시스템 변경 알림(SPIF_SENDCHANGE)을 추가로 전달합니다.
  • 환경에 따라 순간 입력 지연, UI 깜빡임 등 체감이 발생할 수 있습니다.

라이선스 / 저작권

  • 본 프로젝트의 저작권은 Lasiyan에게 있습니다.
  • 본 소프트웨어의 소스 코드는 GPL-3.0 라이선스로 공개되어 있습니다.
  • 소스를 수정·재가공하여 배포하는 경우, 파생물의 소스 코드 전체를 동일 라이선스(GPL-3.0)로 공개해야 합니다.
  • 소스 비공개 배포 또는 상업적 재배포가 필요한 경우, 사전에 서면 허가를 받아야 합니다
  • 자세한 조건은 LICENSE 문서를 참고하세요.

댓글