2016-09-14 6 views
2

특정 DLL의 내보내기 테이블을 보았습니다. 테이블에 이상한 항목이 표시되어 있으므로이 문제에 대한 답변을 pecoff 사양에서 찾으려고 시도했습니다. 아무 것도 찾지 못했고 누군가가 아마 하나를 가지기를 바랍니다. PE 내보내기 테이블의 함수가 아닌 항목

나는 특정 DLL (Qt5Core.dll)에 DUMPBIN을 실행하고 수출 테이블 하지 함수는 항목이 발견 -> 자신의 주소가 데이터 섹션을 가리 항목과으로 .rdata 섹션이있다 ... 예를 들어 :

const를 QAbstractState ::`vftable '67366E0C 1470 QMetaObject의 CONST QEventTransition :: staticMetaObject 673C15A8 6160 QCoreApplication * QCoreApplication :: 자기 6746180C 5504

그것은 어떤 C++ 변수와 나는 것 같아 왜 그들이 수출 테이블에 있는지 궁금해하던가요? 감사합니다.

+1

데이터 내보내기는 지원되는 시나리오입니다. 이 경우에는 필요하지 않습니다. 여기서는 특별한 것이 없습니다. –

답변

1

항목을 내보내기 할 필요는 없습니다. 내 stackoverflow 스레드를 살펴볼 수 있습니다 : PE - Distinguish data from function export

결론은 분명하지만 PE 파일에서도 데이터를 내보낼 수 있습니다. 둘을 서로 구분할 수있는 완벽한 방법은 없지만 일부 휴리스틱 및 런타임 작업이이 문제를 해결하는 데 도움이 될 수 있습니다. 자세한 내용은 위의 게시물을 참조하십시오 (또한 의견 읽기).

1

NumberOfFunctions 이 모듈에서 내 보낸 함수/기호의 총 수.

NumberOfNames 이름으로 내 보낸 함수/기호의 수. 이 값은 모듈에있는 모든 함수/기호의 수가 아닙니다. 이 번호의 경우 NumberOfFunctions를 확인해야합니다. 이 값은 0 일 수 있습니다.이 경우 모듈은 서수로만 내보낼 수 있습니다. 첫 번째 경우에 내보낼 함수/기호가 없으면 데이터 디렉토리의 내보내기 테이블의 RVA는 0이됩니다.

위에서부터 서수 테이블에는 실제로 이름이있다.

출처 : http://win32assembly.programminghorizon.com/pe-tut7.html