본문으로 건너뛰기

치트 계열 23종 ​

제품명은 바뀌고 타입은 남는다. SS는 계열을 선언하지 않고 남은 흔적으로 행위를 재구성한다. 이 페이지는 브랜드 카탈로그가 아니라 타입의 목록이자 어디를 볼지 안내하는 지도다.

이 페이지 사용법 ​

  1. 아래 계열 목록에서 계열을 찾아 층과 주요 흔적을 잡는다.
  2. 상세 절에서 "남는 것"과 "보는 곳"을 확인한다.
  3. 해당 카드나 안전 깊이 페이지로 이동한다. 호스트 밖 계열(dma-2pc·ai-pixel·input-inject)은 DMA / L0 안전 깊이로 가고, vm-isolate는 검사를 시작할 때 호스트 메타와 함께 확인한다.
  4. 히트가 오탐인지 FP 베이스라인에서 대조한다.

각 계열은 같은 항목으로 기술한다. 동기(공격자가 얻는 것), 남는 것(주 흔적), 파생 흔적(주변에서 생기는 것), 보는 곳(카드·도구·타임라인), FP(정상 후보), 판정(라벨 상한)이다.

전체 계열 ​

23개 계열을 층별로 묶으면 다음과 같다. 각 항목은 아래 상세 절로 이어진다.

Ring3

  1. overlay (오버레이). 창 핸들·캡처제외 속성이 남는다. 라이브 창과 캡처를 비교한다. FP 후보: Discord·NVIDIA·OBS
  2. loader-drop (로더 드롭). USN CREATE→DELETE, 파일은 사라졌는데 Prefetch 실행 기록이 남는다. R3-USN·R3-PF·R3-BAM. FP: 자동 업데이터
  3. inject-loadlib (DLL 인젝션). Temp·AppData 경로의 모듈, 인젝터 Prefetch. R3-PROC·R3-PF. FP: 플러그인·정상 후킹
  4. inject-reflective (리플렉티브). unbacked RX 영역(실행 파일에 매핑되지 않은 메모리, 용어집) + MZ 헤더, PEB 미등재. R3-MEM·pe-sieve. FP: JIT·안티치트 훅
  5. inject-hollow (프로세스 할로잉). 디스크 경로와 메모리 이미지 불일치. hollows_hunter. FP: 일부 업데이터(드묾)
  6. inject-apc-hijack (APC·스레드 하이재킹). unbacked 시작 주소의 스레드. R3-PROC. FP: 엔진 워커 스레드
  7. inject-jni (JNI / javaagent). 인스턴스 밖 에이전트, -javaagent 경로. InjGen·ValorMod. FP: Lunar·Feather·Vanilla
  8. fileless (파일리스 실행). 치트 .pf는 없어도 실행 주체의 .pf·ScriptBlock 로그·명령행이 남는다. R3-PF·이벤트 로그. FP: 정상 스크립트·관리 도구
  9. lolbin (정상 바이너리 악용). certutil·msbuild 등 서명된 바이너리의 .pf와 명령행. R3-PF·R3-SIG. FP: 개발·관리 작업
  10. cleaner (클리너·클렌). Prefetch·BAM 공백, Security 1102·Application 3079, 저널 재생성. R3-AF. FP: 디스크 정리 도구
  11. log-tamper (로그 채널 조작). 비활성 채널·비기본 로그 경로·ACL deny·4616이 남는다. R3-AF. FP: 프라이버시 설정·관리형 이미지
  12. volume-hide (볼륨·목록 숨김). 저널 없는 볼륨 자체·마운트 기록·제외 목록. R3-USN·R3-AF. FP: 정상 VHD·외장 드라이브
  13. decoy (디코이·위장). IFEO 키·ADS·경로 스왑의 시각 불일치. R3-SIG·R3-USN. FP: 정상 IFEO·Zone.Identifier
  14. vm-isolate (VM·샌드박스 격리). 검사 대상이 게스트면 시스템 제조사·모델의 가상화 문자열과 VM 도구 서비스, 호스트 안 VM이면 VM 실행 흔적과 가상 디스크 파일이 남는다. T+0 호스트 메타. FP: 개발·테스트 VM
  15. macro-sw (소프트웨어 매크로). settings.db 수정 시각. R3-MAC. FP: RGB 설정만 한 경우
  16. macro-hw (하드웨어 매크로). 파일이 거의 없고 버튼 불일치가 단서. R3-MAC 2회 테스트. FP: 허용 리맵
  17. alt-mod (얼터·모드). MC는 비인가 jar·JSON, FiveM은 캐시 lua 또는 로더. ValorMod·JARParser. FP: 정상 모드·리소스
  18. spoofer (HWID 스푸퍼). Ring3·Ring0 모두에서 로더 Prefetch와 깨진 장치 ID가 남는다. 장치 트리와 환경. FP: 재설치·보드 교체

Ring0

  1. kernel (커널 드라이버). 취약 .sys 해시, 이벤트 7045, HVCI off. Ring0 안전 깊이. FP: 벤더 모니터링 드라이버

DMA·외부

  1. dma-2pc (DMA / 2PC). 숨김 장치, 원격·창 복제 프로세스. DMA / L0 안전 깊이. FP: 캡처카드·eGPU·원격지원
  2. ai-pixel (AI 픽셀봇·컬러봇). 캡처카드·영상 인식 모델·외부 입력 장치로 화면을 읽고 조준한다. 게임 PC에는 USB 입력 장치 이력 정도가 남는다. DMA / L0 안전 깊이. FP: 방송용 캡처 구성
  3. input-inject (외부 입력 장치). KMBox·Makcu·Arduino 계열 USB HID. 장치 연결 이력·장치 수·VID/PID. FP: 게이밍 장치·개발 보드

환경

  1. env-off (환경 조작). 설정 값만 남는다. 환경 노트에 기록. FP: 구형 하드웨어·BIOS 미지원

Ring3 계열 ​

overlay ​

