Решено! Как узнать какие DLL использует процесс?

Приветствую всех! Сегодня я покажу как можно узнать какие 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 ссылка

 

Обновлено: 26.10.2018 — 13:20

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *