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

26.11.2008, 13:53
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Неубиваемая программа
Я решил пойти по самому простому пути и сыграть на том что в стандартном виндосовском "диспетчере задачь" нельзя убить одновременно 2 приложения.Пытаюсь сделать так что бы программа запускала свою копию которая бы следила сколько её копий запущенно и в случае когда она одна остается запустить ещё раз свою копию.
Пытаюсь делать вот так
Код:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
char fnm[400];
GetModuleFileName(NULL,fnm,400);
SetLastError(0);
CreateEvent(NULL, FALSE, FALSE, TEXT("ProgName_started"));
if (GetLastError() != ERROR_ALREADY_EXISTS)
{
ShellExecute(Form1->Handle,NULL,fnm,NULL,NULL,SW_HIDE);
}
Form1->Hide();
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
for(;;)
{
Sleep(300);
SetLastError(0);
CreateEvent(NULL, FALSE, FALSE, TEXT("ProgName_started"));
if (GetLastError() != ERROR_ALREADY_EXISTS)
{
ShellExecute(Form1->Handle,NULL,fnm,NULL,NULL,SW_HIDE);
break;
}
}
Form1->Show();
}
}
Но не получается уследить за изменением количества запущенных копий программы.
Может кто то что посоветует?
ЗЫ:не откажусь от примера с иньектом потока в системный процесс,который в случае чего будет перезапускать программу.
|
|
|

26.11.2008, 15:09
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме: 3371897
Репутация:
1462
|
|
NtQuerySystemInformation или ToolHelp тебе в помощь ...
хотя имхо удобнее просто засплайсить TerminateProcess , KillProcess и им подобные
|
|
|

26.11.2008, 15:43
|
|
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме: 1917742
Репутация:
541
|
|
сплайс палитсо проактивкаме =\
|
|
|

26.11.2008, 17:06
|
|
Постоянный
Регистрация: 20.12.2007
Сообщений: 577
Провел на форуме: 1636674
Репутация:
171
|
|
taskkill /im process.exe /f
грохнет все process.exe довольно быстро. процесс может неуспеть зареспавниться )
|
|
|

26.11.2008, 17:24
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
Кстате NtQuerySystemInformation и есть ToolHelp функции все вместе взятые.
|
|
|

26.11.2008, 17:39
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
p.s. назови ее smss к примеру или winlogon (ее это исполняемый файл)
хорошая защита от дурака...
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

26.11.2008, 17:45
|
|
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме: 1917742
Репутация:
541
|
|
Сообщение от Pernat1y
taskkill /im process.exe /f
грохнет все process.exe довольно быстро. процесс может неуспеть зареспавниться )
тогда ТС при запуске прога пусть удалит taskkill из системы 
|
|
|

26.11.2008, 21:16
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сообщение от W!z@rD
p.s. назови ее smss к примеру или winlogon (ее это исполняемый файл)
хорошая защита от дурака...
Это такой аккардеон ,что на него орут проактивки большинства антивирей 
ЗЫ:я так и непонял как отследить то что кол-во запущенных копий стало меньше 2х?
Последний раз редактировалось _nic; 26.11.2008 в 21:23..
|
|
|

26.11.2008, 23:19
|
|
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме: 424387
Репутация:
142
|
|
почему бы просто не перехватить NtTerminateProcess ?
|
|
|

27.11.2008, 00:40
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
_nic Тебе Jes выше сказал что используются ToolHelp функции
http://msdn.microsoft.com/en-us/library/ms851517.aspx
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|