Как «задетектить» что пост изменился


Задетектить начало выполнения процесса

Ребят выручайте, получаю доступ к(уже запущенному) процессу,для получения потоков,выполняющихся в нем,все работает,все прекрасно.

24.05.2020, 03:31

Отображение процесса выполнения
Может еще кто нибудь подскажет как привязать progresbar к процесу? Достаточно что прогресбар.

сравнить время выполнения процесса с эталонным временем
Здравствуйте.Мне нужно сравнить время выполнения процесса с эталонным временем(эталонное время в.

Возможно задетектить включен ли дебаггер?
Камрады, вопрос в сабже. Мне это надо для того, что бы дополнить класс для ProgressBara. А то.

Типовое решение начало и конец процесса разработки
Здравствуйте, разрабатываю модуль для установи готового решения. Стадия копирования удаления файла.

SetTimeout начало выполнения
Почему если сделать так function func(phrase, who) < alert( phrase + ", " + who ); >.

24.05.2020, 04:37 2 24.05.2020, 08:26 3 24.05.2020, 08:26

автоматизация процесса выполнения скрипта
У меня такая проблемка, мне надо чтобы один мой скрипт постоянно работал(скажем в минуту раз). Что.

Зависимость выполнения процедуры от процесса
Кто подскажет как организовать зависимость между выполняемой процедурой и запущенным процессом.

Результат выполнения дочернего процесса
Есть родительский процесс.Внутри создаю дочерний,который выполняет небольшую программу.Допустим.

Работа над ашыпками.

В работе любой секюрити-компании иногда случаются неприятные косяки. Мы тоже люди и иногда допускаем ошибки. Здесь важно как можно быстрее во всём публично признаться, исправить, уведомить и скорректировать работу, чтобы в будущем косяк не повторялся (что мы и делаем). В общем, задача проста – минимизировать ущерб для пользователей.

Но есть одна проблема. С бородатых времён антивирусам сопутствует одна особенность – ложные срабатывания («фалсы»). Как вы догадываетесь, это когда чистый файл или сайт детектится как зараженный. И, увы, пока никто не смог эту проблему решить на 100%.

Технически в этом замешаны и пресловутый человеческий фактор, и недостатки технологий, и действия третьих разработчиков софта и веб-программеров. Самый простой пример — аналитик неправильно проанализировал код зловреда и добавил детект на кусок внедрённой библиотеки. А библиотекой той пользуется ещё 10тыс. других программ, в том числе бело-пушистых. В результате через пару десятков минут после выхода такого обновления с «кривым» детектом техподдержка ложится под напором писем от испуганных пользователей, аналитик аврально перевыпускает базу, а масс-медиа пишет разоблачительно-ругательные статьи. И это ещё что – представьте, что будет, если ошибочно задетектить Explorer, svchost или Kremlin.ru? 🙂

Другой пример: частенько случается, что даже уважаемые разработчики серьёзных корпоративных продуктов (не говоря уже о китайских поделках) начинают использовать в своём, совсем даже не вредоносном софте библиотеки, которые ранее были замечены в малваре! Ага! И такие случаи тоже надо как-то решать.

С первого взгляда может показаться, что есть прямая зависимость между количеством ложных срабатываний и объёмом пользовательской базы. Математика простая: чем больше пользователей, тем разнообразнее у них софт и тем больше вероятность что-то неправильно задетектить. На самом деле нет. Точнее так: если вы действительно наблюдаете такую зависимость, то это явный признак, что компания не вкладывается в совершенствование технологий для борьбы с «фалсами». Вероятно – в другие технологии тоже, предпочитая «тырить» детект у коллег по цеху или просто забивая на проблему. Серьёзный звоночек переосмыслить предпочтения в выборе продукта.

Тут есть и другая крайность. Скажем так – горе от ума. Некоторые технологии обнаружения неизвестной малвары по её поведению (поведенческие блокираторы, эвристика, детект по метаданным) действительно улучшают защиту, но без симметричных действий по минимизации ложных срабатываний приводят к нелинейному росту риска «фалсов».

Как же антивирусные компании борются с ложными срабатываниями? Ну, каждый по-разному. Некоторые (есть такое впечатление) – вообще никак (смотрим таблицу в конце поста). На «фалсы» не все тесты обращают внимание, а зачем тогда вкладываться в разработку, если прямо завтра это не отразится на росте продаж? Ага?

Расскажу лучше как это делаем мы.

В начале бородатых 90-х прошлого века, когда и вирусы и антивирусы были сродни «крокодилам в нью-йоркской канализации» (с) Питер Нортон, мы делали проверку обновлений на ложные срабатывания в полуавтоматическом режиме. У нас была специальная «помойка» с чистым софтом и сайтами и мы проверяли на ней каждую новую версию. Разумеется, также «прогоняли» все обновления по базе вредоносов, чтобы не потерять какой-либо детект.

Ну, тогда вирусов было мало, обновления выходили всего несколько раз в месяц, да и софта было, мягко скажем, поменьше 🙂 Где-то под конец 90-х, когда количество софта и малвары стало «душить» мы перевели систему в полностью автоматический режим. Регулярно (а с 2004г. – ежечасно) робот собирает у дежурных аналитиков антивирусные обновления и запускает процедуру их многоуровневого тестирования.

Как вы догадываетесь, проверка по «помойке» — это уже вчерашний день. Условие необходимое, но не достаточное. Сегодня надо не просто засечь «фалсу», но как можно быстрее её поправить и доставить пользователю. В плане «засечь» у нас уже накоплен внушительный арсенал, в том числе запатентованных технологий. Например, иногда мы используем т.н. «silent detect» — когда в очередное обновление добавляются тестовые записи, срабатывание которых не выдаёт предупреждений пользователю. Такой подход применяется для проверки самых сложных детектов.

А вот в плане исправления ложных срабатываний нам больше всего помогают облачные технологии. На самом деле, KSN (видео, подробности) – это лучшее решение, которое помогает нам решать многие технические задачи для улучшения защиты. Здесь и качественный и количественный анализ угроз, быстрое обнаружений вредоносных аномалий, предоставление интерактивных репутационных сервисов и многое другое. Разумеется, странно было бы не использовать KSN и для борьбы с «фалсами».

А мы и используем! Каждый раз при обнаружении подозрительного объекта на защищённом компьютере наши продукты отправляют запрос в специальную базу данных в KSN. Там разными алгоритмами проводится дополнительная проверка сработавшей записи на «фалсы». Если «фалса» действительно имеет место быть, то система запускает процесс изменения статуса этой записи и доставляет исправление со следующим обновлением. Однако такой способ доставки означает 1-2-3-часовую, а то и 1-2-3-дневную задержку – зависит от привычек пользователя обновляться и наличия Интернета. Тем временем, «фалса» будет продолжать проявляться и нервировать, причём, возможно, у других пользователей тоже. Непорядок.

Для решения этой проблемы с прошлого года мы подключили через KSN к нашим персональным и корпоративным продуктам следующую фишечку из разряда «фичей невидимого фронта». На неё мы уже подали патентную заявку в России, Европе и США. Расскажу про неё на примере.

Итак, наш продукт на защищённом ПК засёк зловреда. Технически произошло вот что: один из защитных модулей (сигнатурный сканер, эмулятор, эвристик, анти-фишинг и т.д.) при проверке объекта нашёл совпадение его кода с одной из записей в локальной антивирусной базе данных. До вывода предупреждения пользователю продукт отправляет в KSN запрос с данными о а) обнаруженном объекте и б) сработавшей записи. KSN проверяет наличие объекта в whitelist-списке, а записи – в списке «фалсов». При совпадении с любым из этих списков KSN тут же посылает на защищённый ПК сигнал о ложном срабатывании. После этого наш продукт деактивирует запись или переводит её в режим «silent detect» и делает пометку для всех остальных защитных модулей во избежание повторения «фалсы». И наоборот, если на компьютере срабатывает запись со статусом «silent detect» , но KSN подтверждает её готовность заступить на «боевое дежурство», то наш продукт тут же переводит запись обратно в рабочий режим.

