purebasic.info
http://purebasic.info/phpBB3ex/

Перевод кода драйвера с C++ на PB
http://purebasic.info/phpBB3ex/viewtopic.php?f=19&t=3239
Страница 8 из 9

Автор:  Пётр [ Вт июн 18, 2013 12:46 pm ]
Заголовок сообщения: 

Ссылка рабочая.

Автор:  SergeyA [ Вт июн 18, 2013 1:15 pm ]
Заголовок сообщения: 

Пётр

Сделал так

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
#MaxIndex = 200
 
Structure PID_Proc
  ProcPID.l  ; PID процесса, который добавил запись.
  PID.l      ; PID, который нужно защитить.
EndStructure
 
Structure PID_List
  Ar.PID_Proc[#MaxIndex]
EndStructure
 
PID_List.PID_List
 
Procedure AddPid(*PIDS.PID_List, Pid.l)
  For i = 0 To 199
    If *PIDS\Ar[i]\PID = Pid
      Break
    ElseIf Not *PIDS\Ar[i]\PID
      *PIDS\Ar[i]\PID  = Pid
      Break
    EndIf  
  Next  
EndProcedure  
 
Procedure DeletePid(*PIDS.PID_List, Pid.l)
  For i = 0 To 199
    If *PIDS\Ar[i]\PID = Pid
      *PIDS\Ar[i]\PID = 0
      Break
    EndIf  
  Next  
EndProcedure  
 
AddPid(@PID_List, 6133)
AddPid(@PID_List, 6000)
AddPid(@PID_List, 1430)
AddPid(@PID_List, 7153)
 
DeletePid(@PID_List, 6000)
 
For i = 0 To 199
  Debug PID_List\Ar[i]\PID
Next
 


Автор:  SergeyA [ Вт июн 18, 2013 1:30 pm ]
Заголовок сообщения: 

Что писать в теле функции?

Код:
1
2
3
4
5
6
7
8
9
10
 
Procedure ProcessExit(*DeviceObject.DEVICE_OBJECT, *pIrp.IRP)
 
EndProcedure
 
...
 
*DriverObject\MajorFunction[#IRP_MJ_CLOSE]  = @ProcessExit()
...
 


Автор:  kvitaliy [ Вт июн 18, 2013 1:31 pm ]
Заголовок сообщения: 

SergeyA, а зачем всё это? Процесс с окном легко закрывается стандартным менаджером. Без окна да, нет доступа. Но кроме стандартного менаджера процессов люди пользуются и другими инструментами! А другие прогаммы киляют этот процесс легко и быстро. Если борьба только против стандартного менаджера, то проще его нейтрализовать, чем куролесить с драйверами.

Автор:  SergeyA [ Вт июн 18, 2013 1:39 pm ]
Заголовок сообщения: 

kvitaliy

Например какой Manager может закрыть процесс?

Автор:  Пётр [ Вт июн 18, 2013 2:02 pm ]
Заголовок сообщения: 

SergeyA писал(а):
Что писать в теле функции?
Все тоже самое что и в CreateDispatch, плюс код исключения PID'ов, добавленных текущим процессом.
Эта функция вызывается не обязательно при закрытии процесса. Она вызывается при выполнении CloseHandle_().
А та процедура что зарегистрирована в #IRP_MJ_CREATE, вызывается при получении хендла функцией CreateFile_().

Пример.

Вложения:
pbNoKill_NtOpenProcess_ NtTerminateProcess_50.zip [16.2 KiB]
Скачиваний: 98

Автор:  SergeyA [ Вт июн 18, 2013 2:12 pm ]
Заголовок сообщения: 

Пётр

Понял, спасибо.

Автор:  kvitaliy [ Вт июн 18, 2013 3:20 pm ]
Заголовок сообщения: 

SergeyA писал(а):
kvitaliy

Например какой Manager может закрыть процесс?

У меня на ХР закрывает первый попавшийся- AnVir Task Manager

Автор:  SergeyA [ Вт июн 18, 2013 4:38 pm ]
Заголовок сообщения: 

kvitaliy

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

Автор:  kvitaliy [ Вт июн 18, 2013 5:36 pm ]
Заголовок сообщения: 

Смысл есть, когда известна цель. Вирус требует один подход, а антивирус другой. Этот способ одинаково плох плох для ттого и другого.

Автор:  kosjachok [ Вт июн 18, 2013 5:44 pm ]
Заголовок сообщения: 

kvitaliy писал(а):
SergeyA писал(а):
kvitaliy

Например какой Manager может закрыть процесс?

У меня на ХР закрывает первый попавшийся- AnVir Task Manager

У меня самую первую версию дрова AnVir Task Manager не смог кильнуть.

Автор:  SergeyA [ Вт июн 18, 2013 5:57 pm ]
Заголовок сообщения: 

kvitaliy

Цель есть, написать драйвер не позволяющий завершать процесс, AnVir Task Manager я не устанавливал и не пробовал, но уверен что без своих драйверов он ни чем не лучше стандартного TaskMgr, я не думаю что Virusmaker'ы будут писать драйвера для вируса мешающие работе данного драйвера.

Автор:  pablov [ Вт июн 18, 2013 6:14 pm ]
Заголовок сообщения: 

SergeyA писал(а):
Цель есть, написать драйвер не позволяющий завершать процесс

Зачем запрещать юзеру завершать твой процесс. В чем сила брат? (c)

Автор:  kvitaliy [ Вт июн 18, 2013 6:56 pm ]
Заголовок сообщения: 

kosjachok писал(а):
kvitaliy писал(а):
SergeyA писал(а):
kvitaliy

Например какой Manager может закрыть процесс?

У меня на ХР закрывает первый попавшийся- AnVir Task Manager

У меня самую первую версию дрова AnVir Task Manager не смог кильнуть.

Киляет все версии и очень быстро!
И этот хорошо, ибо я тоже не вижу честную программу,которую юзер не может убить. Я хочу быть хозяином своему компу.

Автор:  SergeyA [ Вт июн 18, 2013 7:30 pm ]
Заголовок сообщения: 

kvitaliy писал(а):
Я хочу быть хозяином своему компу.


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

Страница 8 из 9 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/