# 그룹 = ★무엇을 어디서 검사하는가. 같은 시그니처가 여러 그룹에 중복으로 있다.
# (2026-10-02 측정):
#     0x05050 == 0x0E050 == 0x0E060 : 해시 15개가 ★완전히 동일
#     0x0F0B0                       : 그 15개 중 6개만
#     0x06040 == 0x06050            : MG_L_Damo 시그니처가 양쪽에 같이
#     0x06020 ∩ 0x06030             : 4종 공유
# 같은 시그니처를 여러 번 넣는 이유는 ★검사하는 영역이 다르기 때문이다.
# 영역 자체는 아직 측정 전이라 '미확인' 으로 둔다.
GROUP = {
    "0x02051": ("시간임계값", "threshold_minutes=1", "미확인"),
    "0x03010": ("무결성A", "모듈 5종(msw/GameAssembly/UnityPlayer/baselib/xlua)",
                "msw 주소공간의 모듈 이미지(추정)"),
    "0x03020": ("무결성B", "모듈 6종(A + lib_burst_generated)",
                "msw 주소공간의 모듈 이미지(추정)"),
    "0x05010": ("이름해시A", "32비트 해시 7개(별도 풀)", "미확인"),
    "0x05050": ("이름해시B", "32비트 해시 15개", "미확인"),
    "0x0E050": ("이름해시C", "0x05050 과 ★동일한 15개", "미확인"),
    "0x0E060": ("이름해시D", "0x05050 과 ★동일한 15개", "미확인"),
    "0x0F0B0": ("이름해시E", "그 15개 중 6개만", "미확인"),
    "0x06010": ("YARA범용", "매크로·핵·원격·VPN 전반 101종", "메모리 패턴"),
    "0x06020": ("YARA입력", "입력 가로채기 라이브러리", "메모리 패턴"),
    "0x06030": ("YARA핵도구", "핵 도구·후킹 흔적 22종", "메모리 패턴"),
    "0x06040": ("YARA다모", "다모 매크로 본체", "메모리 패턴"),
    "0x06050": ("YARA다모B", "0x06040 과 같은 시그니처 - ★영역이 다르다",
                "미확인(0x06040 과 다른 곳)"),
    "0x06060": ("YARA외부", "외부 프로세스의 스크립트 런타임 17종",
                "타 프로세스(추정)"),
    "0x06061": ("YARA심층", "Depth_ 접두 127종 - 위 룰들의 심층판", "미확인"),
    "0x07010": ("서버IP", "접속 금지 IP 2개", "네트워크"),
    "0x0F013": ("화면캡처", "1280px/q50/100장/쿨타임6초", "화면"),
}

# 룰 이름 접두 = ★무엇을 탐지하는가. 각 룰의 hex 패턴을 복원해 확인한 것.
PREFIX = [
    ("MG_HW",     "매크로 하드웨어(Bloody/Razer/Logitech/Tesoro 마우스·키보드)"),
    ("MG_L",      "매크로 라이브러리(interception/다모)"),
    ("MG_P",      "매크로 프로그램(WindowexeAutoMacro/오토클릭/지존매크로)"),
    ("MG",        "매크로 프로그램"),
    ("MT",        "메이플 전용 봇(이미지인식+OCR+텔레그램)"),
    ("HT",        "핵 도구(메모리조작·인젝터·오토봇)"),
    ("HG",        "치트엔진·디버거·후킹드라이버(CheatEngine/Frida/MasterHide)"),
    ("ExtProc",   "외부 스크립트 런타임(AutoHotkey/AutoIt/Python)"),
    ("R_G",       "원격제어(AnyDesk/ChromeRemote/Moonlight)"),
    ("R_MC",      "원격제어 상용 클라이언트"),
    ("R",         "원격제어"),
    ("U",         "기타 유틸(창찾기·텔레그램봇·DMA읽기·LLM API)"),
    ("Control",   "입력 제어 라이브러리(pyautogui/pynput/ClassDD/interception)"),
    ("Vision",    "화면 인식(OpenCV/Tesseract OCR/findtext)"),
    ("VPN",       "VPN·게임가속기"),
    ("MC",        "다중PC 입력공유(MouseWithoutBorders/InputDirector)"),
    ("VM",        "가상머신(VMware 드라이버 문자열)"),
    ("NM",        "네트워크 패킷 도구(SharpPcap 등)"),
    ("PM",        "안티루트킷 도구(PCHunter/OpenArk)"),
    ("Logging",   "특정 DLL 이름"),
    ("Depth",     "심층 스캔판"),
    ("mapleland", "메이플랜드/아르타레 화면 픽셀"),
]

서버 -> 클라 한테 실행 시키라고 플래그 값을 자유롭게 보낼 수 있음. 게임 실행 직후 에는 플래그가 거의 고정이었는데 특정 상황 발생 시 플래그들이 켜지는걸 확인할 수 있었음.

아마 정보들을 수집해서 서버로 보낼꺼임. 모듈 중에 카프카 라이브러리 확인했었음.

두서없이 작성했는데 걍 참고만 하셈.