2010-05-24 7 views
3

좋아, C++을 천천히 배우고 있습니다. 모든 콘솔 구문과 모든 것에 익숙하지만 지금은 Windows 프로그래밍으로 넘어 가고 있습니다. 이제는 무엇을 하려는지, 내가 프로세스에 주입하는 DLL을 만드는 것입니다. 그래서 C++ 응용 프로그램에 텍스트를 넣고, 성공적으로 주입되면 "Hooked"라고 말합니다. 오류가 발생하면 오류가 발생합니다. 또는 DLL 없이도 작업을 수행 할 수 있습니다. 실행 파일을 열면 특정 프로세스가 열리면 상태가 "Hooked"로 변경됩니다. 또한 나는 safaribooksonline.com 계정을 가지고 있으므로, 좋은 읽을 거리가 있으면 추천 해 줄 것입니다. 고마워요C++ 후크 프로세스 및 상태 표시

답변

3

나는 이걸보고 있을지도 모른다. C/C++에서 응용 프로그램은 DLL을 응용 프로그램에 '주입'하는 대신 DLL을 '가져옵니다'. 일반적으로 플러그인/후크에는 응용 프로그램에 DLL의 가용성 (종종 특정 디렉토리에 대한 존재 여부)을 알리는 메커니즘이 있으며 구성 파일이나 다른 논리를 사용하여 응용 프로그램에 라이브러리를 명시 적으로로드하고 함수 또는 두 가지를 호출하고 호출하십시오.

Windows 프로그래밍의 경우 LoadLibrary() API 호출 예제를 검색하는 것이 좋습니다. 당신은 가능성이 어떻게 a tutorial 또는 두 가지 찾을 수 있습니다.

1

"hooked"를 사용하면 "내 DLL을 해당 프로세스의 주소 공간에서 실행하십시오."라고 말하면 CreateRemoteThread()이 필요합니다. 버그로 인해 다른 프로그램이 중단되므로 디버깅하기가 상당히 어렵습니다. 그건 그렇고, 많은 악성 코드가 작동하는 방식입니다.

"내 DLL이 다른 프로세스에서 활동을 통보 받았다"는 의미라면 SetWindowsHookEx()이 필요합니다.

0

응용 프로그램이 시작되자 마자 바로 삽입 하시겠습니까? Microsoft의 Detours DetourCreateProcessWithDll()을 사용하면이 작업을 수행 할 수 있습니다. 예 here.