티스토리 뷰
IDA 6.8 버전 기준.
들어가기 전에...
IDA란? Interactive DisAssembler 의 약자로, 강력한 바이너리 정적 분석 기능을 가진 툴이라 할 수 있다.
특히 같이 설치되는 Hexray Decompiler 는 왠만한 ASM 코드를 가상 C언어 Pseudocode로 변환하고, 이를 기반으로 디버깅 할 수 있는 점이 큰 장점으로 꼽히고 있으며, C++, Python을 기반으로 하는 다양한 플러그인을 제작해 사용할 수 있다.
이 외에도 찾아보면 다양한 장점이 존재한다.
- 셋팅
1. 플러그인 설치
먼저, 초기 설치 시 같이 설치되는 IDAPython을 설치하지 않았다면, 과감하게 전체 삭제 후 다시 설치하자.
물론 수동으로 나중에 따로 설치해도 되겠지만 이거 은근히 귀찮고 잘 안된다.
플러그인은 크게 %IDA_INSTALLED_DIR%\Plugins 에 파일을 넣어 설치형으로 사용하는 것과, 필요할 때마나 스크립트를 로드하여 사용하는 두 가지 방식이 있다.
! 계속해서 추가 중.
설치형 플러그인.
[LINK] IDATheme
- 하얀색 배경에 싸 보이는 IDA에 블랙 계열의 멋있는 테마를 적용 시켜준다.
[LINK] IDAConsonance
- IDATheme 같이 사용해 IDA-View 부분의 테마 파일. 디버거 테마는 따로 설정해야 된다. 상단의 Options -> Color -> Import 에서 로드해주면 자동 적용된다.
[LINK] IDAPatcher
- NOP패치 등 간단한 바이너리 패치 작업을 좀 더 편리하게 해준다.
[LINK] IDASploiter
- ROP Gadget, Function Pointer 검색 등 익스플로잇 작성 편의를 위한 플러그인.
[LINK] Class Informer
- Windows C++ 을 기반으로 한 WIN32 바이너리의 클래스 및 구조체를 역추적해준다. GCC 컴파일러 기반 바이너리도 일부 지원한다.
[LINK] HexRaysCodeXplorer
- Windows C++ 및 GCC 컴파일러를 기반으로 한 바이너리의 클래스 및 구조체를 역추적하고, IDA Pseudocode 플러그인에서 Virtual Pointer를 분석해 (objpointer + x) 와 같은 메모리 주소를 변수 이름으로 할당해 줄 수 있다. Class Informer 보다 더 좋은 것 같음.
실행형 플러그인.
[LINK] vb.idc
- Visual Basic 6.0 컴파일러로 컴파일된 바이너리를 인식하지 못하는 IDA에 도움을 준다.
[LINK] funcap
- 디버깅 모드에서 모든 함수의 호출 과정과 인자값을 모조리 기록한다. 간단한 멜웨어 분석 시 도움될지도.
[LINK] bfltldr
- MIPS, ARM 으로 컴파일된 ELF 중 bFLT 형식을 가진 바이너리를 로드할 수 있게 해준다. 이 플러그인이 없다면, IDA는 단순 binary file로 밖에 인식하지 못함.
2. 설정
Options -> General -> Disassembly 에서 우측의 "Line prefixes", "Stack pointer"를 체크해 준다.
Line prefixes 는 IDA-View의 그래프 모드에서 코드 옆에 메모리 주소를 표시해 준다.
Stack pointer 는 코드 옆에 현재 스택 포인터 크기를 표시해 준다.
'Reversing > Tool' 카테고리의 다른 글
IDA와 Ollydbg 의 esp 표시 차이와 스택 포인터에 대해 (0) | 2016.05.05 |
---|