어플리케이션 바인딩

바인딩 : 서로 엮다. 무언가와 무언가를 엮는다는 의미이다.

어플리케이션 바인딩이란 적절한 어플리케이션과 연결시켜준다는 의미이다. 예를들어, 어떤 파일을 실행했을 때 해당 파일이 자동적으로 어떤 특정 어플리케이션과 연결되어 실행된다.

(mp4파일을 실행하였을 때 곰플레이어로 해당 파일이 실행이 되는 상황)

이렇듯 파일과 어플리케이션을 연결시켜주는 작업을 어플리케이션 바인딩이라고 한다.

어플리케이션 바인딩은 각 운영체제별로 설계방식에 따라 다르다.

 

-윈도우 어플리케이션 바인딩

윈도우는 확장자(extention)에 기반하여 어플리케이션 바인딩을 수행한다. 따라서, 확장자를 변경하면 해당 어플리케이션으로 연결이 되지 않는다. 예를들어 hwp파일의 확장자를 jpg로 바꾸면 한컴오피스가 실행되는 것이 아니라 이미지뷰어가 실행된다. 물론 hwp파일은 jpg포맷을 가지고 있지 않기 때문에 오류가 발생된다. 하지만 jpg파일을 png로 변경하여도 문제 없이 뜨는 이유는 해당 어플리케이션이 png 파일도 해석할 수 있기 때문이다. 결국, 바인딩은 단순히 어플리케이션으로 연결만 시켜주는 역할을 수행한다. 이후의 작업은 해당 어플리케이션의 동작에 의존한다.

, 그럼 어플리케이션 바인딩 정보는 어디에 있을까?

윈도우 NT 이후 다중 사용자 시스템이기 때문에, 바인딩 정보는 사용자에 따라 다르게 존재한다.

 

개별적인 바인딩 정보는 사용자 레지스트리 정보인 “NTUSER.DAT”레지스트리 파일에 저장된다. 레지스트리(regedit.exe)을 열어보면 5개의 기본적인 키가 보이는데, 이중 HKEY_USER키가 NTUSER.DAT 파일의 내용을 보여준다. HKEY_CURRENT_USER 항목은 현재 로그인한 사용자의 정보를 유지하고 있는데, 로그아웃이나 종료를 하게되면 각각 HKEY_USER로 복사가 된다.

윈도우의 어플리케이션 바인딩 정보는

HKEY_USERS\<user_SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 에 저장이 된다.

각 사용자의 SID로 구분되어 사용자별 어플리케이션 바인딩 정보가 저장되는 것이다.

 

 

해당 키 값을 살펴보면, 하위에 많은 확장자 이름별로 키가 존재한다. 각각 확장자를 클릭해보면 연결되는 프로그램 정보가 저장되어 있다.

 

 

 

어디선가 많이 본듯한 이 화면, 적절한 연결프로그램이 없을 때 연결할 프로그램을 고르라는 이 창이 바로 어플리케이션 바인딩을 지정하는 창이다.

 

 

- 리눅스 / 유닉스 어플리케이션 바인딩

 

유닉스 계열(리눅스포함)은 확장자 기반의 바인딩이 아니라 파일의 고유 헤더 시그니처를 기반으로 바인딩을 수행한다. 따라서 유닉스 계열에서는 확장자를 .jpg로 변경한 COFF 포맷의 파일도 실행권한만 주어지면 정상적으로 동작한다.

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

본 게시물은 공부한 내용을 바탕으로 작성한 글로써, 점차 수정 및 추가를 통해 내용을 발전시킬 계획입니다.

따라서 오타 및 내용상의 오류, 추가할 내용 등이 있을 경우 주저 없이 알려주시면 감사하겠습니다.

궁금한점을 물어보시면 제가 아는 선에서 최대한으로 알려드리겠습니다.

 

'Forensic.' 카테고리의 다른 글

웹 브라우저 포렌식  (1) 2016.08.31
파일 시스템(File System)의 정의와 종류  (1) 2016.08.24

+ Recent posts