피드로 돌아가기
TinyLoad v5 — encrypted strings, opmap obfuscation, and IAT wiping
Dev.toDev.to
Security

VM-기반 PE Packer의 정적 분석 무력화를 위한 3단계 하드닝 설계

TinyLoad v5 — encrypted strings, opmap obfuscation, and IAT wiping

iamsopotatoe2026년 5월 19일5advanced

Context

기존 v4 버전은 API 문자열이 Plaintext로 노출되어 정적 분석 도구에 의해 호출 함수가 즉시 식별되는 취약점이 존재함. 또한 Opmap 디코드 테이블이 평문으로 저장되어 분석가가 VM 바이트코드를 쉽게 역공학할 수 있는 구조적 한계를 가짐.

Technical Solution

  • Rolling XOR 알고리즘을 통한 API 문자열 암호화로 Binary 내 Plaintext 제거 및 런타임 복호화 구조 채택
  • FNV-1a Hash 기반의 Content-derived Masking을 적용하여 파일마다 고유한 Opmap 테이블을 생성하는 동적 난독화 구현
  • PE 파일의 OriginalFirstThunk 및 Import Directory를 로드 후 Zeroing 처리하는 IAT Wiping 기법으로 메모리 덤프 분석 차단
  • Compiler 최적화를 방지하는 attribute((used)) 적용 및 Junk VM Instructions 삽입을 통한 디스어셈블리 노이즈 생성
  • 32-opcode VM Interpreter 기반의 바이트코드 실행 구조를 통해 원본 로직의 추상화 계층 강화

- 민감한 문자열은 Plaintext 저장을 지양하고 런타임 복호화 메커니즘을 검토할 것 - 고정된 난독화 키 대신 파일 콘텐츠 기반의 Seed를 활용한 동적 마스킹 적용을 고려할 것 - 런타임에 불필요해진 Import 구조체나 설정 정보를 명시적으로 삭제하여 메모리 포렌식 난이도를 높일 것 - 정적 분석 방해를 위해 Dead Code 및 Junk Instruction을 전략적으로 배치하여 분석 비용을 증대시킬 것

원문 읽기