코드 보안 cpp 고급레벨
cpp // 1. 코드 가상화 (일부) // 핵심 로직을 커스텀 VM으로 실행 class CustomVM { // 자체 바이트코드 정의 // 리버싱 극도로 어려움 } ; // 2. 동적 코드 생성 void dynamic_code ( ) { // 런타임에 검증 로직 생성 // 항상 다른 형태 } // 3. 서버 측 검증 void server_verify ( ) { // 중요 계산은 서버에서 // 클라이언트는 결과만 받음 } // 4. 하트비트 체크 void heartbeat ( ) { // 주기적으로 서버에 무결성 보고 // 실시간 모니터링 } ``` 1. 동적 제어 흐름 난독화 (Dynamic Control Flow Flattening) 정적 분석기로 보면 함수가 A -> B -> C 순서로 호출되는 게 보입니다. 이걸 런타임에 박살 내야 합니다. 설계 : 거대한 switch 문과 while 루프가 포함된 **'중앙 통제실 함수'**를 만듭니다. 작동 : 모든 클래스 호출을 직접 하지 않고, 중앙 통제실에 "작전 코드 501번 실행해"라고 명령을 보냅니다. 통제실은 실행 시점에 상태 값을 보고 실제 함수를 호출합니다. 효과 : AI가 그래프를 그리려고 하면 모든 선이 중앙 통제실로 모였다가 다시 흩어지는 **'블랙홀 그래프'**가 그려집니다. 분석기는 여기서 논리적 연쇄를 놓치고 무한 연산에 빠집니다. 2. 다형성을 이용한 '가짜 객체' 주입 (Opaque Predicates) AI는 "이 변수에는 무조건 이 클래스가 들어온다"는 확률로 분석합니다. 이걸 배반해야 합니다. 설계 : 아무 기능도 없는 Dummy_Base 클래스를 상속받은 수십 개의 가짜 클래스를 만듭니다. 작동 : 런타임에 진짜 클래스를 생성할 때, 옆에 가짜 클래스 5개를 같이 생...