  | 
	
		
	
	
		Нужна помощь с слежкой за процессами - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе | 
	 
	 
	
	
	
	
	
	
	
	
	
	
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            10.01.2015, 18:37
            
            
         | 
        
             
            #1
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Сержант  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 29.03.2011  
                
                
                
                 Сообщений: 155
                   
 Популярность: 3277  
                  
	 Сказал(а) спасибо: 325  
	
		
			
				Поблагодарили 145 раз(а) в 101 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Нужна помощь с слежкой за процессами
             
             
            
        
        
        
            
               
    Сразу к сути: Есть лаунчер, к нему нужно встроить функцию отслеживания процессов, т.е. если запускается cheatengine к примеру, то процесс игры закрывается - Rust, а в лаунчере появляется форма, что пользователь заблокирован и на сервер FTP отсылается UID лаунчера для предотвращения повторного запуска клиента.   Delphi 7
     
         
        
        
        
        
        
        
        
        
            
                 
                
                    
                        Последний раз редактировалось КириллZ; 21.01.2015 в 02:10.
                    
                    
                
             
        
        
      | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.01.2015, 00:01
            
            
         | 
        
             
            #2
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Фельдмаршал  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 13.08.2009  
                
                
                
                 Сообщений: 1,004
                   
 Популярность: 25098  
 Золото Zhyk.Ru: 350     
                  
	 Сказал(а) спасибо: 111  
	
		
			
				Поблагодарили 830 раз(а) в 395 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Нужна помощь с слежкой за процессами
             
             
            
        
        
        
            
               
    Ну собственно... 
Следите за процессами, видя запущенный СЕ глушите игру и отправляете ID. 
 
Здесь можно получить ответы на конкретный вопрос, но не на всё разом.
     
         
        
        
        
        
        
        
            
             ________________  
                Ни одно доброе дело не остается безнаказанным. 
 
Программы: 
PW:  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). . 
JD:  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). . 
Статьи:  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). ,  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).   
 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.01.2015, 04:18
            
            
         | 
        
             
            #3
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 10.10.2011  
                
                
                
                 Сообщений: 65
                   
 Популярность: 772  
                  
	 Сказал(а) спасибо: 58  
	
		
			
				Поблагодарили 58 раз(а) в 33 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Нужна помощь с слежкой за процессами
             
             
            
        
        
        
            
               
    
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                Сразу к сути: Есть лаунчер, к нему нужно встроить функцию отслеживания процессов, т.е. если запускается cheatengine к примеру, то процесс игры закрывается - Dayz, а в лаунчере появляется форма, что пользователь заблокирован и на сервер FTP отсылается UID лаунчера для предотвращения повторного запуска клиента.   Delphi 7
                 | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Для поиска процесса cheatengine и подобных стоит пользоваться функциями  
Process32First+Process32Next 
Так же процесс может быть переименован из-за чего это будет защищать только от школоюзеров данной программы... 
Далее следует использовать функцию для поиска окон Enumwindows что так же не будет 100% гарантом что программа не запущена... 
Ещё надо сканировать блок описания каждого запущенного процесса (это там где пишется версия ,компания и т.д) на наличие каких-то сигнатурных(постоянных) строк как получать данный блок я незнаю т.к. с этим я не сталкивался.
 
Только использование этих 3 методов даст вам ~70% гарантию потому что редакторов памяти процессов очень много  и на каждый из них написать сканер будет довольно сложно.
 
