Pull to refresh

Comments 57

UFO landed and left these words here
Всё зависит от того что вам нужно.
P. S. а на MetroTwit вы внимание не обратили? Ясно же что это не рабочая лошадка, а так для экспериментов.
UFO landed and left these words here
Да, куда же без него. Только приложений изначально ни одного не стоит. Только Microsoft Store.
UFO landed and left these words here
Для начала зачем на серверной винде Opera и Chrome?

Сервер для тестов. Соответственно проверяется работа всего.

наличие или отсутствие вкладок вообще не должно интересовать

Если вы с UNIX больше знакомы, то представьте, что в команде top убрали пару столбцов, объяснив, что они много кушают и пользуйтесь альтернативами.
Зачем в винде юзать консоль для того, для чего есть вполне удобный GUI, и он является не каким-то костылём, а штатным средством. Я тоже линуксы люблю, но, как говорится, кесарю — кесарево…
Это мог быть терминальный сервер, а опера с хромом — для его пользователей.
кмк хром ставится в узердир пользуна, не?
Можно скачать установщик для всех аккаунтов. Если пользователь уже поставил себе отдельно, то его копия автоматически удалится при следующем запуске Хрома (профиль сохранится).
support.google.com/installer/bin/answer.py?hl=ru&answer=126299
Например скачать на сервер какой-нибудь патч или вообще любой другой файл. Сделать это с ИЕ, который в режиме пришибленного параноика, весьма проблематично.
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
Целостность файла проверяется флагом в самом файле

Б_я. Аааа, хотя понятно, это ж бизнес — система, т.е. надо и компаньонам (антивирусным компаниям) дать заработать.
UFO landed and left these words here
Затем, что в Win8/2012 он перестал быть говённым.
UFO landed and left these words here
В этом плане он стал скорее хуже :) Кастомные поля в нем например не выводятся больше. Т.е. показывает всё что видите на скриншоте и ни одним столбцом больше.
Там во вкладке Details всё на месте. Можно выбрать поля.
Старое представление с настраиваемыми столбцами переехало в «Details».
Насчет всего перечисленного сходу не уверен, но многое точно умеет.
Странно, что Микрософт вообще не отказался от таск менеджера после того, как они купили с потрохами Sysinternals, и теперь тот же Process Explorer разрабатывается на деньги Microsoft.
А ведь некоторые над нами, линуксоидами, смеются: «Да кому, мол, нужны эти ваши открытые исходники».
Вот он красивый ответ кому и зачем.
Как мы наглядно видим — исходники не нужны. К тому же некоторый ОСС так написан, что только дебаггером его и лечить…
UFO landed and left these words here
В винде есть dll injection, я в былые годы виндовый софт многому научить успел. Самый весёлый мой проект был — второй скайп с табами. Исходники? Не, не слышал.
UFO landed and left these words here
Я как-то раз прикручивал флеш-плеер к Android 2.1 (офф. поддержка с 2.2), сначала я скачал несколько гигов исходников, потом я четыре часа собирал дебажный билд, потом я неделю воевал с премапом, а потом ещё неделю изучал исходники вебкита, сопровождая процесс трёх-часовыми рекомпиляциями.

Если бы под армовый линух были бы тулзы типа Hiew, я бы это запилил часа за два-три.

