public void DumpModules(ulong DomainAddr = 0, bool DebugOnly = false, bool NotMicrosoftOnly = false) { var domains = AdHoc.GetDomains(m_runtime); if (domains == null || domains.Length < 2) { WriteLine("Unable to get Application Domains. This is not expected."); return; } }
public ulong GetDomain(ulong Address) { StartRuntime(); foreach (var domain in AdHoc.GetDomains(m_runtime)) { foreach (var module in domain.Modules) { if (module.ImageBase == Address) { return(domain.Address); } } } return(0); }
public void DumpDomains() { var domains = AdHoc.GetDomains(m_runtime); if (domains == null || domains.Length < 2) { WriteLine("Unable to get Application Domains. This is not expected."); return; } if (m_runtime.PointerSize == 8) { WriteLine("Address Domain Name Modules Base Path & Config"); } else { WriteLine("Address Domain Name Modules Base Path & Config"); } for (int i = 0; i < domains.Length; i++) { if (IsInterrupted()) { return; } Write("{0:%p} ", domains[i].Address); Write("{0, -60} ", i == 0 ? "System" : i == 1 ? "Shared" : domains[i].Name); Write("{0,6:#,#} ", domains[i].Modules.Count); if (!String.IsNullOrEmpty(domains[i].ApplicationBase)) { Write("Base Path: {0} ", domains[i].ApplicationBase); } if (!String.IsNullOrEmpty(domains[i].ConfigurationFile)) { Write("Config: {0} ", domains[i].ConfigurationFile); } WriteLine(""); } }