+ ко всему не стоит делать такой сканер в отдельной длл так как его будет легко пропатчить.
     
          
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
	
		
			| 
				
					Пользователь сказал cпасибо:
				
				
				
			 | 
			 | 
		 
	 
  
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.01.2015, 14:26
            
            
         | 
        
             
            #4
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Лейтенант-командор  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.08.2010  
                
                
                
                 Сообщений: 727
                   
 Популярность: 30569  
 Золото Zhyk.Ru: 1     
                  
	 Сказал(а) спасибо: 57  
	
		
			
				Поблагодарили 645 раз(а) в 386 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Нужна помощь с слежкой за процессами
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270. 
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию. 
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy. 
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
	
		
			| 
				
					Пользователь сказал cпасибо:
				
				
				
			 | 
			 | 
		 
	 
  
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.01.2015, 15:35
            
            
         | 
        
             
            #5
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 10.10.2011  
                
                
                
                 Сообщений: 65
                   
 Популярность: 772  
                  
	 Сказал(а) спасибо: 58  
	
		
			
				Поблагодарили 58 раз(а) в 33 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Нужна помощь с слежкой за процессами
             
             
            
        
        
        
            
               
    
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                там какой-то hSnapshot требуют, не подскажешь? 
 
а при переборе какого-то hSnapshot ты разве не получаешь id потоков процесса, окна которых надо таки перечислять через EnumThreadWindows? 
 
http://zhyk.ru/forum/showpost.php?p=4282654&postcount=2 как-то так 
 
ойлол   
 
Не давай советов, если не шаришь, о чём говоришь, артём612  
                 | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                там какой-то hSnapshot требуют, не подскажешь?  | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Ну я про снапшоты не упоминал так как я указал только на функции которыми это можно выполнить ,а документацию я думаю автор читать в состоянии... 
Но если это так уж необходимо для тебя ...   
То надо сначала сделать снапшот процессов а потом перебирать их через функции Process32First + Process32Next
 
Вот пример
  
	Код: 
	HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 if (hProcessSnap == INVALID_HANDLE_VALUE) return 0;
  PROCESSENTRY32 pe32;
 pe32.dwSize = sizeof(PROCESSENTRY32);
 if (!Process32First(hProcessSnap, &pe32)) { CloseHandle(hProcessSnap); return 0; }
    do
     {
        if(!lstrcmp(  pe32.szExeFile,"cheatengine.exe"))ExitProcess(0);
      } while (Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                а при переборе какого-то hSnapshot ты разве не получаешь id потоков процесса, окна которых надо таки перечислять через EnumThreadWindows?  | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Ну я вообще про потоки не говорил ничего 
 
	Код: 
	
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
	char CaptionWindow[255];
        char ClassWindow[255];
        DWORD ProcID = 0;
	GetWindowText(hwnd, CaptionWindow, 256);
		if (GetWindow(hwnd, GW_OWNER))return true;
                if (!lstrlenA(bufstr))return true;
		if (!IsWindowVisible(hwnd))return true;
	GetClassName(hwnd,ClassWindow, 256);
        if(!lstrcmp(CaptionWindow,"CheatEngine") || !lstrcmp(ClassWindow,"CheatEngine") )
        {
	ExitProcess(0);
        }
	return TRUE;
}
if(!EnumWindows(&EnumWindowsProc, 0))
{
  //Ошибка при поиске
}
 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                 
ойлол   
 
Не давай советов, если не шаришь, о чём говоришь, артём612    | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Лол вы меня считаете человеком который в этом совсем не разбирается ?
 