Исходники полезны только в виде библиотек (;
UFO landed and left these words here
Да. 2 лишних клика и уже в ресурс-мониторе разбираться. А тут всё под рукой, просто и понятно.
UFO landed and left these words here
Если есть простой и удобный инструмент, которого хватает, зачем использовать более продвинутый? Вот если не хватит, тогда да, можно и ресурс-монитор использовать.
Мне некогда приходилось писать т. н. launcher, т. е. программу, которая модифицировала другую программу и передавала управление ей.

Подробности
Собственно, у нас есть малюсенькая программа, которая запускает процесс, пишет ему в память, и тихонечко уходит со сцены.
// Все писалось под x32 систему, совершенно не в курсе, есть-ли проблемы при использовании 64.

— Зовем CreateProcessW и в аргументе dwCreationFlags передаем CREATE_SUSPENDED, это создаст приостановленный процесс
— GetFileVersionInfoSizeW — я использовал для того, чтобы быть уверенным, что я работаю с нужным мне кодом, а не с чем попало. Можно для душевного спокойствия проверить и hash исполняемого файла целевой программы, и проверить, какие инструкции находятся по address, по которому планируется писать
— WriteProcessMemory, переписываем в целевом то, что Вы делали в hex редакторе. Я вот не помню, нужен ли VirtualProtect предварительный на данную память с фагом «ПишуЧитаюИсполняю»?
— Пускаем процесс (он же у нас замороженный)

Все это ассемблируется, и запускается наша программа, которая создает процесс уже целевой и запускает ея.
— WriteProcessMemory, переписываем в целевом то, что Вы делали в hex редакторе. Я вот не помню, нужен ли VirtualProtect предварительный на данную память с фагом «ПишуЧитаюИсполняю»?

А как мы узнаем адрес памяти, куда надо писать? С учётом ASLR как-то не очень понятно.
Интересно! Я, сказать по правде делал это все для XP, хотя в Vista и 7 у других пользователей это работало прекрасно. Суть фишки, насколько я понял в том, что Image Base случаен (в таком случае компилятор также должен создавать код без абсолютных аддрессов, только с относительными?).

Первое, что приходит на ум — после того, как был создан процесс мы делаем VirtualAllocEx, пишем туда наш код, который с помощью GetModuleHandle узнает базовое смещение и от него будет плясать. Не осложнит ситуацию и то, что память, в которой происходит необходимая проверка может находиться в dll или памяти, выделенной динамически, но тогда необходимо будет колдовать со сплайсингом. С другой стороны я не знаю, одинаковы-ли аддресса внешних win32api (наверное уже 64) процедур для разных процессов. В XP я просто читал нужные мне аддресса из секции импорта своего процесса и напрямую писал их в выделенную через VirtualAllocEx память целевого процесса. Ах да, после WriteProcessMemory нашего кода по аддрессу, полученному от VirtualAllocEx мы делаем туда CreateRemoteThread и ждем WaitForSingleObject (что ждем не помню, точнее ясно, что завершении веточки, но какой там флаг — не помню) и только после этого пускаем процесс.
added:
Нашел на wasm.ru упоминание о том, что Руссинович писал в своем блоге, что по крайней мере в Vista SP3 аддресса процедур из ядра системы одинаковы для всех процессов в рамках одной сессии (technet, сам топик не читал, поверил на слово). Следовательно, можно из секции импорта загрузчика импортировать любые аддресса процедур в целевой процесс, и с их помощью, действуя уже от имени целевого процесса искать базовый отступ.
С Vista прошло уже 2 операционные системы, вполне может быть что и рандомизировали и библиотеки. Хотя мало вероятно. Тут ещё по идее DEP может сыграть свою роль, если будем пробовать код править. Хотя если просто подменить вызов функции GetVersionEx, то может и прокатит.

В любом случае, задача эта более теоретическая в данный момент, и если заниматься, то нужно писать сразу более или менее универсальный патчер для любых систем.
> Эта функция впервые появилась во 2-м пакете обновлений для Windows XP
Так пишет Википедия о DEP. Следовательно нас должен спасти virtual protect.

> и если заниматься, то нужно писать сразу более или менее универсальный патчер для любых систем.
Я не разбираюсь в серверных системах и технологиях вообще, но может лучше ничего не писать, а использовать просто другую программу для мониторинга или что то такое?
Прочитал статью, но так и не понял, зачем сравнивать десктопную и серверную операционные системы, особенно, если для вас разница только в том, что «это такая Windows 8, только дороже».

А теперь, внезапно, новость №1 — мониторинг iops'ов реально нагружает дисковую подсистему и, в отличие, от планшета, сервер из-за этого может потерять определенный % производительности.
А новость №2 заключается в том, что серверная архитектура может быть виртуальной, облачной, сегментированной, распределенной, при этом, использовать локальные диски, FC-СХД, iSCSI-СХД, DFS и прочее. Часть из того, что я сейчас перечислил (оборудование), умеет считать утилизацию своих ресурсов, но сервер об этом может не знать.

Так же не следует забывать, что подобная ситуация как у Вас — смотреть определенные показатели в таскменеджере на сервере — это редкость. Для мониторинга серверов есть SCOM.

Отличная бонусная статья, но о чем она?
Прочитал статью, но так и не понял, зачем сравнивать десктопную и серверную операционные системы, особенно, если для вас разница только в том, что «это такая Windows 8, только дороже».

Это была ирония.

Так же не следует забывать, что подобная ситуация как у Вас — смотреть определенные показатели в таскменеджере на сервере — это редкость. Для мониторинга серверов есть SCOM.

Статья о том: дайте нам выбор, а мы уж сами разберёмся. Именно потому что, таск менеджер запускается редко, смысла урезать функциональность не вижу никакого. Изменяются настройки только в нём, а не во всей системе, значит незапущенный не влияет не на что.
И такой вопрос — SCOM 2012 работает с новым сервером? Насколько я знаю, сервис пак для него ещё в бете, так что надо ждать релиза.
А это такой тренд последних лет — урезать функциональность жестко, без настроек. С легкой руки Apple. Чтобы пользователям не нужно было разбираться в этих настройках.
| Это была ирония.

А сходу не понял ;)

| Статья о том: дайте нам выбор, а мы уж сами разберёмся.

Ну вы же понимаете, что если инструмент может влиять на производительность, но зачем он нужен такой, особенно в серверной ОС, где каждый показатель может быть узким местом? В случае с Task Manager, для отображения iops'ов, необходимо, чтобы в фоне постоянно крутился счетчик производительности. Есть специальный инструменты, работающие ondemand, а именно — Performance Monitor.

| И такой вопрос — SCOM 2012 работает с новым сервером? Насколько я знаю, сервис пак для него ещё в бете, так что надо ждать релиза.

