본문 바로가기

스터디/파이썬 해킹 프로그래밍

IDAPython ida pro Scripting

아이다 프로는 유명한 디스 어셈블 프로그램이다.

주로 정적 분석에 쓰이는데, 최근 동적 분석으로도 쓰는걸 보았다.

벨기에의 유명한 아키텍트가 개발한 아이다 프로는 개발자의 명성 처럼 뛰어난 능력을 자랑한다.


아이다의 강점으로는 다양한 플랫폼 지원과, IDC라는 자체 스크립트 언어를 가지고 있다.

또한 개발자가 IDA의 플러그인 API를 사용할 수 있게 SDK를 제공하고 있다.


IDA 파이썬을 설치한 후에, 우리가 이용할 수 있는 IDAPython 함수를 보자.

IDA파이썬은 IDC와 완벽하게 호환된다. 즉, IDC가 지원하는 모든 함수를 IDAPython 에서도 사용할 수 있다.여기서는 주로 스크립트를 작성할 때 쓰는 함수를 살펴본다.


유틸리티 함수

ScreenEA() : IDA 화면에 있는 커서의 현재 위치를 구한다.

GetInputFileMD5() : IDA에 로드된 바이너리의 MD5해쉬를 구한다.

   바이너리의 버전이 변경되면서 내용도 변경되었는지 확인하는데   

   유용하게 사용할 수 있다.

세그먼트

IDA에서 바이너리는 여러 세그먼트 (CODE,DATA,BSS,STACK,CONST,XTRN) 으로 나뉜다.

다음은 바이너리 내부의 세그먼트에 관한 정보를 구하는 데 사용되는 함수들이다.


FirstSeg() : 바이너리의 첫 번째 세그먼트의 시작 주소를 반환한다.

NextSeg() : 바이너리의 다음 세그먼트 시작 주소를 반환한다. 더 이상 반환할 세그먼트 주소가 없다면 BADADDR 을 반환한다.

SegByName(string SegmentName) 특정 세그먼트 이름을 갖는 세그먼트의 시작 주소를 반환한다.



--> 자세한건 소스코드 참고


'스터디 > 파이썬 해킹 프로그래밍' 카테고리의 다른 글

10장 질문  (0) 2015.02.23
윈도우 드라이버 퍼징  (0) 2015.02.23
질문정리  (0) 2015.02.16
Sulley!  (0) 2015.02.16
퍼징  (0) 2015.02.16