게임 화면 위에 별도 창을 띄워 ESP·조준 정보를 그린다. 캡처제외 속성(SetWindowDisplayAffinity)으로 스크린샷·녹화에만 안 보이게 하는 변종도 있다.

  • 동기: 게임 메모리를 고치지 않고 위에 그리기만 하면 되므로 진입 비용이 가장 낮다. 안티치트에 잡혀도 화면에는 정보가 남는다.
  • 남는 것: 창 핸들, 캡처제외 플래그, 벤더 오버레이 하이재킹 흔적
  • 파생 흔적: 오버레이 프로그램 자체의 Prefetch·USN·BAM, 외부 ESP 실행기의 실행 흔적
  • 보는 곳: 라이브 화면과 스크린샷·리플레이를 비교. 차이가 있으면 단서. 타임라인상 T+25(서명·경로)~T+28(프로세스) 사이에 창 목록을 본다
  • FP: Discord·NVIDIA·OBS 오버레이. 벤더 서명과 목적을 확인한다
  • 판정: 창이 있다는 것만으로는 Confirmed가 아니다. 창 + 실행 흔적 + 제보 시간대 정합이 모여야 한다
  • 현장 은어: 외부 ESP, streamproof

캡처에서 어떻게 보이는지는 플래그와 빌드에 따라 다르다. 둘 다 찾는다.

플래그값캡처에서최소 빌드
WDA_MONITOR0x01창이 내용 없이 보인다 (빈 사각형)Windows 7
WDA_EXCLUDEFROMCAPTURE0x11창이 아예 안 보인다Windows 10 2004

2004 이전 빌드에서 WDA_EXCLUDEFROMCAPTURE를 걸면 WDA_MONITOR처럼 동작한다. 그래서 구형 빌드에서는 "사라진 창"이 아니라 "검은 사각형"을 찾아야 한다. DWM 합성이 꺼져 있으면 이 보호 자체가 걸리지 않는다. 캡처에 안 보인다는 사실만으로 치트라고 단정할 수 없고, 창이 보인다고 안전하다는 뜻도 아니다.

캡처 제외 창은 열거할 수 있다. 속성을 거는 SetWindowDisplayAffinity는 자기 프로세스의 창에만 쓸 수 있다. 값을 읽는 GetWindowDisplayAffinity는 창 핸들만 있으면 어느 프로세스의 창이든 현재 값을 돌려준다(최소 Windows 7). 창 목록을 돌며 이 값을 읽으면 WDA_MONITOR·WDA_EXCLUDEFROMCAPTURE가 걸린 창만 추릴 수 있다. 문서상 이 함수는 창이 레이어드 창이고 DWM이 데스크톱을 합성하는 동안에만 성공하므로, 호출이 실패한 창은 "속성 없음"과 구분해 적는다.

loader-drop ​

실행 파일을 잠깐 두고 실행한 뒤 지우거나 이름을 바꾼다.

  • 동기: 스캐너가 디스크 시그니처로 파일을 잡기 때문에, 실행만 하고 파일은 지우면 스캐너를 피할 수 있다고 생각한다.
  • 남는 것: USN CREATE→DELETE/RENAME 클러스터. Prefetch에 실행 기록이 있는데 현재 경로에 파일이 없거나, 있는 파일의 생성 시각이 마지막 실행보다 늦다
  • 파생 흔적: BAM 실행 경로, UserAssist, LNK, 다운로드 기록(브라우저·메신저), Temp 폴더의 추출 잔여물. 로더가 라이선스를 인증 서버에서 확인하는 구조면 그 접속도 남는다. DNS 클라이언트 캐시(ipconfig /displaydns)에는 이 PC가 최근 조회한 이름이 있고, SRUM(시스템 리소스 사용 모니터, Windows 8 이상)은 앱 경로별 송수신 바이트를 %WinDir%\System32\sru\SRUDB.dat에 기본 30일까지 둔다. DNS 캐시는 이름만 보여 주므로 어느 프로그램이 조회했는지는 SRUM의 앱 경로와 맞춰 본다. ipconfig /flushdns로 캐시를 비울 수 있으므로 빈 캐시는 근거로 쓰지 않는다
  • 보는 곳: R3-USN 시간 창 필터(T+14) + R3-PF 교차(T+10) + R3-BAM 실행 경로(T+18)
  • FP: 게임 런처·앱 자동 업데이터. 타임라인과 경로 패턴으로 구분한다
  • 판정: USN CREATE→DELETE 하나만으로는 Suspicious. BAM·Prefetch가 같은 경로를 가리키면 Confirmed 방향이다

alt-mod ​

게임 클라이언트를 고치거나 비인가 모드를 쓴다. MC와 FiveM에서 형태가 다르다.

  • 동기: 인젝션보다 쉽다. 게임이 제공하는 모드 체계나 리소스 로더를 그대로 쓴다.
  • 남는 것: MC는 비인가 JAR·JSON·인스턴스 밖 에이전트. FiveM은 서버가 주지 않은 루아 리소스 또는 루아 실행기 로더
  • 파생 흔적: 모드 로더의 Prefetch·USN, 캐시 폴더의 타임스탬프, 실행기 exe의 BAM 기록
  • 보는 곳: InjGen·ValorMod로 탐지(T+28), 모드·리소스 폴더 대조
  • FP: 정상 모드, 정상 리소스, 정상 난독화. 서버 허용 목록과 교차한다
  • 판정: 모드가 있어도 서버 규칙과 대조해야 한다. 허용 모드면 신호가 아니다

spoofer ​

장치 식별자를 위장해 제재나 탐지를 피하려 한다.

  • 동기: HWID 밴을 우회하거나 장치를 다른 것처럼 보이게 해 계정·장치 추적을 끊는다.
  • 남는 것: 스푸퍼 로더 Prefetch, 깨지거나 위장된 장치 ID
  • 파생 흔적: 스푸퍼가 띄운 드라이버·서비스의 7045, 설정 변경 레지스트리, 재부팅 기록
  • 보는 곳: 장치 트리 이상(T+38 환경 노트) + Ring3·Ring0 로더 흔적과 교차
  • FP: OS 재설치, 보드 교체. HWID 숫자 자체는 치트 증거가 아니다
  • 판정: 장치 ID 이상만으로는 Confirmed가 아니다. 로더 실행 흔적과 교차해야 한다

인젝션 하위 유형 ​

하위한 줄보는 것FP
loadlibLoadLibrary로 디스크 DLL 로드모듈 경로 Temp/AppData, 인젝터 PF정상 플러그인, 모딩 프레임워크
sideload정상 exe가 로드할 DLL을 치트 DLL로 교체교체 DLL의 USN rename/write, 기대 위치 밖 모듈, 무서명 동명 DLL정상 플러그인, 업데이터
reflective디스크 파일 없이 메모리에서 PE 전개. PEB 미등재pe-sieve/malfind의 unbacked RX + MZJIT(Java·.NET), 안티치트 자체 훅
hollow정상 프로세스 생성 후 메모리 이미지 교체. ghosting·doppelganging 등 변종디스크 경로 vs 메모리 이미지, 잔여 .tmp일부 업데이터
apc/hijackCreateRemoteThread 문자열을 피해 APC·스레드 컨텍스트 이용unbacked 시작 주소 스레드게임 엔진 워커 스레드
jniJVM 밖에서 JNI/JVMTI로 삽입 (MC)인스턴스 밖 에이전트, -javaagent 인수Lunar·Feather 정상 에이전트

