![]() |
Неубиваемая программа
Я решил пойти по самому простому пути и сыграть на том что в стандартном виндосовском "диспетчере задачь" нельзя убить одновременно 2 приложения.Пытаюсь сделать так что бы программа запускала свою копию которая бы следила сколько её копий запущенно и в случае когда она одна остается запустить ещё раз свою копию.
Пытаюсь делать вот так Код:
void __fastcall TForm1::FormCreate(TObject *Sender)Может кто то что посоветует? ЗЫ:не откажусь от примера с иньектом потока в системный процесс,который в случае чего будет перезапускать программу. |
NtQuerySystemInformation или ToolHelp тебе в помощь ...
хотя имхо удобнее просто засплайсить TerminateProcess , KillProcess и им подобные |
сплайс палитсо проактивкаме =\
|
taskkill /im process.exe /f
грохнет все process.exe довольно быстро. процесс может неуспеть зареспавниться ) |
Кстате NtQuerySystemInformation и есть ToolHelp функции все вместе взятые.
|
p.s. назови ее smss к примеру или winlogon (ее это исполняемый файл)
хорошая защита от дурака... |
Цитата:
|
Цитата:
ЗЫ:я так и непонял как отследить то что кол-во запущенных копий стало меньше 2х? |
почему бы просто не перехватить NtTerminateProcess ?
|
_nic Тебе Jes выше сказал что используются ToolHelp функции
http://msdn.microsoft.com/en-us/library/ms851517.aspx |
Цитата:
|
Вот что у меня в итоге получилось
Код:
TForm1 *Form1; |
анхук sst (отключение проактивки) -> инжект (базозависимый: в удаленном процессе выделяем память по адресу == базе нашего exe - чтоб все импорты были корректны и заливаем весь образ, и просто создаем поток на указанной EP) -> восстановление sst (восстановление проактивки).
трабл в том что такие вещи на билдере не пишутся, просто потому что как только внедришься таким методом - вся твоя событийная vcl перестанет работать (OnFormCreate, OnSocketReceive и тд). Изза чего? Изза того что запустится только та функция, которую ты указал как точку входа. Остальных потоков естественно не будет существовать, а передавть управление на OEP в билдере я не пробовал тк давно забил на рапид дев системы =) по поводу анхука - исходники например sdtrestore есть на rootkit.com - но это уже древний паблик. но для обучения вполне сойдет. |
такие вещи как загрузка драйвера или иное внедрение кода в ядро (а сие необходимо для доступа к SST) очень осторожно надо делать ибо защитный софт относится к этому крайне предубежденно..
поэтому всегда есть путь, отличный от ядра ..это конечно если ТС хочет обеспечить незаметность программы |
~~
|
да вот моя темка http://forum.antichat.ru/showthread.php?p=983799#post983799 тотже вариант хочю сделать только на делфи елси можно, кто хорошо расбирается помогите плиз.
|
| Время: 21:53 |