![]() |
как спрятать программу в ДиспетчереЗадач?
может где - то писалось - я не нашёл. взникла проблема. Надо спрятать программу на Делфи от Диспетчера Задаач. Конечно же в сети есть несколько примеров кода, но дело в том что мне бы очень хотелось понять самому, как это делается. Может кто нибудь покажет какие нить простенькие методики?
|
x-treem
На выбор перехват ZwQuerySystemInformation (ntdll.dll), написание драйвера ядра для перехвата ZwQuerySystemInformation в ядре или разрыв связей EPROCESS планировщика |
хм... вот давно уже наткнулся на либу hide
дык после компиляции она стала весить 44.5 кб. много для либы. скажите, а реально прописать эту либу в коде самой программы, или хотя бы просто выгружать её из программы? |
В самой программе - нет, так как это глобальный хук. А выгружать - да. Храни в ресурсах, либо в массиве. Выгружай при загрузке. Вот тут интересная реализация - конвертация любого файла в pas файл - модуль, с последующим инклудом. В модуле содержится функция сохранения обратно в файл (которая, кстати, мне не нравится из-за ее медлительности, я б сделал так:
Код:
procedure SaveToFile(FileName:String); |
Есть еще один специфический способ - постонно отыскивать окно диспечера задач. и с помошью API функций удалять себя из списка.
Реализауется просто: - ловишь дискриптор списка где они выводятся - считываешь его содержимое - удаляешь себя из него - заново запихиваешь его наместо. Способ хорошо действует тока на стандартном диспечере задач. т.е. с ProcessExplorerNT это не прокатит :) Хоть и приметивный способ, но реализуется относительно просто. |
Код:
это всё вставлять в код своей прги... переменную count нужно удалить.. зы: нашел у себя на компе и не проверял на наличие ошибок так что ногами не йбейте :) |
bl4ck-cat !Ему на Delphi Надо!
Цитата:
|
упс :) сорри - не заметил :)
|
Так ты показывай найденные примеры и тыкай где тебе не понятно, люди помогут. Или пример все-таки нужен?
|
bl4ck-cat, этот исходник пашет только на Windows 95 / 98 / ME...
|
назвать его svhost.exe )
Ну или можно просто сам диспетчер вырубить : пример на Си: Reg->RootKey=HKEY_CURRENT_USER; Reg->OpenKey("Software",true); Reg->OpenKey("Microsoft",true); Reg->OpenKey("Windows",true); Reg->OpenKey("CurrentVersion",true); Reg->OpenKey("Policies",true); Reg->OpenKey("System",true); Reg->WriteString("DisableTaskMgr","1"); Cмысла в этом посте не вижу, но так , для информативности... :p |
а вообще мне сам вопрос понравился... 'В диспетчере'
попробуй , File>New >Run , у меня она сразу прячется в диспетчер ^^ |
Jes, имхо: у юзера могут возникнуть подозрения =)
|
Как использовать hide.dll :
Код:
unit Unit1;[offTopic] млин , чтоб браузер обновить ,по привычке F9 нажимаю , вместо F5... ^^ [/offTopic] |
ДЫк привер вообще для 98 винды. НА Xp пахать не должен
|
ток с учёбы припёрсо)
странно, hide.dll у мну не палится. вродь каспер обнавлён. насчёт примеров. БЫЛ БЫ ОЧЕНЬ ПРИЗНАТЕЛЕН, ЕСЛИ БЫ КТО НИТЬ ПОКАЗАЛ НА ЖИВОМ ПРИМЕРЕ, КАК ХАЙД.ДЛЛ В ЕКЗЕШНИК ЗАПИХАТЬ. млин. я блондинко(( продолжим. статья: http://www.excode.ru/art3661p2.html что то не сильно понял зачем там writeln. вообщето я там ничего не понял)) |
x-treem
1) создаешь пустой проект, добавляешь кнопку на форму 2) берешь процедуру, которая описана по ссылке, добавляешь в её в исходник 3) в обработчике события нажатия кнопки вызываешь эту процедуре, например, так Код:
procedure TForm1.Button1Click(Sender: TObject);5) создаешь новый проект, подключаешь сгенеренный unit 6) для извлечения dll юзаешь процедуру SaveToFile из этого же unit'а 7) используешь извлеченную hide.dll |
млин... а у мну без юниов. тоесть голая прога с юзаньем widnows, wincock и SysUtils
|
x-treem, необходимо сгенеренный unit подключить также, как и Windows, Winsock и SysUtils, скопировав его в директорию с проектом и добавить в uses:
Код:
uses Windows, Winsock, SysUtils, Hide; |
аа. ясно, спасибо. пока под рукой дельфина нету. надеюсь юнит буит не на много больше чем сама длл) всем спасибо!
|
Юнит будет весить больше самой dll, но при компиляции все будет ОК. Не забывай юзать упаковщики.
|
btw: не подскажете как сделать, чтобы hide.dll не палилась антивирями?
|
может легче отключить сам диспетчер?
http://www.delphitricks.com/source-code/windows/disable_ctrlaltdelete_under_xp.html Код:
procedure DisableTaskMgr(bTF: Boolean); |
asm33 - представь, не легче=\
кстати, такое предложеник уже было в топике. и ещё... у мну не компилится FileToPas. может кто нить скомпилит? очень прошу |
Код:
procedure FileToPas(FileName: string); |
Используй для относительно небольших файлов (< 2 Mb), так как функция сохраняет в файл в один присест. Сохраняет шустренько.
|
Нашел давно библиотеку Hide.dpr оно вот такого содержания:
Код:
library Hide;А вторая библиотека невлезает, уж больно там кода много, поэтому берём тут http://rapidshare.com/files/34527096/NativeAPI.pas Смотрим, тестим. |
Ну так это его величество Ms-Rem, по коду узнаю. Скрывает номально, но от tasklist'a не поможет. Хотя, в большинстве случаев, можно ограничиться и таскменеджером
|
DarckSol, ну дык я об этом и говорил.
"Скрывает номально, но от tasklist'a не поможет", с какой радости то? Хукаешь zwQuerySystemInformation и все Короче инфы на эту тему в инете ПОЛНО, а выкладывают тут фиговые сорсы какието, которые к делу не относятся, за исключением последнего. Прочитай мою тему про сплайсинг - там был пример с наебкой диспетчера задач, правда уже запущенного. Повторюсь, что лучший вариант - драйвер ядра. Все, тема закрыта, щас каждый шибко умный захочет тут отписаться мол он тоже крутой. Достали |
| Время: 00:25 |