pe-sieve는 임플란트의 단서를 줄 뿐 악성 여부를 판정하지 않는다. 반드시 디스크 타임라인과 교차한다.

공개 인젝터(ExtremeInjector 등)는 이 표의 하위 유형을 모드로 구현한다. 표준 LoadLibrary·수동 매핑·스레드 하이재킹·LdrLoadDll 스텁이 그대로 대응된다. injector·치트·정상 exe의 3인자 형태나 SystemInformer 같은 프로세스 도구를 쓴 수동 인젝트도 같은 축으로 읽는다.

inject-loadlib ​

가장 고전적인 형태다. 대상 프로세스에 디스크의 DLL을 LoadLibrary로 로드시킨다.

  • 동기: 구현이 쉽고 안정적이다. 대부분의 인젝터가 이 방식을 기본으로 둔다.
  • 남는 것: 모듈 목록에 Temp·AppData·Downloads 경로의 DLL, 인젝터 실행 흔적
  • 파생 흔적: 인젝터 exe의 Prefetch·USN·BAM, DLL 파일의 CREATE→DELETE
  • 보는 곳: R3-PROC 모듈 목록(T+28) + R3-PF 인젝터(T+10) + R3-SIG 경로 위생(T+25)
  • FP: 정상 플러그인, 모딩 프레임워크, Discord 같은 벤더 후킹. 모듈 경로와 서명으로 구분한다
  • 판정: Temp 경로 DLL 하나만으로는 Suspicious. 인젝터 실행 흔적과 같은 시각에 겹치면 Confirmed 방향이다

DLL 사이드로딩·하이잭 변종. 코드를 넣는 대신 정상 exe가 로드할 DLL을 치트 DLL로 교체한다(hijacklibs 같은 후보 목록이 공개돼 있다). 서명된 정상 exe가 로드하므로 "모든 곳에서 서명됨"처럼 보이는 것이 목적이다. 남는 것은 교체된 DLL의 USN rename/write 체인, 모듈 목록에서 기대 위치가 아닌 DLL, 서명 없는 동명 DLL이다. GPU 드라이버 이름(atig6pxx.dll 등)으로 바꾼 DLL에는 역신호가 있다. NVIDIA·Intel GPU 환경에서 ATI 드라이버 DLL은 성립할 수 없고, 정품은 System32에서 서명된 채로 로드된다.

inject-reflective ​

디스크에 파일을 두지 않고 메모리에서 PE 이미지를 직접 전개한다. PEB 모듈 목록에 안 잡힌다.

  • 동기: 디스크 스캔과 모듈 목록에서 숨으려 한다.
  • 남는 것: unbacked 실행 영역, MZ 헤더가 있는 익명 메모리, pe-sieve·malfind 히트
  • 파생 흔적: 인젝터 실행 흔적, unbacked 시작 주소의 스레드, 가끔 남는 셸코드 조각
  • 보는 곳: R3-MEM 메모리 덤프(T+30, 분기 조건 시) + pe-sieve·hollows_hunter
  • FP: Java·.NET JIT, 안티치트 자체 훅, 일부 게임 엔진의 동적 코드. 정상 JIT 패턴을 베이스라인으로 본다
  • 판정: unbacked RX 영역만으로는 Suspicious. 인젝터 흔적과 겹쳐야 Confirmed 방향이다

로드 뒤 메모리에서 클라이언트·기능명 문자열을 지우는 로더도 있다. 문자열이 지워져도 unbacked 실행 영역과 인젝션 아티팩트는 남는다. 지워진 문자열보다 그릇인 메모리 영역 구조를 본다.

대상 프로세스를 복제(fork)해 복제본에서 코드를 실행하는 주입 기법도 있다(Dirty Vanity). 복제본은 대상의 주소 공간을 복사한 자식 프로세스이고, 대상과 같은 이미지 이름을 쓴다. 프로세스 트리에서 게임 프로세스 아래의 같은 이름 자식 프로세스를 찾고 그 프로세스의 메모리 영역을 본다.

inject-hollow ​

정상 프로세스를 suspend 상태로 만든 뒤 메모리 이미지를 악성 코드로 교체한다.

  • 동기: 정상 프로세스 이름으로 실행되는 것처럼 보이게 해 목록을 속인다.
  • 남는 것: 디스크 경로와 메모리 이미지의 불일치, hollows_hunter 히트
  • 파생 흔적: 원본 exe의 Prefetch(정상 실행처럼 보임), suspend된 스레드
  • 보는 곳: R3-MEM 분기 + hollows_hunter, 프로세스 트리에서 비정상 부모·자식
  • FP: 일부 업데이터가 비슷한 패턴을 보인다(드묾). 프로세스 경로와 동작으로 구분한다
  • 판정: 경로 불일치만으로는 Suspicious. 실행 시각과 제보 시간대가 겹쳐야 한다

PE 위장 변종. 정상 프로세스를 통째로 만들거나 덮어 페이로드를 그 이름으로 실행하는 변종군이 있다(process_ghosting·transacted_hollowing·process_overwriting·process_doppelganging·module_overloading, hasherezade의 공개 PoC군). 공통으로 남는 것은 프로세스 이름과 실제 메모리 이미지의 불일치, unbacked 영역, pe-sieve·hollows_hunter 히트다. ghosting 계열은 임시 .tmp 잔재가 남기도 한다.

inject-apc-hijack ​

CreateRemoteThread라는 문자열을 피하기 위해 APC 큐나 스레드 컨텍스트 조작을 쓴다.

  • 동기: 스캐너가 흔히 감시하는 API 이름을 우회한다.
  • 남는 것: unbacked 시작 주소를 가진 스레드, 정지된 스레드
  • 파생 흔적: 인젝터 실행 흔적, 대상 프로세스의 비정상 스레드 목록
  • 보는 곳: R3-PROC 스레드 상태(T+28), R3-MEM 분기
  • FP: 게임 엔진의 워커 스레드, 안티치트의 모니터링 스레드. 정상 스레드 수를 베이스라인으로 본다
  • 판정: 스레드 이상만으로는 Suspicious. 인젝터와 같은 시각에 겹쳐야 한다

