HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 16 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Проблемы со Sleep (https://hlfx.ru/forum/showthread.php?threadid=1533)


Отправлено ToMMuK 09-10-2008 в 13:25:

Question Проблемы со Sleep

В общём созал дллку, которая проверяет запущенные программы, составляет список, и проверяет код на определённом оффсете, в общем если находит оффсет и байты которые указаны в коде, то закрываеться приложение, и открываеться Браузер со страничкой.

Вот сам код :

C++ Source Code:
1
void SystemProcessesScan() {
2
  HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
3
  if(hProcessSnap != INVALID_HANDLE_VALUE)
4
  {
5
    PROCESSENTRY32 pe32;
6
    pe32.dwSize = sizeof(PROCESSENTRY32);
7
 
8
    if(Process32First(hProcessSnap, &pe32))
9
    {
10
      do
11
      {
12
        HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
13
        if(hProcess != NULL)
14
        {
15
          if(ScanProcessMemory(hProcess))
16
          {
17
            for(int i = 0; i < MAX_PROCESS_DUMP; i++)
18
            {
19
              char aTmpBuffer[MAX_DUMP_SIZE];
20
              SIZE_T aBytesRead = 0;
21
              ReadProcessMemory(hProcess, (LPCVOID)g_ProcessesDumps[i].m_aOffset, (LPVOID)aTmpBuffer, sizeof(aTmpBuffer), &aBytesRead);
22
 
23
              if(memcmp(aTmpBuffer, g_ProcessesDumps[i].m_aMemDump, MAX_DUMP_SIZE) == 0)
24
              {
25
                char buffer[50];
26
                sprintf(buffer,"http://83.99.185.51/~.err?~=%s",g_ProcessesDumps[i].m_progName);
27
                ShellExecute(NULL, "open", buffer,NULL,NULL, SW_SHOWNORMAL);
28
                ExitProcess(0);
29
              }
30
            }
31
          }
32
        }
33
      }
34
      while(Process32Next(hProcessSnap, &pe32));
35
    }
36
  }
37
 
38
  CloseHandle(hProcessSnap);
39
}
40
 
41
void MainThread()
42
{
43
again:
44
  Sleep(5000);
45
  SystemProcessesScan();
46
  goto again;
47
}
48
 
49
extern  "C"  __declspec(dllexport) void Load() {
50
  CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(MainThread),NULL,0,0);
51
  //SystemProcessesScan();
52
}
53
 
54
BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) {
55
  return TRUE;
56
}


По идее каждые пять секунд он должен вызывать функцию SystemProcessesScan();

C++ Source Code:
1
void MainThread()
2
{
3
again:
4
  Sleep(5000);
5
  SystemProcessesScan();
6
  goto again;
7
}


Но после компила, при запуске чит программы из приложения кидает в лучшем случае через минуту а то и больше.

Если убрать
C++ Source Code:
char buffer[50];
sprintf(buffer,"http://83.99.185.51/~.err?~=%s",g_ProcessesDumps[i].m_progName);
ShellExecute(NULL, "open", buffer,NULL,NULL, SW_SHOWNORMAL);


То всё работает, но Браузер неоткрываеться.

Так вот, как сделать так чтобы он делал проверку каждые 5 секунд, закрывал приложение и открывал браузер... )

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено XaeroX 09-10-2008 в 14:32:

Че-то у тебя никакой синхронизации нет...

__________________

xaerox on Vivino


Отправлено ToMMuK 09-10-2008 в 14:47:

В смысле синхронизации?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено XaeroX 09-10-2008 в 14:52:

В прямом. Дллка создает поток, который не синхронизируется с вызывающим тредом и тупо крутится в бесконечном цикле. Может лучше вместо Sleep использовать WaitForSingleObject с параметром ожидания 5000 мс?

__________________

xaerox on Vivino


Отправлено ToMMuK 09-10-2008 в 20:23:

Всё, спасибо, разобралься, теперь работает как надо.

Добавлено 09-10-2008 в 22:27:

Нет всётаки что-то ещё не всё, иногда также приходиться ждать по 1 минуте чтобы приложение закрылось...

C++ Source Code:
1
void MainThread()
2
{
3
again:
4
  WaitForSingleObject(hEvent,2000);
5
  SystemProcessesScan();
6
  goto again;
7
}
8
 
9
extern  "C"  __declspec(dllexport) void Load() {
10
  SystemProcessesScan();
11
  hEvent = CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(MainThread),NULL,0,0);
12
}


Добавлено 09-10-2008 в 23:23:

И как сделать чтобы он вызывал ShellExecute после ExitProcess или
это нереально?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Government-Man 10-10-2008 в 06:50:

ToMMuK и замени пожалуйста goto на while( 1 ) - так будет немного нагляднее.


Отправлено XaeroX 10-10-2008 в 09:07:

Цитата:
ToMMuK писал:
И как сделать чтобы он вызывал ShellExecute после ExitProcess или
это нереально?

Конечно, нереально.

__________________

xaerox on Vivino


Отправлено BUzer 11-10-2008 в 06:46:

ToMMuK
Ух ты, никак античит пишешь?

Цитата:
char buffer[50];

Тебе не кажется, что буфер как-то маловат? По прикидкам, некоторые названия читов не влезают.

Цитата:
И как сделать чтобы он вызывал ShellExecute после ExitProcess

перехватить ExitProcess.


Отправлено XaeroX 11-10-2008 в 07:45:

Цитата:
BUzer писал:
перехватить ExitProcess.

Каким образом?

__________________

xaerox on Vivino


Отправлено ToMMuK 11-10-2008 в 09:27:

Вродебы нашёл решение, оказываеться приложение выжирало 200-300Мб Оперативки и 50% процессора, и компьютеру было сложно загружать Firefox, отсюда ессесно и лаги, стал загружать ИЭксплорер, работает шустро и правильно

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено BUzer 11-10-2008 в 10:14:

Ммм стоп, про чей ExitProcess идёт речь, и нафига это нужно?
Я просто на первый взгляд не совсем разобрался.


Отправлено XaeroX 11-10-2008 в 11:00:

BUzer дллка завершает вызывающий процесс.

__________________

xaerox on Vivino


Отправлено BUzer 11-10-2008 в 12:29:

Ыть.. Всё-равно не врубаюсь, зачем вызывать ShellExecute после ExitProcess


Отправлено XaeroX 11-10-2008 в 13:48:

Ну как я понял, чтобы поскорее убить процесс, а потом уже не спеша запускать браузер

__________________

xaerox on Vivino


Отправлено ToMMuK 11-10-2008 в 21:21:

Ну всё я разобралься, просто Файрфокс сжирал ресурсы и поэтому процесс не сразу закрывался...

З.Ы. Можно первый пост подредактировать и убрать код?, т.к. програмка анти-чит, лучше чотбы никто невидел её исходников

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Временная зона GMT. Текущее время 00:50. Страницы (2): [1] 2 »
Показать все 16 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024