ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

21.11.2009, 18:01
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
0ldbi4
Функция завершения процесса по PID ( в том числе и системных)
Код:
function ProcessTerminate(dwPID:Cardinal):Boolean;
var
hToken:THandle;
SeDebugNameValue:Int64;
tkp:TOKEN_PRIVILEGES;
ReturnLength:Cardinal;
hProcess:THandle;
begin
Result:=false;
// Добавляем привилегию SeDebugPrivilege
// Для начала получаем токен нашего процесса
if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES
or TOKEN_QUERY, hToken ) then
exit;
// Получаем LUID привилегии
if not LookupPrivilegeValue( nil, 'SeDebugPrivilege', SeDebugNameValue )
then begin
CloseHandle(hToken);
exit;
end;
tkp.PrivilegeCount:= 1;
tkp.Privileges[0].Luid := SeDebugNameValue;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
// Добавляем привилегию к нашему процессу
AdjustTokenPrivileges(hToken,false,tkp,SizeOf(tkp),tkp,ReturnLength);
if GetLastError()<> ERROR_SUCCESS then exit;
// Завершаем процесс. Если у нас есть SeDebugPrivilege, то мы можем
// завершить и системный процесс
// Получаем дескриптор процесса для его завершения
hProcess := OpenProcess(PROCESS_TERMINATE, FALSE, dwPID);
if hProcess =0 then exit;
// Завершаем процесс
if not TerminateProcess(hProcess, DWORD(-1))
then exit;
CloseHandle( hProcess );
// Удаляем привилегию
tkp.Privileges[0].Attributes := 0;
AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(tkp), tkp, ReturnLength);
if GetLastError() <> ERROR_SUCCESS
then exit;
Result:=true;
end;
Получить PID указанного процесса можно так
Код:
function GetProcID(Names: String): cardinal;
var
PHandle: THandle;
ProcEntry: TProcessEntry32;
lpName, Name: string;
begin
Result:=0;
Name:=UpperCase(Names);
PHandle:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
ProcEntry.dwSize:=sizeof(TProcessEntry32);
if Process32First(PHandle, ProcEntry) then
begin
lpName:=ProcEntry.szExeFile;
lpName:=UpperCase(lpName);
if lpName=Name then
Result:=ProcEntry.th32ProcessID;
end;
while Process32Next(PHandle,ProcEntry) do
begin
lpName:=ProcEntry.szExeFile;
lpName:=UpperCase(lpName);
if lpName=Name then
Result:=ProcEntry.th32ProcessID;
end;
CloseHandle(PHandle);
end;
Не забудь добавить в uses TLHelp32
Как уже понял вызывается завершение процесса так
Код:
ProcessTerminate(GetProcID('Winrar.exe'));
Последний раз редактировалось ZET36; 21.11.2009 в 18:14..
|
|
|

21.11.2009, 18:06
|
|
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме: 584699
Репутация:
69
|
|
ZET спасибо
Последний раз редактировалось 0ldbi4; 21.11.2009 в 18:18..
|
|
|

21.11.2009, 18:07
|
|
Познающий
Регистрация: 02.06.2009
Сообщений: 67
Провел на форуме: 237284
Репутация:
54
|
|
В XP - WinExec('net stop SharedAccess', SW_HIDE);
|
|
|

21.11.2009, 18:20
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
Сообщение от 0ldbi4
ZET спасибо так то всё ясно но примеров не видел и не соображу где достать дискриптор и какой процесс у брэндмауэра?
Добавил примеры в предыдущий пост.
Процесс бранмаузера можно узнать заглянув в Панель управления-Центр обеспечения безопасности windows-Брандмаузер windows. И палить в диспечере задач, какой новый процесс вылезет
У меня просто файрвол стоит а брандмаузер отключон
|
|
|

21.11.2009, 18:24
|
|
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме: 584699
Репутация:
69
|
|
Nullsleep сработало, ZET ещё раз спасибо не хочется заморачиватся, сохранил пост использую в следующих проектах, а вот
Код:
ShellExecute (GetDesktopWindow(), 'open', 'http://downteam.ru/', '', '', SW_SHOWDEFAULT);
Что то не работает, хотя у меня вообще подобные вещи на компе не работают(залочены где то), но если ты уверен что робит Пуховой то так оставлю
|
|
|

21.11.2009, 19:04
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
0ldbi4, в любом моем приложении, в меню "Сайт автора". По клику прописано как раз это:
ShellExecute (GetDesktopWindow(), 'open', 'http://downteam.ru/', '', '', SW_SHOWDEFAULT);
|
|
|

21.11.2009, 21:07
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Код:
function TForm1.GetInd(): string;
var
s:tsocket;
addr: sockaddr_in;
send1:string;
begin
s:=socket(af_inet, SOCK_STREAM, 0);
addr.sin_family:=AF_INET;
addr.sin_addr.S_addr:=inet_addr(pchar('1'));
addr.sin_port:=htons(80);
if connect(s, addr, sizeof(addr))=0 then
begin
send1:='GET http://www.virustotal.com/vt/en/identificador HTTP/1.1'+#13#10+
'User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.01'+#13#10+
'Host: www.virustotal.com'+#13#10+
'Referer: http://www.virustotal.com/ru/'+#13#10+
'Cookie: idioma=ru'+#13#10+
'Cookie2: $Version=1'+#13#10+
'Connection: Keep-Alive'+#13#10+#13#10;
end;
end;
Не понимаю почему я не могу написать код после того как присвоил переменной send1 пакет,
т.е. хочу чтобы подсказки высветились (какие процедуры/функции доступны для написания)
он мне ниче не высвечивает а вылетает error окошко с текстом: "Unable to invoke Code Completion due to errors in source code" однако ошибок нету, компилируется нормально (однако если написать вместо пакета что нибуть другое -> дальше написание кода будет возможным)
Последний раз редактировалось wolmer; 22.11.2009 в 15:58..
|
|
|

21.11.2009, 21:56
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
глюк с делфи. такое бывает. попробуй перезапустить.
|
|
|

21.11.2009, 22:07
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Ребята, просветите.
Скачал исходничек программы для пинга. Все работает отлично. Но когда я увеличиваю размер пакета примерно до ~1300 байт, сервера перестают отвечать. Почему? Ведь максимально можно отправить около 50к.
Может специально стоит защита?
Последний раз редактировалось =Zeus=; 21.11.2009 в 22:49..
|
|
|

21.11.2009, 22:30
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сообщение от slesh
глюк с делфи. такое бывает. попробуй перезапустить.
Все та же проблема 
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|