악성코드 및 역공학기법 수업의 과제를 하면서 사용한 툴 중 하나인 리소스 해커(Resource Hacker)를 소개하려고 한다.
1) 리소스 해커(Resource Hacker)란?
리소스 해커는 호주의 Angus Johnson가 만든 리소스 분석 프로그램으로 실행파일의 리소스를 볼 수 있으며 더 나아가 추가하거나 제거할 수 있는 기능을 제공한다.
보다 자세히 설명하자면, 리소스 해커는 윈도우 애플리케이션을 위한 무료 리소스 컴파일러 및 디컴파일러로, 32bit와 64bit 모두 지원하며 실행 가능 파일(*.exe, *.dll 등)과 컴파일된 리소스 바이너리 (*.res, *.mui)의 리소스를 보고 수정할 수 있다. 리소스 해커는 GUI 애플리케이션이지만, 커맨드 라인으로도 컴파일 및 디컴파일 옵션을 제공하고 있다고 소개하고 있다.
2) 리소스 해커 다운로드
리소스 해커는 리소스 해커 공식 홈페이지에서 다운로드가 가능하다.
공식 홈페이지에 들어가면 아래의 사진처럼 뜨고, 파란색 Download를 클릭하면 EXE 설치 버전과 바로 사용 가능한 EXE를 압축해 놓은 ZIP 버전이 있다. 편한 대로 선택해서 다운로드를 진행하면 된다.
만약 홈페이지에 접근 불가능하다면 아래의 첨부파일로 사용하면 된다. (파일 첨부일 : 2021.08.24)
1. EXE 설치 버전
2. ZIP 실행파일 버전 (설치 필요 x)
3) 사용법
본 글에서는 리소스 해커 방법을 간단하게 다룰 것이며, 특정 파일을 직접 분석하며 설명하려고 한다. 보다 자세한 사용 방법은 리소스 해커 공식 홈페이지를 참고!
- 분석 파일
IDA Freeware setup.exe (*IDA는 바이너리 파일을 역으로 어셈블리어로 재구성해주는 디스어셈블러의 일종이다.)
- 커서에 대한 정보
IDA 설치 프로그램에서는 다양한 커서가 사용되는데 이에 따라 Cursor 파일과 Cursor Group 파일을 통해서 자세한 정보를 알아볼 수 있었다. 밑의 두 사진처럼 여러 커서 중 하나를 클릭하면 Editor View로 생김새를 확인할 수 있고, Binary View를 이용해 바이너리 형식으로도 확인이 가능했다.
Cursor Group의 경우에는 ordinal name이라고 Cursor 폴더를 확인했을 때 보였던 순서가 적혀 있으며 해당 아이콘의 이름이 무엇이고, 크기와 색의 정보도 알 수 있다. <그림 2>는 <그림 1>에서 살펴본 icon의 이름(X_CURSOR)과 크기(32*32), 총 2가지 색상이 있다는 것을 알 수 있다. 그리고 Ordinal name은 1인 것도 알 수 있다.
- 아이콘 정보
아이콘에 대한 정보는 Icon파일과 Icon Group파일이 존재한다. Icon은 같더라도 크기가 다르면 다 다른 icon으로 처리해서 보여주며 group파일에서는 크기만 다르다면 같은 것으로 묶어서 보여준다. 아래 사진의 오른쪽 상단을 보면 IDA의 대표적인 icon이 나와있는데 크기만 다르기(32*32 or 16*16) 때문에 같은 그룹으로 묶어서 보여주고 있음을 알 수 있다.
- 다이얼로그 정보
Dialog 정보의 경우에는 새로운 창이 뜰 경우 폰트의 종류나 크기, 언어와 위치 등의 정보를 담고 있다.
아래의 사진과 같이 실제로 뜨는 새창의 모습을 보여주며 동시에 뒤에서는 해당 리소스의 정보를 나열해주고 있는 것을 볼 수 있다.
- 버전 정보
마지막으로 Version Info에서 회사 이름(Hex-Rays SA), 버전 정보(7.0),상품 이름(IDA Freeware 7.0), 해당 파일 이름(setup.exe) 등을 알 수 있었다.
간단하게 리소스 해커 사용법을 살펴보았다. 위에서는 단순히 어떤 리소스를 어디서 확인할 수 있는지 분석했으나, 실제로 리소스 해커는 바이너리 컴파일 및 디컴파일이 가능하니 해당 기능도 사용해보면 좋을 것 같다. 또한 커맨드 라인으로도 바이너리 컴파일 및 디컴파일 기능을 제공하므로 리소스 해커 공식 홈페이지에서 참고해 사용해보면 재밌을 것 같다!
또한 리소스 해커에서 알 수 있는 정보들을 살펴보면 PE 파일의 헤더에서 얻을 수 있는 정보들도 보이는 데, PE 파일 헤더 분석에 관심이 있다면 [악성코드] PE 파일(포맷) Part 1 - 개념 및 생성과정과 구조 글도 추천!!
'정보보호 공부' 카테고리의 다른 글
DLL Ingection 실습 (1) | 2023.10.30 |
---|---|
[악성코드] PE 파일(포맷) Part 2 - PE 파일 구조 (feat. 섹션) (0) | 2021.08.24 |
[악성코드] PE 파일(포맷) Part 2 - PE 파일 구조 (feat. IAT, 라이브러리) (0) | 2021.08.23 |
[악성코드] PE 파일(포맷) Part 1 - 개념 및 생성과정과 구조 (0) | 2021.08.22 |
양자 계산을 위한 선형대수학 -2 : 행렬 (0) | 2020.08.12 |