본문으로 건너뛰기

Macro — 매크로 소프트웨어·온보드 ​

마우스·키보드 벤더 소프트웨어의 매크로 바인딩과 장치 내장 메모리(온보드, 용어집) 프로필을 검사한다. 금지 여부는 조직 규칙이 결정하며, SS는 "무엇이 있는가"를 기록한다.

왜 중요한가 ​

Prefetch·USN은 OS가 자동으로 남기는 흔적이다. 매크로는 사용자가 의도적으로 설정한 기능이므로 존재 자체가 위반은 아니다. 게이머 상당수가 MMO 편의, 장애 보조, 키 리매핑 같은 목적으로 매크로를 쓰고, 금지 범위는 조직·대회 규칙마다 다르다.

그래도 검사하는 이유는 두 가지다. 첫째, 대회 규칙이 금지하는 형태(자동 좌클릭·리코일 보정 같은 스크립트)는 실제로 벤더 소프트웨어와 온보드 메모리로 만들어진다. 둘째, 소프트웨어를 지워도 장치 내장 메모리에 프로필이 남는다. SW 뷰가 깨끗한 것과 장치가 깨끗한 것은 별개다.

매크로 검사가 어려운 이유도 여기 있다. 존재가 곧 위반이 아니고, SW와 온보드는 별개이며, 설정 파일의 수정 시각도 위장될 수 있다. 이 카드는 판정을 내리지 않고 "무엇이 어떤 형태로 존재하는가"를 기록한다.

무엇인가 ​

항목설명
대상Logitech G HUB·LGS, Razer Synapse, Corsair iCUE, SteelSeries GG 등 벤더 소프트웨어의 매크로·바인딩 설정
온보드마우스·키보드 내장 메모리에 저장된 프로필. 벤더 SW 없이도 동작한다
스크립트Logitech G HUB는 프로필에 Lua 스크립트를 붙이는 스크립팅 기능이 있다. 스크립트는 마우스 버튼 입력(PressMouseButton)과 상대 이동(MoveMouseRelative)을 시뮬레이션할 수 있어 연사·리코일 보정 같은 매크로를 만들 수 있다. 벤더 SW 안에서 도는 기능이라 이 카드가 다룬다
별도 클래스AutoHotkey·Python 스크립트 같은 범용 스크립트 호스트와 전용 오토클리커 소프트웨어는 벤더 매크로가 아니다. 독립 exe는 R3-PF·BAM·PROC로, 게임 프로세스 안에 인젝티드(프로세스 내부에 주입된, 용어집)된 형태는 R3-PROC·R3-MEM으로 취급한다
한계경로·UI·저장 형식이 벤더와 버전에 따라 다르다. 펌웨어 플래싱·하드웨어 리버스 엔지니어링은 하지 않는다

SS에서 어떻게 쓰나 ​

온보드 매크로: 2회 테스트가 필수다 ​

온보드 매크로는 장치 내부 메모리에 살기 때문에 소프트웨어 삭제·종료와 무관하게 동작한다. 파일이 아니라 입력 불일치로 판별한다.

  1. 모델 식별: 장치 관리자의 하드웨어 ID, 설정 앱, USBDeview, 사용자 질문으로 정확한 모델을 기록한다. 온보드 지원 여부가 모델마다 다르다.
  2. 버튼 테스터: cpstest.org/mouse-test·cps-check.com 같은 온라인 버튼 테스터를 열고 모든 물리 버튼을 순서대로 누른다.
  3. 불일치 탐지: Forward·Fire 같은 버튼이 일관되게 Left Click이나 다른 입력으로 등록되면 리매핑·매크로 의심이다.
  4. 2회 테스트 (필수): (1) G HUB·Synapse 등 벤더 SW가 열린 상태에서 테스트 → (2) SW를 완전히 종료(트레이 포함)하고 동일 테스트. SW 종료 후에만 불일치가 남으면 온보드 프로필이 살아 있다는 뜻이다. SW가 떠 있을 때만 불일치가 나오면 SW 프로필의 효과다.
  5. 장치 모델·하드웨어 ID·두 번의 결과를 모두 기록한다.

펌웨어를 직접 읽거나 플래싱하지 않는다. 온보드 확인은 입력 동작의 재현 가능한 비교로 한다.

소프트웨어 매크로: 설정 파일과 수정 시각 ​

벤더 SW의 매크로는 설정 파일에 남는다. GUI보다 파일이 정직하다. 사용자가 GUI에서 지워도 파일의 수정 시각과 DB 잔여물이 남는 경우가 있다.

  1. T+36에 원격 조작으로 벤더 SW의 Macro/Button assignment 화면을 연다. 빠른 클릭 + 1–20ms 딜레이 같은 시퀀스가 보이는지 본다.
  2. 아래 경로로 이동해 설정 파일의 수정 시각을 본다. SS 직전 수정은 "방금 정리했다"는 리드다.
  3. JSON·XML·INI는 텍스트로 열어 macro·click·delay·repeat·LeftMouseButton·Button 4 같은 키워드를 검색한다.
  4. SQLite는 DB Browser for SQLite로 열어 profile·binding·macro 계열 테이블을 본다. LevelDB(SteelSeries 등)와 로그 파일 확인은 선택이다.
