DLL 응용 프로그램에서 Direct3DCreate8
에 대한 호출을 가로 채기 위해 dll 주입을 사용하여 Direct3d 장치에 대한 핸들을 확보하고 프로젝트가 투영되는 화면에 오버레이를 그립니다. 이 API에 대한 호출은 응용 프로그램이 실행 된 직후에 발생합니다. 제대로 이해하면 dll 주입을 실행 프로세스에 API 호출로 사용 했으므로 DLL 호출시 이미 발생했습니다. 이 가정이 맞습니까? 그렇다면 프로세스 실행 중에 dll을 주입하여 원하는 API 호출을 잡을 수 있습니까?프로세스 실행 이전에 DLL 주입
편집 : 시스템 전체의 API 후크에 대해 알고 있지만이 문제에 대한 '로컬'솔루션을 듣는 것이 좋습니다.
편집 2 :는 응용 프로그램이 SYSTEM32/SysWOW64와 디렉토리에서 .DLL (내 경우 d3d8.dll)를 찾습니다으로, 아무 소용이 응용 프로그램의 폴더에 .DLL을 대체 언급하는 것을 잊었다.
(전체 대답은 아니므로 주석으로 게시하고 있습니다.) 디버거 API를 살펴보십시오. http://msdn.microsoft.com/en-us/library/ms809754.aspx - 프로세스 디버깅을 위해 시작된 DLL은 일시 중지되기 시작하므로 DLL을 주입 한 다음 일시 정지 해제 한 다음 디버깅을 중지 할 수 있습니다. (귀하의 프로그램이 실제로 디버거가 아니더라도 디버거 API를 사용할 수 있습니다.) – immibis