![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как забить на КиллПроцесс!??? [D5, Win95/98]
XM-AD © (2001-10-22 11:48:00)Мастаки! Помогите решить проблему! Вобщем есть одна паразитирующая программуля, которая вырубает любой процесс по его АйДи... Программа, которую вырубают, ничего сделать боле не успевает и тихо, но быстро умирает... :( Подскажите, как перехватить вызов килл-ера на мой АйДи и показать ему БОЛЬШОЙ и ЖИРНЫЙ кукиш???
paul_shmakov (2001-10-31 17:51:00) [1]Это как можно "в NT можно править керналь"??? Как раз в win9x можно. Только не через VirtualProtect(Ex)... Он не позволит изменять защиту на станицах ядра.
Win9x вообще не знает про "copy on write".
Ketmar (2001-10-29 22:33:00) [2]2paul_shmakov:
да. мелкомягкие как всегда облажались с переносимостью кода :-( а вот SleepyHead, между прочим, клялся-божился, что Мой код ВЕЗДЕ работать будет. вредина-обманщик :-) Я ж ему поверил...
а как в ring0 попасть - Я нашел в исходниках cih"а :-)
только вот ни разу не понимаю логики - почему в NT можно править керналь, а в 9x - низзя? вроде бы наоборот оно логичней... кстати, а если атрибуты защиты страницы поменять Virtual"ом? нету времени эксперементировать, к сожалению... не проканает? hotfix говорил, что не проканает, если Я не ошибаюсь.
то есть получается, что NT умеет делать copy on write на кернале, а 9x - не умеет? странно это... впрочем, с чего бы это Я хочу от некрософта логики? :-)
жыз
все больше убеждаюсь: пингвин рулит! только пока никак не могу разобраться с эльфами - как там пришпандерить линковку библиотек во время загрузки... что-то ребята с этим намуд(р)или. или Я торможу безбожно...
Satanas Nobiscum! 29-Oct-XXXVI A.S.
paul_shmakov (2001-10-29 12:48:00) [3]2 Ketmar:
именно dll injecting. мне эта фишка тоже очень не нравится, но сколько я не рою, ничего другого, более грамотного не нахожу. только под win9x можно без этого - выделяешь память выше 2Гб (чтобы всем процессам доступна была), записываешь туда функции перехватчики, меняешь первые байты перехватываемых функций прямо в загруженной kernel32.dll (как поменять атрибут защиты я в bo2k нашел - вызовом к ring0 через VXDCall).
И никаких dll, отладки и т.п. Но это работает только под win9x, что не особо интересно :(
Ketmar (2001-10-27 21:51:00) [4]все. уже вижу. таки DLL injecting. #%$%$#%#!! :-(((
Satanas Nobiscum! 27-Oct-XXXVI A.S.
Ketmar (2001-10-27 21:50:00) [5]2BadDude:
спасибо. буду штудиовать. если пойму, напишу дополнение к статье.
вот только боюсь Я, что там используется техника DLL injecting, которую Я так хотел похе... сорри, проигнорировать :-) хотелось же делать все "по документации". ну вот кто Мне скажет, какого черта M$ нифига не следует документации, которую сама же и пишет? точнее, какого черта она оставляет "дырки" в документации, которые можно истолковать как нравится? :-((( ненавидю! :-)
Satanas Nobiscum! 27-Oct-XXXVI A.S.
BadDude (2001-10-25 20:00:00) [6]2Ketmar
я читал твою статью про использование DebugApi. мне вообще она показалась интересной, но далеко не идеальной... :)
для меня же образцовым примером использования DebugApi стал листинг из книги "Windows"95 Programming Secrets", автор Matt Pietrek. Здесь автор приводит универсальный код - работает на всем семействе win32, причем именно работает, да к тому же без всяких драйверов и тому подобного занудства :), см. далее
2XM-AD сходи на www.wheaty.net, там есть реально работающий пример про отлов вызова функций в системе (см. мой пред. совет), а еще на cmp.phys.msu.su/ntclub
надеюсь этого хватит. изучай :)
Dennis S (2001-10-25 10:36:00) [7]Уж не знаю, в струю или нет...
2XM-AD:
Если тебе нужно, чтобы эта паразитирующая программуля все-таки висела в трае, тогда, наверное, тебе есть смысл состряпать копию данного паразита один к одному, с одной малинькой разницей - конкретно твою прогу он даже светить не будет в списке...
Надеюсь, как вариант, идея пойдет!
33 (2001-10-25 02:17:00) [8]И еще третью программу, которая следит, чтобы не убили первые две.
Ketmar (2001-10-24 23:36:00) [9]2BadDude:
apispy под 9x - задача нетривиальная. Мне вот сообщили, что мой перехватчик ни разу не работает :-( следовательно, надо лезть в ring0 и там веселиться, а это ой как нудно...
2XM-AD:
оставляя в стороне вопрос допустимости таких действий, по существу можно сделать так: две программки. одна - монитор, другая - твоя. обе следят друг за другом. если монитор заметил, что твою убили - он ее перезапускает. если твоя заметила, что помер монитор - перезапускает монитор. гарантия не 100-процентная, но зато позволяет избавиться от извратов и низкоуровневого ковыряния в маздайке.
Satanas Nobiscum!
Anatoly Podgoretsky (2001-10-24 13:58:00) [10]XM-AD © (22.10.01 17:01)
То есть это относится к корпоративной политики, видимо одна из програм мониторинга и ты пыиаешься ее обойти, как к этому относится руководство.
BadDude (2001-10-24 13:10:00) [11]решение одно - написть apispy, который отлавливает в системе вызов OpenProcess и исходя из параметров функции разрешать или запрещать ее выполнение
XM-AD (2001-10-22 17:01:00) [12]Потому что она выполняет еще ряд нужных функций....... а прибивание процесса применимо и к другим вредным созданиям программистов....
Anatoly Podgoretsky (2001-10-22 15:34:00) [13]Почему?
XM-AD (2001-10-22 15:11:00) [14]Кого отключить? Прогу-киллера что ли?? Если да, то вариант не проходит.....
Anatoly Podgoretsky (2001-10-22 12:43:00) [15]Если это не противоречит корпортивной политике, то найди ее в реестре и заблокируй.