Мал-мало появилось свободное время и решил я окунуться в скриптописание по тематике форума, скажем так, познать азы. Как говорят в прописных истинах, в маздае туева хуча всяких разных флагов, глобальных параметров и прочих "костылей", служащих для создания приемлемого уровня взаимодействия между приложениями с закрытым кодом, написанными разными разработчиками на целом зоопарке языков программирования. Кто-нибудь встречался с более-менее полной классификацией и описанием всех энтих флагов и костылей?
Ее нет. Это искусство плавания в неизвестном. Надо просто знать где смотреть, как смотреть и что надо видеть при этом. Полной классификации нет и в самом Мелкософте, а если и есть - она не поможет. Смысл таков: сам код - это и есть самая подробная, точная и полная документация к нему самому. В самом деле, какой автор лучше чем сам код, расскажет что происходит ? Но его очень много. Устанешь читать. То же самое с документацией. Она есть если хочешь что-то сделать. Это можно сделать хреновой кучей способов и документация нужна чтобы определить как именно ты можешь это сделать. Но если это уже сделано... Тут нужен чисто опыт. Надо чувствовать как это могли сделать нормальные погромистэ чтобы сломать это быстро. А если это писали ненормальные погромистэ - то только вручную чекать это все остается и пытаться понять завихрения мыслей в головах писавших ======================== Ну или надо уточнить вопрос. О каких флагах и костылях идет речь.
А вообще - Руссиновича рекомендуется почитать. Там и кода-то толком нет. Но кое-что понять он дает. И это очень важно.
reactOS не захлебнулись и не отказываются от помощи. В сущности вопрос недостаточно четко сформулирован. Что нужно - то вообще ?
Ты же уже дал ответ на мой вопрос, раз нет полной классификации, буду копать MSDN на предмет решения вопросов по мере их возникновения Я тут просто прикинул и решил запостить эту темку, она же ничем не хуже, чем ветки про полёты к инопланетянам или про военных, и так же не имеет окончательного ответа
"Флаги, глобальные параметры и костыли для взаимодействия приложений". Вероятно ты имел в виду это, но формулировка странная и непонятно при чем тут скрипты.
Ну как при чём скрипты Тот же AVZ позволяет в скриптах лечения использовать работу с системными флагами, чтобы вносить изменения в реестр. Да и uVS тоже умеет такое
Что ты называешь "системными флагами"? Привилегии? Атрибуты ntfs? Процитируй скрипт, может по нему понятно станет про что это.
Ключи системного реестра, атрибуты файлов и потоков NTFS, PID процессов и т.д. Название одно - назначений и применений множество, мешанина, короче. Хотелось бы разобраться в этом болоте с опорой на теорию, но таковой, как уже видно, в природе не существует. Как пример работы AVZ с ключами системного реестра часть скрипта, удаляющего вредоносные ссылки из расширений системы печати Code: RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Control\Print\Providers\9A841C42'); RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet002\Control\Print\Providers\9A841C42'); RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Print\Providers\9A841C42'); RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Control\Print\Providers\9A841B42'); RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet002\Control\Print\Providers\9A841B42'); RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Print\Providers\9A841B42'); Те же самые команды в хайджеке будут выглядеть иначе, но там изначально каждая секция имеет специальный идентификатор: Code: Начнем с их краткой характеристики и затем рассмотрим каждую из секций детально: R0, R1, R2, R3 - изменения основных настроек Internet Explorer. F0, F1, F2, F3 - автозапуск программ из ini-файлов и эквивалентных мест реестра. N1, N2, N3, N4 - изменения начальной и поисковой страниц Netscape/Mozilla. O1 - изменения в файле Hosts. O2 - плагины и расширения браузера (BHO/Browser Helper Objects). O3 - дополнительные панели инструментов браузера (Internet Explorer Тoolbars). O4 - автозапуск программ из реестра и папки Startup. O5 - блокирование доступа к Свойствам Обозревателя (Internet Options) через Панель Управления. O6 - запрет на изменение некоторых Свойств Обозревателя (Internet Options). O7 - отключение доступа к Regedit. O8 - дополнительные пункты контекстного меню Internet Explorer. O9 - дополнительные кнопки и сервисы на главной панели Internet Explorer. O10 - Winsock LSP (Layered Service Provider/поставщик многоуровневых услуг). O11 - новая группа настроек в Свойствах Обозревателя (Internet Options). O12 - плагины Internet Explorer. O13 - префиксы IE. O14 - изменения в файле iereset.inf. O15 - веб-сайты и протоколы, добавленные в зону Надежные узлы (Trusted Zone). O16 - программы, загруженные с помощью ActiveX (подкаталог WINDOWS\Downloaded Program Files). O17 - изменения домена или DNS сервера. O18 - изменения существующих протоколов и фильтров. O19 - шаблон стиля (Style Sheet) пользователя. O20 - уведомления Winlogon (Winlogon Notify) и модули инициализации (App Init DLLs) для Windows XP/2000/2003. O21 - объекты загрузки оболочки (SSODL/Shell Service Object Delay Load). O22 - задачи Планировщика Windows (Shared Task Scheduler). O23 - службы Windows NT/Microsoft Windows. O24 - компонеты Windows Active Desktop. Секции R0, R1, R2, R3. Изменения основных настроек Internet Explorer. R0 - ваша домашняя страница (загружающаяся при старте IE) и поисковый ассистент браузера (Search Assistant). R1 - настройки, связанные с интернет-поиском, плюс некоторые другие характеристики (IE Window Title; ProxyServer, ProxyOverride в настройках IE, Internet Connection Wizard: ShellNext и др.). R2 - эта секция на данный момент не используется. R3 - URL Search Hook - перехватчик поиска, который используется браузером для автоматического определения протокола (http://; ftp:// и т.д.) в тех случаях, когда вы указывайте адрес веб-сайта без него. и в том же духе. Но суть одна и та же - используя утилиту, гарантированно перезаписать состояние системных флагов, чтобы убрать последствия действий вредоноса. Зачем мне это знать - лучше не спрашивайте, есть простое правило: перед тем, как что-то сломать, научись сперва что-то делать, чтобы знать как это работает
Прямо про теорию есть краткие статейки на майкрософт.ком: google:"любое_что_угодно inurl:microsoft.com". Все манипуляции с реестром/файлами/процессами/потоками сводятся к использованию windows api - функций нескольких системных библиотек, в гугл запросе надо не забыть добавить слово "api" или "c++". Вообще всё это на майкрософт.ком очень хорошо задокументировано. Отдельно могу отметить посистему WMI, на которую со времен виндовс ХР майкрософт зазывают переходить. С WMI тоже можно делать почти всё, вызывая меньше подозрений и даже вылезая из-под хренового integrity level (что-то типа песочницы, где ничего нельзя), если например надо только список процессов посмотреть, без возможности что-нибудь с ними сделать. Многие апи в таких случаях просто не будут работать.
С помощью WMI не вылечить цомпухтер от малвари, которая например активно перезапускает свой собственный процесс прописываясь попутно в реестре по новому месту жительства. Нужны специализированные функции. А факин PowerShell - это вообще нечто дьявольское То что можно сделать при помощи трех нопов на асме - там надо пейсать через какую-то хитрозакрученную жопу. Админам - Вендовозам - может быть и сгодится. Они привыкли ощущать жгучую боль в кормовой части туловища. Если их потом пересадить на недельку за Ляликс - те кто не умрет от радости после этого - в жизни больше в Венду не залогинятся. А так вообще - ну его нахрен
Я б не стал так буквально трактовать намерения ТСа Вообще-то павершелл это практически интерпретатор дотнета, штука довольно могучая в т.ч. для администрирования. Правда надо учиться им пользоваться, но блин - подтягивать дотнетовые либы без написания сраного приложения в студии это однозначно плюс.
Ну так - да. Там не особо и учиться долго. У них справка неплохая. Хочешь мудрить со службами - *service* и получишь полный список всего что нужно. Далее читаем хелп и работаем. Но это такой пиздец честно говоря что просто... Полезно юзать если хочешь узнать просто какие апишки вызываются и не гуглить по msdn это дело. Так чисто зашел, набрал одну команду, посмотрел куда она лезет и закрыл это окошко. К чертовой матери чтобы глаза не мозолило и не злило
Ну тоесть например если ты не знаешь как работать с теми же службами и лениво гуглить - можно заюзать PowerShell. Пишешь какой-нибудь GetService блабла и смотришь что оно делает. Очень удобно. И незачем гуглить и читать какую-то документацию. Но опять же это не справочник по веткам реестра и если ТС интересуется что это за ветка и нахер она там нужна - тут полный облом ибо сам черт не разберет что это за ветка иногда. А учитывая то что само ядро берет настройки из реестра - там половина всех функций не документирована и не будет документирована. Так что по этому вопросу документации нет вообще и пункт "ключи системного реестра" отпадает. ============================================================ UPD: я вот не помню точно, но кажется где-то в реестре можно частично отключить механизм copy-on-write (благодаря которому в загруженной dll-ине ты не можешь поставить хук для всех процессов сразу, при попытке изменить код в памяти - эта память копируется). Вот нигде такого в документации не найти. Это надо искать через windbg.