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隐藏得太深,总让人捉摸不定!>
Вывод из запоя на дому востребован, когда пациенту тяжело самостоятельно приехать в клинику или семья хочет получить помощь в привычной обстановке. В Красноярске выезд врача может быть организован круглосуточно, если такой режим предусмотрен выбранной медицинской организацией. Нарколог приезжает по указанному адресу, проводит осмотр и определяет дальнейшую тактику лечения.
Узнать больше – вывод из запоя в стационаре Красноярск
Система взаимоподдержки позволяет быстро реагировать на риск рецидива и мотивирует пациента продолжать путь к трезвости даже в моменты слабости.
Выяснить больше – centr lecheniya alkogolizma sochi
Этот метод направлен на выявление и замену негативных мыслей и стереотипов поведения, связанных с потреблением алкоголя. Пациент учится отслеживать свои эмоциональные реакции и заменять деструктивные установки конструктивными стратегиями противостояния стрессу.
Ознакомиться с деталями – http://lechenie-alkogolizma-sochi0.ru/lechenie-alkogolizma-gipnozom-v-sochi/
Вывод из запоя осуществляется в несколько этапов, каждый из которых направлен на постепенное восстановление организма. Такой поэтапный подход снижает нагрузку на внутренние органы и повышает эффективность лечения.
Ознакомиться с деталями – вывод из запоя с выездом в ростове-на-дону
Этот информативный текст сочетает в себе темы здоровья и зависимости. Мы обсудим, как хронические заболевания могут усугубить зависимости и наоборот, как зависимость может влиять на общее состояние здоровья. Читатели получат представление о комплексном подходе к лечению как физического, так и психического состояния.
Только факты! – лечения алкоголизма в Белгороде
В этом обзоре мы обсудим современные методы борьбы с зависимостями, включая медикаментозную терапию и психотерапию. Мы представим последние исследования и их результаты, чтобы читатели могли быть в курсе наиболее эффективных подходов к лечению и поддержке.
Почему это важно? – deltaclinic
Помощь может включать консультацию, детоксикацию, стационар и дальнейшее сопровождение по показаниям.
Дополнительная информация – narkologicheskaya-klinika-otzyvy
Этот документ охватывает важные аспекты медицинской науки, сосредотачиваясь на ключевых вопросах, касающихся здоровья населения. Мы рассматриваем свежие исследования, клинические рекомендации и лучшие практики, которые помогут улучшить качество лечения и профилактики заболеваний. Читатели получат возможность углубиться в различные медицинские дисциплины.
Только факты! – нарколог на дом врача цена
Вывод из запоя в Балашихе в «Частный Медик 24» предполагает помощь человеку при алкогольной интоксикации, похмельном синдроме и ухудшении самочувствия после нескольких дней непрерывного приема спиртного. Наркологическая помощь доступна анонимно: специалист может приехать на дом, провести осмотр, определить степень тяжести состояния и подобрать лечение. Если вывод из запоя на дому небезопасен, лечение продолжают в клинике или стационаре, где доступен более полный контроль показателей и круглосуточная поддержка.
Ознакомиться с деталями – http://4.vyvod-iz-zapoya-balashiha13.ru/
Комплексное лечение зависимости строится с учетом физической и психической составляющих болезни. Врач оценивает состояние человека, длительность употребления алкоголя или наркотиков, наличие хронического заболевания, особенности поведения и мотивацию к трезвости. На основании первичной диагностики составляется индивидуальный план. В зависимости от ситуации лечение возможно на дому, амбулаторно или в стационаре клиники. Если человеку требуется срочный вывод из запоя, круглосуточная помощь позволяет вызвать нарколога домой либо организовать госпитализацию в комфортный стационар.
Подробнее – https://1narkologicheskaya-klinika-balashiha.ru/
casino https://seoptimer.com/spinbitcasino-aus.com
Помощь оказывают врачи с практикой в наркологии, психиатрии и восстановительной терапии.
Получить больше информации – вызвать нарколога капельница от запоя
Врач учитывает симптомы, риски, анамнез и семейную ситуацию, чтобы предложить подходящую программу.
Дополнительная информация – анонимный вывод из запоя в Красноярске
Вывод из запоя в Ростове-на-Дону — это медицинская процедура, направленная на устранение симптомов алкогольной интоксикации, восстановление функций организма и предотвращение осложнений. В клинике помощь оказывается круглосуточно, а лечение проводится под контролем опытных наркологов. Такой подход позволяет безопасно прекратить употребление алкоголя, избежать резкой отмены и стабилизировать состояние пациента. Процедура проводится как в стационаре, так и на дому, с учётом состояния здоровья и степени зависимости.
Получить дополнительные сведения – вывод из запоя цена в ростове-на-дону
Продолжительный запой сопровождается накоплением продуктов метаболизма алкоголя, обезвоживанием, нарушением сна, изменением работы нервной системы и повышенной нагрузкой на печень. Самостоятельный резкий выход из долгих запоев может проходить тяжело, поэтому медицинская помощь особенно важна при хроническом алкоголизме, заболеваниях внутренних органов и выраженном синдроме отмены. Вывод из запоя проводится врачом после оценки общего состояния.
Получить больше информации – https://2narkologicheskaya-klinika-balashiha.ru/
Нарколог на дому помогает, если самочувствие пациента допускает лечение вне стационара. Служба выезжает по Балашихе и Московской области, а условия выезда в другие районы Подмосковья можно уточнить по телефону. Если нужен срочный вызов, диспетчеру сообщают адрес, возраст, сколько длится запой, когда человек пил последний раз и какие хронические заболевания у него есть. Это помогает подготовить необходимые препараты и оборудование до того, как нарколог приедет на дому.
Изучить вопрос подробнее – vyvod-iz-zapoya-na-domu-nedorogo
Этапы терапии выглядят следующим образом:
Получить дополнительную информацию – https://narkologicheskaya-klinika-v-samare16.ru
Консультация помогает родственникам понять, как правильно действовать, если близкий пьет, отказывается от лечения или не считает употребление проблемой. Психолог объясняет особенности созависимости, помогает выбрать способ разговора и сформировать мотивацию к добровольному обращению. Принудительное лечение возможно только в предусмотренных законом ситуациях, поэтому основное внимание направлено на согласие человека и его участие в процессе выздоровления.
Ознакомиться с деталями – наркологическая клиника в балашихе
Пил неделю, дома уже не справлялись. Вызвали нарколога. Вывод из запоя стационар — это когда человек под присмотром круглосуточно. Сначала снимают интоксикацию. Выведение из запоя в стационаре СПб — Без лишнего риска для здоровья. Вся информация доступна здесь: круглосуточный вывод из запоя нарколог 24 https://narkolog.vyvod-iz-zapoya-v-staczionare-spb-gdi.ru И про круглосуточный выезд для жителей Северной столицы. Не тяните, если дома уже не справляетесь.
Комплексное лечение зависимости строится с учетом физической и психической составляющих болезни. Врач оценивает состояние человека, длительность употребления алкоголя или наркотиков, наличие хронического заболевания, особенности поведения и мотивацию к трезвости. На основании первичной диагностики составляется индивидуальный план. В зависимости от ситуации лечение возможно на дому, амбулаторно или в стационаре клиники. Если человеку требуется срочный вывод из запоя, круглосуточная помощь позволяет вызвать нарколога домой либо организовать госпитализацию в комфортный стационар.
Дополнительная информация – https://1narkologicheskaya-klinika-balashiha.ru/
Частная наркологическая помощь требуется в различных ситуациях: при длительном запое, абстинентном синдроме, регулярном употреблении психоактивных веществ, наркотической зависимости, ухудшении психического состояния или повторном срыве после периода ремиссии. Наркологическая служба работает круглосуточно, поэтому консультацию можно получить в удобное время, включая выходные. При необходимости организуется срочный выезд врача на дом в Балашихе и Московской области либо госпитализация в стационар. Лечение в клинике проводится по индивидуальному плану, а полный курс может включать восстановление организма, психотерапевтические занятия, работу с родственниками и дальнейшую реабилитационную программу.
Изучить вопрос подробнее – частная наркологическая клиника
Мы рассмотрим современные вызовы здравоохранения и пути их решения с помощью технологий и научных исследований. В статье собраны данные о новых лекарствах, методах диагностики и системном подходе к улучшению здоровья населения.
А что дальше? – лечение зависимостей екатеринбург
Помогаем быстро перейти от консультации к конкретному плану: выезд, стационар или наблюдение.
Изучить вопрос подробнее – врач вывод из запоя в Красноярске
В этой публикации мы рассматриваем важную тему борьбы с зависимостями, включая алкогольную и наркотическую зависимости. Мы обсудим методы лечения, реабилитации и поддержку, которые могут помочь людям, столкнувшимся с этой проблемой. Читатели узнают о перспективах выздоровления и важности комплексного подхода.
Погрузиться в научную дискуссию – платная наркологическая скорая помощь
Вывод из запоя на дому востребован, когда пациенту тяжело самостоятельно приехать в клинику или семья хочет получить помощь в привычной обстановке. В Красноярске выезд врача может быть организован круглосуточно, если такой режим предусмотрен выбранной медицинской организацией. Нарколог приезжает по указанному адресу, проводит осмотр и определяет дальнейшую тактику лечения.
Изучить вопрос подробнее – вывод из запоя недорого Красноярск
В этой статье мы говорим о важности поддержки в процессе выздоровления. Рассматриваются семьи, группы поддержки, специалисты и онлайн-ресурсы, которые могут сыграть решающую роль в избавлении от зависимости.
А что дальше? – вывод из запоя в частной клинике
Главная задача — вернуть контроль над самочувствием мягко и последовательно. Мы не соревнуемся в дозах, а собираем устойчивую траекторию улучшения: каждый модуль терапии отвечает за одну цель и имеет своё «окно оценки». Если отклик ниже ожиданий — меняем ровно один параметр (темп, последовательность или поведенческий элемент среды), чтобы точно понимать, что помогло.
Изучить вопрос глубже – вывод из запоя клиника в казани
Эта публикация исследует взаимосвязь зависимости и психологии. Мы обсудим, как психологические аспекты влияют на появление зависимостей и процесс выздоровления. Читатели смогут понять важность профессиональной поддержки и применения научных подходов в терапии.
Полная информация здесь – безопасное кодирование от алкоголизма
Специалисты регулярно помогают при интоксикации, запоях, абстиненции и сложных состояниях зависимости.
Ознакомиться с деталями – vyvod-iz-zapoya-na-domu-balashiha-ceny
Запой сопровождается регулярным употреблением алкоголя на протяжении нескольких дней или дольше, когда человеку становится трудно самостоятельно остановиться. Новая доза спиртного временно уменьшает неприятные проявления абстиненции, но поддерживает интоксикацию и усиливает зависимость. Чем дольше продолжается запой, тем выше нагрузка на печень, сердце, сосуды, головной мозг, почки и нервную систему. Медицинский вывод из запоя помогает прервать этот цикл и обеспечить более безопасное восстановление.
Получить больше информации – вывод из запоя с выездом в Красноярске
Помогаем быстро перейти от консультации к конкретному плану: выезд, стационар или наблюдение.
Дополнительная информация – uslugi-kapelnicy-na-domu
В этой публикации мы обсуждаем современные методы лечения различных заболеваний. Читатели узнают о новых медикаментах, терапиях и исследованиях, которые активно применяются для лечения. Мы нацелены на то, чтобы предоставить практические знания, которые могут помочь в борьбе с недугами.
Ознакомиться с деталями – клиника кодирования от алкоголизма
Статья посвящена анализу текущих трендов в медицине и их влиянию на жизнь людей. Мы рассмотрим новые технологии, методы лечения и значение профилактики в обеспечении долголетия и здоровья.
Только факты! – капельницы от запоя в Белгороде
Не каждый эпизод употребления спиртного требует стационарного лечения, однако продолжительный запой сопровождается накоплением токсичных продуктов распада этанола и нарушением работы внутренних органов. Чем дольше человек продолжает пить, тем выше вероятность обезвоживания, дефицита витаминов, нарушения электролитного баланса, проблем с сердцем, печенью, желудком и нервной системой. Вывод из запоя под контролем врача позволяет уменьшить нагрузку на организм и своевременно заметить признаки опасных осложнений.
Ознакомиться с деталями – вывод из запоя на дому круглосуточно
Специалисты регулярно помогают при интоксикации, запоях, абстиненции и сложных состояниях зависимости.
Изучить вопрос подробнее – вывод из запоя в Екатеринбурге
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Подробнее – https://vyvod-iz-zapoya-v-ekaterinburge21.ru/
thank you.
Вывод из запоя в Екатеринбурге проводят, когда человек не может самостоятельно прекратить пить и состояние ухудшается на фоне алкоголя. Врач оценивает продолжительность запоя, жалобы, возраст, хронические заболевания и ранее назначенные препараты. Лечение можно начать на дому, если нет признаков тяжелых осложнений. В Екатеринбурге нарколог выезжает по адресу, проводит осмотр и определяет, безопасно ли продолжать лечение дома или лучше перейти в стационар.
Дополнительная информация – https://vyvod-iz-zapoya-v-ekaterinburge17.ru/
casino https://modire.com/tools/seo/domain/spinshark.gb.net
Каждый пациент проходит несколько последовательных этапов, направленных на очищение организма, стабилизацию эмоционального состояния и формирование стойкой мотивации к трезвой жизни. Такой подход позволяет не только устранить физическую зависимость, но и укрепить психическую устойчивость.
Получить дополнительные сведения – лечение в наркологической клинике в самаре
Мы рассмотрим современные вызовы здравоохранения и пути их решения с помощью технологий и научных исследований. В статье собраны данные о новых лекарствах, методах диагностики и системном подходе к улучшению здоровья населения.
Осуществить глубокий анализ – центр кодирования от алкоголя
В клинике проводится вывод из запоя, детоксикация организма, снятие ломки, медикаментозное лечение алкоголизма и наркомании, кодирование, психотерапия и реабилитация зависимых. Врач оценивает клинический статус человека и составляет план лечения, включающий необходимые процедуры, препараты, психологическую поддержку и контроль динамики. Наркологическая помощь может быть оказана амбулаторно, на дому или в стационаре. При тяжелом течении зависимости предпочтительным является лечение в клинике, где медицинский персонал круглосуточно наблюдает за состоянием больного.
Узнать больше – наркологическая клиника на дом
Вывод из запоя в Ростове-на-Дону — это медицинская процедура, направленная на устранение симптомов алкогольной интоксикации, восстановление функций организма и предотвращение осложнений. В клинике помощь оказывается круглосуточно, а лечение проводится под контролем опытных наркологов. Такой подход позволяет безопасно прекратить употребление алкоголя, избежать резкой отмены и стабилизировать состояние пациента. Процедура проводится как в стационаре, так и на дому, с учётом состояния здоровья и степени зависимости.
Выяснить больше – скорая вывод из запоя ростов-на-дону
Вывод на дому может облегчить выход из запоя, но результат зависит от исходного состояния. Врач не должен обещать моментальный эффект. Быстро улучшить отдельные симптомы иногда возможно, однако полное восстановление требует времени. Важно соблюдать рекомендации и не возвращаться к спиртному.
Изучить вопрос подробнее – https://vyvod-iz-zapoya-krasnoyarsk67.ru/
В статье рассматриваются различные стратегии борьбы с зависимостями, включая проверенные методы и реальные истории успеха. Читатель узнает, какие подходы наиболее эффективны и как начать путь к выздоровлению.
Информация доступна здесь – скорая наркологическая помощь круглосуточно
Медицинская публикация представляет собой свод актуальных исследований, экспертных мнений и новейших достижений в сфере здравоохранения. Здесь вы найдете информацию о новых методах лечения, прорывных технологиях и их практическом применении. Мы стремимся сделать актуальные медицинские исследования доступными и понятными для широкой аудитории.
Желаете узнать подробности? – капельница от запоя клиника
И сам уже не в состоянии остановиться. Куда звонить среди ночи. Вывод из запоя — И выводит человека из этого состояния. И только после этого становится легче. Срочный вывод из запоя на дому — И в выходные. Можете ознакомиться по ссылке: заказать вывод из запоя на дому https://vyvod-iz-zapoya-v-irkutske-gty.ru Там и про вывод из запоя на дому цена для Иркутской области. Обращайтесь к специалистам.
В этой статье рассматриваются актуальные вопросы, связанные с развитием медицинской науки и её внедрением в повседневную практику. Особое внимание уделено вопросам профилактики, ранней диагностики и использованию технологий для улучшения здоровья человека.
Есть чему поучиться – вывод из запоя круглосуточно
Врач учитывает симптомы, риски, анамнез и семейную ситуацию, чтобы предложить подходящую программу.
Получить больше информации – chastnaya-narkologicheskaya-klinika
Абстинентный синдром развивается по-разному. У одного пациента ухудшение начинается через несколько часов, у другого выраженные симптомы нарастают постепенно. Даже если человек раньше переносил запои относительно легко, следующий эпизод способен идти тяжелее. Поэтому нарколог оценивает не только жалобы, но и объективные показатели: пульс, артериальное давление, степень обезвоживания, сознание, координацию, дыхание и общее самочувствие.
Дополнительная информация – vyvod-iz-zapoya-balashiha