Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.11.2010, 21:42
MussoN MussoN вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 13
Репутация: 10
По умолчанию Как напсиать и возможно ли такая программа

Хотелось бы узнать ка кнписать и возможна ли программа со след. алгоритмом :
Проверка на запрешенные процессы (например cheat.exe) если есть такие то закрыть их, если нет, то послать сигнал с ип адреса B на ип адрес X и сообщение что все нормально, и только после этого для ип адреса В открылся бы порт на ип адресе X например(X:7777) а так порт бы был закрыт для ип адреса не прошедшего проверку!
Ответить с цитированием
  #2  
Старый 18.11.2010, 21:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Все возможно в этом мире.
Проверка процессов и их закрытие делается через WinAPI (см функции EnumProcess, KillProcess).
Отправка некоторого сообщения (и его присем) - через Indy, например.
А вот с открытием/закрытием потртов - надо разбираться с тем файерволом, который установлен.
Ответить с цитированием
  #3  
Старый 18.11.2010, 21:54
MussoN MussoN вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Все возможно в этом мире.
Проверка процессов и их закрытие делается через WinAPI (см функции EnumProcess, KillProcess).
Отправка некоторого сообщения (и его присем) - через Indy, например.
А вот с открытием/закрытием потртов - надо разбираться с тем файерволом, который установлен.
Вот все что ты написал это смотреть в делфи или это др программы?) Indy там WinAPI , просто раздел называется "начинающим" а я на делфи писал только ошибку win32 там надо было)
И если в делфи то скажи плз где именно это искать

Последний раз редактировалось MussoN, 18.11.2010 в 22:00.
Ответить с цитированием
  #4  
Старый 18.11.2010, 22:52
Человек_Борща Человек_Борща вне форума
Новичок
 
Регистрация: 17.09.2010
Адрес: Беларусь, г. Минск
Сообщения: 58
Версия Delphi: 7, 2010,XE
Репутация: 10
По умолчанию

Чтобы такое сделать надо как миниму почитать пару книг о WinAPI и об Indy копонентах
Ответить с цитированием
  #5  
Старый 19.11.2010, 05:04
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от MussoN
Вот все что ты написал это смотреть в делфи или это др программы?) Indy там WinAPI , просто раздел называется "начинающим" а я на делфи писал только ошибку win32 там надо было)
И если в делфи то скажи плз где именно это искать

WinAPI - это собственно набор системных функций. Большинство из них уже портированны в Дельфи, тебе надо только их правильно вызвать.

Indy - это библиотека, поставляется с Дельфи версии с 6ой. Можно дополнительно скачать и поставить.
Ответить с цитированием
  #6  
Старый 19.11.2010, 11:04
MussoN MussoN вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 13
Репутация: 10
По умолчанию

Почему выдает ошибку? Подскажите плз
Код:
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
begin
KillTask('opera.exe');
KillTask ('hl.exe');
 
uses
  Tlhelp32, Windows, SysUtils;
 
function KillTask(ExeFileName: string): integer;
const
  PROCESS_TERMINATE=$0001;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  result := 0;
 
  FSnapshotHandle := CreateToolhelp32Snapshot
  (TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle,
  FProcessEntry32);
 
  while integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
    UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
    UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(OpenProcess(
      PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0));
    ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
 
  CloseHandle(FSnapshotHandle);
end;
Admin: Не забываем про теги!

Последний раз редактировалось Admin, 19.11.2010 в 15:51.
Ответить с цитированием
  #7  
Старый 19.11.2010, 14:43
Аватар для PaHaNjkee
PaHaNjkee PaHaNjkee вне форума
Начинающий
 
Регистрация: 13.10.2010
Адрес: Ульяновск
Сообщения: 115
Репутация: 10
По умолчанию

Кидаешь на форму Edit1 и пишешь
Код:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, tlhelp32, StdCtrls, Edit, Button;
 
type
  TForm1 = class(TForm)
    Button1: TsButton;
    Edit1: TsEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
function killtask(exefilename: string): integer;
const
process_terminate=$0001;
var
continueloop: bool;
fsnapshothandle: thandle;
fprocessentry32: tprocessentry32;
begin
result := 0;
 
fsnapshothandle := createtoolhelp32snapshot
(th32cs_snapprocess, 0);
fprocessentry32.dwsize := sizeof(fprocessentry32);
continueloop := process32first(fsnapshothandle,
fprocessentry32);
 
while integer(continueloop) <> 0 do
begin
if ((uppercase(extractfilename(fprocessentry32.szexefile)) =
uppercase(exefilename))
or (uppercase(fprocessentry32.szexefile) =
uppercase(exefilename))) then
result := integer(terminateprocess(openprocess(
process_terminate, bool(0),
fprocessentry32.th32processid), 0));
continueloop := process32next(fsnapshothandle,
fprocessentry32);
end;
closehandle(fsnapshothandle);
end;
 
procedure TForm1Button1Click(Sender: TObject);
begin
killtask(Edit1.text);
end;
 
end.

т.е вводишь имя процесса в Edit1 и нажимаешь на баттон а послать на ip пользуйся Indy-компонентами
__________________
Начинающий Delphi
Помогаю за Спасибо!
Ответить с цитированием
  #8  
Старый 19.11.2010, 18:32
MussoN MussoN вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от PaHaNjkee
Кидаешь на форму Edit1 и пишешь
Код:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, tlhelp32, StdCtrls, Edit, Button;
 
type
  TForm1 = class(TForm)
    Button1: TsButton;
    Edit1: TsEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
