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隐藏得太深,总让人捉摸不定!>
Реабилитационные мероприятия в клинике направлены на устранение соматических последствий зависимости, нормализацию когнитивных функций и восстановление социальной адаптации. Для этого используются современные методики физиотерапии, диетологической коррекции и психологического сопровождения, позволяющие закрепить достигнутые результаты лечения.
Ознакомиться с деталями – лечение в наркологической клинике в санкт-петербурге
Медицинские услуги на дому выбирают при стабильном самочувствии, когда нет признаков тяжелого острого состояния и врач допускает лечение вне клиники. На дому можно провести курс назначенных внутривенных капельниц, выполнить отдельный укол, организовать наблюдение медсестры и получить консультацию врача. Услуга полезна, если обратившемуся сложно самостоятельно приехать на прием или требуется провести лечение в удобное время.
Получить больше информации – https://nadomu2.kapelnica-ot-zapoya-v-moskve14-1.ru/
Домашние услуги не выбирают только по названию программы. Для безопасного лечения важны диагноз, текущие показатели, противопоказания и сочетание лекарственных средств. Если состояние ухудшается, врач рекомендует клинику или стационар, где доступны расширенная диагностика, комплексные методы лечения и непрерывное наблюдение.
Подробнее – капельница на дом анонимно
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Получить больше информации – наркологическая клиника наркологический центр
При тяжелых проявлениях лечение дома подходит не всегда. Врач может предложить госпитализацию, если требуется более интенсивная медицинская помощь. Вызов нарколога позволяет своевременно оценить ситуацию и определить безопасный вариант дальнейшего лечения.
Узнать больше – https://narcolog-na-dom-krasnoyarsk1.ru/
В большинстве случаев лечение начинается с детокса, затем подключается психотерапия и, при желании пациента, кодирование. Чтобы не столкнуться с рецидивом, важно соблюдать все рекомендации доктора и не отказываться от реабилитационного этапа. Только комплексный подход дает устойчивый результат и помогает избежать повторных запоев. Обращаясь в клинику, вы получаете полный спектр услуг — от вывода из запоя до восстановления и ресоциализации.
Получить больше информации – narkolog-vyvod-iz-zapoya
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Подробнее – наркологический вывод из запоя
Регулярное поступление этанола влияет на клетки мозга, нервную систему, сосуды, печень и другие внутренние органы. Организму приходится постоянно перерабатывать спирт и токсические продукты его распада, а недостаток жидкости, соли, витаминов и нормального питания усиливает слабость. Нарушается обмен веществ, меняется работа сердечно-сосудистой системы, повышается вероятность тревоги, бессонницы и обменных расстройств. Поэтому капельница рассматривается как часть комплексного медицинского подхода, направленного на очищение, восполнение жидкости и нормализацию основных функций организма.
Дополнительная информация – kapelnicy-ot-zapoya-nedorogo
Срочный вызов оформляют, когда признаки интоксикации усиливаются, состояние больного меняется или возникают серьезные расстройства поведения. Наркологическая помощь должна быть организована своевременно. При психозе, белой горячке, судорогах, передозировке или других тяжелых случаях врач может рекомендовать экстренное стационарное лечение.
Узнать больше – врач нарколог на дом
После введения капельницы пациент получает «вечернюю карточку»: правила гидратации малыми порциями, световую гигиену, два-три спокойных действия на вечер и чек-лист признаков, при которых нужно связаться с дежурным врачом. Такой бытовой протокол повышает переносимость терапии и делает ночь предсказуемой.
Получить больше информации – вывод из запоя вызов в казани
Правильное решение в такой ситуации — позвонить в «Частный Медик 24» и заказать выезд нарколога: врач приедет в течение 30–60 минут, проведёт осмотр и окажет необходимую помощь прямо на дому. Наша выездная служба работает круглосуточно, и мы гарантируем, что специалист прибудет в удобное для вас время, даже в выходные и праздничные дни. Чем быстрее вы обратитесь в клинику, тем выше шанс на успешное лечение алкоголизма и вывод из запоя без серьёзных последствий.
Изучить вопрос подробнее – vyvod-iz-zapoya-s-vyezdom
Врач спрашивает о длительности употребления, количестве алкоголя, наркотиков и предыдущем лечении. Клиника учитывает хронические болезни, психологические проблемы и готовность к терапии. Специалисты объясняют, какие подходы подходят и как строится лечение.
Узнать больше – наркологические клиники алкоголизм Красноярск
Откладывайте обращение как можно меньше, если самочувствие быстро ухудшается. Звонок специалистам позволяет описать ситуацию и получить предварительные рекомендации. Если необходимо вызвать нарколога срочно, оператор уточняет район, адрес, продолжительность запоя и основные симптомы.
Дополнительная информация – вызов нарколога на дом
casino https://tutorialyex.com/domain/spinbet1.nz
Сотрудники клиники оценивают проблему комплексно. Учитываются стаж зависимости, возраст, хронические болезни и готовность к лечению. Следует рассказать врачу о предыдущих курсах и препаратах. Клиника подбирает лечение индивидуально.
Узнать больше – наркологическая клиника наркологический центр в Красноярске
Пил неделю, дома уже не справлялись. Вызвали нарколога. Стационарное выведение из запоя — И никакого доступа к алкоголю. И только после этого начинают основное лечение. Вывод из запоя СПб стационар — работает и в тяжёлых случаях. Вся информация доступна здесь: клиника выведения из запоя спб https://narkolog.vyvod-iz-zapoya-v-staczionare-spb-gdi.ru И про круглосуточный выезд для Ленобласти. Обращайтесь к специалистам.
Профессиональная помощь при запое направлена на стабилизацию состояния, коррекцию обезвоживания, поддержку работы внутренних органов и снижение выраженности абстинентных проявлений. Врач учитывает анамнез, давление, пульс, поведение, сон, питание и наличие хронической патологии. Если помощь на дому допустима, врач проводит необходимые процедуры и наблюдает динамику. Если риски высокие, пациент получает направление в круглосуточном отделении.
Ознакомиться с деталями – https://vyvod-iz-zapoya-krasnoyarsk67.ru/
Мы работаем не только с классическим алкоголизмом, но и с другими формами аддиктивного поведения. Врачи клиники имеют опыт в наркологии и психиатрии, поэтому могут подобрать терапию даже при сочетании нескольких расстройств. Пациенты обращаются с разными проблемами, и для каждой у нас есть соответствующая программа и протокол наблюдения. Наши специалисты лечат как мужчин, так и женщин, помогая избавиться от пагубной привычки и вернуться к нормальной жизни. Лечение зависимости в клинике проходит комплексно, с привлечением психотерапевтов и психиатров.
Ознакомиться с деталями – https://3.vyvod-iz-zapoya-balashiha13.ru/
После обращения врач решает, нужна ли срочная помощь или плановое лечение. Клиника может предложить стационар, амбулаторное сопровождение или консультацию. Следует выполнять назначения и не менять лекарство самостоятельно.
Ознакомиться с деталями – наркологическая клиника наркологический центр
Если пациенту требуется постоянный мониторинг или комплексное лечение, мы обеспечиваем круглосуточное пребывание в стационаре. Здесь доступны углублённая диагностика — УЗИ органов брюшной полости, расширенные анализы крови, кардиомониторинг — и коррекция терапии в режиме реального времени. Комфортные палаты, ежедневное наблюдение медсестры и консультации психотерапевта создают условия для быстрого и безопасного выхода из зависимости.
Ознакомиться с деталями – http://
Срочная наркологическая помощь — это не «универсальная капельница», а управляемый клинический процесс, где каждое действие проверяется измеримыми маркерами и выполняется в правильной последовательности. В наркологической клинике «ВолгаМед Альтернатива» маршрут выстроен вокруг принципа минимально достаточных вмешательств: сначала безопасный старт и телескрининг, затем очный осмотр с выбором контура инфузии и, только после теста переносимости, — основная терапия. Такой подход уменьшает реактивность организма, снижает риск побочных ощущений и делает результат предсказуемым для пациента и близких. Команда работает круглосуточно, выезжает на немаркированном транспорте, общение ведётся через одного доверенного человека, а документы оформляются в нейтральной терминологии без стигматизирующих формулировок.
Получить дополнительную информацию – http://narkologicheskaya-pomoshh-v-kazani16.ru/skoraya-narkologicheskaya-pomoshh-kazan/
Наши специалисты оценивают клинические признаки запоя уже при первом осмотре — измеряют пульс, артериальное давление и насыщение кислородом, осматривают кожу и слизистые оболочки на предмет обезвоживания. Специальные тесты на когнитивные функции позволяют определить степень дезориентации и риск развития острых психотических реакций.
Получить дополнительные сведения – http://тайный-вывод-из-запоя.рф/vyvod-iz-zapoya-na-domu-v-samare/
thank you.
С пациентом работают профильные специалисты, которые оценивают состояние и подбирают безопасный план помощи.
Узнать больше – kapelnica-dlya-vyvoda-iz-zapoya
В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
Ознакомьтесь поближе – центр вывода из запоя
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Что скрывают от вас? – частный наркологический центр екатеринбург
В этой статье рассматриваются различные аспекты избавления от зависимости, включая физические и психологические методы. Мы обсудим поддержку, мотивацию и стратегии, которые помогут в процессе выздоровления. Читатели узнают, как преодолеть трудности и двигаться к новой жизни без зависимости.
Прочесть заключение эксперта – медицинская наркологическая клиника
Решение о выезде принимает врач с учётом симптомов и бытовых ограничений. Если совпадает хотя бы две позиции из списка ниже, лучше не откладывать звонок — управляемость состояния снижается каждый час.
Исследовать вопрос подробнее – вывод из запоя
Наши специалисты в Челябинске готовы ответить на все ваши вопросы и предоставить подробную информацию о процессе лечения. Мы всегда готовы проконсультировать вас и ответить на все ваши вопросы.
Исследовать вопрос подробнее – вывод из запоя недорого челябинск
Особенность петербургского контекста — большая доля интеллектуального труда и проектной занятости. Мы учитываем это при выборе методики: отдаем предпочтение схемам, которые не «глушат» когнитивную активность и позволяют быстро возвращаться к задачам. Если требуются краткие больничные листы, предоставляем корректные медицинские документы без «ярлыков».
Подробнее – кодирование от алкоголизма адрес
Чем дольше человек употребляет алкоголь, тем больше факторов врач учитывает перед постановкой капельницы. Запой продолжительностью несколько дней и длительного характера способен сопровождаться выраженным обезвоживанием, изменением концентрации натрия, калия и магния, нарушением ритма сердца и обменными проблемами. Капельница в таких условиях требует особенно тщательного выбора компонентов. Врач клиники оценивает не только последние сутки, но и характер регулярного употребления за недели или месяцев, наличие предыдущих эпизодов абстиненции и реакцию организма на лечение.
Дополнительная информация – https://3.kapelnica-ot-zapoya-v-moskve14.ru/
Наркологическая клиника в клинике в Санкт-Петербурге предлагает широкий спектр медицинских и психотерапевтических услуг, направленных на устранение химической зависимости и стабилизацию психоэмоционального состояния пациентов. Современные методики терапии, внедрённые в практику, позволяют добиваться устойчивых результатов без чрезмерного медикаментозного вмешательства и с учётом индивидуальных особенностей каждого человека. Основой лечения является комплексный подход, включающий детоксикацию, коррекцию поведения и восстановление когнитивных функций. Применение мультидисциплинарных схем обеспечивает снижение риска рецидива и повышение мотивации к трезвому образу жизни.
Подробнее – https://narkologicheskaya-klinika-v-spb16.ru/
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Дополнительная информация – https://narkologicheskaya-klinika-v-krasnoyarske18.ru/
В зависимости от показателей обследования капельница может решать несколько задач:
Подробнее – kapelnicu-ot-zapoya-cena-moskva
Мы намеренно избегаем «сильных коктейлей на всякий случай». Состав инфузии подбирается под доминирующие симптомы текущего часа — выраженную жажду и редкий диурез, «качели» давления и тахикардию, рвоту и отказ воды, ночную тревогу и бессонницу, утреннюю «туманность» и когнитивную рассеянность. Каждый модуль имеет одну цель и одно «окно оценки», чтобы было понятно, что именно помогает, а что нужно скорректировать. Если отклик ниже ожидаемого, врач меняет только один параметр — темп, последовательность, водный режим или поведенческую поддержку — и фиксирует результат.
Ознакомиться с деталями – narkologicheskaya-pomoshh-v-kazani16.ru/
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Что ещё? Расскажи всё! – номер телефона нарколога на дом
casino https://seo-tools.ro/en/domain/spinbitcasino-aus.com
Этот метод направлен на выявление и замену негативных мыслей и стереотипов поведения, связанных с потреблением алкоголя. Пациент учится отслеживать свои эмоциональные реакции и заменять деструктивные установки конструктивными стратегиями противостояния стрессу.
Получить дополнительную информацию – http://lechenie-alkogolizma-sochi0.ru
Обзор посвящён процессу восстановления после зависимостей. Мы расскажем о различных этапах реабилитации, поддерживающих ресурсах и важности мотивации в достижении устойчивого выздоровления.
Детали по клику – лучшее кодирование от алкоголизма
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Получить больше информации – нарколог на дом в Красноярске
Клиника начинает лечение с оценки жалоб и анамнеза. Диагностика помогает врачу определить риски и выбрать подходы. Специалисты изучают сведения из обследования и предыдущие назначения. Следует предоставить точные сведения.
Ознакомиться с деталями – http://narkologicheskaya-klinika-v-krasnoyarske22.ru
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Получить больше информации – vyvod-iz-zapoya-s-vyezdom-balashiha
Этапы терапии выглядят следующим образом:
Ознакомиться с деталями – анонимная наркологическая клиника самара
Для наглядности ниже приведена таблица с основными направлениями медикаментозной терапии и их эффектами:
Узнать больше – https://narkologicheskaya-klinika-v-samare16.ru/chastnaya-narkologicheskaya-klinika-samara/
Общаемся без осуждения и давления, сохраняя спокойную атмосферу для пациента и семьи.
Изучить вопрос подробнее – капельница от запоя на дом москва
Каждый пациент проходит последовательный процесс лечения, где основное внимание уделяется безопасности, контролю состояния и постепенной адаптации. При поступлении проводится диагностика с оценкой степени зависимости, сопутствующих патологий и психологических факторов, влияющих на развитие заболевания. На основании полученных данных формируется персонализированный план терапии, включающий медикаментозные и немедикаментозные методы.
Узнать больше – наркологическая клиника цены санкт-петербург
Мы сознательно фиксируем не только «медицинские» параметры, но и бытовые маркеры: сколько воды выпито, как переносится тёплая пища малыми порциями, какой свет в комнате перед сном. Эти детали активно упоминаются в клинических рекомендациях, потому что нередко именно они решают исход первой ночи лучше, чем попытка «усилить» таблеткой.
Получить дополнительные сведения – частная наркологическая клиника
Срочная наркологическая помощь — это не «универсальная капельница», а управляемый клинический процесс, где каждое действие проверяется измеримыми маркерами и выполняется в правильной последовательности. В наркологической клинике «ВолгаМед Альтернатива» маршрут выстроен вокруг принципа минимально достаточных вмешательств: сначала безопасный старт и телескрининг, затем очный осмотр с выбором контура инфузии и, только после теста переносимости, — основная терапия. Такой подход уменьшает реактивность организма, снижает риск побочных ощущений и делает результат предсказуемым для пациента и близких. Команда работает круглосуточно, выезжает на немаркированном транспорте, общение ведётся через одного доверенного человека, а документы оформляются в нейтральной терминологии без стигматизирующих формулировок.
Изучить вопрос глубже – https://narkologicheskaya-pomoshh-v-kazani16.ru/narkologicheskaya-sluzhba-kazan/
casino https://seoanalyser.fotograaf-huren.nl/en/domain/spinbitcasino-aus.com
Вызов нарколога позволяет начать лечение в привычной обстановке. Специалист уточняет характер употребления алкоголя, длительность запоя, возраст, хронические заболевания, принимаемые препараты и другие данные. После осмотра врач определяет, можно ли продолжать лечение дома либо необходима госпитализация в стационар. Медицинская помощь предоставляется конфиденциально, а условия анонимности и обработки персональных данных можно узнать при оформлении заявки.
Подробнее – нарколог на дом вывод