Приветствую всех! Сегодня я покажу как можно узнать какие DLL библиотеки использует та или иная загруженная программа. Это может быть очень важно если вы владелец какого то игрового сервера, и вам необходимо встраивать части проверки в модификацию игр, на основе инъекций. Так же может быть полезно, тем кто хочет узнать какая из программ использует занятую библиотеку. И так рассмотрим сам код:
public static void UnloadModule2(string moduleName)
{
System.Diagnostics.Process[] local_procs = System.Diagnostics.Process.GetProcesses(); //получаем список всех процессов
Process target_proc = local_procs.First(p => p.ProcessName == "Name_My_Programm");//Выбираем из этого списка нашу программу
ProcessModuleCollection modules = target_proc.Modules; //Получаем коллекция модулей использующие нашу программу
foreach (var dll in modules) //Производим перебор коллекции
{
ProcessModule prDll = (ProcessModule)dll; //Делаем upcast
if (prDll.ModuleName == moduleName)//Сравниваем имя модуля который хотим найти
{
Console.WriteLine("Модуль найден "+prDll.ModuleName);
}
}
}
Я закомментировал весь код, думаю сложностей с пониманием его не возникнет.
Так же вам стоит взглянуть вот на эту статью где я смог вывести список всех инжектированных dll ссылка