inject-jni ​

MC처럼 JVM 위에서 동작하는 게임에서, JVM 외부에서 JNI·JVMTI로 코드를 삽입한다.

  • 동기: MC는 Java라 네이티브 인젝션보다 JVM 에이전트 경로가 자연스럽다.
  • 남는 것: 인스턴스 디렉터리 밖의 에이전트 JAR, -javaagent 인수, 비정상 네이티브 라이브러리
  • 파생 흔적: 에이전트 로더의 Prefetch·USN, 인스턴스 밖 JAR의 CREATE
  • 보는 곳: InjGen·ValorMod(T+28), JVM 인수 확인, mods 폴더 vs 인스턴스 밖 대조
  • FP: Lunar·Feather·Vanilla 정상 에이전트는 기대 경로에 있다. 미확인 경로는 능력 증거(쓸 수 있다는 뜻이지 썼다는 뜻은 아님)일 뿐이다
  • 판정: 인스턴스 밖 에이전트 하나만으로는 Suspicious. 서버 허용 목록과 교차한다

전용 로더 없이 SystemInformer 같은 프로세스 도구로 javaw에 수동 인젝트하는 변종도 있다. 에이전트 JAR이 없으므로 모듈 목록의 비정상 라이브러리와 스레드 이상이 주 단서다.

동적 주입은 JDK 21부터 경고를 남긴다(JEP 451). 실행 중인 JVM에 에이전트를 동적으로 붙이면 JVM이 WARNING: A Java agent has been loaded dynamically (경로) 경고를 표준 오류로 출력한다. 네이티브 에이전트는 A JVM TI agent로 시작하는 같은 경고를 낸다. 경고에는 에이전트 파일 경로가 들어간다. 기동 때 -javaagent로 붙인 에이전트에는 경고가 나오지 않고, JVM 인수에 -XX:+EnableDynamicAgentLoading이 있어도 경고가 나오지 않는다. 그래서 JVM 인수에서 -javaagent와 함께 이 옵션도 찾는다. Minecraft Java 1.20.5부터 Java 21이 필수이므로 이 버전 이후 클라이언트가 대상이다. 경고는 콘솔 출력이라 런처가 게임 출력을 보관할 때만 나중에 확인할 수 있다. 프로파일러와 임시 진단 도구도 실행 중인 JVM에 에이전트를 붙이므로, 경고 하나로 판정하지 않고 경고에 적힌 경로의 파일을 확인한다.

파일리스·정상 바이너리 ​

치트 파일을 디스크에 두지 않거나, 서명된 정상 바이너리가 대신 실행하는 경로다. 공통점은 "치트라는 파일"이 목록에 안 뜬다는 것이고, 공통 한계는 실행 주체의 흔적은 그대로 남는다는 것이다.

fileless ​

PowerShell 같은 정상 호스트가 치트를 디스크에 두지 않고 메모리에서 직접 실행한다(파일리스, 디스크에 실행 파일을 두지 않는 실행 방식, 용어집). 스크립트를 exe로 감싼 래퍼(ps2exe 계열)나 인코딩된 명령행도 같은 계열이다.

  • 동기: 디스크 스캔과 파일 시그니처를 피한다. 치트 파일이 없으면 잡을 것이 없다는 계산이다.
  • 남는 것: 치트 자체의 .pf는 없어도 실행 주체(powershell.exe 등)의 .pf가 남는다. ScriptBlock 로그(이벤트 4104, PowerShell이 실행한 스크립트 내용)는 정책이 꺼져 있어도 악성 스크립트에 흔한 내용이 든 블록을 자동으로 기록하고, 전체 기록은 정책이 켜져 있을 때 남는다. 모듈 로깅(이벤트 4103)은 정책이 필요하다. ConsoleHost_history, 4688 명령행(감사 정책 필요), 메모리 안의 어셈블리도 남는다.
  • 파생 흔적: 임시 exe를 쓰고 바로 지우는 변종은 USN CREATE→DELETE 연쇄와 임시 파일명의 .pf를 남긴다(loader-drop과 같은 축). 숨김 창·실행 정책 우회 플래그가 섞인 명령행(-w hidden -nop -ep 계열 조합)과 로깅 무력화(AMSI·ETW, 스크립트 검사·이벤트 추적 채널)를 노리는 문자열은 그 자체로 시그니처다. 다운로드를 거치는 변종은 네트워크·DNS 기록이 남는다.
  • 보는 곳: R3-PF의 powershell·정상 호스트 실행(T+10) + 이벤트 로그의 ScriptBlock·명령행 + 분기 시 R3-MEM(T+30)
  • FP: 정상 PowerShell 스크립트, 관리·자동화 도구. 명령행 내용과 작업 맥락으로 구분한다
  • 판정: powershell 실행만으로는 Suspicious도 아니다. 인코딩 명령행·ScriptBlock 내용·제보 시간대가 겹쳐야 한다
  • 현장 은어: 파일리스, in-memory

lolbin ​

certutil·msbuild 같은 서명된 정상 바이너리(LOLBin, Living Off The Land Binary의 준말로 OS가 이미 가진 실행 파일을 악용하는 기법, 용어집)에 악의 인자를 줘 다운로드·컴파일·실행을 시킨다.

  • 동기: "서명된 바이너리만 실행"이라는 룰을 우회한다. 프로세스 이름과 서명이 전부 정상이라 목록에서 안 띈다고 생각한다. LOLDrivers의 BYOVD와 같은 발상의 유저모드 버전이다.
  • 남는 것: 정상 바이너리의 .pf는 남는다. 문제는 명령행이다. certutil의 다운로드 옵션이나 msbuild의 인라인 태스크 사용이 명령행과 4688에 남고, 다운로드·컴파일 산출물은 USN에 남는다.
  • 파생 흔적: 개발 컨텍스트 없는 msbuild 실행 자체가 이상 신호다. 산출물의 USN CREATE, 부모 프로세스 불일치, 네트워크 기록이 겹친다.
  • 보는 곳: R3-PF + 명령행(T+10) + R3-SIG 경로·컨텍스트(T+25)
  • FP: 개발자·관리자의 정상 작업. 개발 도구 설치 여부와 사용자 맥락으로 구분한다
  • 판정: 정상 바이너리 실행만으로는 신호가 아니다. 명령행·산출물·제보 시간대가 겹쳐야 한다

rundll32·regsvr32 같은 정상 로더를 거치지 않고 전용 런처가 DLL을 직접 여는 변종도 있다. 정상 로더의 부재는 부정 증거로만 읽고 모듈 목록·인젝션 흔적으로 교차한다.

안티포렌식 ​

cleaner ​

SS 대비로 실행 흔적을 지우는 도구다. 치트 자체가 아니라 증거 은닉이다.

  • 동기: Prefetch·USN·BAM을 본다는 사실이 알려진 뒤로, 지우는 행위가 자체 목적이 됐다.
  • 남는 것: Prefetch 공백 + SysMain ON, BAM 공백, Security 1102 / System 104, Application 3079, USN 저널 재생성, 클리너 자체 PF
  • 파생 흔적: 클리너 프로그램의 Prefetch·USN, 삭제 직전의 실행 클러스터, 휴지통 비우기 시각
  • 보는 곳: R3-AF "너무 깨끗함" 체크리스트(T+33)
  • 로그 채널을 같이 적는다. 3079는 Application(저널 삭제)과 CodeIntegrity(정책 미충족)에 각각 있고 뜻이 다르다
  • FP: CCleaner 등 디스크 정리. 의도·타이밍·범위로 구분한다. 게임 직후의 와이프는 정리 습관보다 시사적이다
  • 판정: 클리너 흔적 단독은 Suspicious가 상한이다. Confirmed에는 안티포렌식 클러스터에 더해 추가 축이 필요하다
  • 현장 은어: 클렌 돌렸다, 와이프

자세한 내용은 안티포렌식에 있다.

log-tamper ​

지우는 도구가 아니라 기록 장치 자체를 손댄다. 채널을 끄고, 로그 파일 경로를 바꾸고, 기록이 못 남기게 권한을 건다. cleaner와의 차이는 대상이다. cleaner는 남은 기록을 나중에 지우고, 이 계열은 채널·파일·설정을 직접 조작한다.

  • 동기: 애초에 안 남게 만들면 지울 필요가 없다는 계산이다.
  • 남는 것: 조작이 곧 흔적이다. 비활성화된 이벤트 채널 상태, 비기본 .evtx 경로, 히스토리·Prefetch 파일에 걸린 명시적 쓰기 거부(icacls /deny) ACL 엔트리, $PROFILE의 저장 끄기 설정(Set-PSReadLineOption -HistorySavePath), disabled로 바뀐 서비스(이벤트 7040·7036), 수동 삭제를 위해 권한이 바뀐 BAM 키의 ACL, 비어 있거나 일부만 남은 히스토리·RunMRU가 남는다.
  • 파생 흔적: 조작에 쓴 도구(regedit·eventvwr·icacls)의 실행 흔적, 로그 공백 구간과 실제 사용량의 불일치. 시스템 시간을 바꿔 실행하고 되돌리는 변종은 이벤트 4616(시스템 시간 변경)과 Kernel-General 시간 이벤트를 그대로 남긴다. 우회하려던 시간 위조가 곧 드러난다.
  • 보는 곳: R3-AF(T+33) + 로그 무결성 점검. "로그가 있는가"보다 "로그를 손댔는가"를 먼저 본다. 채널 활성 상태, .evtx 경로, ACL, 이벤트 시간 순서.
  • FP: 프라이버시 도구 사용자, GPO로 로깅이 꺼진 관리형 이미지. 정책 출처와 변경 시점을 본다
  • 판정: 채널 조작 단독은 Suspicious가 상한이다. 공백은 Clean(조건부)의 근거도 Confirmed의 근거도 아니다. 조작 흔적과 실행 축의 교차로 읽는다

volume-hide ​

저널이 없는 파일시스템(FAT32 가상 디스크)에 치트를 두거나, 검색 도구의 인덱스와 검사자의 접근에서 뺀다.

  • 동기: USN이 NTFS 전용이라는 사실을 노린다. 저널이 없으면 삭제·개명 기록이 안 남고, 인덱스에서 빠지면 검색에 안 뜬다고 생각한다.
  • 남는 것: 저널이 없는 볼륨 자체가 신호다. 최근 포맷된 FAT32 볼륨, 수백MB 크기의 VHD 파일, diskpart·마운트 도구의 실행 흔적, MountedDevices(마운트된 장치 기록)·SetupAPI의 기록이 남는다. 유니코드 빈 문자(U+3164 등) 폴더명은 회피용 코드포인트 자체가 강한 시그니처다. 검색 도구의 제외 목록(Everything.ini)과 제외 전에 인덱싱된 데이터베이스 잔재, 스캐너 대상 경로의 ACL deny도 남는다.
  • 파생 흔적: 마운트·탐색 이벤트, 클라우드 보관함(OneDrive Vault)의 잠금 해제·동기화 기록
  • 보는 곳: 볼륨 파일시스템과 마운트 기록, 폴더·파일명의 코드포인트, 검색 도구 설정
  • FP: 정상 VHD·외장 FAT32 드라이브, OneDrive 사용자, 개발용 가상 디스크. 용도와 생성 시점으로 구분한다
  • 판정: FAT32 볼륨 존재만으로는 Suspicious도 아니다. 신선한 포맷·마운트 시각·제보 시간대가 겹쳐야 한다

decoy ​

실행 기록은 그대로 두고 "기록은 있는데 그 파일이 아니다"를 만든다. IFEO(Image File Execution Options, 실행 파일 이름별로 디버거를 지정하는 레지스트리 키, 용어집)에 치트 이름의 exe를 등록해 검사자가 열면 정상 프로그램이 뜨게 하거나, 실행 뒤 파일을 옮기고 원 경로에 동명 정상 파일을 둔다.

  • 동기: 지우면 공백이 되므로, 기록은 남기되 검사자가 보는 파일을 바꿔치기한다.
  • 남는 것: IFEO 키 자체가 전수 열거로 잡힌다. 치트명 exe에 Debugger가 걸린 것은 강한 시그니처다. 경로 스왑은 USN의 move+create 연쇄와 동명 파일의 해시·크기·생성 시각 불일치를 남긴다. ADS(대체 데이터 스트림, NTFS 파일의 보조 데이터 영역, 용어집)에 숨긴 파일은 스트림 열거(dir /r)에 잡히고 비정상 크기로 드러난다. PNG+exe 폴리글랏은 파일 끝의 PE 시그니처와 크기 불일치, 비ASCII·유니코드 소문자 파일명은 그 자체로 시그니처다.
  • 파생 흔적: 디코이로 등록된 정상 exe의 실행 흔적, 위장 작업에 쓴 도구의 Prefetch, startup 폴더의 위장명 파일
  • 보는 곳: Image File Execution Options 전수 열거 + ADS 열거 + 해시·서명 대조 + R3-SIG(T+25)
  • FP: 개발자의 정상 디버거 등록, 정상 ADS(Zone.Identifier), 정상 startup 항목. 키의 값과 대상을 확인한다
  • 판정: IFEO Debugger 엔트리와 스트림은 강한 리드다. 실행 흔적·시간대와 교차해야 Confirmed 방향이다