Со стороны может показаться, что логика хоть и простая, но чересчур ресурсоёмкая. В действительности совсем не так. Что защищённому ПК, что KSN – обоим нужно только обменяться очень короткими запросами. Всем остальным уже в фоновом режиме занимаются другие сервисы.

На самом деле, на ниве ложных срабатываний отметились, пожалуй, все антивирусные компании. Ну, мы тоже не без греха, было, несколько раз, ага. Хотя по этому показателю мы одни из лучших. Недавно проанализировали результаты 4 самых уважаемых тестовых площадок за 2011г. (AV-Comparatives.org, AV-Test.org ,Virus Bulletin и PCSL — всего 24 теста) и получили вот такую любопытную картину:

Да, по отсутствию ложных срабатываний впереди нас только Микрософт. Но если сравнить эти данные с качеством защиты, то за тот же 2011г., по тому же самому списку площадок наш показатель детекта в Real World и т.н. Dynamiс-тестах – на 37% (sic!) лучше!

Планов (как обычно 🙂 у нас громадьё. На самом деле у нас есть очень интересные идеи как вообще можно снизить количество «фалсов» практически до нуля за счёт добавления массы интеллекта. Увы, сейчас у нас режим «тсссс!» по этому вопросу, чтобы случаем не взболтнуть лишнего до подачи патентных заявок. Но буду держать вас в курсе!

Топ-пост этого месяца:  Как настроить аудиорекламу в Яндекс.Директ пошаговая инструкция

Словарь синонимов русского языка — онлайн подбор

Неверная длина запроса, либо неверный запрос.

Синонимы к словам и словосочетаниям на букву:
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я

Синонимы — слова, звучание и написание которых различно, но при этом у них похожее значение (например, огонь — пламя, трудный — тяжелый). Чаще всего они принадлежат к одной и той же части речи.
Подробнее почитать про синонимы можно по этой ссылке. А чтобы найти синоним к слову, воспользуйтесь формой наверху.

Если вы копирайтер, поэт, писатель, студент, школьник, ищите, чем заменить слово, либо желаете улучшить свою речь, то этот сайт обязательно поможет вам. С помощью нашего онлайн словаря синонимов русского языка можно легко найти слова с похожим смыслом. Просто введите слово или устойчивое выражение в поле формы поиска и нажмите кнопку «Найти синонимы». Сервис сделает хороший подбор слов и фраз (всего их сотни тысяч, а связей слово-синоним – миллионы). Если слово набрано неправильно (с орфографической ошибкой или в неправильной раскладке), то будет предложено исправленное слово. Также есть следующие возможности:

  • Скрыть словосочетания.
  • Показать синонимы строкой вместо таблицы.
  • Открыть предложения с искомым словом (для поиска предложений есть также специальная страница).
  • Показать значение слова из толкового словаря.
  • Посмотреть исходную (как в искомом слове), начальную форму синонимов, частоту слов.
  • Предложить свой синоним при помощи специальной формы, если их количество недостаточное.
  • Можно оставить комментарий к любой странице.
  • Есть ссылки для печати и скачивания синонимов.
  • Словарь антонимов русского языка.

Если у вас есть еще какие-либо идеи, пишите их в комментариях. Наша цель – быть лучшим сайтом для поиска синонимов онлайн в рунете.

Проверять не отвалился ли клиент

Есть такая задача — проверять не отвалился ли клиент.

На локалке крутится «монолитный» http-клиент. В его код лазить не получится. Т.е. тупо приложение, и все.

Вообще, основной причиной является то, что на стороне клиента сеть плохая и сервер отпинывает клиента из-за долгих таймаутов.

Нужно каким либо способом проверять что он все еще получает данные с сервера. И если он «подвис» то убить клиента по пиду и запустить его заново.

Пишем баш-скрипт который в цикле проверяет что-то, например из tcpdump или tcpflow или netstat или . с-grep-ать/с-sed-ить и если что-то не понравилось то перезапускает клиента.

Нужна ваша помощь в подсказках:

1) откуда именно можно взять инфу о статусе соединения и факте отсутствия/наличия процесса передачи данных извне локально работающему клиенту?
2) основных критических причинах по которым можно считать что что-то пошло не так, т.е., что именно в статусах считать за ошибку?
3) возможен совершенно иной (не тот до которого додумался я) принцип проверки?

