2011-03-01 20 views
5

Bir işlemdeki her iş parçacığı için modül adını almaya çalışıyorum. Süreç gezgini, her iş parçacığı ile ilişkili modülün adını gösterir. Şu anki süreçteki tüm modülleri ve tüm konuları hiçbir sorun olmadan numaralandırabilir ve bunlarla ilgili verileri alabilirim. Maalesefİş parçacığı bilgisinden modül adı alma

if(module.BaseAddress < thread.StartAddress && (module.BaseAddress + module.BaseMemorySize) > thread.StartAddress) 
{ 
    // this is our module ;) 
} 

, bunu yapmanın bir somut yol olarak görünmüyor: ilişkili modülü çözmekten Benim şu anki yöntem şudur. xfire_toucan.dll modülü ProceXP ince gösterir:

modül listesinde
1972 : xfire_toucan.dll!ToucanSendGamestatsConsoleLine_V1+0x80 

, bize 0x1026b000 bir maksimum bellek addr veren 0x10000000 bir taban addr ve 0x26b000 boyutunda gösterir. Bununla birlikte, ilişkili iş parçacığı başlangıç ​​adresi, modülün ana bellek aralığı dışındaki işlemdeki ayrılmış bellek bloğunun bir parçası olan 0x775e2ca0'dur.

ProcExp gibi bir modül nasıl alınır?

Ben C ve C# biliyorum, bu yüzden iyi, ama benim projem olması tercih ediyor, böylece C# ya:]

cevap

3

Süreç kaşif size her iş parçacığı ile ilişkili modülü gösterilmiyor. Windows bu bilgileri korumaz. Bu, iş parçacığının giriş noktası için sembol adını gösteriyor. Bu genellikle (ancak her zaman değil) iş parçacığını başlatan modülde bir işlev olur. Bu tür bilgileri programınıza almak istiyorsanız, hata ayıklama yardım API'sini kullanabilirsiniz. Giriş noktası adını almak için muhtemelen StackWalk64 işlevini kullanıyorlar.

+0

Yığının yürümesi nasıl güvenilir olur? İş parçacığı işlevi için ayarlanmış yığın ofseti yok. Ayrıca, iş parçacığı işlevinden önce belirli bir arama kümesi yoktur: http://stackoverflow.pastebin.com/e1TLxwuj – Polynomial

+0

Ne hakkında konuştuğumun daha iyi açıklaması: http://stackoverflow.pastebin.com/cFNjueAq – Polynomial

+0

Aslında, orada olduğunu. Yığın yürüyüşü yapmak için, modülle ilişkili .pdb dosyasına ihtiyacınız vardır. Bu dosya, diğer şeylerin yanı sıra her bir yığın çerçevesinin boyutunu içerir. –

İlgili konular