Reversing

[IDA plugin] Diaphora

Tribal 2018. 6. 18. 14:01

IDA 지원 버전 : 6.9부터

 

  IDA 최신 버전에서 사용하는 bindiff라고 생각하면 된다. 바이너리 코드에서 달라진 부분을 찾아 비교해서 보여주는 플러그인이다. IDA 버전 7.3과 7.4를 기준으로 사용할 diaphora 버전과 python 사용 버전이 바뀐다.

 

diaphora 다운로드 시 버전 참고 사항

설치

  1. IDA 버전에 맞게 diaphora를 다운로드하고 압축을 푼다.
  2. git clone으로 생성된 폴더 자체를 IDA 설치 경로의 plugins으로 복사 (e,g) C:\Program Files\IDA\plugins
    그냥 diaphora 다운로드 경로만 잘 기억해두자.

사용방법

 

1. 원래 Edit - Plugins - Diaphora - Export or diff를 누르면 된다고 하는데 안 뜸... (안 되니깐 무시...)

1. sample1 파일을 IDA로 Open 한다.

2. File - Script file - diaphora.py 실행

 

3. IDA database 파일을 SQLite 파일로 생성한다. 설정이 여러가지 있으므로 알아서 설정한다. 아래 사진은 기본 설정이다.

4. sample2 파일을 IDA로 Open 한다.

5. IDA database 파일을 SQLite 파일로 생성한다. 이 때, 3번 과정과 다르게 SQLite database to diff against에 3번 과정에서 생성된 sample1.sqlite를 지정해준다.

6. OK를 누르면 diffing이 된다.

7. Ratio가 매칭률 100% 기준으로 1.000으로 설정되는데, partial matches 탭에서 0.9~~처럼 대강 비슷한 함수부터 시작해서 분석하면 된다.

 

참고