UPD: кстати, могу рассмотреть какой-либо апликейшн в качестве прокси-прослойки которое сможет задетектить сетевой касяк само, или его будет удобнее использовать нежели имеющегося чугунного клиента, но всеравно оно должно передавать клиенту данные которые успешно получило.

Бот для VK на Java

Не совсем сведущ в веб-программировании, поэтому попрошу не принимать близко к сердцу мои, возможно глупые, вопросы 🙂

В планах написать приложение, которое может работать с личными сообщениями (страницы ВКонтакте, или сообщества), а также с другим функционалом VK API.

На ruSO видел вопросы насчёт авторизации с помощью Java в ВКонтакте, но подробного описания, как с этим работать, я не нашёл. В документации VK есть вся необходимая информация по работе с API, но там в основном JSON-запросы, нужно иметь сервер, который будет принимать и обрабатывать эти запросы, и так далее (https://vk.com/dev/callback_api, https://vk.com/dev/bots_docs)

Но как работать с этим с десктоп-приложения, например, со своего компьютера на Windows, я не понял.

В написании приложения у меня проблем не возникнет, но как работать с VK API и взаимодействовать с ним (отправлять сообщения, или выполнять любые другие действия) я не знаю.

Желательно, чтобы можно было:

  • Хранить токены, чтобы на как можно более длительное время они хранились, и не было необходимости заново логиниться (логиниться через окошко в приложении — встроить веб-страничку не так трудно, но как заставить бота оставаться авторизованным?)
  • Обрабатывать любые запросы, которые отправит VK, а также самому их отправлять (те же сообщения / любое взаимодействие)

Буду рад любым наводкам. Ещё больше буду благодарен, если приведёте пример кода, как авторизовываться и хранить эту авторизацию, как взаимодействовать с API (простейшие примеры).

Тема: Хотелось бы получить внятный ответ

Опции темы


Отображение
  • Линейный вид
  • Комбинированный вид
  • Древовидный вид

Хотелось бы получить внятный ответ

А что, у нас теперь на арене не имеется «глазиков»? Имеется, но бывает, что нарушители помимо ухода в невидимость прячутся за стенами, текстурами и прочим, что, по сути, не дает их задетектить.

К примеру, у меня вылетел интернет во время боя, когда я был в инвизе. А так как на нашем любимом сервере при падении интернета персонаж ещё минут 5-7 находится в онлайне, мне будет светить бан из-за дурачков, неумеющих детектить инвиз?! Спорный вопрос. Если ваш персонаж все-таки вылетел, то бой на арене заканчивается, т.е. затягивать арену на длительное время не получится. Вообще\то, было бы разумно предложить выкладывать скриншоты окончания боя (для бана за задержку), где видно затраченное на бой арены время.

Также интересно, если я в соло остаюсь на арене и ухожу отожраться в инвизе — противник(и) может меня забанить («мол, он от меня\нас пол часа бегал»)?
+Почему только разбойники? У друидов инвиз внезапно пропал? См. «красненький» текст выше

Раз уж на нашем любимом сервере всё настолько сурово, то ещё будем банить ХолиПаладинов или Ршамов, бегающих по 40 минут после слива их напа?
Задержка арены, как никак. Ну вообще-то, это задержка времени на арене, но не помню, чтобы за подобное банили. Как-никак у противников была возможность его убить.

Вот собственно оригинальный тред, чтобы освежить память.

1) Что это за текстуры арены, за которыми не получается задетектить противника? Ctrl+V в помощь.
Детект инвиза (при взятии Глаза) действует 10-15 секунд. За это время можно спокойно пробежать половину (ато и 2\3 арены), чекая все «текстурки». А если уж всё совсем плохо, то этих «глазиков» два.

