나는 우회 라이브러리를 사용하여 튜토리얼을 만들려고 노력하고있다.DetourAttach()를 16 진수 함수의 포인터로 사용하는 방법은 무엇입니까?
이전 버전의 우회 라이브러리 v1.5에서는 DetourFunction 함수를 사용하여 주소를 정의 했으므로 DLL이 함수를 찾을 위치를 알 수 있습니다. 그것은 예로써 사용될 수
다음 :
InsertDateTime = (int (__stdcall*)(int))DetourFunction((PBYTE)0x01006F10, (PBYTE)MyInsertDateTime)
그러나 최신 버전의 함수 ppPointer 대상 포인터이다
LONG DetourAttach(
PVOID * ppPointer,
PVOID pDetour
);
로 변경 http://www.moddb.com/groups/ibepex/tutorials/function-hooking
참조 우회로가 부착 될 포인터.
대상 함수의 주소를 16 진수 형식 0x01006F10으로 알고 있기 때문에 어떻게 든 그것을 ppPointer의 인수로 사용하고 싶습니다. 난 그냥 쓰려고했습니다 :
InsertDateTime = (int (__stdcall*)(int))DetourAttach((PVOID*)0x01006F10, MyInsertDateTime);
을하고 그것을 잘 컴파일하지만 생각만큼 내 프로그램이 작동하지 않습니다. 프로그램이 그 주소에서 기능을 포착하지 못하는 것 같습니다.
그래서 기본적으로 내 질문은 정확히 16 진수 주소에 대한 포인터를 사용 했나요? 그리고 두 번째로 DetourAttach()를 사용하는 방식에 근본적인 실수가 있습니까?
대신 EasyHook을 사용하는 것이 좋습니다 ... http://easyhook.codeplex.com/ – TCS