IDA 사용법 및 분석 시 유용한 팁
- 리버싱/리버싱
- 2020. 3. 7. 03:05
간단한 IDA 사용법이라고 할지... 개인적으로 분석할 때 알고있으면 유용하다고 생각하는 팁들을 정리해보려 한다. (+ 아직 몇가지 밖에 없는데 생각날 때마다 계속 추가될 예정이다)
함수 관련
함수 설정 (Create Function)
가끔 함수 시작지점이 맞는데 함수 지정이 안되어 있어서 함수로 인식이 안되는 경우가 있다. 이럴 경우 프롤로그 시작부분에 커서를 놓고 마우스 우클릭을 하면 'Create function'이 있는데 이걸 클릭해주면 된다.
이전 분기 찾기
아래와 같이 분기가 상당히 복잡한데 예를들어 원하는 블록의 이전 블록을 찾고싶다면 복잡한 화살표를 일일이 눈으로 따라서 찾아가지 않고도 화살표를 두번 클릭하면 자동으로 이전 블록이 찾아진다.
코드 관련
옵코드 보기
옵코드를 같이 보고 싶다면 Options>General의 'Number of opcode bytes'를 변경해주면 된다.
데이터 관련
데이터 xrefs 타입 확인
내가 IDA에서 제일 유용하게 사용하는 기능인데 특정 데이터가 어디서 쓰이는지 확인해보려면 데이터 xrefs에서 Type이 'w'인 곳을 찾으면 된다.
데이터 dword 지정
아래와 같이 byte 기준으로 저장(?) 되어 있는 데이터를 4바이트 기준으로 묶고싶을 때가 있다(아래 문자열 같은 경우는 굳이 4바이트로 묶을 필요는 없지만 하나의 예시로 생각해주길 바란다).
이런 경우, 데이터에 커서를 놓고 d를 두번 연속으로 입력하면 아래와 같이 4바이트로 묶이게 된다.
문자열 타입 설정
Strings Window에서 문자열이 C 타입으로만 지정되어 있는 경우 원하는 문자열을 찾지 못하는 경우가 있다. 이런 경우 Strings Window 에서 마우스 우클릭 후 'Allowed string types'를 원하는대로 체크해주면 유니코드 등의 다른 타입의 문자열도 볼 수 있다.
기타
imagebase 변경
IDA와 동적분석 툴을 같이 사용한다면 imagebase 주소를 맞주는게 훨씬 편하다. Edit>Segments>Rebase program에서 IDA의 imagebase 주소를 변경할 수 있다.
아래 Value 값을 원하는 주소로 변경해주면 된다.
'리버싱 > 리버싱' 카테고리의 다른 글
NtQueryInformationProcess를 이용한 안티디버깅 (0) | 2020.03.14 |
---|---|
[원데이 취약점] GOM Player 2.0.12.3375 - '.asx' Local Stack Overflow (0) | 2020.03.11 |
바이너리 디핑을 위한 bindiff 설치 및 사용법 (0) | 2020.02.21 |
PE Viewer 개발 (3) - IMAGE_SECTION_HEADER (0) | 2020.02.11 |
PE Viewer 개발 (2) - IMAGE_NT_HEADERS (0) | 2020.02.09 |