Bug总能在你意想不到的地方给你个措手不及,只是它所带来并不是惊喜,而是Blue Screen Of Death !
既如此,只能兵来将挡。
先介绍一下程序的大体流程:
NTSTATUS
XXXProcessDirents(…)
{
do {
KeEnterCriticalRegion();
ExAcquireResourceSharedLite(&fcb->Resource, TRUE);
/* access several members of fcb structure */
ExReleaseResourceLite(&fcb->Resource);
KeLeaveCriticalRegion();
XXXXProcessDirent(…);
} while (list_is_not_empty(….));
return status;
}
NTSTATUS
XXXXProcessDirent(…)
{
HANDLE handle = NULL;
XXXX_FILE_HEADE fileHead;
……
/* open file */
status = ZwCreateFile(&handle, GENERIC_READ, &oa, &iosb, NULL, 0,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
FILE_OPEN, 0, NULL, 0);
/* read file header*/
status = ZwReadFile(handle, ioevent, NULL, NULL, &iosb, (PVOID)&fileHead,
sizeof(XXXX_FILE_HEADE), &offset, NULL);
/* check whether file is interesting to us */
if (status == STATUS_SUCCESS && iosb.Information == sizeof(……)) {
/* it’s my taste, haha */
}
/* close file, not interested in it any more */
if (handle){
ZwClose(handle);
}
return status;
}
过程比较简单,XXXProcessDirents()会循环调用XXXProcessDirent(),直至列表中所有项全检查完毕。
下面再来看windbg分析吧:
1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: 0abc9867, memory referenced
Arg2: 00000002, IRQL
Arg3: 00000001, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: 806e7a2a, address which referenced memory
Debugging Details:
------------------
WRITE_ADDRESS: 0abc9867
CURRENT_IRQL: 2
FAULTING_IP:
hal!KeAcquireInStackQueuedSpinLock+3a
806e7a2a 8902 mov dword ptr [edx],eax
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0xA
PROCESS_NAME: System
TRAP_FRAME: b9019bbc -- (.trap 0xffffffffb9019bbc)
ErrCode = 00000002
eax=b9019c40 ebx=00000000 ecx=c0000211 edx=0abc9867 esi=c0000128 edi=8842d268
eip=806e7a2a esp=b9019c30 ebp=b9019c68 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010286
hal!KeAcquireInStackQueuedSpinLock+0x3a:
806e7a2a 8902 mov dword ptr [edx],eax ds:0023:0abc9867=????????
Resetting default scope
LAST_CONTROL_TRANSFER: from 806e7a2a to 80544768
STACK_TEXT:
b9019bbc 806e7a2a badb0d00 0abc9867 804f4e77 nt!KiTrap0E+0x238
b9019c68 806e7ef2 00000000 00000000 b9019c80 hal!KeAcquireInStackQueuedSpinLock+0x3a
b9019c68 b9019d24 00000000 00000000 b9019c80 hal!HalpApcInterrupt+0xc6
WARNING: Frame IP not in any known module. Following frames may be wrong.
b9019cf0 80535873 00000000 8896fb20 00000000 0xb9019d24
b9019d10 b79d87ff ba668a30 8859b7e8 00000440 nt!ExReleaseResourceLite+0x8d
b9019d2c b79d8a5c 8a3ff2f0 00000003 ba6685f0 XXXXX!XXXProcessDirents+0xef
b9019d88 b79e163a e2f6b170 00000001 00000001 XXXXX!XXXKernelQueryDirectory+0x20c
b9019ddc 8054616e b79e1530 88a8ae00 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
问题出在系统函数ExReleaseResourceLite()及KeAcquireInStackQueuedSpinLock()上,且程序要写的地址为0abc9867 ,明显不对,所以此处可做栈损坏推断。
第一嫌疑要考虑的是,XXXProcessDirents()中有锁保护的部分,此部分是果真是最容易造成栈损坏buffer复制操作。但经过仔细检查及测试,便排除了此部分出错的可能。
在排除第一嫌疑后,就没有明显目标了。只好再接着看windbg log:
貌似KeAcquireInStackQueuedSpinLock()要写的地址是LockHandle的LockQueue->Next,而LockHandle一般都在从当前堆栈分配的,由此可肯定之前对于栈损坏的推断。可问题是,是谁导致的栈损坏。
Stack中有hal!HalpApcInterrupt()调用记录,它是处理APC的软中断。hal!HalpApcInterrupt()会一般会调用nt!KiDeliverApc()来处理线程的APC队列。但当ExReleaseResourceLite()调用的时候,线程还处于临界区内(Critical Section),此时User mode APC及Kernel mode normal APC都会被禁止的,但Kernel mode special APC不会。
Kernel Special APC最常见的情况便是由IoCompleteRequest()添加的:在APC Level中调用IopCompleteRequest()以处理Irp的Stage 2的清理工作。
至此,问题终于有些眉目了。分析代码中唯一有可能导致APC添加的地方就在函数XXXXProcessDirent()中的ZwReadFile()调用,而且fileHead正是于堆栈中分配的。
想到此处,此bug的根据原因便付出水面:
XXXXProcessDirent()没有处理ZwReadFile()返回STATUS_PENDING的情况,此情形下,XXXXProcessDirent()退出并继续执行,而之前的ZwReadFile()的IRP完成操作也在同时进行(还没有完成),并且此完成操作所要写的fileHead地址,正是早已被回收并加以重用的当前栈。
搞清楚之后,便在调用ZwReadFile()后,特别针对STATUS_PENING的情况来调用ZwWaitForSingleObject()以确保读操作全部完成后,再进行下一步操作。
到此,问题解决!
一个蓝屏的问题,竟然如此之绕,不禁让我想起刘震云的《一句顶一万句》,只是这能顶一万句的一句到底是哪句呢?
<下一步打算写写APC相关的东西,操作系统将APC隐藏得太深,总让人捉摸不定!>
casino https://siteliner.com/nvcasino-deutschland.org?siteliner=site-dashboard
Если симптомы сильно выражены, больной пьет длительное время, имеет серьезное хроническое заболевание или ранее переносил психоз, судороги и тяжелые формы абстиненции, необходимо обратиться к опытному врачу. Скорая наркологическая помощь позволяет начать лечение вовремя, снизить вероятность осложнений и решить вопрос о госпитализации. Попытка резко вывести человека из длительного запоя в домашних условиях без наблюдения специалиста может представлять угрозу здоровью.
Ознакомиться с деталями – klinika-vyvod-iz-zapoya-moskva
Наркологическая клиника в Краснодаре предоставляет комплекс медицинских услуг, направленных на лечение алкогольной и наркотической зависимости, а также помощь при острых состояниях, связанных с интоксикацией организма. Основная задача специалистов заключается в оказании экстренной и плановой помощи пациентам, нуждающимся в выводе из запоя, детоксикации и реабилитации. Выбор правильного учреждения является ключевым условием для успешного выздоровления и предотвращения рецидивов.
Получить больше информации – наркологическая клиника стационар краснодар
Обратиться в наркологический центр можно самостоятельно или по поводу близкого человека. Врач помогает определить, какой вариант лечения подойдет в конкретной ситуации: помощь на дому, прием в клинике, амбулаторное лечение или госпитализация в стационар. В сложных случаях, при длительных запоях, выраженной интоксикации, тяжелой наркотической зависимости или психических расстройствах особенно важно не делать попыток справиться с проблемой без медицинской поддержки. В клинике лечение проводится анонимно, а вопросы конфиденциальности, обработки персональных данных и условий оказания услуги обсуждаются до начала программы.
Ознакомиться с деталями – наркологическая клиника москва отзывы
thank you.
thxx
Нарколог на дом в Красноярске — востребованная услуга для людей, которым требуется профессиональная медицинская помощь без самостоятельной поездки в клинику. Врач приезжает по указанному адресу, проводит осмотр, уточняет характер употребления алкоголя или других веществ и определяет дальнейшее лечение. Выезд особенно удобен, если человек находится в запое, испытывает выраженное похмелье, плохо себя чувствует или отказывается ехать в медицинский центр. Наркологическая помощь может оказываться анонимно и конфиденциально, а необходимые медицинские процедуры проводятся после оценки показаний и противопоказаний.
Получить больше информации – http://4.narcolog-na-dom-krasnoyarsk0.ru
thankss
thank you
Вывод из запоя представляет первый этап более длительного пути к трезвости. Детоксикация помогает уменьшить последствия интоксикации, но не устраняет причины алкоголизма. Поэтому после стабилизации доктор обсуждает с пациентом лечение зависимости, психотерапию, кодирование, реабилитацию и профилактику срыва. Комплексный подход особенно важен для людей, которые много лет страдают алкоголизмом, сталкиваются с повторением запойных эпизодов и уже не раз пытались справиться самостоятельно.
Дополнительная информация – vyvod-iz-zapoya-nedorogo-balashiha
К наиболее частым причинам обращения относятся следующие проявления:
Получить больше информации – https://vyvod-iz-zapoya-balashiha15-1.ru/
Запой сопровождается продолжительным поступлением этанола и токсических продуктов его распада в кровь. Из-за этого страдают печень, сердце, сосуды, головной мозг и нервная система. Чем дольше продолжается употребление, тем выше риск обезвоживания, нарушения водно-солевого баланса, скачков давления, судорожного синдрома и алкогольного психоза. Поэтому важно знать, что резкий самостоятельный выход из длительного запоя в некоторых случаях также опасен, особенно если человек пьет много лет или имеет сопутствующие заболевания.
Узнать больше – вывод из запоя реутов
Наркологическая клиника «Детокс» в Балашихе оказывает профессиональную медицинскую помощь людям, столкнувшимся с алкогольной или наркотической зависимостью. Работа строится комплексно: врач оценивает физическое и психическое состояние человека, изучает длительность употребления алкоголя или наркотиков, сопутствующие заболевания и предыдущий опыт лечения, после чего формируется индивидуальный план. В клинике можно получить консультацию нарколога, пройти детоксикацию, вывод из запоя, снятие ломки, медикаментозное лечение алкоголизма и наркомании, кодирование, психотерапию и реабилитацию. Помощь оказывается анонимно, круглосуточно и с учетом принципов медицинской конфиденциальности.
Узнать больше – http://narkologicheskaya-klinika-balashiha15.ru
С пациентом работают профильные специалисты, которые оценивают состояние и подбирают безопасный план помощи.
Подробнее – vyvod-iz-zapoya-na-domu-kruglosutochno
Клиника предоставляет широкий спектр услуг, каждая из которых ориентирована на определённый этап лечения зависимости.
Изучить вопрос глубже – http://narkologicheskaya-klinika-krasnodar14.ru/anonimnaya-narkologicheskaya-klinika-krasnodar/
К наиболее частым причинам обращения относятся следующие проявления:
Дополнительная информация – https://vyvod-iz-zapoya-balashiha15-1.ru
Стационарные и амбулаторные блоки клиники работают как единый маршрут. Мы начинаем с короткого «языка фактов»: сколько минут до засыпания, сколько пробуждений ночью, какой объём воды переносится малыми глотками, как меняется пульс в сумерки. Эти маркеры дополняют витальные показатели и помогают точнее выбирать инфузионные модули, контролировать темп и вовремя «облегчать» схему, не теряя устойчивости. Параллельно мы внедряем поведенческие опоры — тёплую подсветку, дыхательный паттерн 4–6, «цифровую тишину», дробное тёплое питание — они уменьшают потребность в ночных «усилениях» и повышают переносимость лечения.
Выяснить больше – narkologicheskaya-klinika-petrozavodsk15.ru/
casino https://seopower.mistersito.com/domain/nvcasino-deutschland.org
casino https://perfectmarketingsolution.com/website-analysis/domain/nvcasino-deutschland.org
Терапия синдрома отмены проводится после медицинской оценки. Врач определяет необходимые вмешательства и контролирует реакцию пациента. Самостоятельное использование лекарственных средств без обследования может быть небезопасным.
Ознакомиться с деталями – наркологическая клиника цены в Красноярске
Наркологическая клиника принимает пациентов с разной тяжестью зависимости. Один человек обращается после первого длительного употребления, другой страдает алкоголизмом несколько лет и уже проходил лечение. Врач оценивает состояние и определяет, какой формат помощи будет оптимальным.
Дополнительная информация – https://2.narkologicheskaya-klinika-v-krasnoyarske17.ru/
casino https://checkmyseo.de/domain/nvcasino-deutschland.org
Наркомания — хроническое заболевание, требующее комплексного лечения и постоянной поддержки. В условиях Архангельска, где доступ к специализированной помощи может быть ограничен, клиника «АрктикМед» предлагает уникальную программу, основанную на мультидисциплинарном подходе и строгом соблюдении принципов анонимности. Ключевая цель — помочь каждому пациенту преодолеть зависимость, восстановить здоровье и вернуться к полноценной жизни.
Подробнее тут – лечение наркомании наркология
Если на предвызовном созвоне звучат «красные флаги» (неукротимая рвота, выраженная дезориентация, «скачущий» ритм, одышка), мы сразу резервируем палату усиленного наблюдения и подключаем расширенный мониторинг. При низком риске старт возможен амбулаторно или на дому с бесшовным переводом в стационар при необходимости — без очередей и «говорящих» вывесок. Во всех сценариях анонимность — не «опция», а стандарт по умолчанию.
Изучить вопрос глубже – narkologicheskaya-klinika-petrozavodsk15.ru/
thxx
На первом этапе пациент проходит лабораторные обследования (общий и биохимический анализ крови, ЭКГ, УЗИ печени и почек). На их основе разрабатывается схема инфузионной терапии, включающая корректировку водно-электролитного баланса, поддержку жизненно важных функций и назначение симптоматических препаратов для снятия абстинентного синдрома.
Получить дополнительную информацию – лечение наркомании и алкоголизма
Городская среда Петрозаводска со сменой ветров с Онежского озера, короткими сумерками и сезонными перепадами влажности может усиливать тревожность в вечерние часы. Мы учитываем это с момента первого контакта: согласованная парковка, отдельный вход без вывесок, короткая регистрация без «толстых анкет», приглушённый тёплый свет в зоне ожидания и отсутствие громких объявлений. Родственникам предоставляются «тихие окна» связи — лаконичные апдейты в фиксированное время, чтобы не перегружать пациента и не дёргать команду в критические окна наблюдения. Такой «мягкий» контур снижает сенсорную нагрузку, стабилизирует вариабельность ЧСС к сумеркам и сокращает число импульсивных просьб «усилить на ночь».
Получить дополнительные сведения – платная наркологическая клиника
Помощь может включать консультацию, детоксикацию, стационар и дальнейшее сопровождение по показаниям.
Дополнительная информация – adres-kodirovaniya-ot-alkogolizma
Первые часы определяют траекторию. Мы работаем по карте — у каждого окна есть цель, действия, маркеры контроля и критерий перехода. Если ответ «плоский», меняем один элемент и назначаем повторную оценку. Это дисциплинирует решения и защищает от полипрагмазии.
Ознакомиться с деталями – https://vyvod-iz-zapoya-petrozavodsk15.ru/vyvod-iz-zapoya-kruglosutochno-petrozavodsk/
Помощь можно получить анонимно, с аккуратным оформлением и внимательным отношением к личным данным.
Изучить вопрос подробнее – вывод из запоя реутов стационар
Срочный вывод из запоя необходим, когда состояние быстро ухудшается, привычная доза алкоголя перестает приносить облегчение, а попытки перестать пить сопровождаются выраженной абстиненцией. Врач оценивает не отдельный симптом, а общее физическое и психическое состояние человека. Важны длительность запоя, частота предыдущих запоев, возраст, наличие алкогольной зависимости, хронических патологий, употребление лекарственных или наркотических веществ. Такой комплексный подход позволяет выбрать безопасную схему лечения и определить, допустим ли вывод из запоя на дому или требуется госпитализация в клинике.
Получить больше информации – https://vyvod-iz-zapoya-podolsk77.ru/
Наркологическая служба работает с разными случаями. У одного пациента проблемы продолжаются несколько дней, у другого алкоголизм сохраняется много лет. Поэтому лечение подбирается индивидуально. Важно не откладывать обращение, если самочувствие ухудшается.
Дополнительная информация – врач нарколог на дом в Красноярске
Без проработки внутренних конфликтов и мотивации к трезвой жизни терапия остаётся неполной. Психологи и психотерапевты клиники проводят индивидуальные и групповые занятия.
Исследовать вопрос подробнее – принудительное лечение наркомании
Принимаем заявки круглосуточно, уточняем состояние и подбираем безопасный формат помощи.
Узнать больше – http://2.narkologicheskaya-klinika-v-krasnoyarske17.ru/
Мы комбинируем медицинские и поведенческие технологии так, чтобы каждое вмешательство имело измеримый эффект. Адресные инфузии применяются по клиническому профилю, психообразование переводит субъективные ощущения в факты, а телемедицинские включения помогают пройти «трудный час» без самовольных «усилений» схемы. В таблице ниже — практическая карта: что, зачем и как проверяется на итог.
Получить дополнительные сведения – наркологическая клиника наркологический центр воронеж
При появлении подобных симптомов важно вызвать медицинскую помощь как можно раньше. Неотложная наркологическая помощь позволяет провести диагностику, определить возможные противопоказания и выбрать безопасный вариант детоксикации. В сложных случаях человеку требуется наблюдение в стационаре, где специалисты могут круглосуточно контролировать показатели и оперативно менять назначения.
Узнать больше – вывод из запоя на дому область
Если человек обращается после длительного употребления, лечение может начинаться с очищения организма. Детоксикация проводится с учетом состояния пациента и возможных противопоказаний. Лекарственные препараты, объем инфузионной поддержки и продолжительность процедур определяет врач. Капельница не является универсальным способом лечения алкоголизма или наркомании: она применяется по медицинским показаниям и решает прежде всего задачи стабилизации организма. После снятия острых проявлений специалисты переходят к основному лечению зависимости.
Ознакомиться с деталями – бесплатная наркологическая клиника москва
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Ознакомиться с деталями – наркологическая москва
Доктор Елена Иванова, ведущий специалист клиники, отмечает: «Комбинация современных медикаментозных средств и психотерапии значительно повышает шансы на успешное избавление от зависимости».
Узнать больше – лечение в наркологической клинике ростов-на-дону
casino https://domainreview.net/domain/onecasino-nl.eu
thank you admin :)
С пациентом работают профильные специалисты, которые оценивают состояние и подбирают безопасный план помощи.
Изучить вопрос подробнее – анонимный вывод из запоя
В «Центр Трезвости Воронеж» приватность не обсуждается — она проектируется. Выбор нейтральных формулировок в чеках, немаркированные выезды, «беззвучные» уведомления, отдельные входы и доступ к карте наблюдения только по ролям — это норма, а не «услуга». Пациент может назначить доверенное лицо, чтобы получать краткие апдейты в согласованные временные окна.
Детальнее – частная наркологическая клиника
Метод лечения
Подробнее тут – наркологические клиники алкоголизм ростов-на-дону
Зависимость может развиваться постепенно. Сначала человек считает, что полностью контролирует употребление, однако со временем увеличивается количество алкоголя или наркотических веществ, появляются проблемы со здоровьем и отношениями. Срывы случаются регулярно, а период трезвости становится короче. В такой ситуации очень важно не затягивать обращение и получить консультацию специалиста.
Дополнительная информация – вывод наркологическая клиника Красноярск
Экстренное обращение требуется, если состояние быстро ухудшается, человек не может самостоятельно принимать воду и питание, практически не спит, становится агрессивным или дезориентированным. Медицинская бригада выезжает по указанному адресу, проводит первичную диагностику и определяет следующий этап лечения. При наличии показаний врач рекомендует стационарную помощь, где доступно постоянное наблюдение и оборудование для контроля жизненно важных показателей.
Ознакомиться с деталями – http://vyvod-iz-zapoya-moskva15-1.ru
Вывод из запоя в Москве в наркологической клинике «Трезвый путь» проводится как комплексное медицинское лечение, направленное на безопасное прекращение употребления алкоголя, снятие абстинентного синдрома, детоксикацию организма и восстановление основных функций нервной и сердечно-сосудистой системы. Если человек пьет несколько дней или дольше, самостоятельно остановиться бывает сложно и опасно: резкое прекращение спиртного на фоне длительного запоя способно усилить тремор, бессонницу, тревожность, раздражительность, тошноту, рвоту, боль, нарушения давления и другие симптомы абстиненции. В тяжелых случаях существует риск судорожного синдрома, психоза, сердечной недостаточности, инсульта и серьезного ухудшения психического и физического здоровья.
Подробнее – vyvod-iz-zapoya-moskva-srochno
В этой публикации мы исследуем ключевые аспекты здоровья, включая влияние образа жизни на благополучие. Читатели узнают о важности правильного питания, физической активности и психического здоровья. Мы предоставим практические советы и рекомендации для поддержания здоровья и развития профилактических подходов.
Эксклюзивная информация – врач нарколог на дому
Если на телефонном этапе выявляются «красные флаги» — спутанность, выраженная одышка, «скачущий» ритм, неукротимая рвота, — мы рекомендуем короткое окно стационарного наблюдения. При низком риске целесообразно начать дома: привычная среда снижает сенсорную нагрузку, а телемедицинские включения вечером по 15–20 минут помогают пройти «трудный час» без поездок.
Выяснить больше – нарколог вывод из запоя калининград
thank you admin :)