2) Каковы временные рамки для бана?

Ну, если я не ошибаюсь, то всё абсолютно наоборот. Хорошо одетый холипал может бегать по 40 минут вокруг столба от неодетого сетапа вроде хпал+авар\адк+хпал\рдру+ава� �\и т.д. и возможности его убить я лично не наблюдаю. А вот какого-то инвизника убить при наличии глазиков не составляет особого труда.
Я не намекаю, что теперь таких палов надо банить. Просто сравниваю два похожих обстоятельства.
3) Может быть стоит тогда подписать за какого именно вида задержки Вы даёте бан? (кроме инвиза)

И вообще, откуда взято это правило? Не припомню, чтобы на каком-то из серверов я его видел за последние несколько лет. (про офф вообще молчу).
Вот кстати правило с логон1

Форум русскоязычного сообщества Ubuntu

Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции [email protected]

Автор Тема: Режимы работы процессора. Регулировка. (Прочитано 46346 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Страница сгенерирована за 0.086 секунд. Запросов: 24.

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Проверять не отвалился ли клиент

Есть такая задача — проверять не отвалился ли клиент.

На локалке крутится «монолитный» http-клиент. В его код лазить не получится. Т.е. тупо приложение, и все.

Вообще, основной причиной является то, что на стороне клиента сеть плохая и сервер отпинывает клиента из-за долгих таймаутов.

Нужно каким либо способом проверять что он все еще получает данные с сервера. И если он «подвис» то убить клиента по пиду и запустить его заново.

Топ-пост этого месяца:  Предварительный выбор, предварительная загрузка, предварительный просмотр

Пишем баш-скрипт который в цикле проверяет что-то, например из tcpdump или tcpflow или netstat или . с-grep-ать/с-sed-ить и если что-то не понравилось то перезапускает клиента.

Нужна ваша помощь в подсказках:

1) откуда именно можно взять инфу о статусе соединения и факте отсутствия/наличия процесса передачи данных извне локально работающему клиенту?
2) основных критических причинах по которым можно считать что что-то пошло не так, т.е., что именно в статусах считать за ошибку?
3) возможен совершенно иной (не тот до которого додумался я) принцип проверки?

