Приветствую всех! Сегодня я покажу как можно узнать какие DLL библиотеки использует та или иная загруженная программа. Это может быть очень важно если вы владелец какого то игрового сервера, и вам необходимо встраивать части проверки в модификацию игр, на основе инъекций. Так же может быть полезно, тем кто хочет узнать какая из программ использует занятую библиотеку. И так рассмотрим сам код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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 ссылка