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隐藏得太深,总让人捉摸不定!>
Врач спрашивает о длительности употребления, количестве алкоголя, наркотиков и предыдущем лечении. Клиника учитывает хронические болезни, психологические проблемы и готовность к терапии. Специалисты объясняют, какие подходы подходят и как строится лечение.
Ознакомиться с деталями – наркологические клиники алкоголизм Красноярск
В данной статье мы поговорим о будущем медицины, акцентируя внимание на прорывных разработках и их потенциале. Читатель узнает о новых подходах к лечению, роли искусственного интеллекта и возможностях персонализированной медицины.
Хочу знать больше – срочный вывод из запоя на дому врач
Наркологическая клиника в Самаре оказывает профессиональную помощь людям, страдающим зависимостью от алкоголя, наркотиков и других психоактивных веществ. В основе её деятельности лежит индивидуальный подход к каждому пациенту, сочетание медикаментозных и психотерапевтических методов, а также полная конфиденциальность. Лечение проводится опытными специалистами с применением современных медицинских технологий, направленных на восстановление здоровья и предотвращение рецидивов.
Углубиться в тему – лечение в наркологической клинике в самаре
thank you
Сначала консультант принимает звонок и уточняет основные данные. Для предварительной оценки полезно сообщить возраст пациента, длительность запоя, примерное количество алкоголя, текущие жалобы и особенности поведения. После приезда врач проводит осмотр и определяет дальнейшую тактику. В Красноярске выезд может быть доступен круглосуточно, если такой режим установлен у клиники.
Ознакомиться с деталями – vyvod-iz-zapoya-krasnoyarsk67.ru/
Капельница — основной метод дезинтоксикации при запое. Она позволяет быстро восполнить дефицит жидкости и электролитов, вывести токсины и улучшить общее самочувствие. В состав инфузии входят препараты, нормализующие обмен веществ, а также витамины и гепатопротекторы. Процедура проводится под контролем врача, что гарантирует безопасность и точную дозировку лекарств.
Детальнее – вывод из запоя капельница на дому
thxx
Вывод из запоя на дому подходит не всем. Преимущество домашнего формата — привычная обстановка, конфиденциальность и возможность пригласить специалиста без посещения приемного отделения. Нарколог приезжает по адресу, проводит осмотр, уточняет анамнез и решает, допустима ли помощь на дому. Если домашний формат небезопасен, врач рекомендует отделении.
Получить больше информации – помощь вывод из запоя в Красноярске
thanks
Оформить вызов на дому можно по телефону или через заявку на сайте. Оператор центра уточняет контактные данные, адрес в Москве, удобное время, причину обращения и наличие медицинских документов. Если препарат уже назначен, стоит сообщить его название и дозировку. Если схемы лечения нет, сначала проводится консультация врача, после которой специалист решает, можно ли сделать капельницу на дому.
Подробнее – платные капельницы на дому
thanks
thank you
thanks
Вывод из запоя в Балашихе нужен, когда человек не может самостоятельно остановиться, а очередная попытка отказаться от алкоголя сопровождается слабостью, тревогой, бессонницей, головной болью, тошнотой, скачками артериального давления или выраженной абстиненцией. «Частный Медик 24» оказывает помощь на дому и в клинике: нарколог оценивает состояние пациента, уточняет анамнез, длительность запоя, наличие хронических болезней и подбирает лечение. Выезд доступен круглосуточно, включая выходные, а в тяжелом случае врач может предложить лечение в стационаре. Такой вывод из запоя ориентирован на безопасное снятие острых проявлений, очищение организма и подготовку к дальнейшему лечению алкоголизма.
Ознакомиться с деталями – вывод из запоя недорого балашиха
Эта публикация посвящена актуальным вопросам современной медицины и здравоохранения. Мы обсудим новейшие технологии диагностики и лечения, а также их влияние на продолжительность и качество жизни. Читатель найдет здесь информацию о научных исследованиях и перспективных разработках, доступно изложенную для широкой аудитории.
Изучить вопрос глубже – вызвать врача нарколога на дом анонимно
«СтаврМедЦентр» собирает лечение из коротких модулей с понятными целями: быстро стабилизировать соматику, вернуть управляемый сон, снизить реактивность вечера, обучить «перехвату» импульса и закрепить это в спокойной рутине. Фармакологию используем дозированно, опираясь на витальные показатели и переносимость; поведенческий контур запускаем сразу: свет, вода, дыхание, цифровая гигиена, семейные договорённости. Ниже — ориентировочная архитектура маршрута. На практике последовательность и длительность настраиваются под конкретного человека и его среду.
Получить дополнительные сведения – http://narkologicheskaya-klinika-stavropol15.ru/narkolog-stavropol/
Читатели получат представление о том, как современные технологии влияют на развитие медицины. Обсуждаются новые методы лечения, персонализированный подход и роль цифровых решений в повышении качества медицинских услуг.
Открой скрытое – кодировке от алкоголя
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Узнать больше – narkologicheskaya-klinika-moskva
Медицинская публикация представляет собой свод актуальных исследований, экспертных мнений и новейших достижений в сфере здравоохранения. Здесь вы найдете информацию о новых методах лечения, прорывных технологиях и их практическом применении. Мы стремимся сделать актуальные медицинские исследования доступными и понятными для широкой аудитории.
Продолжить изучение – delta clinic ru
Лечение запоя на дому выбирают, когда требуется выездная помощь. Нарколог приезжает домой, врач проводит оценку, а лечение выполняется в рамках доступной услуги. Вывод на дому позволяет организовать помощь без посещения клиники, но формат дома и формат клиники различаются. Наркологическая помощь на дому может включать капельницу, терапию и дальнейшие рекомендации.
Дополнительная информация – https://vyvod-iz-zapoya-krasnoyarsk70.ru/
Помощь оказывают врачи с практикой в наркологии, психиатрии и восстановительной терапии.
Получить больше информации – частная наркологическая клиника
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Детальнее – вывести из запоя в клинике
При наличии таких проявлений лечение подбирается после врачебного осмотра. Очень важно сообщать специалисту правдивую информацию о веществах, лекарствах и хронических заболеваниях. Это помогает повысить безопасность медицинской терапии.
Изучить вопрос подробнее – анонимная наркологическая клиника Красноярск
В этой статье рассматриваются способы преодоления зависимости и успешные истории людей, которые справились с этой проблемой. Мы обсудим важность поддержки со стороны близких и профессионалов, а также стратегии, которые могут помочь в процессе выздоровления. Научитесь первоочередным шагам к новой жизни.
Смотри, что ещё есть – алкоголизм вызов на дом
В этом обзоре представлены различные методы избавления от зависимости, включая терапевтические и психологические подходы. Мы сравниваем их эффективность и предоставляем рекомендации для тех, кто хочет вернуться к трезвой жизни. Читатели смогут найти информацию о реабилитационных центрах и поддерживающих группах.
Провести детальное исследование – нарколог на дому капельница цена
Рекомендации строятся вокруг состояния человека, а не по универсальному шаблону для всех случаев.
Узнать больше – vyzvat-kapelnicu-ot-zapoya-na-domu
Чтобы помощь была прозрачной и управляемой, каждый этап имеет цель, индикаторы безопасности и эффективности, а также понятное «окно оценки» результата. Коррекции проводятся «штучно», по правилу одного изменения — это защищает от полипрагмазии и позволяет читабельно видеть вклад каждого шага.
Получить дополнительные сведения – https://vyvod-iz-zapoya-v-kazani16.ru/vyvod-iz-zapoya-na-domu-kazan-czena
Этот обзор сосредоточен на различных подходах к избавлению от зависимости. Мы изучим традиционные и альтернативные методы, а также их сочетание для достижения максимальной эффективности. Читатели смогут открыть для себя новые стратегии и подходы, которые помогут в их борьбе с зависимостями.
Читать дальше – нарколог на дом стоимость
В этой статье обсуждаются актуальные медицинские вопросы, которые волнуют общество. Мы обращаем внимание на проблемы, касающиеся здравоохранения и лечения, а также на новшества в области медицины. Читатели будут осведомлены о последних событиях и смогут следить за тенденциями в медицине.
Ознакомьтесь с аналитикой – скорая наркологическая помощь на дому москва
Наркологическая клиника «Похмельная служба» в Балашихе оказывает профессиональную медицинскую помощь людям с алкогольной и наркотической зависимостью. Лечение подбирается индивидуально с учетом продолжительности употребления алкоголя или психоактивных веществ, возраста человека, сопутствующих заболеваний, психических нарушений и общего самочувствия. Круглосуточная работа центра позволяет обратиться за помощью в любое время, получить консультацию, вызвать врача на дому или пройти лечение в стационаре. Анонимность, конфиденциальность персональных данных и медицинская этика являются обязательными условиями работы специалистов.
Узнать больше – наркологическая клиника в балашихе
В этой статье мы рассмотрим современные достижения в области медицины, включая инновационные методы лечения и диагностики. Мы обсудим важность профилактики заболеваний и роль технологий в улучшении качества здравоохранения. Читатели узнают о влиянии медицины на повседневную жизнь и ее значение для современного общества.
Ознакомьтесь поближе – вызов нарколога на дом срочно москва
При наличии опасных симптомов не стоит просить больного потерпеть еще несколько часов или самостоятельно давать лекарства. Бригада оценивает ситуацию, а при угрозе жизни рекомендует экстренное обращение в профильное учреждение. Государственный диспансер, городские больницы и частная наркологическая клиника имеют разные условия приема, однако при неотложной ситуации главным остается своевременное оказание помощи.
Дополнительная информация – https://1.vyvod-iz-zapoya-balashiha13.ru/
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Изучить вопрос подробнее – https://nadomu1.kapelnica-ot-zapoya-v-moskve14-1.ru/
Публикация посвящена жизненным историям людей, успешно справившихся с зависимостью. Мы покажем, что выход есть, и он начинается с первого шага — принятия проблемы и желания измениться.
Желаете узнать подробности? – частный нарколог на дом
Главная задача — вернуть контроль над самочувствием мягко и последовательно. Мы не соревнуемся в дозах, а собираем устойчивую траекторию улучшения: каждый модуль терапии отвечает за одну цель и имеет своё «окно оценки». Если отклик ниже ожиданий — меняем ровно один параметр (темп, последовательность или поведенческий элемент среды), чтобы точно понимать, что помогло.
Подробнее тут – http://vyvod-iz-zapoya-v-kazani16.ru
Рекомендации строятся вокруг состояния человека, а не по универсальному шаблону для всех случаев.
Ознакомиться с деталями – наркологическая клиника на дом
До начала лечения врач собирает данные, уточняет жалобы и определяет подход. Нарколог рассматривает лечение на дому и лечение в клинике как два возможных формата. Для дома выбирается услуга с выездом, для клиники — лечение в условиях центра. Пациент получает объяснение, какие процедуры предполагаются и какое лечение будет продолжено. Следует, чтобы помощь соответствовала выбранному формату.
Получить больше информации – вывод из запоя
В центре работают квалифицированные специалисты с медицинским образованием и практическим опытом: нарколог, психиатр, психотерапевт, психолог и другой медицинский персонал. Программа лечения может включать медикаментозное восстановление организма, психотерапевтические методики, психологическую коррекцию поведения, кодирование и реабилитационный курс. Такой подход помогает не ограничиваться снятием острых проявлений зависимости, а работать с причинами проблемы и формировать навыки полноценной здоровой жизни.
Подробнее – наркологические клиники в области
В этой статье обсуждаются актуальные медицинские вопросы, которые волнуют общество. Мы обращаем внимание на проблемы, касающиеся здравоохранения и лечения, а также на новшества в области медицины. Читатели будут осведомлены о последних событиях и смогут следить за тенденциями в медицине.
Кликни, не пожалеешь – алкоголизм выведение из запоя
Этот обзор содержит информацию о передовых достижениях в области медицины. Мы разберем инновационные технологии, которые меняют подход к лечению и диагностике, а также их влияние на эффективность оказания медицинской помощи.
Читать далее > – анонимный выход из запоя
Лечение алкоголизма в Краснодаре представляет собой комплекс мероприятий, направленных на полное восстановление физического и психологического состояния пациента. Этот процесс требует профессионального подхода, включающего диагностику, детоксикацию, терапию зависимости и реабилитацию. Информация о современных методах терапии доступна на официальном портале Минздрава РФ.
Подробнее можно узнать тут – http://
Вывод из запоя на дому возможен, если состояние позволяет проводить лечение амбулаторно. Круглосуточная служба принимает вызов по телефону и направляет врача в Балашихе. Выезд помогает получить медицинскую помощь в привычной обстановке и анонимно начать лечение. Если врач выявляет тяжелое течение абстинентного синдрома, выраженные психические нарушения или другие обстоятельства, при которых лечение на дому небезопасно, рекомендуется госпитализация.
Узнать больше – narkologicheskaya-klinika-na-dom
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Ознакомиться с деталями – наркология вывод из запоя Красноярск
Такой подход позволяет сформировать устойчивую мотивацию и создать основу для дальнейшей социальной и психологической реабилитации, направленной на стабилизацию состояния пациента и возвращение его к полноценной жизни.
Углубиться в тему – http://narkologicheskaya-klinika-v-spb16.ru
Нарколог на дом в Красноярске — формат медицинской помощи, при котором врач приезжает по указанному адресу, проводит первичный осмотр и определяет дальнейший план лечения. Выезд подходит в случаях, когда человеку сложно самостоятельно посетить центр, требуется быстро получить консультацию или начать вывод из запоя в домашних условиях. Наркологическая служба работает с проблемами алкоголизма, наркомании и других зависимостей, а медицинские процедуры проводятся после оценки показаний и противопоказаний.
Дополнительная информация – https://narcolog-na-dom-krasnoyarsk2.ru/
В этой статье обсуждаются актуальные медицинские вопросы, которые волнуют общество. Мы обращаем внимание на проблемы, касающиеся здравоохранения и лечения, а также на новшества в области медицины. Читатели будут осведомлены о последних событиях и смогут следить за тенденциями в медицине.
Углубить понимание вопроса – врач вывод из запоя
Неотложная наркологическая помощь необходима в ситуациях, когда запой затянулся более чем на двое суток, а состояние пациента ухудшается: появляются дрожь конечностей, выраженное психомоторное возбуждение или, наоборот, спутанность сознания. Важно не откладывать вызов врача, если:
Получить больше информации – скорая наркологическая помощь екатеринбург
Если близкому нужна помощь сейчас, можно оставить заявку и заказать выезд. При разговоре по телефону желательно подробно описать ситуацию. Чем точнее данные, тем проще врачу определить необходимые медицинские средства и подготовить оборудование для работы на дому.
Ознакомиться с деталями – http://www.narcolog-na-dom-krasnoyarsk1.ru
В этой заметке мы представляем шаги, которые помогут в процессе преодоления зависимостей. Рассматриваются стратегии поддержки и чек-листы для тех, кто хочет сделать первый шаг к выздоровлению. Наша цель — вдохновить читателей на положительные изменения и поддержать их в трудных моментах.
Рассмотреть проблему всесторонне – быстрый вывод из запоя
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Почему это важно? – круглосуточная наркологическая клиника