UPD: кстати, могу рассмотреть какой-либо апликейшн в качестве прокси-прослойки которое сможет задетектить сетевой касяк само, или его будет удобнее использовать нежели имеющегося чугунного клиента, но всеравно оно должно передавать клиенту данные которые успешно получило.

Как «задетектить» что пост изменился?

» A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. «

Process Hacker – это профессиональный набор инструментов управления ОС работающий с ядром через Native API (API ядра) предназначенный управляния процессами и их потоками, контроля использования памяти ЭВМ, дисковой и сетевой активности, управления состоянием и параметрами, устанавки и удаления сервисов и драйверов, может освобождать заблокированные другими процессами объекты, использоваться в качестве отладчика уровня ядра и осуществлять поиск некоторых типов руткитов и иных скрытых процессов, удалять не удаляемые иными инструментами зависшие или защищённые процессы (некоторые его возможности могут быть недоступны из-за ограничений ОС либо недостаточного уровня привилегий пользователя).

Process Hacker автоматически загружает символы из различных библиотек и использует их для отображении стека вызовов потоков исследуемого процесса (так же, как и Process Explorer). Он включает модуль PEViewer используемый при просмотре списков импорта/экспорта, конфигурации загрузки и структуры исполняемых файлов. Process Hacker может смотреть стек и память зависших процессов и в большинстве случаях помогает восстановить их нормальную работу без потери обрабатываемых данных.

Примечание: Для выполнения ряда операций Process Hacker использует драйвер ядра KProcessHaker который необходим в исключительных ситуациях и в подавляющем большинстве случаев включать его не рекомендуется. Подробнее читайте в файле README.txt в каталоге программы. По умолчанию драйвер KProcessHaker отключён и в отличии от аналогов не устанавливается в систему при инсталляции или запуске ProcessHacker.

Текущая стабильная версия: v2.39 от 29.03.2020
В разработке: v3.00 , исходники смотрим на GitHub.

Примечание: исходники в репозитории включают не все патчи! Пользовательские патчи ищите на форуме, в теме или на Git. Их применение целиком на ваше усмотрение и риск!

