SDB(Shim Database)란?

2025. 5. 7. 23:08·기타

✅ sdb 파일이란?

  • Microsoft Windows에서 애플리케이션 호환성 문제를 해결하기 위한 데이터베이스 파일
  • 인덱싱된 이진 파일로, 확장자는 `.sdb`
  • 데이터베이스 내에 애플리케이션의 호환성 문제와 그 해결 방법이 저장되어 있음.

응용프로그램을 실행할 때 호환성 문제를 해결하는 함수는 `kernel32.dll`의 내부 함수인 `BasepCheckBadApp`임.

해당 함수가 호출되면, sdb 파일의 내용을 참고하고, 더 빠르게 해결하기 위해서는 심캐시(ShimCache, AppCompatCache)를 참고함.

 

 

🔍 sdb 파일의 구성요소

1. 애플리케이션 항목(Application Entries)

데이터베이스는 각 애플리케이션에 대한 호환성 정보와 해결 방안이 저장됨.

-> 특정 프로그램이 특정 Windows 버전에서 충돌이 발생하면, sdb 파일에 해당 프로그램에 대한 수정 사항이 기록됨.

 

2. 일치 항목(Matching Entries)

호환성 인프라는 실행 파일을 특정 파일 특성(이름, 크기, 체크섬, 버전 등)으로 식별함.

`example.exe`라는 파일이 존재한다면, 이 파일의 크기, 체크섬, 버전 등을 기준으로 데이터베이스에 있는 항목과 비교하여 일치 여부를 확인함.

 

3. TAG 형식(TAG Format)

sdb 파일의 데이터는 TAG라는 형식으로 저장됨.

각 TAG는 특정한 데이터 유형을 나타냄.

  • TAG 유형: https://learn.microsoft.com/ko-kr/windows/win32/devnotes/tag
 

TAG(Exposeenums2managed.h) - Win32 apps

shim 데이터베이스의 항목을 식별합니다.

learn.microsoft.com

 

 

🗺️ sdb 파일의 주요 경로

먼저, sdb 파일은 애플리케이션 호환성 문제가 발생할 때 생성됨.

Microsft는 운영체제 업데이트나 보안 패치를 배포할 때, 특정 애플리케이션이 해당 업데이트와 충돌할 가능성이 있으면 sdb 파일을 을 통해 호환성 패치를 적용함.

사용자가 수동으로 호환성 문제를 해결하기 위해 Compatibility Administrator 같은 도구를 사용할 때도 sdb 파일이 생성됨.

경로 설명
`C:\Windows\apppatch\drvmain.sdb` 드라이버 호환성 문제 해결을 위한 데이터베이스
`C:\Windows\apppatch\pcamain.sdb` 프린터 및 기타 주변기기 호환성 문제 해결을 위한 데이터베이스
`C:\Windows\apppatch\sysmain.sdb` 운영체제 전반에 걸친 호환성 데이터베이스
`C:\Windows\apppatch\msimain.sdb` MSI(Microsoft Installer) 관련 호환성 문제 관리 데이터베이스
`C:\Windows\AppPatch\Custom\*.sdb` 사용자 정의 Shim Database
`C:\Windows\System32\ CompatTelRunner.exe` 호환성 데이터 수집 프로그램

 

사용자 정의 sdb 파일은 `Custom` 폴더에 저장되는데, 다음 ASEC 블로그 글을 확인해 보면 악의적으로 생성된 sdb 파일도 역시 `Custom` 폴더에 만들어지는 것을 확인할 수 있다.

 

Ammyy 해킹툴에서 확인된 Shim Database(SDB) 인젝션 공격

 

 

저작자표시 비영리 (새창열림)

'기타' 카테고리의 다른 글

[STCON 2024] OWASP Top 10 for LLMs 및 대응 방안  (5) 2024.11.04
Binwalk 옵션  (0) 2023.07.16
[자료구조] - 스택 (Stack)  (0) 2022.08.24
소켓 통신 (Socket Communication)  (0) 2022.07.26
2, 8, 10, 16 진법 변환 쉽게 하기  (0) 2022.05.03
'기타' 카테고리의 다른 글
  • [STCON 2024] OWASP Top 10 for LLMs 및 대응 방안
  • Binwalk 옵션
  • [자료구조] - 스택 (Stack)
  • 소켓 통신 (Socket Communication)
602zzang
602zzang
  • 602zzang
    yks_STUDY
    602zzang
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • Programming Language (36)
        • C (15)
        • PYTHON (9)
        • RUST (12)
      • Network (0)
      • Reverse Engineering (3)
      • OS (17)
        • LINUX (17)
        • UNIX (0)
      • 보안 이슈 (6)
      • CTF (6)
      • 기타 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    P4C
    c
    보안동향
    파이썬
    보안이슈
    umassctf2025
    rust
    rustling
    bandit
    드림핵
    malloc
    공급망
    백준
    빡공팟
    picoCTF
    코드업
    python
    TeamH4C
    Rocky Linux
    소켓 통신
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
602zzang
SDB(Shim Database)란?
상단으로

티스토리툴바