Başka bir işlemin belleğini bir dosyaya dökmenin makul bir yolunu bulmakta zorlanıyorum. Performing a hex dump of another process's memory. Bu iyi bir izin sorunları ele işi ve iyi bir temel ayarlar kapsamaz:Başka bir işlem belleğinin ikili/onaltılık dökümü nasıl oluşturulur?
kapsamlı arama yaptıktan sonra, istediğim işlevi çoğu * etmiştir CodeProject güzel bir makale * bulmak mümkün oldum.
Ancak, bu yardımcı program ile temiz bir Notepad.exe veya Calc.exe örneği gibi küçük bir işlem bile, işlemin kendisi 20 KB'ın altında çalışırken, boyutu 24 MB'ın üzerinde bir döküm dosyası oluşturabildiğini gördüm. TaskManager'a göre bellek. Makale, belki de paylaşılan bellekte, muhtemelen DLL uzayında ve benzerlerinde bir şeyler atıldığına inanmam için bana yol açmıştır.
²³´µKERNEL32.dll ActivateActCtx AddAtomA AddAtomW AddConsoleAliasA AddConsoleAliasW AddLocalAlternateComputerNameA AddLocalAlternateComputerNameW AddRefActCtx AddVectoredExceptionHandler AllocConsole AllocateUserPhysicalPages AreFileApisANSI AssignProcessToJobObject AttachConsole BackupRead BackupSeek BackupWrite BaseCheckAppcompatCache BaseCleanupAppcompatCache
gelmez başka bir işlem bellek dökümü için daha iyi bir yolu vardır: Örneğin, CALC.EXE bir döküm Kernel32.dll yöntem adlarını (ve muhtemelen bellek) içerir bölümler içerecektir Bu ek yüke ya da belki de bu sorunu çözen bağlantılı makalenin kodundaki bir gelişmeye yol açabilir mi? Aslında sürecin kendisine ait olan belleği almak istiyorum. Aslında DLL'lerde kullanılan işlevlerin bellek alanı boşaltma ile tamam olur, ancak işlemin çalışan bellek almak için birden çok DLL * tüm * içeriğini dökmek için gereksiz görünüyor.
30 KB'lik bir işlem için 30MB'lık bir işlemin 25MB'ından ziyade 30-60KB'yi almanın bir yolunu arıyorum. Ya da şu anda alabildiğimden daha yakın.
Öneriniz ve önerileriniz için şimdiden teşekkür ederiz, takdir edilmektedir.
Not: Bu bir konsol yardımcı programı içindir, bu nedenle CodeProject makalesindeki gibi GUI öğeleri önemsizdir.
Bağlantı için teşekkürler. Sadece bağlantıyı içeriyor kaynak = ( – KevenK
İyi, belki de yazarla iletişime geçebilirsiniz. Ücretsiz yazılım yazan çoğu insan, programlarını faydalı bulursanız yardımcı olmaya ve işbirliği yapmaya isteklidir. –