지역명 아님... 자전거 이름임
by 낙서
카테고리
Using 'Applied Lib' function in IDA 5.2 (step by step)
BuddyBuddy(이하 Buddy2) 메신저는 MFC42lu 라이브러리를 이용해 작성된 프로그램이다. 따라서 Buddy2를 손쉽게 리버싱 하기 위해서는 MFC42lu 라이브러리가 필요하다. 왜냐하면 바로 아래 그림 처럼 Import 함수들의 이름을 식별할수 없기 때문이다.
그렇다면 이 식별 불가능한 함수 이름을 어떻게 알아 볼수 있게 바꿀수 있는가? 해답은 바로 IDA 5.2 에 있다. IDA는 Signature를 통해 이미 잘 알려진 라이브러리를 자동 분석 해주는 기능을 가지고 있다 (List of applied library modules). 하지만 이 기능을 적용하기 위해서는 해당 라이브러리 파일이 반드시 필요하다. 위의 경우에는 MFC42lu.lib 파일이 필요 한 것이다.

MFC42lu.lib 파일을 획득 하였다고 가정한다. List of applied library modules 기능을 사용하기 위해서는 우선 이 라이브러리 파일을 통해 내장된 obj 파일을 추출해야 한다.

1. LIB 파일에서 OBJ 파일 추출하기

LIB 파일을 IDA를 통해 열면 다음과 같이 다수의 obj 파일로 구성되어 있음을 확인 할수 있다. 이 obj 확장자 파일들은 LIB 명령어를 통해 추출 가능하다.
LIB 명령어의 EXTRACT 옵션을 이용하면 되며 membername은 바로 위 IDA에서 본 Filename 컬럼의 내용들이 들어가면 된다.
다수의 obj 파일을 일일이 손으로 추출하기 어려우면 배치 프로그램을 이용하면 용이 할 것이다.

2. OBJ 파일에서 Pattern 파일 만들기

1의 과정으로 아래와 같이 OBJ 파일들을 추출 하였습니다.
이제 이 OBJ 파일들을 pcf.exe 파일을 통해 하나의 패턴 파일로 변환해야 합니다.
위 그림은 pcf 사용방법과 옵션에 대한 설명을 보여주고 있습니다.
이 과정 역시 다수의 OBJ 파일에 대해서 작업을 해야 하기 때문에 배치 프로그램을 이용하면 효율적입니다.

3. Pattern 파일로 Signature 파일 만들기

IDA 에서 인식하는 Signature 파일을 만드는 과정입니다.
사용되는 유틸리티는 sigmake 입니다.
위 그림은 sigmake를 어떻게 사용하는지에 대해서 보여주고 있습니다.

4. IDA에 적용하기

by 낙서 | 2009/09/23 11:48 | Reversing | 트랙백 | 덧글(0)


<< 이전 페이지 다음 페이지 >>


최근 등록된 덧글
rss

skin by 이글루스