2012-10-29 2 views
3

누구나이 방법을 알고 있습니까?IDAPro IDAPro에 C++ 헤더 파일로드 구조체

파일>로드 C 헤더 파일이 잘못된 코드를 초과하여 에 실패합니다.

+1

IDA는 C 만 이해하고 C++는 이해하지 못합니다. 도움말 파일 : * "IDA는 C 컴파일러가 수행 할 때 지정된 헤더 파일을 읽고 파싱합니다. 즉, C++ 헤더 파일은 지원되지 않습니다. 할 수있는 것은 동등한 C 헤더를 만들고 가져 오는 것입니다. – DCoder

답변

1

C++ 표준 라이브러리에서 IDA가 이해할 수없는 컴파일러 종속 매크로가 너무 많습니다. uint32_t 등의 원시 데이터 형식은 이미 IDA에서 인식하므로 대신 필요한 구조체 선언 만 복사하여 붙여 넣을 수 있습니다.

은 컴파일러 설정 화면에서 모든 컴파일러 종속 매크로를 정의하지만 매우 지루한 프로세스입니다.

+0

오 고마워요! 아주 좋은 응답이지만, 구조체 정의만을 취하는 경우 구조체가 다른 구조체를 사용하는 경우 멤버의 데이터 형식을 올바르게 유지해야한다는 것을 알게되었습니다. 어쨌든 먼저 오는 것을 정렬하지 않도록합니다. 그들 모두를 그대로 밀어 넣으십시오. – atigertest

+0

@atigertest 중첩 구조의 멤버 데이터 유형에 대해 자세히 알 필요가없는 지점이 있어야합니다. 그 시점에서 그것들을'void *'로 정의하거나 적당한 크기의 char 배열을 넣을 수 있습니다. 'char * dummy [50]' – JosephH