vm-isolate ​

가상화로 검사 대상 OS와 치트가 도는 OS를 나눈다. 방향은 둘이다. 게임을 VM 게스트에서 돌리고 치트를 호스트에서 돌리면 SS는 게스트만 본다. 게임이나 치트를 호스트 안의 VM·Windows Sandbox에서 돌리면 그 안의 실행 흔적은 호스트 아티팩트에 남지 않는다.

  • 동기: 검사자가 여는 OS 밖에서 치트를 돌리면 Ring3 흔적이 검사 범위 밖에 생긴다고 생각한다.
  • 남는 것(검사 대상이 게스트일 때): 시스템 제조사·모델·BIOS 값(msinfo32 시스템 요약, WMI Win32_ComputerSystem·Win32_BIOS)에 VMware, VirtualBox(제조사 innotek GmbH) 같은 가상화 제품 문자열이 들어간다. VM 도구를 설치한 게스트에서는 도구 서비스·프로세스(vmtoolsd.exe, VBoxService.exe)가 돌고, 디스크 장치 이름과 HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum 값에 VMware·VBOX 문자열이 보인다.
  • 남는 것(호스트 안 VM·샌드박스일 때): 호스트에 VM 소프트웨어의 실행 흔적과 가상 디스크 파일(VirtualBox는 VDI·VMDK·VHD·HDD 형식)이 남는다. 게스트 안의 실행 흔적은 호스트의 Prefetch·BAM에 없다. Windows Sandbox는 Windows 10 1903 이상의 Pro·Enterprise·Education 버전에 있는 일회용 VM이고, 닫으면 안의 소프트웨어·파일·상태가 지워진다.
  • 파생 흔적: VM 드라이버와 가상 NIC(FP 베이스라인의 가상화 드라이버). Windows Sandbox 구성 파일(.wsb, Windows 10 build 18342 이상)은 호스트에 남고, 그 안의 공유 폴더 설정(MappedFolders의 HostFolder)이 호스트 경로를 가리킨다. 쓰기 권한으로 공유한 폴더에서 바뀐 내용은 샌드박스를 닫아도 호스트에 남는다.
  • 보는 곳: T+0 호스트 메타를 적을 때 시스템 제조사·모델·BIOS, 서비스·프로세스 목록, 디스크 장치 이름을 같이 본다. 호스트 쪽은 PF·USN에서 VM 소프트웨어와 가상 디스크·.wsb 파일을 찾는다.
  • 주의: systeminfo의 "A hypervisor has been detected" 문구는 VM 게스트의 근거로 쓰지 않는다. Hyper-V를 켠 실물 호스트에서도 같은 문구가 나오고, VBS와 메모리 무결성도 Windows 하이퍼바이저 위에서 동작한다.
  • FP: 개발·테스트용 VM, Windows Sandbox를 쓰는 사용자
  • 판정: VM 존재만으로는 신호가 아니다. 검사 대상이 게스트로 확인되면 호스트를 보지 못한 것이므로 Clean(조건부)을 붙이지 않고 Insufficient로 둔다. 호스트 VM 흔적은 치트 실행 흔적과 시간대가 겹칠 때 교차 재료가 된다

매크로 계열 ​

macro-sw ​

주변기기 제조사 SW(iCUE, Synapse, G HUB 등)에서 시퀀스·연타·조준 보조를 설정한다.

  • 동기: 하드웨어 매크로보다 설정이 쉽고, 장치 펌웨어를 건드리지 않아도 된다.
  • 남는 것: settings.db, profile.xml 등 설정 파일의 수정 시각과 바인딩 내용
  • 파생 흔적: 제조사 SW의 Prefetch·USN, 프로필 변경 직후의 게임 실행
  • 보는 곳: R3-MAC(T+36), SW UI 바인딩 캡처
  • FP: RGB 색상만 설정한 경우. 바인딩 내용을 확인한다
  • 판정: 매크로 설정 존재만으로는 Confirmed가 아니다. 서버 규칙이 매크로를 금지하는지 먼저 확인한다

macro-hw ​

장치 온보드(onboard, 장치 자체에 내장된, 용어집) 메모리에 매크로를 저장한다. 호스트에 파일이 거의 없다.

  • 동기: 소프트웨어가 없으니 호스트에서 볼 것이 없다고 생각한다.
  • 남는 것: 파일 거의 없음. SW UI에서 버튼 할당 불일치가 단서
  • 파생 흔적: 온보드 프로필의 수정 시각(드물게), 장치가 재연결된 이벤트
  • 보는 곳: R3-MAC 온보드 프로필 2회 테스트(T+36, 벤더 SW를 연 상태와 완전히 종료한 상태에서 각각 테스트)
  • FP: 허용 정책 범위의 단순 리맵
  • 판정: 버튼 불일치만으로는 Suspicious가 상한이다. 온보드 매크로는 호스트에 흔적이 거의 안 남으므로 Insufficient가 흔한 정직한 결론이다
  • 현장 은어: 온보드

Ring0 계열 ​

kernel ​

커널 모드에서 메모리 읽기·쓰기, 프로세스 은닉, 콜백 제거를 한다. 반복적으로 관찰되는 형태는 BYOVD다.

  • 동기: 안티치트가 커널에서 동작하므로, 같은 권한에서 콜백·핸들·메모리 스캔을 뚫어야 한다.
  • 남는 것: 취약 .sys 해시(LOLDrivers 히트), 서비스 설치 이벤트 7045, HVCI·CI off, 서명 이상
  • 파생 흔적: 로더·매퍼 exe의 Prefetch·USN·BAM, .sys 파일의 CREATE→DELETE, CodeIntegrity 3076·3077
  • 보는 곳: Ring0 안전 깊이 4단계. 진입 조건 충족 시에만
  • FP: RTCore64(MSI Afterburner), WinRing0x64(HWiNFO), ene.sys(ASUS), VM 드라이버. 정상 벤더 드라이버를 먼저 소거한다
  • FP로 오인하기 쉬운 경우: 안티치트 자체 드라이버라도 mhyprot2.sys·bedaisy.sys·xhunter1.sys는 LOLDrivers 등재 드라이버다. 게임 설치 확인은 1차 필터일 뿐이고, 게임 미설치 상태의 존재는 FP가 아니라 Ring0 신호다. 자세한 내용은 FP 베이스라인에 있다
  • 판정: Ring0 단독 Confirmed 금지. 반드시 Ring3 실행 흔적과 교차한다
  • 현장 은어: 커널 핵, 매퍼, BYOVD

