- 지뢰찾기 리버싱 IDA 문서 참고
- 해당 문서는 6.1버전이라 다른 부분 있을 수 있음
Interactive Disassembler, 디스어셈블러.
작업시 원본 실행파일이 아닌 idb라는 데이터베이스 사용
되돌리기 기능 없음 (ctrl+z 아님)
새로운 파일을 열 때 각종 설정을 하는 창
실행파일이 있는 폴더에 id0 id1 id2 nam til 확장자인 파일이 생긴 것을 확인할 수 있음
① 메뉴바
② 동그란 아이콘이 노란색이면 분석중, 초록색이면 완료
③ subview (Ctrl+tab으로 이동 가능. 혹은 Ctrl +1 로 이동. 후자는 꺼져있는 창도 리스트에 나옴)
④ 자주 사용하는 subview 왼쪽에 배치 가능
⑤ IDA view (그래픽 뷰와 텍스트 뷰 전환은 Spacebar로 가능)
⑥ IDA의 마지막 명령이나 정보들을 Log 형태로 보여줌
⑦ 현재 하드디스크의 남은 용량
분기에서 참인 경우 초록색 화살표, 거짓인 경우 빨간색 화살표가 가리키는 방향으로 프로그램 흐름이 이동함. 파란색 선은 무조건 점프하는 경우를 뜻함.
선을 더블 클릭하면 현재 화면의 위치에 따라 화살표가 시작하는 곳과 끝나는 곳으로 화면이 바뀜.
그래픽 뷰 내에서 이동할 때에는 화면의 빈 공간을 누르고 움직이거나 shift 키를 누르고 아무 곳이나 누른 상태로 이동하면 됨.
IDA 종료시 나오는 창.
메뉴바의 View > Open subviews > strings 혹은 ctrl+1 후 string 선택하면 strings 창이 열림Don’t pack database: 파일을 묶지않음
Pack database(Store, Deflate): 파일을 묶음
Deflate: 파일을 묶을 때 압축함.
DON’T SAVE the database: IDA를 연 후에 작업했던 것들을 저장하지 않음
가장 좌측의 text:01001340은 섹션명과 가상주소Ignore instructions/data definitions: IDA가 코드나 데이터라고 생각되는 것을 무시하지 않음
Hex 창에서 유니코드임을 확인. 바꾸려면 부분 드래그 혹은 시작부분에 커서를 두고 Alt+A를 누르면 해당 창이 뜸
이전으로 돌아가 subkey를 누르고 X를 누르면 xref to 창이 뜸esc: 이전 위치로 가는 단축키
OK 버튼을 누르거나 더블 클릭하면 해당 위치로 이동함 자동으로 함수의 인자명들을 주석으로 넣어주지만 80000001h와 같이 상수가 무엇을 의미하는지는 자동으로 알려주지 않음. 사용자가 설정 가능. 우클릭 후 Use Standard symbolic constant를 선택하면 창이 뜸Direction: 코드의 상대적 위치
Type: o, r, w
- Type의 o, r, w: Open, Read, Write의 약자
Address: 주소
text: 코드
IpKeyName 위에 대고 N키를 누르면 위의 창이 나옴
Local name: 특정 함수 내부에서만 쓰이는 이름으로 지정
Include in names list: Name 창 리스트에 추가
Public name: 외부 라이브러리에서 익스포트된 이름으로 설정
Autogenerated name: IDA가 설정한 이름일 경우 체크됨
Weak name: 이 변수명을 weak 변수로 설정함
Create name anyway: 설정한 이름이 다른 변수명과 동일하더라도 그대로 설정 (비추천)
enum window에서 insert or delete or ctrl+E키를 누르면 enum type 창이 뜸단축키 H: hex값을 10진수로 바꾸기
단축키 R: hex값을 문자로 바꾸기
enum 창에서 N을 누르면 심볼 추가창이 뜸Width: 심볼값의 크기. 2의 승수로만 넣을 수 있음
Hexadecimal/Decimal: 기본으로 보이는 심볼 값의 표현 방식. 10진수/16진수
Binary: or 연산자를 통해 비트를 설정하는 식의 심볼을 설정할 때
signed: 양수, 음수 구분이 있을 때 체크
단축키 Gdepth: 깊이 설정. -1은 깊이에 제한이 없음
ignore: 안 봐도 되는 항목을 없애줌.
Ctrl+P: Functions창과 동일하지만 단축키를 통해 열 수 있음.
함수 이름을 알 경우 타이핑해서 찾을수도 있음
디버거 설정: 툴바나 메뉴바 > Debugger – switch debugger or select debugger에서 선택
local: 현재 컴퓨터에서 디버깅
remote: 외부(가성 컴퓨터 포함)에서 디버깅
Bochs는 Vmware와 같은 가상화 프로그램.
F2로 걸리는 브레이크 포인트는 소프트 브레이크 포인트F2: 브레이크 포인트
F7: step into
F8: step over
F5: IDA view창에서는 디컴파일, IDA view EIP 창에서만 Run 기능