응용 프로그램 가상화 프로젝트를 수행 중입니다. 그래서 NT 레벨에서 응용 프로그램을 연결하고 가상 레지스트리에 대한 레지스트리 호출을 지시합니다. 내가 파일로 이동하는 경우, 모든 응용 프로그램을 실행에 -> 열기 ... 내가 가지고있는 몇 가지 레지스트리는 아래와 같이 호출NT 레지스트리 핸들 동작
ZwOpenKey(registry key path)
이 ->는 핸들 예를 생성합니다 (0x04e8)ZwQueryKey(0x4ea,...)
프로세스 모니터는 공개 키와 쿼리가 모두 동일한 키에서 수행된다고 말합니다. 나는 그 자신이 동일한 열쇠임을 테스트하고 확인했다.
또한 쿼리 키는 querykey api에 대한 올바른 결과를 생성했습니다. 이 2 바이트의 차이는 모든 열린 키 및 쿼리 키의 경우가 아닙니다.
을 호출하기 전에 응용 프로그램에서 핸들을 0x4e8
에서 0x4ea
으로 변경하는 방법과 이유는 무엇입니까?
또한 open과 querykey 사이에서 ZWDuplicateObject
의 호출을 테스트했지만 duplicateobject api는 호출되지 않았습니다.
아무도이 핸들이 어떻게 바뀌는 지 말할 수 있습니까?
Damien, 나는 링크를 배우고 있습니다. 그런 좋은 방향에 대해 대단히 감사합니다. 나는 나의 경우를 위해 그것을 해결하려고 노력할 것이다. 사이에서 당신은 2 비트를 다루는 것에 대한 어떤 경험도 가지고있을 것이다. –