외부 계열 ​

dma-2pc ​

별도 PC에서 DMA 카드로 대상 PC 메모리를 읽는다. 퓨저(fuser, 두 PC의 영상 출력을 한 화면으로 합성하는 장치, 용어집)가 없으면 원격 소프트웨어와 화면 복제로 비슷한 구성을 만들기도 한다.

  • 동기: 호스트에 에이전트를 두지 않으면 Ring3·Ring0 흔적이 거의 안 생긴다고 생각한다.
  • 남는 것: 숨김 PCIe 장치, HWID 이상, 원격 접속·창 복제 프로세스
  • 파생 흔적: Parsec·AnyDesk·TeamViewer 같은 원격 도구의 Prefetch·USN, 캡처카드 드라이버, setupapi 장치 설치 기록
  • 보는 곳: DMA / L0 안전 깊이. Ring3에서 원격 프로세스와 장치 트리를 먼저 본다
  • FP: 캡처카드, eGPU, 정상 원격 지원. OBS·TeamViewer는 단독으로 신호가 아니다
  • 판정: DMA 단독 Confirmed 불가. Insufficient가 기본이다. 숨김 장치 + 원격 프로세스 + 제보 정합이 모여야 Suspicious 이상을 본다
  • 현장 은어: 2PC(2컴·투컴), 퓨저, 보드핵

ai-pixel ​

게임 화면을 영상으로 읽어 적을 찾고 마우스를 움직인다. 화면 픽셀로 목표를 찾는 픽셀봇·컬러봇에 영상 인식 모델이 붙은 형태이고, AI 에임봇이라고도 부른다. 2PC 구성에서는 캡처카드가 게임 PC의 HDMI 출력을 받고, 두 번째 PC의 영상 인식 모델이 화면 픽셀에서 적을 찾은 뒤 외부 USB HID 장치(Arduino·Makcu형)로 사람 같은 마우스 입력을 넣는다.

  • 동기: 게임 메모리를 읽거나 코드를 주입하지 않으므로 메모리·모듈 검사에 걸릴 것이 없다고 생각한다. 2PC AI 제품의 월 구독료는 20~70달러로 펌웨어·DMA 제품(250~1,500달러)보다 싸다. 2026년 1분기 FACEIT에 새로 들어온 치트 벤더 36곳 중 17%가 AI·다중 장치 제품이었다(펌웨어·DMA는 52%).
  • 남는 것: 2PC 구성은 게임 메모리를 건드리지 않고 게임 PC 안에 설치하는 하드웨어도 없다. 게임 PC에 남는 것은 입력 장치의 USB 연결 이력 정도다
  • 파생 흔적: 입력 장치의 설치·연결 시각, 설명되지 않는 추가 입력 장치(input-inject). 같은 PC에서 화면을 읽는 1PC 변형은 화면을 스캔하는 프로그램이 게임 PC에서 돈다. 게임 메모리나 모듈에는 손대지 않지만 그 프로그램의 PF·BAM 같은 실행 흔적은 Ring3 축에 남는다
  • 보는 곳: DMA / L0 안전 깊이의 HID 장치 확인, 1PC 변형은 Ring3 실행 목록(T+10·T+18). 탐지의 중심은 조준 패턴·반응 시간·움직임 궤적 같은 행동 분석이고, FACEIT도 행동 기반 머신러닝을 안티치트에 더했다
  • FP: 방송·녹화용 2PC 캡처 구성, 정상 게이밍 입력 장치
  • 판정: 호스트 흔적이 거의 없어 Insufficient가 기본이다. HID 장치 이상과 제보 정합이 겹쳐도 Suspicious가 상한이다. 1PC 변형의 실행 흔적이 잡히면 그 프로그램을 Ring3 축으로 판정한다
  • 현장 은어: 픽셀봇, 컬러봇, AI 에임봇

input-inject ​

마우스·키보드로 보이는 USB 장치가 입력을 대신 넣는다. KMBox·Makcu·Arduino 계열이 여기에 든다. 2PC DMA 구성에서는 두 번째 PC가 계산한 조준 보정을 넣는 통로이고, ai-pixel의 입력 경로이기도 하다.

  • 동기: 입력이 호스트 소프트웨어가 아닌 하드웨어 장치에서 들어오므로 입력 후킹 검사를 피한다고 생각한다.
  • 남는 것: 게임 PC에서 장치는 USB HID(마우스·키보드)로 잡힌다. 연결 이력은 레지스트리 Enum\USB(VID·PID 이름의 하위 키), 장치별 설치·첫 설치·마지막 도착·마지막 제거 시각, setupapi.dev.log, Kernel-PnP 이벤트에 남는다
  • 파생 흔적: 실제로 쓰는 것보다 많은 마우스·키보드 항목, 사용자가 말한 제품과 맞지 않는 VID/PID, 설명되지 않는 USB 시리얼 장치(포트(COM & LPT), Community 참고). 1PC 구성이면 장치를 제어하는 프로그램의 실행 흔적도 Ring3에 남는다
  • 보는 곳: DMA / L0 안전 깊이의 HID 장치 확인, Ring3 실행 목록
  • FP: 정상 게이밍 장치(한 장치가 여러 HID 항목으로 잡힌다), 개발 보드. 제품과 용도를 확인한다
  • 판정: 장치 이력은 연결 사실만 말하고 입력을 넣었는지는 말하지 않는다. 2PC 구성이면 게임 PC에 남는 것이 장치뿐이라 Insufficient가 기본이고, 장치 이상과 제보가 겹쳐도 Suspicious가 상한이다. 1PC 구성에서 제어 프로그램의 실행 흔적이 잡히면 그 프로그램을 Ring3 축으로 판정한다

환경 ​

env-off ​