1.xх (для работы необходим MS .NET Framework 2.х) | 2.хx: Setup (EXE) | Portable (Zip) | Source (Zip) | SDK (Zip)
Debugging Tools for Windows — ссылка на страницу MSDN для загрузки необходимого движка отладчика уровня ядра встроенного в программу. Системной dbghelp.dll не достаточно т.к. это просто библиотека-заглушка не имеющая нужных вызовов отладчика. Библиотека должна лежать или в каталоге рядом с ProcessHacker.exe если DLL извлечена из SDK, или в каталоге \Program Files\Debugging Tools for Windows (для SDK v7.0 — v7.1A)/ \Program Files (x86)\Windows Kits\8.x\Debuggers\x86 / \Program Files (x86)\Windows Kits\8.x\Debuggers\x64 для SDK v8.0 и новее. Библиотеку необходимо использовать от последней версии SDK, и по возможности прямо указать к ней путь в настройках Process Hacker: Options -> Symbols -> Dbghelp.dll path. Подробности см в статье MSDN Путь поиска, используемый Windows для обнаружения библиотеки DLL .

  • Development build (выборочно) от Wen Jia Liu (wj32) на wj32.org, в них не входят Plugins-Extra * и там может быть не последняя Git ревизия
    .
  • Официальные Nightly Builds — инсталлятор, Zip, SDK, исходники. Собираются автоматически после появления на GitHub нового коммита в ветке master и в них не входят Plugins-Extra * .

    Текущая сборка от Victor_VG из Git v3.00 номер ревизии и дату обновления архива смотрим в version.txt — английская бинарная сборка из Git обновляемая по мере обновления репозитория — Посмотреть. Обязательно прочитайте plugins_install.txt (англ.) в архиве (данный файл оперативно обновляется по мере изменений в проекте и является основной инструкцией по ручной установке плагинов)!

    * Plugins-Extra это находящиеся в стадии разработки плагины которые могут содержать ошибки или быть удалены в любой момент. Используйте их на свой страх и риск!

    Для старых ОС (WinXP/Vista/2003/2008):

    Сборка от Victor_VG v2.38.0.11 для XP/2003 (x86 и x64), включает русский перевод (KLASS), Zip, портативку, SDK, исходники и более обновляться не будет!
    Сборка от Victor_VG v2.39 для Vista/2008 (x86 и x64), включает русский перевод (KLASS), Zip, портативку, SDK, исходники и более обновляться не будет!

    от Dm.Fedorov 3.0.123 (x86) | от KLASS x64 + x86 на основе текущих Git-сборок. | от wald1968 v2.34-r5632 (x86)

    Полноценный перевод на уровне исходников не ждите т.к. исходники обновляются намного раньше, чем может быть сделан такой перевод.

    В локализованных вариантах возможны произвольные ошибки в работе! В частности в версии 5315 не работает модуль Системная Информация.

    Минимальная версия операционной системы зависит от версии Process Hacker:

    3.xx — Windows 7/Server 2008 R2 и выше, 32/64-bit редакции,
    2.39 — Windows Vista/Server 2008, 32/64-bit редакции, операции использующие драйвер уровня ядра доступны в Windows 7 и выше
    2.xx — до v2.38 включительно — Windows XP SP2/2003 и выше, 32/64-bit редакции,
    1.хx — Windows 2000 и выше, требует MS .NET Framework v2.0, только 32-бит

    Чтобы настройки хранились в папке с программой создаем файл ProcessHacker.exe.settings.xml до её запуска!

    ВНИМАНИЕ! Обязательно внимательно прочитайте документацию которая есть на сайте и в архивах с дистрибутивом! Программа изначально создана для профессионалов, а потому требует от пользователя достаточно высокого уровня знаний!

    На Windows 10 ниже версий 1607 Build 14393 в Process Hacker (и не только в нём) могут появляться самые причудливые глюки. Для их устранения сначала обновите свою ОС.

    Ошибка в Windows SDK v10.0.14393.33, вызывавшая показ пустой вкладки Services на Windows 10 LTSB и builds 10240, устранена в v3.0.0.274 DEV. На всех более ранних версиях Process Hacker данная ошибка будет проявляться!

    Внимание! Любители флуда на тему «заветных сундучков» идут лесом и ответов на свои вопросы не получают.

    Программы аналогичного назначения


  • Comodo Program Manager
  • Sysinternals (Microsoft) Process Explorer
  • System Explorer
  • Yet Another Process Monitor (YAPM)
  • PC Hunter Всего записей: 8094 | Зарегистр. 19-07-2004 | Отправлено:21:22 28-02-2009 | Исправлено: Maz, 22:20 28-12-2020
    Victor_VG

    Tracker Mod

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ComradG

    Видел твой коммент по поводу РЕ. Ты прав, Редмонд берёт своё силой. Тот же апдейтер похоже «ума поднабрался» — на ХР под которой он всех валит после 4703 он просто не запускается — в kernel32.dll не находит точку входа [email protected] и РН его естественно не видит. Его и запрещать не надо теперь — и так он в списках не значится.

    ———-
    Жив курилка! (Р. Ролан, «Кола Брюньон»)
    Всего записей: 24640 | Зарегистр. 31-07-2002 | Отправлено: 23:54 20-09-2011
    ComradG

    Silver Member

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Victor_VG
    рэдмонд будет брать измором ну, а если серьезно, то если такая политика и впредь будет проводиться (чего только стоит установка Win8, которую без танцев с бубном не совершить), то пользователи, да и админы попросту сделают ход конем (точнее сделают M$ козу) и перейдут на альтернативные решения вроде ReactOS. это я, конечно, загнул но все равно. ставить разработчиков в невыгодное положение, из-за кривых фиксов — однако!
    Всего записей: 2037 | Зарегистр. 05-07-2008 | Отправлено: 00:35 21-09-2011
    Prodavec2

    Newbie

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Victor_VG
    Unlocker и Ко. закрывают дескрипторы. Этого не требуется.

    ComradG
    Имеется в виду вмешаться отладчиком в процесс и насильно в нем изменить дескриптор или. права доступа к файлу с эксклюзивного (монопольного) на чтение/запись. Думаю это возможно, но это как из пушки по воробьям стрелять. Ожидал увидеть готовое решение под вин)

    Всего записей: 3 | Зарегистр. 19-09-2011 | Отправлено: 05:26 21-09-2011
    Victor_VG

    Tracker Mod

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ComradG

    А кстати, ComradG прав — в РН есть доступ к дескрипторам безопасности на запись при работе с правами суперюзера. И тогда можно поставить себе нужные права, но от ошибки ядра которая приводит к блокировке это не спасёт. Под семёркой было ещё одно решение, но пока оно не доведено до конца по причине занятости автора — плагин Far Unlocker моего знакомого, но данный проект сейчас заморожен, а его исходники из паблика убраны — там было много проблем под ХР — плагин порождал бесконечное число потоков уходивших в цикл ожидания и устранить проблемы на тот момент не удалось, а устранить зависание удавалось только с помощью РН оптом закрывая все запущенные плагином треды. Посему идея заморожена на неопределённый срок. Да и под семёркой этот плагин на тот момент работал не совсем чётко и иногда разлочить файл не мог, а для его работы всё равно требовались права суперюзера. Посему Унлокер работающий через собственный драйвер ядра с привилегиями локальной системы наиболее разумное в данном случае решение. Лично я по результатам анализа задачи считаю его оптимальным вариантом. Другие варианты потребуют наличия у пользователя прав уровня суперюзера, а в группу weel не все входят, и не все смогут выдать su для получения привилегий уровня root.

    Думаю дальше продолжать смысла нет т.к. и так всё ясно. Картина расписана и если в мох рассуждениях есть логическая ошибка, то предлагаю поискать её вместе в ПМ т.к. тут этот вопрос уходит в сторону от основной темы обсуждения и будет просто мешать людям.

    ———-
    Жив курилка! (Р. Ролан, «Кола Брюньон»)
    Всего записей: 24640 | Зарегистр. 31-07-2002 | Отправлено: 08:04 21-09-2011
    ComradG

    Silver Member

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Victor_VG
    ерунда какая-то: полная загрузка ЦПУ после закрытия зависшего процесса. по-моему, счетчики производительности врут.
    Всего записей: 2037 | Зарегистр. 05-07-2008 | Отправлено: 11:30 21-09-2011
    Victor_VG

    Tracker Mod

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ComradG

    Ладно, гляну в 2.23 SVN r4710 что наблюдаю. Но вроде такого не заметил покуда.

    Sqlinj

    Содержание

    Вводная

    Кратко: возможность запускать произвольные SQL запросы в базу данных. Статья распределена на то, как найти уязвимость и как ее проэксплуатировать.

    Как задетектить

    SELECT

    UNION-Based

    Определение типа кавычки

    1. Найти точку ввода данных

    2. Найти параметр, который возвращает какое-либо из значений.

    3. Определить тип кавычки (в каком из вводов будет возвращаться то же значение)

    Знак комментария и количество скобок

    После попытаться определить тип комментария и количество закрывающихся скобочек (обычно их не больше 3):

    Подбор количества колонок

    GROUP BY

    Есть у MySQL,(добавить).

    Возвращает данные, если колво колонок меньше или равно N (бинарным поиском).

    ORDER BY

    Есть у MySQL,(добавить).

    Аналогично GROUP BY.

    Bruteforce

    Также в некоторых случаях перед комментарием надо будет добавить имя существующей таблицы:

    Итоговый запрос

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

    Стоит упомянуть, что тут ужлучше всего использовать такой параметр, который будет заведомо ложным и ничего не вернет.

    Обратить внимание

    В некоторых случаях нужно будет добавить в конец запроса перед комментарием лимит по выводу (зависит от скрипта обработки ответа БД).

    Также при эксплуатации в определенных СУБД нельзя делать UNION колонок разных типов, поэтому надо будет экспериментировать.

    Boolean-Based

    Суть заключается в том, что в зависимости от возвращения результата сервера мы будем определять успешно ли выполнился наш запрос.

    Вставка в конструкцию WHERE

    Определение типа кавычки

    Смотри соответствующую графу в UNION-Based.

    Подтверждение

    На всякий случай подтвердим, как будет выглядеть итоговый запрос

    А далее остается добавить ваше условие:

    Теперь можно хоть делать приведение типов и по 1 букве перебирать значение результата запроса.

    Подробнее про эксплуатацию уже зависит от СУБД (ссылки идут ниже на странице).

    Вставка в конструкцию ORDER BY

    Суть в том, что после ORDER BY мы не можем использовать техники, предоставленные ранее (тк параметры, идущие далее обозначают по какой колонке будет идти сортировка), поэтому придется извращаться следующим образом (пример для mysql):

    В зависимости от результата запроса нам либо вернутся данные, либо не вернутся из-за ошибки в запросе.

    P.S. В запросе можно попытаться также раскрутить time-based sql injection.


    Особенности

    Если букв, то лучше всего реализовать бинарный поиск, используя функции, аналогичные CONCAT, ASCII, CHR и тд.

    Если целое число, то то же самое, но без функций.

    Error-Based

    Возможность использовать специальные функции, возвращающие в видимой нам ошибке stderr уже преобразованный аргумент. Начинается эксплуатация так же, как и UNION-Based или Boolean-Based (зависит от того, получится ли раскрутить слепую UNION).

    В случае с Blind-UNION

    Это когда смог подобрать количество колонок, но не видишь свои поля на экране.

    Но! Cтоит заметить, что чаще всего такое происходит из-за того, что введенное значение до первой кавычки нашлось в базе данных, поэтому надо экспериментировать с добавлением AND 1=0 перед словом UNION.

    Запрос с UNION выглядит следующим образом:

    Остается в одну из колонок <колонки_через_запятую>подставить функцию, вызывающую ошибку обработки аргумента (то есть нашего запроса).

    В случае с Boolean-Based

    Общий запрос Boolean-Based выглядит, как:

    Так вот вместо условия аналогично предыдущему пункту требуется подставить функцию, вызывающую ошибку обработки аргумента-запроса.

    Time-Based

    Поиск параметров

    В случае с Time-Based требуется угадывать два параметра за раз:

    Если первый пункт вы можете посмотреть на Union-Based, то со вторым уже требуется составить новый список:

    Запрос во время подбора будет выглядеть как:

    После чего на место <задержка_времени>будет подставлен сложный запрос, где в зависимости от результата будет запускаться функция задержки времени.

    Подробнее на определенных страницах СУБД (ниже ссылки).

    Особенности эксплуатации

    В некоторых случаях типа OracleDB и IBM DB2 требуется делать сложный запрос в качестве задержки времени, так что если не сработало, то проверьте ссылки эксплуатаций в отдельных СУБД (внизу страницы).

    Отдельно вынес раскрутку SELECT sql injection при авторизации тк тут добавляется новый вектор для атаки. Эксплуатация где то будет пересекаться с Union/Blind-Based SQL injection, так что заранее ознакомьтесь с соответствующими пунктами.

    Задача раскрутки заключается в авторизации под произвольным пользователем.

    Уязвимо поле login

    Для поля Login запрос будет выглядеть следующим образом:

    Если отправляются сразу два поля Login и Password

    Тогда наш запрос не будет содержать второго условия и успешно вернет строку с нужным логином.

    Если отправляется только поле Login

    См. раскрутку Union-Based.

    После чего потребуетсят определить, как хранятся пароли в базе данных и под какими номерами идут колонки Login и Password, после чего вставить требуемый логин и пароль в соответствующие колонки <колонки_через_запятую>.

    (Сложно! Сложно! Ничего не понятно!)

    Уязвимо поле password

    Для поля Password запрос будет выглядеть следующим образом:

    Тогда у нас будет условие, которое всегда выполнится и вернет строку из базы данных.

    P.S. У поля password должно отсутствовать хеширование, иначе ввод данных пропадет.

    Добавление Backslash в первое поле

    Чаще всего отсутствие экранирования встречается в тасках на Auth sql injection.

    Для этого нужны пять условий:

    Большинство из этого придется угадывать.

    Запрос для первого параметра (обычно это Login) примет вид:

    Запрос для второго параметра (обычно это Password) примет вид:

    <функция_лимита_по_номеру_строки_в_таблице>— список функций есть в пункте UNION-Based (Обратить внимание).

    INSERT

    Задача Insert SQL Injection сводится к записи в таблицу базы данных результат произвольного запроса.

    Опять же много угадываний, запрос будет выглядеть как:

    А если вдруг у нас колонки после уязвимой не совпали по типам (в колонку с int не вписать строку), то запрос может выглядеть, как:

    В данном случае мы делаем вставку сразу двух строк в таблицу, что позволяет нам манипулировать всеми полями.

    После чего за место одной из подставляемых колонок можно будет сделать SELECT запрос (в том числе time-based).

    Особенности

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

    DELETE

    Опасный запрос, в случае чего может удалить лишние строки из таблицы.

    Поэтому самым лучшим вариантом будет запрос time-based:

    Но также возможен еще один вариант (нужно быть увереным в его надежности). Задача в том, чтобы создавать поле в таблице и по его наличию после каждого из запросов определять, завершился ли корректно запрос. То есть перевести на Boolean-Based SQL injection.

    Запрос будет выглядеть, как:

    UPDATE

    Тоже опасный запрос тк может затереть важные данные.

    WHERE

    В случае, если уязвимо поле по которому фильтруются данные, то будут возможны два варианта эксплуатации.

    Первый самый надежный — time-based:

    Второй по-аналогии с delete — boolean-based. Суть в том, что мы будем обновлять данные, доступные нам для чтения. А риск заключается в вероятности перезаписать чужие данные.

    Начнем с того, что мы можем завершить корректно запрос c WHERE и перейти к предыдущему пункту:

    Или мы можем обновить определенные данные в таблице, а потом посмотреть возвращенную строку:

    Важно! Ошибки на условии поиска приведут к потере данных, лучше перепроверить все на time-based, прежде, чем раскручивать.

    Добавить комментарий