Что нового

[Процессы] Заморозка и разморозка процесса.

PreDoK

Новичок
Сообщения
30
Репутация
3
Здравствуйте!
Есть идея обхода Frost'а для игры Point Blank, чтобы реализовать обход нужно заморозить процесс pointblank.exe и потом через некое время разморозить.
Что именно требуется.
1.Скрипт ждет появление процесса и после его появления тут же его замораживает
2.Спустя 15 секунд процесс размораживается
3.Дальше игра запускается нормально с обходом.
Смысл всего выше написанного это то что frost скрывает процесс pointblank.exe когда он только появляется но если мы его заморозки когда он появится то frost не сможет его скрыть.
Буду очень благодарен за помощь
 
Автор
P

PreDoK

Новичок
Сообщения
30
Репутация
3
madmasles сказал(а):
Спасибо но как мне тут указать процесс pointblank.exe если PID кадый раз меняется?
Что то не пойму куда тут писать процесс!?
Код:
Func _ProcSuspendResume($process)
    $processid = ProcessExists($process)
    If $processid Then
        If $fSuspended Then
            $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
            $i_sucess = DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle[0])
            DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
            If IsArray($i_sucess) Then 
                $fSuspended = 0
                Return 1
            Else
                SetError(1)
                Return 0
            Endif
        Else
            $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
            $i_sucess = DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle[0])
            DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
            If IsArray($i_sucess) Then 
                $fSuspended = 1
                Return 1
            Else
                SetError(1)
                Return 0
            Endif
        EndIf
    Else
        SetError(2)
        Return 0
    Endif
EndFunc

Global $fSuspended = 0
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Код:
_ProcSuspendResume('pointblank.exe')

Функция ProcessExists возвращает PID.
 
Автор
P

PreDoK

Новичок
Сообщения
30
Репутация
3
dwerf сказал(а):
Код:
_ProcSuspendResume('pointblank.exe')

Функция ProcessExists возвращает PID.
Не работает((((
C:\Users\Tricker\Desktop\???????\????? ?????\??????.au3 (2) : ==> Expected a variable in user function call.:
Func _ProcSuspendResume("notepad.exe")
Func _ProcSuspendResume(^ ERROR
ПРОБЫВАЛ ДАЖЕ ТАК НЕ РАБОТАЕТ(((
Код:
$process = "notepad.exe"
 
Func _ProcSuspendResume($process)
    $processid = ProcessExists($process)
.......
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
PreDoK
приведи полный код. у меня ведь все работает
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
ПРОБЫВАЛ ДАЖЕ ТАК НЕ РАБОТАЕТ(((
Криво однако.

Код:
Global $fSuspended = 0

_ProcSuspendResume('notepad.exe')
Sleep(10000)
_ProcSuspendResume('notepad.exe')

Func _ProcSuspendResume($process)
    $processid = ProcessExists($process)
    If $processid Then
        If $fSuspended Then
            $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
            $i_sucess = DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle[0])
            DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
            If IsArray($i_sucess) Then
                $fSuspended = 0
                Return 1
            Else
                SetError(1)
                Return 0
            Endif
        Else
            $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
            $i_sucess = DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle[0])
            DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
            If IsArray($i_sucess) Then
                $fSuspended = 1
                Return 1
            Else
                SetError(1)
                Return 0
            Endif
        EndIf
    Else
        SetError(2)
        Return 0
    Endif
EndFunc
 
Автор
P

PreDoK

Новичок
Сообщения
30
Репутация
3
Я туплю спасибо!!!!Не так тебя понял))
 

renom

Новичок
Сообщения
127
Репутация
2
У меня совсем другой вопрос по поводу процессов.Используя команду ProcessClose а именно ProcessClose(explorer.exe) - процесс завершается на несколько секунд,а не навсегда,как в случае ручного завершения данного процесса через диспетчер задач.Что не так?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
renom
как это относится к данной теме? :-X
 

renom

Новичок
Сообщения
127
Репутация
2
Ну я какбэ думал,что explorer относится к процесам...вот и решил здесь спросить не создавая отдельную тему :|
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
renom
один вопрос - одна тема.
 
Верх