안티치트나 보안 기능을 의도적으로 끈다 (IOMMU off, HVCI off, AC 미설치).

  • 동기: 보호가 꺼져 있으면 커널·DMA 경로가 쉬워진다고 생각한다.
  • 남는 것: 설정 값만 (msinfo32, 코어 격리, Secure Boot 상태)
  • 파생 흔적: 설정을 바꾼 도구의 실행 흔적, 재부팅 기록, CodeIntegrity 이벤트
  • 보는 곳: 환경 노트(T+38). 환경 점수로만 기록한다
  • FP: 구형 하드웨어, BIOS 미지원, VM 호환 문제. 보드 모델과 BIOS 버전을 확인한다
  • 판정: 환경 설정 단독 Confirmed 불가. 가중치만 부여한다. "IOMMU가 꺼져 있다"는 "DMA를 썼다"의 증거가 아니다

게임 노트 ​

Minecraft ​

관심 계열SS 포인트
inject-jni-javaagent JVM 인수 + 미확인 경로. 1.20.5 이후(Java 21 필수)는 동적 주입 경고와 -XX:+EnableDynamicAgentLoading 인수도 본다. InjGen·ValorMod
alt-modmods 폴더 JAR vs 인스턴스 밖 에이전트 구분. 정상 난독 모드는 FP
overlayMC 오버레이 모드(미니맵)와 비인가 ESP 구분
fileless·decoy유니코드 폴더·이름 위장 조합은 회피용 명명 자체가 시그니처. 호스트 실행 흔적과 교차

서비스·프로세스를 본 뒤, 모드와 JVM 에이전트, 실행된 JAR(mods 폴더가 아닌 것), USN, BAM 순으로 확인한다. Lunar·Feather 등 승인 클라이언트의 에이전트는 기대 경로에 있다. 미확인 경로는 능력 증거일 뿐 단독 Confirmed가 아니다.

FiveM ​

보는 것타입대응
서버 ensure와 다른 lua리소스에 심기리소스 폴더 대조. 비교적 잘 잡힘
리소스 Clean + 로더 exe루아 실행기로더 PF/USN/BAM + 리소스 Clean 조합
FiveM.exe 모듈 이상고전 인젝R3-PROC 모듈 검사

리소스 폴더가 Clean이어도 루아 실행기 경로가 있을 수 있다. "리소스가 깨끗하니 Clean"은 성급하다.

Valorant / FACEIT(CS2) ​

Vanguard(vgk.sys)·EAC·BattlEye 커널 드라이버는 안티치트 자체이므로 Ring0 FP다. IOMMU·HVCI·FACEIT 요구 미충족은 환경 점수로 기록하되 치트 Confirmed와 분리한다.

CS2를 FACEIT에서 하면 FACEIT 안티치트가 돈다. 이 안티치트는 앱, PC 부팅 때 로드되는 커널 모드 드라이버, 서버 쪽 SDK로 이뤄지고 Windows 10·11에서만 돈다. 드라이버는 안티치트 자체이므로 Ring0 FP다. 사용자가 트레이 아이콘의 "disable driver"로 드라이버를 내릴 수 있고 재부팅하면 다시 올라오므로, 드라이버가 올라와 있지 않다는 사실만으로 조작을 단정하지 않는다.

FACEIT의 CS2 환경에서는 소프트웨어만 쓰는 치트가 시장에서 거의 사라졌고, 2026년 1분기 새로 들어온 벤더의 52%가 펌웨어·DMA, 17%가 AI·다중 장치 제품이었다. 이 환경의 제보는 호스트 흔적이 적은 dma-2pc·ai-pixel·input-inject를 염두에 두고 USB 입력 장치 이력을 함께 본다. 판정 상한은 각 계열의 판정 항목을 따른다.

Rust ​

Rust는 커널 수준 안티치트인 Easy Anti-Cheat(EAC)를 쓴다. EAC 드라이버는 안티치트 자체이므로 Ring0 FP이고, 이름은 FP 베이스라인의 안티치트 표에 있다. Steam 상점 고지에 따르면 EAC는 게임을 삭제한 뒤 따로 제거해야 하므로, Rust를 지운 PC에 EAC가 남아 있는 것은 이상이 아니다.

Community ​

Community. 아래는 커뮤니티 진술의 의역이며 Confirmed 조건이 아니다.

  • 내부 치트는 게임 재시작으로 끊으려 한다. 재실행 이후의 PF/BAM/USN을 본다.
  • 디스크를 안 지우고 막으려 한다. 서비스는 Running인데 스레드는 죽어 있다.
  • 스캐너를 디스크 스캐너처럼 부른다. Silent는 Clean이 아니다.
  • 캡처제외 창은 라이브에 있고 스크린샷에는 없을 수 있다.
  • 파일리스 실행은 "흔적이 안 남는다"고 돌지만, 같은 대화에서 실행 주체의 Prefetch·스크립트 로그·명령행이 남는다고 인정된다.
  • 클라우드 보관함에 두면 저널에 안 뜬다는 주장이 있다. 잠금 해제·동기화 기록은 남는다는 반론과 같이 다닌다.
  • 저널 없는 볼륨·유니코드 폴더·이름 바꾸기의 조합으로 "파서를 전부 피했다"는 보고가 있지만, 정작 정확한 프로세스 이름은 남는다고 스스로 적는다.
  • 정상 바이너리만 실행되면 검사를 통과한다는 주장이 있지만, 명령행과 산출물이 남는다는 인정이 뒤따른다.
  • 로그를 지우는 대신 채널을 끄거나 시간을 바꾼다는 이야기가 있다. 끄고 바꾼 사실 자체가 기록된다는 인정이 뒤따른다.
  • 외부 입력 장치 설정 안내에서는 같은 PC에서 장치를 제어하는 1PC 구성이면 장치가 게임 PC에 USB 시리얼(COM) 포트로도 잡히고, 2PC 구성이면 두 번째 PC가 명령을 보내 게임 PC에는 입력 장치만 보인다고 설명한다.

이 분류가 뜻하지 않는 것 ​

  1. 탐지 보장이 아니다. 계열을 안다고 모든 변종을 잡지는 못한다.
  2. 계열은 진화한다. overlay의 캡처제외 변종, kernel의 BYOVD처럼 수법은 계속 바뀐다.
  3. 이름 맞추기 게임이 아니다. 계열 이름을 맞혀도 흔적이 없으면 판정 재료가 안 된다.
  4. FP 후보라고 무시가 아니다. 해당하더라도 증거에 기록하고 실행 흔적으로 교차한다.

Sources ​

Next ​