function killtask(exefilename: string): integer;
const
process_terminate=$0001;
var
continueloop: bool;
fsnapshothandle: thandle;
fprocessentry32: tprocessentry32;
begin
result := 0;
 
fsnapshothandle := createtoolhelp32snapshot
(th32cs_snapprocess, 0);
fprocessentry32.dwsize := sizeof(fprocessentry32);
continueloop := process32first(fsnapshothandle,
fprocessentry32);
 
while integer(continueloop) <> 0 do
begin
if ((uppercase(extractfilename(fprocessentry32.szexefile)) =
uppercase(exefilename))
or (uppercase(fprocessentry32.szexefile) =
uppercase(exefilename))) then
result := integer(terminateprocess(openprocess(
process_terminate, bool(0),
fprocessentry32.th32processid), 0));
continueloop := process32next(fsnapshothandle,
fprocessentry32);
end;
closehandle(fsnapshothandle);
end;
 
procedure TForm1Button1Click(Sender: TObject);
begin
killtask(Edit1.text);
end;
 
end.

т.е вводишь имя процесса в Edit1 и нажимаешь на баттон а послать на ip пользуйся Indy-компонентами
а куда кидать edit1?) и можно какнибудь чтобы не нажимать на кнопку а при запуске ехе файла
Ответить с цитированием
  #9  
Старый 19.11.2010, 18:43
Аватар для PaHaNjkee
PaHaNjkee PaHaNjkee вне форума
Начинающий
 
Регистрация: 13.10.2010
Адрес: Ульяновск
Сообщения: 115
Репутация: 10
По умолчанию

Тогда на Form1 в Object Inspector переходи на вкладку Events и двойным щелчком нажимай на OnCreate и там пиши killtask(имя процесса); А если эдит кинуть и это прописать в ОнКриэйт то уже не получиться!
__________________
Начинающий Delphi
Помогаю за Спасибо!
Ответить с цитированием
  #10  
Старый 19.11.2010, 19:17
MussoN MussoN вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 13
Репутация: 10
По умолчанию

выдает такую ошибку!
declaration of class tform1 is missing or incorrect
Ответить с цитированием
  #11  
Старый 19.11.2010, 19:50
Аватар для PaHaNjkee
PaHaNjkee PaHaNjkee вне форума
Начинающий
 
Регистрация: 13.10.2010
Адрес: Ульяновск
Сообщения: 115
Репутация: 10
По умолчанию

если ты мой код копировал то не надо!
Вот эту функция пропиши после слова implementation
Код:
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
function killtask(exefilename: string): integer;
const
process_terminate=$0001;
var
continueloop: bool;
fsnapshothandle: thandle;
fprocessentry32: tprocessentry32;
begin
result := 0;
 
fsnapshothandle := createtoolhelp32snapshot
(th32cs_snapprocess, 0);
fprocessentry32.dwsize := sizeof(fprocessentry32);
continueloop := process32first(fsnapshothandle,
fprocessentry32);
 
while integer(continueloop) <> 0 do
begin
if ((uppercase(extractfilename(fprocessentry32.szexefile)) =
uppercase(exefilename))
or (uppercase(fprocessentry32.szexefile) =
uppercase(exefilename))) then
result := integer(terminateprocess(openprocess(
process_terminate, bool(0),
fprocessentry32.th32processid), 0));
continueloop := process32next(fsnapshothandle,
fprocessentry32);
end;
closehandle(fsnapshothandle);
end;

и дальше сделай как я тебе написал
__________________
Начинающий Delphi
Помогаю за Спасибо!
Ответить с цитированием
  #12  
Старый 19.11.2010, 20:08
MussoN MussoN вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 13
Репутация: 10
По умолчанию

Код HTML:
fprocessentry32: tprocessentry32;

тут ошибка
Ответить с цитированием
  #13  
Старый 19.11.2010, 20:23
Аватар для PaHaNjkee
PaHaNjkee PaHaNjkee вне форума
Начинающий
 
Регистрация: 13.10.2010
Адрес: Ульяновск
Сообщения: 115
Репутация: 10
По умолчанию

Скинь мне исходник, подправлю пришлю.
__________________
Начинающий Delphi
Помогаю за Спасибо!
Ответить с цитированием
  #14  
Старый 19.11.2010, 20:39
MussoN MussoN вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 13
Репутация: 10
По умолчанию

[quote=PaHaNjkee]если ты мой код копировал то не надо!
Вот эту функция пропиши после слова implementation
Код:
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
function killtask(exefilename: string): integer;
const
process_terminate=$0001;
var
continueloop: bool;
fsnapshothandle: thandle;
fprocessentry32: tprocessentry32;
begin
result := 0;
 
fsnapshothandle := createtoolhelp32snapshot
(th32cs_snapprocess, 0);
fprocessentry32.dwsize := sizeof(fprocessentry32);
continueloop := process32first(fsnapshothandle,
fprocessentry32);
 
while integer(continueloop) <> 0 do
begin
if ((uppercase(extractfilename(fprocessentry32.szexefile)) =
uppercase(exefilename))
or (uppercase(fprocessentry32.szexefile) =
uppercase(exefilename))) then
result := integer(terminateprocess(openprocess(
process_terminate, bool(0),
fprocessentry32.th32processid), 0));
continueloop := process32next(fsnapshothandle,
fprocessentry32);
end;
closehandle(fsnapshothandle);
end;

) твой и есть
Ответить с цитированием
  #15  
Старый 20.11.2010, 01:53
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Очередная недозащита для L2? Обходиться будет сниффером и прямыми руками.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:22.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025