Abnormal programming
Assembler
Comments 57
UFO landed and left these words here
+1
Всё зависит от того что вам нужно.
P. S. а на MetroTwit вы внимание не обратили? Ясно же что это не рабочая лошадка, а так для экспериментов.
0
Вопрос не по теме: а что, в серверной версии тоже MetroUI есть?
0
Да, куда же без него. Только приложений изначально ни одного не стоит. Только Microsoft Store.
+2
Да, вы правы — пожалуй, сервер без него будет работать процентов на 40 хуже :) Спасибо за инфу.
+6
Для начала зачем на серверной винде Opera и Chrome?

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

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

Если вы с UNIX больше знакомы, то представьте, что в команде top убрали пару столбцов, объяснив, что они много кушают и пользуйтесь альтернативами.
+11
Зачем в винде юзать консоль для того, для чего есть вполне удобный GUI, и он является не каким-то костылём, а штатным средством. Я тоже линуксы люблю, но, как говорится, кесарю — кесарево…
Это мог быть терминальный сервер, а опера с хромом — для его пользователей.
+1
Например скачать на сервер какой-нибудь патч или вообще любой другой файл. Сделать это с ИЕ, который в режиме пришибленного параноика, весьма проблематично.
+4
Целостность файла проверяется флагом в самом файле

Б_я. Аааа, хотя понятно, это ж бизнес — система, т.е. надо и компаньонам (антивирусным компаниям) дать заработать.
+2
Зачем вообще нужен этот говённый таск-менеджер? Есть же ProcessExplorer или ProcessHacker.
+2
Да? То есть, теперь там можно узнать, кто открыл файл или другой дескриптор по части его имени, и заставить закрыть его? Можно посмотреть stack trace? Поменять I/O Priority, page priority, кастомные права безопасности процессу или треду? В самом деле, надо его посмотреть. Возможно, он и стал лучше. Может я просто не в курсе.
0
В этом плане он стал скорее хуже :) Кастомные поля в нем например не выводятся больше. Т.е. показывает всё что видите на скриншоте и ни одним столбцом больше.
+2
Там во вкладке Details всё на месте. Можно выбрать поля.
+1
Старое представление с настраиваемыми столбцами переехало в «Details».
0
Насчет всего перечисленного сходу не уверен, но многое точно умеет.
+1
Странно, что Микрософт вообще не отказался от таск менеджера после того, как они купили с потрохами Sysinternals, и теперь тот же Process Explorer разрабатывается на деньги Microsoft.
+7
А ведь некоторые над нами, линуксоидами, смеются: «Да кому, мол, нужны эти ваши открытые исходники».
Вот он красивый ответ кому и зачем.
0
Как мы наглядно видим — исходники не нужны. К тому же некоторый ОСС так написан, что только дебаггером его и лечить…
+1
Как мы наглядно видим — исходники не нужны
Научите тогда task manager, скажем, показывать скорость I/O каждого процесса в (К|M|Г)б/сек рядом с процентиками. «вот тогда мы и похохочем»©
некоторый ОСС так написан
А некоторый — не так. Но это хотя бы можно увидеть. А вот как написаны виндавсы — тайна за семью печатями.
+1
В винде есть dll injection, я в былые годы виндовый софт многому научить успел. Самый весёлый мой проект был — второй скайп с табами. Исходники? Не, не слышал.
+2
Я не отрицаю принципиальную невозможность допиливания софта без исходников. Я лишь постулирую, что при наличии исходников допиливать его намного проще. И будь исходники виндового task manager открыты, содержимое этого поста поместилось бы в твит.
0
Я как-то раз прикручивал флеш-плеер к Android 2.1 (офф. поддержка с 2.2), сначала я скачал несколько гигов исходников, потом я четыре часа собирал дебажный билд, потом я неделю воевал с премапом, а потом ещё неделю изучал исходники вебкита, сопровождая процесс трёх-часовыми рекомпиляциями.

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

Исходники полезны только в виде библиотек (;
+4
А значит открыть соседнюю вкладку Performance и оттуда вызвать Resource Monitor — куда сложнее :)
0
Да. 2 лишних клика и уже в ресурс-мониторе разбираться. А тут всё под рукой, просто и понятно.
+3
Ну конечно, это windows server, нафига виндовс админу разбираться в рабочих инструментах.
0
Если есть простой и удобный инструмент, которого хватает, зачем использовать более продвинутый? Вот если не хватит, тогда да, можно и ресурс-монитор использовать.
0
Мне некогда приходилось писать т. н. launcher, т. е. программу, которая модифицировала другую программу и передавала управление ей.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

Понимаю, что прошу непростую задачу, да еще из порядком поднадоевшей темы ) Но если получится — как минимум я останусь доволен, может еще кто-то. Сам тоже попробую изучить как работают инжекторы всякие там, может чего выйдет :)
Only those users with full accounts are able to leave comments. , please.