|
Нужна помощь с слежкой за процессами - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
10.01.2015, 17:37
|
#1
|
|
|
|
Сержант
|
Регистрация: 29.03.2011
Сообщений: 155
Популярность: 3277
Сказал(а) спасибо: 325
Поблагодарили 145 раз(а) в 101 сообщениях
|
Нужна помощь с слежкой за процессами
Сразу к сути: Есть лаунчер, к нему нужно встроить функцию отслеживания процессов, т.е. если запускается cheatengine к примеру, то процесс игры закрывается - Rust, а в лаунчере появляется форма, что пользователь заблокирован и на сервер FTP отсылается UID лаунчера для предотвращения повторного запуска клиента. Delphi 7
Последний раз редактировалось КириллZ; 21.01.2015 в 01:10.
|
|
|
10.01.2015, 23:01
|
#2
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: Нужна помощь с слежкой за процессами
Ну собственно...
Следите за процессами, видя запущенный СЕ глушите игру и отправляете ID.
Здесь можно получить ответы на конкретный вопрос, но не на всё разом.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
11.01.2015, 03:18
|
#3
|
|
|
|
Пехотинец
|
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
|
Re: Нужна помощь с слежкой за процессами
|
Цитата: |
|
|
|
|
|
|
|
|
|
Сразу к сути: Есть лаунчер, к нему нужно встроить функцию отслеживания процессов, т.е. если запускается cheatengine к примеру, то процесс игры закрывается - Dayz, а в лаунчере появляется форма, что пользователь заблокирован и на сервер FTP отсылается UID лаунчера для предотвращения повторного запуска клиента. Delphi 7
|
|
|
|
|
|
Для поиска процесса cheatengine и подобных стоит пользоваться функциями
Process32First+Process32Next
Так же процесс может быть переименован из-за чего это будет защищать только от школоюзеров данной программы...
Далее следует использовать функцию для поиска окон Enumwindows что так же не будет 100% гарантом что программа не запущена...
Ещё надо сканировать блок описания каждого запущенного процесса (это там где пишется версия ,компания и т.д) на наличие каких-то сигнатурных(постоянных) строк как получать данный блок я незнаю т.к. с этим я не сталкивался.
Только использование этих 3 методов даст вам ~70% гарантию потому что редакторов памяти процессов очень много и на каждый из них написать сканер будет довольно сложно.
+ ко всему не стоит делать такой сканер в отдельной длл так как его будет легко пропатчить.
|
|
|
Пользователь сказал cпасибо:
|
|
11.01.2015, 13:26
|
#4
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Нужна помощь с слежкой за процессами
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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, 14:35
|
#5
|
|
|
|
Пехотинец
|
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
|
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, 14:44
|
#6
|
|
|
|
Лейтенант-командор
|
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Нужна помощь с слежкой за процессами
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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:13
|
#7
|
|
|
|
Пехотинец
|
Регистрация: 10.10.2011
Сообщений: 65
Популярность: 772
Сказал(а) спасибо: 58
Поблагодарили 57 раз(а) в 32 сообщениях
|
Re: Нужна помощь с слежкой за процессами
|
|
|
11.01.2015, 18: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;
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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, время: 09:31.
|
|