IDA 정리

스페이스바 -> 구성도와 어셈블리창 전환
ESC -> 올리디버그 - 효과 전과정으로 돌아감
F2 -> Hex-View 에서 헥스 변경하기

※설명
※Structures 탭의 기능
구조체 창이라고도 불리우며 , 바이너리에서 사용됐다고 판단된 C구조체나 공용체 같은 복합 구조체를 보여준다. 분석단계에서 자신이 갖고있는 대량의 라이브러리 함수 시그니처와 프로그램이 사용한 메모리에서 함수 파라미터를 찾아 비교한다.

※Enums
열거 창이라고도 하며 구조체창과 비슷하고 IDA가 표준 열거형 데이터 타입을 찾았다면 열거 창에 나타난다. 정수 상수 대신 열거형 Enums 을 사용해 디스 어셈블리의 가독성을 높일 수 있다. 구조체 창처럼 사용자 자신의 열거형 타입을 정의해 디스어셈블리에 활용할 수 있다.

※문자열 창
해당 문자열 창은 그 지역으로 재빠르게 이동시켜줄 뿐만아니라 해당 문자열을 참조하는 곳으로 이동하게해준다.
View-> Open Subvies ->Strings으로 활성화

※ALT+T
검색창이 뜹니다. 텍스트검색창입니다.

※ALT+B
치트엔진의 Array of Byte 효과로 어레이를 검색한다.

※N - 네임드 로케이션

- Local name : 지역 이름 은 현재 함수에서만 유효하다. 즉 현재 함수에서 만 유일성이 보장되며 두개의 함수에서 지연 변수 이름이 같을 수도 있다. 하지만 단일 함수가 2개 의 동일 이름 변수를 가질수 없다. 함수 외부에있는 네임드 로케이션은 지역 이름처럼 할당 할 수 없다.

- Include in names list : 선택한 이름을 네임 창에 추가해 찾기 쉽게 만들어 다른 곳에서 작업하다가도 금방 돌아올수 있다. 자동 생성된 이름은 네임창에 표시되지 않는다.

- public name : 공용 이름은 공용 라이브러리에 익스포트 된 이름을 말한다. 초기 로딩 단계에서 데이터베이스에 넣을 때 파일 헤더를 파싱해 공용 이름을 찾는다. 이 옵션으로 심볼도 공용 이름처럼 처리할 수 있다. 대게 어셈블리 목록 이름이나 네임 창에 공용 이름이라고 표시하는 외에 별다른 기능은 없다.

- Autogenerated name : 디스어셈블리에 크나큰 영향을 주지 않는다. 이 옵션을 선택하면 IDA가 이름을 자동으로 생성하지 않는다.

- Weak name : 약한 심볼은 public 심볼의 특화된 형태로 동일 이름을 나타내는 public 심볼이 없을때 활용된다. 심볼을 weak로 설정하면 어셈블러에 많은 영향을 미치는 반면 IDA 디스어셈블러에는 별 영향이 없다.

- Create name anyway : 함수에서 두 개의 동일 이름이 쓰일 수 없다. 비슷하게 함수 외부에서  (전역에서)동일 이름을 가질 수 없다. 이 옵션은 혼동을 줄 수 있는데, 생성하려는 이름의 종류에 다라 다르게 동작한다. 전역에있는 이름을 수정 하려 하고(함수나 전역 변수 같은), 데이터베이스에서 이미 사용중인 이름을 적용하려고 한다.면 이름 충돌 대화상자를 보여주고 자동으로 생성된 유일한 이름을 보여준다. 이 대화상자는 Create name anyway 옵션과 상관없다. 함수의 지역 이름을 수정하려고 하고 이미 사용 중인 이름을 쓰려면 기본 동작은 수정하지 못하게 한다. 이미 있는 이름을 쓰고자 한다면 Create name anyway를 선택해 IDA가 유일한 이름을 생성하게 한다. 물론 제일 간단한 방법은 사용되지 않은 이름을 사용하는 것이다.

※레지스터 이름
컴파일 할때 프로그램 스택보다 레지스터에 변수를 할당하는 경우에 레지스터 이름을 바꾼 것은 분석할 때 큰 효과를 본다. 예를 들어 edx라는 레지스터 보다 목적에 맞게 이름을 바꾸는 경우이다. 레지스터의 이름을 변경하면 위치에 대해 이름을 바꾸는 것과 같은 효과를 볼수있다.
단축키 N이 대화상자가 나타난다. 레지스터 이름을 바꾸면 현재 함수를 보는 동안에 래지스터의 별칭으로 표시해준다.여러분이 적은 별칭으로 레지스터 이름을 바꾸어준다. 단 , 함수가 아닌 코드영역의 레지스터 이름을 바꾸는것은 불가능 하다.

※IDA의 주석
몇가지의 주석형태를 제공하는데.. Edit->Comments에서 주석을 달수있다.

※데이터 크기 대입
Options->Setup data Types 에서 대화상자를 띄운다.

※문자열 처리
Options->ASCII String Style
Options->General dialog에서도 스트링에 대한걸 지정할 수 있다.

※배열지정
Edit->Array를 선택해 옵션을 지정하는데 배열등도 지정할 수 있다.

 

+ Recent posts