Если длл будет экспортировать функцию допустим   
bool IsActiveCheat()  
а лаунчер будет юзать эту функцию через экспорт то можно либо подменить библиотеку на свою с данной функцией либо патчить чтобы возвращалось только false    
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
	
		
			| 
				
					Пользователь сказал cпасибо:
				
				
				
			 | 
			 | 
		 
	 
  
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.01.2015, 15:44
            
            
         | 
        
             
            #6
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Лейтенант-командор  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.08.2010  
                
                
                
                 Сообщений: 727
                   
 Популярность: 30569  
 Золото Zhyk.Ru: 1     
                  
	 Сказал(а) спасибо: 57  
	
		
			
				Поблагодарили 645 раз(а) в 386 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Нужна помощь с слежкой за процессами
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270. 
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию. 
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy. 
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
	
		
			| 
				
					Пользователь сказал cпасибо:
				
				
				
			 | 
			 | 
		 
	 
  
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.01.2015, 16:13
            
            
         | 
        
             
            #7
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 10.10.2011  
                
                
                
                 Сообщений: 65
                   
 Популярность: 772  
                  
	 Сказал(а) спасибо: 58  
	
		
			
				Поблагодарили 58 раз(а) в 33 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Нужна помощь с слежкой за процессами
             
             
            
        
        
        
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            11.01.2015, 19:10
            
            
         | 
        
             
            #8
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Лейтенант-командор  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.08.2010  
                
                
                
                 Сообщений: 727
                   
 Популярность: 30569  
 Золото Zhyk.Ru: 1     
                  
	 Сказал(а) спасибо: 57  
	
		
			
				Поблагодарили 645 раз(а) в 386 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: Нужна помощь с слежкой за процессами
             
             
            
        
        
        
            
               
    Уезжал немного. На скорую руку накидал: 
	Код: 
	function EnumThreadWndProc(Wnd: hWnd; Data: lParam): bool; stdcall;
// var
//   WindowText: array [0..255] of char;
begin
  // wnd - handle текущего окна потока, можно получить текст:
  // GetWindowText(Wnd, WindowText, 255);
  // или класс окна:
  // GetClassName(Wnd, WindowText, 255);
  // или что-либо ещё
  // перечислим дочерние окна, ОСТОРОЖНО РЕКУРСИЯ :D
  EnumChildWindow(Wnd, @EnumThreadWndProc, Data);
  result := True;
end;
procedure DoSmth;
var
  hProcessSnap, hModuleSnap, hThreadSnap: THandle;
  pe32: TProcessEntry32;
  me32: TModuleEntry32;
  te32: TThreadEntry32;
begin
  hProcessSnap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  pe32.dwSize := SizeOf(TProcessEntry32);
  if Process32First(hProcessSnap, pe32) then
    repeat
    // pe32.szExeFile - путь к exe, его можно проверить
    // путь можно заюзать для получения FileDescription, подробнее:
    // http://zhyk.ru/forum/showpost.php?p=4282654&postcount=2
    hModuleSnap := CreateToolHelp32Snapshot(TH32CS_SNAPMODULE,
      pe32.th32ProcessID);
    me32.dwSize := SizeOf(TModuleEntry32);
      if Module32First(hModuleSnap, me32) then
        repeat
        // me32.szModule - имя модуля, его можно проверить
        // me32.szExePath - путь к модулю, его можно проверить
        hThreadSnap := CreateToolHelp32Snapshot(TH32CS_SNAPTHREAD,
          me32.th32ProcessID);
        te32.dwSize := SizeOf(TThreadEntry32);
          if Thread32First(hThreadSnap, te32) then
            repeat
              EnumThreadWindows(te32.th32ThreadID, @EnumThreadWndProc, 0);
            until not Thread32Next(hThreadSnap, te32);
        CloseHandle(hThreadSnap);
        until not Module32Next(hModuleSnap, me32);
    CloseHandle(hModuleSnap);
    until not Process32Next(hProcessSnap, pe32);
  CloseHandle(hProcessSnap);
end;
 
     
         
        
        
        
        
        
        
            
             ________________  
                Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270. 
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию. 
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy. 
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
	
		
			| 
				
					4 пользователя(ей) сказали cпасибо:
				
				
				
			 | 
			 | 
		 
	 
  
  
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		Ваши права в разделе
	 | 
 
	
		
		Вы не можете создавать новые темы 
		Вы не можете отвечать в темах 
		Вы не можете прикреплять вложения 
		Вы не можете редактировать свои сообщения 
		 
		
		
		
		
		HTML код Выкл. 
		 
		
	  | 
 
 
	 | 
	
		
	 | 
 
 
 
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 03:11. 
		 
	 
 
 | 
  |