Я попробовал метод, предложенный Робом Уокером, и не смог заставить его работать (я думаю, что он не работал, потому что dll был загружен как часть другого исполняемого файла, поэтому его нельзя было найти так легко).
Однако я нашел решение, которое сработало для меня, поэтому вот оно:
я создал объект типа Process
String appToHookTo = "applicationthatloadedthedll";
Process[] foundProcesses = Process.GetProcessesByName(appToHookTo)
ProcessModuleCollection modules = foundProcesses[0].Modules;
ProcessModule dllBaseAdressIWant = null;
foreach (ProcessModule i in modules) {
if (i.ModuleName == "nameofdlliwantbaseadressof") {
dllBaseAdressIWant = i;
}
}
теперь у вас есть модуль, который вы можете просто сделать dllbaseAdressIWant.BaseAddress, чтобы получить значение.
Надеюсь, это поможет