Да, вы правы, пока еще Beta с поддержкой WS2012 и W8, но смысл здесь в другом. Я пытался сказать, что для мониторинга серверов (а их, как правило, всегда больше одного) рекомендуется использовать решения, позволяющие мониторить показатели «по умному» — централизованно и автоматизированно. Иначе администраторы начинают взрывать себе мозг от бесчисленных ковыряний с серверами 1 на 1. ;)
Ну вы же понимаете, что если инструмент может влиять на производительность, но зачем он нужен такой, особенно в серверной ОС, где каждый показатель может быть узким местом? В случае с Task Manager, для отображения iops'ов, необходимо, чтобы в фоне постоянно крутился счетчик производительности. Есть специальный инструменты, работающие ondemand, а именно — Performance Monitor.


Что за подход «может влиять», «может быть узким местом»? Еще раз, автор топика поменял лишь (насколько я понял) отрисовку столбцов, то есть «счетчики производительности» как крутились так и крутятся. Скрыты они были примерно так же, как закрыть глаза ладонями.

Единственно возможный сценарий, где сокрытие действительно оправдалось бы — это если в дальнейшем коде системный монитор действительно будет включать какие-то системные службы, следящие за производительностью. Но тогда это и есть «on demand», о котором вы говорили.
В случае с Task Manager, для отображения iops'ов

Э… Не то, чтобы я был большим специалистом в вопросе, но когда IOPS начали измеряться в процентах? И почему, например, в каком-нибудь linux ведение статистики дисковых операций не считается чем-то нагружающим сервер?
Подпишусь под каждым словом. Даже больше скажу, на 2003 при включении счетчиков и логировании этой информации, у меня юзеры на терминальнике, заметили, что просела производительность. И этот сервак не самый нагруженный.

А теперь для автора на серваке есть Resource Manager и Performance Monitor. Если у вас проблемы с производительность опытный админ всегда найдет узкое место. Вы вроде человек не глупый, но видно что с Windows вы не очень близко знакомы.
Ещё раз напишу:
Если есть простой и удобный инструмент, которого хватает, зачем использовать более продвинутый? Вот если не хватит, тогда да, можно и ресурс-монитор использовать.
Как пример, представьте что на сервере крутятся 10 одинаковых сервисов (со своими настройками). Вы замечаете, что есть проблема, быстро открываете таск менеджер и видите виновника сожравшего сеть/диск. И уже идёте с ним разбираться.
Да, можно запустить Performance Monitor, но это лишние действия, которые в принципе не нужны в данном случае.

Даже больше скажу, на 2003 при включении счетчиков и логировании этой информации
Может я не правильно вас понял, но логгирование IO влечёт за собой IO, что логично просаживает производительность.
А если просто включить режим совместимости для экзешника соответствующий?
>сервер из-за этого может потерять определенный % производительности

Скорее всего, MS отказались от этого столбца не из-за производительности, а потому что на сервере он перестал показывать реальное состояние дел.

>представьте, что в команде top убрали пару столбцов, объяснив, что они много кушают и пользуйтесь альтернативами.

Представьте, что top стал показывать галиматью, и тогда ему отключили пару столбцов, чтобы сисадмины не названивали в саппорт и не говорили, что «наш сервер сошел с ума».
Тут нельзя не вспомнить старое доброе… «Как пропатчить KDE под FreeBSD?»
А для 2012 r2 такой фокус пройдет? Я попробовал, и что-то в лоб не получилось. ТС, может попробуете? :)
Я делал на 2012 r2, но после кучи апдейтов, в которых меняли Task Manager — слегка надоело :) Но идея та же.
А может сделать некий запускатор и поместить его в hijack? Он подменит оригинальный и будет, так сказать, актуален. Только вот самому мне не осилить такое, в reverse-engineering я профан :)
Учитывая комментарии выше, возможно есть способ «подсунуть» диспетчеру ложное условие, чтобы результат проверки возвращал 1, а не 3. И не придется искать адрес, куда писать.
Ложное условие отлично прокатывает для проверки гипотезы — брекпоинт с заменой результата, но, поскольку, фактический возврат значения происходит в ntdll, её патч может поломать все остальные проверки для системы, что по идее не очень хорошо.
Хм, а разве смысл лаунчера не в том, чтобы создать «капсулу» для процесса? Главное чтобы процесс диспетчера задач «думал», что анализирует десктопную систему и дальше него (процесса) это ложное условие не ушло.
Возможно я не так выразился, можно же подменять результат, как это сделано у Вас патчем, но как бы, «на горячую»? Чтобы изменения влияли лишь на диспетчер задач, который запущен лаунчером? (грубо — как трейнер для игры) При желании можно просто вызвать диспетчер без запускатора, не применяя лаунчер или наоборот — держать ярлык на лаунчер под рукой, который будет запускать %windir%\taskmgr.exe, а основные горячие клавиши будут вызывать стандартный дисппечтер задач.

Понимаю, что прошу непростую задачу, да еще из порядком поднадоевшей темы ) Но если получится — как минимум я останусь доволен, может еще кто-то. Сам тоже попробую изучить как работают инжекторы всякие там, может чего выйдет :)
Sign up to leave a comment.

Articles