2009-07-29 5 views

답변

6

환경이 저장된 가상 주소를 알고있는 경우 OpenProcessReadProcessMemory을 사용하여 다른 프로세스에서 환경을 읽을 수 있습니다. 그러나 가상 주소를 찾으려면 프로세스의 스레드 중 하나 인 Thread Information Block을 훑어 볼 필요가 있습니다.

을 호출 한 후 GetThreadContext()으로 전화해야합니다. 그러나 이들을 호출하려면 CreateToolhelp32SnapshotTH32CS_SNAPTHREAD 플래그로 호출하여 프로세스의 스냅 샷을 생성하고 Thread32First을 호출하여 프로세스의 첫 번째 스레드의 스레드 ID를 가져 와서 얻을 수있는 스레드 핸들이 필요합니다. OpenThread 스레드에 대한 핸들.

+0

+1 큰 답변입니다. 스레드 컨텍스트 구조의 정의를 찾으려면 조금 더 파고들 필요가 있습니다. NT DDK와 와인은 그런 종류의 좋은 장소입니다. 구조의 시작 부분에서 8 번째 포인터 일 것 같네요? –

1

는 :

당신은 Process Explorer을 사용할 수 있습니다.

오른쪽 ... 속성에를 이동하는 과정을 클릭하고 해당 프로세스에 대한 환경 변수를 나열하는 환경 탭이 있습니다. 코드와

:

이 직접 할 수있는 Win32 API를 호출 것으로 보인다,하지만 분명히이 정보에 액세스하려면 GetProcessStrings의 결과와 바이올린을하지 않습니다. This CodeProject article에는 시작하기위한 몇 가지 코드가 있습니다.

+0

감사합니다. 코드에서이 작업을 수행하는 방법을 찾아야합니다. – jalex

관련 문제