2014-10-11 4 views
0

다른 기능에 대한 오프셋을 찾기 위해 dll을 현재 프로세스에 삽입하려고합니다. C#을 응용 프로그램을 통해 기능 PTR을 얻으려고 노력DLL에서 함수 PTR 받기

void testfunction() 

그리고 메신저 :

나는 간단하게 다음과 같습니다 내 DLL 내부 기능을 가지고있다.

함수 ptr은 함수가 dll 내부에 있어도 항상 0을 반환합니다. 도움이 될 것입니다.

+1

이가 내 보낸 참조? –

+0

__declspec (dllexport) void testfunction()을 의미합니까? –

+0

글쎄, 그것은 맹 글링 된 이름으로 함수를 내보내는 것입니다. 실제 이름을 보려면 DLL에서'dumpbin/exports'를 사용하십시오. 내 보낸 이름을 제어하려면 (mangling을 방지하기 위해) 모듈 정의 파일을 사용해야합니다. –

답변

0

DLL의 내보내기 테이블에 함수 이름이 testfunction이 아니므로 형식 정보로 변경되었습니다. 그래서 GetProcAddress 찾지 못할 것입니다. (P는/DllImportAttribute 호출 그것을 발견 ... 나하지.하지만 GetProcAddress가 정확히 일치를 필요로 할 수있는, 이름의 전체 회전을 시도했다.)

이 전혀 맹 글링와 함수를 수출하기 위해서는, 당신이 엉망으로 줄일 필요 함수 이름에 extern "C"을 사용하고 모듈 정의 파일을 사용하여 링크하십시오. 같은 뭔가 : 전체 내용

LIBRARY test 
EXPORTS 
testfunction 

the MSDN documentation

+0

내 남자, 정보 주셔서 감사합니다. –