2010-05-18 5 views
1

좋아, 누구든지이 문제를 해결할 수 있다면 웹에 아무 것도 없기 때문에 천재 여야합니다!레지스트리에 어떤 프로세스가 액세스하는지 찾으십시오.

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

이 프로그램은 레지스트리에 액세스하고 그것을했다하는 과정을 설명 감지합니다.

아무도 내가 이것을 할 수있는 방법을 알고 있습니까? 나는 변화를 감지 할 수 있지만, 나는 그 과정을 알지 못한다.

미리 감사드립니다.

+2

FYI : sysinternals 친구들은 Windows와 관련하여 꽤 천재적입니다. – JohnFx

답변

3

시스템 호출을 후킹하여 수행됩니다. RegOpenKey (등)에 대한 호출을 연결하고 RegOpenKey에 통화를 전달하기 전에 레지스트리에 액세스하는 프로세스에 대한 모든 정보를 기록합니다.

Windows에서 API 후크를 쓰기가 쉬운 라이브러리는 EasyHook을 참조하십시오.

내가 "쉽게"라고 말하면 실제로 "여기있을 괴물!"이라고 말합니다. API 후킹은 마음이 희미하지 않기 때문에 시도하기 전에 Windows 내부에 대한 아주 훌륭한 지식을 갖추고 있어야합니다.

+0

아, 고마워! 그래서 본질적으로 변경 사항이 감지되면 키를 잡아서 연결합니다. 또는 변경 사항이 감지되기 ​​전에이 후크 작업을 수행해야합니까? 죄송합니다.이 모든 것이 저에게 잘 알려져 있습니다. 나는 단지 오늘 일찍 PInvoke에 익숙해 있었고, 나는 후킹에 대해 배우는 것을 끝내었다! 감사합니다. ps 내 프로젝트에 포함시킬 필요가있는 easyhook 파일은 무엇입니까? .h와 .dll? – Tom

+0

RegOpenKey 함수 (말)를 연결 한 다음 프로세스가 RegOpenKey를 호출 할 때마다 실제 함수 대신 함수가 호출됩니다. 그런 다음 전달 된 매개 변수를 기록하고 실제 작업을 수행하려면 * 실제 * RegOpenKey로 전달하십시오. 내가 말했듯이, 이것은 희미한 마음이 아니며 솔직히 말해서 오늘 P/Invoke에 대해서만 배웠다면 API 후킹을 시작할 준비가되었다고 생각하지 않는다 ... Mark Russinovich (Mark Russinovich Process Monitor의 저자)는 15 년 동안 Windows 프로그래밍을 해오 고 있으며 운영 체제 전문가입니다. –

0

만약 무엇을하고 있는지 알고 싶다면 ProcessMonitor 나 Sysinternals의 다른 도구들 중 하나를 사용할 수 있습니다. 이제는 Microsoft에서 Winternals로 실행합니다. 프로그램 목록 here을 참조하십시오.

프로그램을 작성하려면 레지스트리 액세스 기능을 연결해야합니다. 그 소스 코드는 Sysinternals 도구의 보관소에서 찾을 수 있습니다. 이 프로그램으로 더 이상 사용할 수없는 것 같습니다.

관련 문제