벤더 SW설정 위치노트
Logitech G HUB%localappdata%\LGHUB\settings.dbSQLite. 구버전은 JSON·config 파일 혼용
Logitech G HUB (Lua 스크립트)%localappdata%\LGHUB\scripts\스크립트마다 하위 폴더에 .lua 파일. MoveMouseRelative·PressMouseButton·Sleep 같은 입력·지연 함수를 검색한다
Logitech LGS (구형)%localappdata%\Logitech\Logitech Gaming Software\settings.json·.xml
Razer Synapse 3%programdata%\Razer\Synapse3 + %localappdata%\Razer\Synapse3\Log버전 의존. 계정·프로필·로그 경로가 갈린다
Razer Synapse 2 / 레거시%programdata%\Razer\ 하위매크로·프로필
Corsair iCUE%appdata%\corsair\CUE\Config.cuecfgRecMouseCLicksEnable 같은 플래그
SteelSeries GG%localappdata%\steelseries-engine 하위 Local StorageLevelDB
Roccat Swarm%appdata%\ROCCAT\SWARM\macro\매크로 전용 디렉터리
Glorious%appdata%\BY-COMBO2\
Cooler Master%localappdata%\·%appdata%\ 하위 CoolerMaster
BloodyBloody7 설치 경로 하위 ScriptsMacros\GunLib
Red DragonDocuments\M### Gaming Mouse\MacroDB\MacroData.db

경로는 버전에 따라 갈린다. 표에 없는 벤더면 설치 경로와 %localappdata%·%appdata%·%programdata%의 벤더 폴더를 찾는다. 수정 시각이 SS 직전인 파일이 있으면 그 내용을 반드시 캡처한다.

스크립트 호스트는 별도로 다룬다 ​

AutoHotkey·Python·배치 스크립트로 만든 매크로는 벤더 매크로가 아니라 일반 소프트웨어다. AutoHotkey64.exe의 PF·BAM, .ahk 파일의 USN, 실행 중인 프로세스로 추적한다. 이 카드는 벤더 설정과 온보드만 다룬다.

전용 클리커·인젝티드 클리커 ​

벤더 SW 밖에도 클릭 자동화만을 위한 전용 오토클리커 소프트웨어가 있다. 이 카드의 검사 범위는 "독립 exe로 뜨는 매크로"에 머물지 않는다. 배포 형태에 따라 보는 곳이 갈린다.

  • 독립 exe 형태는 일반 소프트웨어다. PF·BAM·USN의 실행·생성 기록과 프로세스 목록으로 추적한다.
  • 인젝티드 형태는 게임 프로세스 안에 모듈로 들어간다. 프로세스 목록에는 클리커가 없고, 게임 프로세스의 모듈 목록·스레드·메모리 영역에 있다. 위치 확인은 R3-PROC·R3-MEM의 영역이고, 이 카드의 역할은 "입력이 매크로 패턴인가"의 행위 판별이다.
  • 파일리스 형태(디스크에 파일을 두지 않는)는 스크립트 호스트나 로더 경유로 메모리에만 올라간다. 로더·호스트의 실행 기록(PF·BAM)이 디스크에 남는다.

어느 형태든 입력 자체의 불일치(버튼 테스터·CPS 패턴)는 이 카드에서 재현 가능하게 기록한다. 존재 위치가 프로세스 내부로 옮겨져도 "입력이 사람의 것인가"라는 판별 축은 남는다.

Community 커뮤니티에서 유통되는 전용 클리커(Sapphire Clicker·slinky·engouranceCS 같은 이름이 반복 언급된다)는 독립 exe뿐 아니라 파일리스·인젝션 형태로도 배포된다고 보고된다. 인젝티드 형태는 게임 프로세스의 모듈로 들어가므로 "프로세스 목록에 클리커가 없다"는 부정 증거가 아니다. 보고된 조합 중에는 저널 없는 파일 시스템·유니코드 폴더·정상 모듈명 위장을 겹친 것도 있다. 각 조각은 해당 축의 카드가 잡는다.

우회 기법과 남는 흔적 ​

매크로 우회는 대부분 "SW에서 안 보이게" 만드는 쪽이다. SW 화면이 비어도 설정 파일, 장치 동작, 실행 기록 중 어딘가에 남는다.

