프로세스의 각 스레드에 대한 모듈 이름을 얻으려고합니다. 프로세스 탐색기는 각 스레드와 관련된 모듈의 이름을 보여줍니다. 현재 프로세스에있는 모든 모듈과 모든 스레드를 문제없이 열거하고 관련 데이터를 얻을 수 있습니다. 현재 연결된 모듈을 추론하는 방법은 다음과 같습니다.스레드 정보에서 모듈 이름 얻기
if(module.BaseAddress < thread.StartAddress && (module.BaseAddress + module.BaseMemorySize) > thread.StartAddress)
{
// this is our module ;)
}
불행히도,이를 수행하는 구체적인 방법은 아닙니다. xfire_toucan.dll 모듈 procexp 미세에서 보여
모듈 목록에서1972 : xfire_toucan.dll!ToucanSendGamestatsConsoleLine_V1+0x80
그것이 우리 0x1026b000
의 최대 메모리 ADDR주는 0x10000000
의 기본 요지 및 0x26b000
의 크기로 나타낸다. 그러나 관련된 스레드 시작 주소는 0x775e2ca0
이며 모듈의 주 메모리 범위 밖에있는 프로세스에서 할당 된 메모리 블록의 일부입니다.
ProcExp와 같은 모듈을 얻는 방법에 대한 아이디어가 있습니까?
나는 C와 C#을 알고, 그래서 괜찮지 만, 내 프로젝트가 선호 그래서 C 번호 중 하나입니다]
스택을 안정적으로 유지하려면 어떻게해야합니까? 스레드의 기능에 대한 스택 오프셋이 설정되지 않았습니다. 스레드 함수 이전에 명확한 호출 집합이 없습니다. http://stackoverflow.pastebin.com/e1TLxwuj – Polynomial
내가 말하는 것에 대해 더 잘 설명합니다. http://stackoverflow.pastebin.com/cFNjueAq – Polynomial
실제로 입니다. 스택 워크를 수행하려면 모듈과 관련된 .pdb 파일이 필요합니다. 이 파일은 다른 것들 중에서 각 스택 프레임의 크기를 포함합니다. –