기법공격자가 하는 일남는 흔적
SS 직전 SW·프로필 삭제매크로 프로필을 지우거나 벤더 SW를 제거하고 SS에 들어온다설정 파일·DB의 수정 시각이 SS 직전이다. USN에 설정 파일과 설치 폴더의 DELETE, 벤더 SW와 제거 프로그램의 PF·BAM이 남는다. GUI에서 지운 프로필이 설정 DB에 남아 있기도 하다
온보드로 옮긴 뒤 SW 제거매크로를 장치 내장 메모리에 저장하고 SW를 지운다SW가 없어도 온보드 2회 테스트에서 입력 불일치가 재현된다. 지운 SW의 과거 설치·실행 기록(PF·BAM·USN)이 남는다
허용 리맵으로 위장연사·반복 매크로를 단일 키 리매핑처럼 보이는 이름이나 버튼에 건다버튼 테스터에서 한 번 누름에 입력이 여러 번 찍히거나 간격이 일정하다. 설정 파일에 repeat·delay 같은 반복·지연 필드가 남는다
스크립트 호스트 컴파일 exeAutoHotkey 스크립트를 단독 exe로 컴파일해 AutoHotkey64.exe 없이 돌린다컴파일된 exe 이름으로 PF·BAM이 남는다. 컴파일된 AutoHotkey 실행 파일은 스크립트를 >AUTOHOTKEY SCRIPT< 또는 ID 1인 RCDATA 리소스로 품으므로 리소스 뷰어로 확인한다. UPX·MPRESS로 압축하면 텍스트 편집기·리소스 편집기로는 안 보이지만 전용 추출 도구로는 꺼낼 수 있다
G HUB Lua 스크립트G HUB 프로필에 Lua 스크립트를 붙여 버튼 입력과 상대 이동을 자동화한다(연사·노리코일)%localappdata%\LGHUB\scripts\ 아래 .lua 파일과 수정 시각, 스크립트 안의 MoveMouseRelative·PressMouseButton·Sleep 호출. 지웠다면 USN DELETE가 남는다. 스크립트는 G HUB가 실행하므로 SW를 완전히 종료한 두 번째 테스트에서 효과가 사라진다

KMBox·Arduino처럼 입력을 만들어 넣는 하드웨어 장치는 치트 계열의 외부 입력 장치 계열에서 다룬다.

정상 vs 이상 ​

구분정상이상
바인딩싱글 키 리매핑, RGB, DPI 버튼대회 금지 형태(자동 좌클릭, 리코일 보정, 반복 매크로)
온보드 vs SW일치, 또는 둘 다 정책 허용SW에서는 지웠는데 온보드에만 매크로가 남아 있음
설정 파일오래된 수정 시각, 내용이 GUI와 일치SS 직전 수정·삭제, GUI엔 없는데 파일엔 매크로 잔여
소프트웨어설치 + 구성매크로 호스트 SW가 PF·BAM에 있으나 현재 미설치
클리커 위치독립 SW로 존재하거나 없음게임 프로세스 내부의 비벤더 모듈·파일 미매핑 영역이 클릭 자동화와 함께 존재

오탐 ​

  • 싱글 키 리매핑: 대부분의 규칙에서 허용된다.
  • 접근성 보조·MMO·생산성 매크로: 정책이 허용하면 위반이 아니다.
  • RGB 전용 소프트웨어: 매크로 기능 없이 조명만 다루는 경우다.
  • 매크로 기능이 있는 SW인데 구성된 매크로가 없는 경우: 기능 존재 ≠ 사용.
  • 정책 모호성: 조직 규칙이 명확하지 않으면 판정을 보류하고 사실만 기록한다.

교차 검증 ​

교차 카드확인 내용
R3-PF/BAM매크로 호스트 SW·스크립트 호스트의 실행 기록
R3-USN설정 파일의 수정·삭제 시각
R3-PROCAutoHotkey 등 실행 중인 스크립트 호스트, 게임 프로세스에 인젝티드된 클리커 모듈
R3-MEM파일리스·인젝티드 클리커의 메모리 영역(분기 조건 충족 시)

매크로 카드의 산출물은 "존재 + 형태 + 온보드/SW 일치 여부"다. 금지 여부 판단은 조직 정책이 정한다.

증거 캡처 ​

13-macro/ 폴더에 둔다.

  1. 매크로 소프트웨어 메인 화면과 바인딩 스크린샷
  2. 온보드 2회 테스트 결과(SW 열림/완전 종료 각각) + 장치 모델·하드웨어 ID
  3. 설정 파일 경로·수정 시각·관련 키워드가 보이는 화면. G HUB Lua 스크립트가 있으면 .lua 원문과 수정 시각
  4. 조직 규칙 참조 메모(어떤 정책이 적용되는지)

흔한 실수 ​

  • 매크로 존재만으로 Confirmed를 내린다. 정책이 그 형태를 금지한다고 명시해야 한다.
  • 온보드 2회 테스트를 건너뛴다. SW에서 삭제해도 온보드에 남는다.
  • 펌웨어 플래싱이나 하드웨어 분해를 한다. 이 카드의 범위가 아니다.
  • 벤더 설정 파일을 보지 않고 GUI만 본다. GUI는 지워진 프로필을 보여 주지 않는다.
  • AutoHotkey 같은 스크립트 호스트를 이 카드로 처리한다. PF·BAM·PROC의 영역이다.

Community 커뮤니티에서는 Razer Synapse·G HUB 매크로를 SS 직전에 삭제하고 들어오는 사례가 공유된다. 온보드 2회 테스트와 설정 파일 수정 시각이 이를 잡는 방법으로 강조된다. SW가 지워진 뒤에도 버튼 테스터에서 입력 불일치가 재현되면 온보드에 남은 것으로 본다.

Sources ​

Next ​