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://narkologicheskaya-klinika-omsk0.ru/narkologi-omska/
Когда запой угрожает здоровью и жизни, оперативное вмешательство становится критически важным. В Донецке ДНР опытные специалисты по наркологии оказывают профессиональную помощь на дому, обеспечивая качественную детоксикацию организма, стабилизацию жизненно важных функций и психологическую поддержку. Такой формат лечения позволяет пациенту получить комплексную терапию в условиях комфорта, сохраняя полную конфиденциальность и избегая лишних формальностей.
Подробнее тут – http://vyvod-iz-zapoya-donetsk-dnr0.ru/vyvod-iz-zapoya-czena-doneczk-dnr/
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Погрузитесь в детали – http://tendernoe-soprovozhdenie-rostov-na-donu.ru
Мы собираем терапию как конструктор из узких модулей. Каждый модуль запускается только при показаниях и выключается сразу после достижения цели — это защищает от «инерции лечения» и возвращает организму пространство для самостоятельной регуляции. Ниже — ориентировочная сетка модулей; фактический состав и дозировки определяет врач на очном осмотре.
Разобраться лучше – http://narkologicheskaya-clinika-v-rostove-na-donu16.ru
Этот список — памятка на холодильник. Он не раскрывает диагноз, но точно описывает поводы для связи с дежурным врачом. Своевременная эскалация — часть безопасности, а не «подстраховка». Если сомневаетесь — лучше позвонить.
Изучить вопрос глубже – врач на дом капельница от запоя в челябинске
Наркологическая клиника в клинике в Екатеринбурге — это специализированное медицинское учреждение, где проводится диагностика, лечение и реабилитация людей, страдающих алкогольной или наркотической зависимостью. Комплексный подход включает не только медикаментозную терапию, но и психотерапевтические методики, направленные на восстановление личности и возвращение пациента к социальной активности. Каждое вмешательство проводится с учётом физического состояния, психологического профиля и стадии заболевания. Работа специалистов основана на принципах анонимности, медицинской этики и научно доказанных протоколов лечения.
Углубиться в тему – http://narkologicheskaya-klinika-v-ekb16.ru
Экстренная капельничная терапия от запоя на дому в Луганске ЛНР имеет ряд преимуществ, благодаря которым лечение становится максимально оперативным и безопасным:
Углубиться в тему – капельница от запоя стоимость
Ключевой критерий правильного выбора — способность обеспечить контроль динамики. Если состояние нестабильное, симптомы нарастают волнами, есть риск резкого ухудшения ночью или уже наблюдаются опасные признаки (например, выраженная спутанность сознания, судороги, боли в груди, нарушения дыхания), безопаснее стационар. Если риски умеренные, пациент контактный и способен соблюдать рекомендации, возможна выездная помощь и дальнейшее наблюдение по плану.
Выяснить больше – http://
Услуга вывода из запоя на дому в Мурманске предполагает комплексное лечение алкогольной интоксикации, направленное на оперативное снижение уровня токсинов в организме. Сразу после поступления вызова специалист проводит детальный осмотр, собирает анамнез и определяет степень интоксикации. На основании собранной информации разрабатывается индивидуальный план терапии, который может включать капельничное введение медикаментов, контроль жизненно важных показателей и психологическую поддержку. Такой комплекс мер позволяет стабилизировать состояние пациента и начать процесс выздоровления без необходимости посещения стационара.
Узнать больше – вывод из запоя клиника в мурманске
Преимущество
Подробнее тут – https://vyvod-iz-zapoya-sochi777.ru/vyvod-iz-zapoya-anonimno-v-sochi/
Основные показания для обращения в нашу клинику включают.
Ознакомиться с деталями – https://alko-konsultaciya.ru/vivod-iz-zapoya-v-kruglosutochno-v-smolenske
Чрезмерное употребление алкоголя приводит к отравлению организма, негативно сказываясь на работе внутренних органов, уровне жидкости и общем самочувствии. Длительные запои сопровождаются тяжёлыми последствиями, включая нарушения сердечной деятельности, сбои в работе печени, скачки давления и психоэмоциональные расстройства.
Подробнее можно узнать тут – поставить капельницу от запоя на дому в красноярске
Пациенты получают помощь при:
Детальнее – наркологические клиники алкоголизм в новосибирске
Лечение алкоголизма в Сергиевом Посаде важно рассматривать не как разовую «чистку» или временный перерыв, а как последовательный маршрут. Самый уязвимый период — первые 24–72 часа после прекращения употребления: днём может стать легче, но к вечеру и ночью волной возвращаются тревога и бессонница, усиливается внутреннее напряжение, появляются телесные симптомы. В этот момент человек чаще всего срывается, потому что ему кажется, что «иначе не выдержу». Поэтому качественная помощь строится так, чтобы пациент прошёл вечер и ночь безопасно, с понятными ориентирами и медицинской поддержкой, а затем перешёл к восстановлению и профилактике рецидива.
Подробнее – клиника лечения алкоголизма цена
Оперативное вмешательство позволяет быстро начать детоксикацию и предотвратить развитие опасных осложнений.
Детальнее – https://vyvod-iz-zapoya-sochi777.ru/vyvod-iz-zapoya-cena-v-sochi/
Вызов специалиста на дом рекомендуется, если запой затягивается и самостоятельное прекращение пьянства становится невозможным. Своевременное обращение помогает предотвратить ухудшение состояния, развитие хронических осложнений и негативное воздействие на психику.
Углубиться в тему – врач нарколог на дом
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Полный разбор — только здесь – тендерное сопровождение под ключ
Современная наркология в клинике ориентирована на всестороннее восстановление физического и психологического здоровья пациентов. Медицинское сопровождение включает этапы детоксикации, медикаментозной терапии, психотерапевтической поддержки и последующей реабилитации. Такой подход способствует не только устранению физической зависимости, но и проработке психологических причин, что снижает риск рецидивов.
Получить дополнительные сведения – наркологическая клиника стационар в новосибирске
Формат помощи выбирают не по принципу «как удобнее», а по тому, насколько стабильно состояние и каков риск осложнений. Один и тот же диагноз «запой» может выглядеть по-разному: у кого-то ведущая проблема — давление и тахикардия, у другого — выраженная тревога и бессонница, у третьего — сильная тошнота и обезвоживание, у четвёртого — спутанность сознания или признаки психотических симптомов. Именно поэтому первое, что делает врач, — собирает информацию о длительности употребления, времени последнего приёма, сопутствующих заболеваниях, аллергиях и лекарствах, которые человек принимал самостоятельно. После этого проводится очная оценка: на дому или в клинике.
Получить дополнительные сведения – http://narkologicheskaya-klinika-pushkino12.ru/
После стабилизации состояния назначаются препараты, укрепляющие печень, сердце и нервную систему. Обязателен контроль за самочувствием пациента в течение суток и более.
Разобраться лучше – наркологическая клиника цены в воронеже
Участие в государственных и коммерческих процедурах требует точной подготовки, понимания законодательства и внимательной работы с документами. Для многих компаний самостоятельная работа с закупками становится сложной задачей: необходимо отслеживать новые закупки, анализировать требования, оформлять документы и взаимодействовать с площадками.
Глубже в тему — здесь – комплексное тендерное сопровождение
При наркотической зависимости состояние может быть менее предсказуемым, особенно если были сочетания веществ или длительное употребление. Часто добавляются нарушения сна, тревожные и депрессивные симптомы, резкие перепады настроения, импульсивность. В таких ситуациях опасно ориентироваться на «домашние схемы» и советы из сети: без оценки рисков можно пропустить осложнения или ухудшить состояние.
Получить больше информации – наркологическая клиника отзывы
Запой — это острое состояние, при котором контроль над потреблением алкоголя утрачивается, что может привести к опасным последствиям для здоровья. В Иркутске специалисты наркологической помощи предлагают услугу вызова нарколога на дом, что позволяет оперативно начать лечение в комфортной домашней обстановке, сохраняя полную конфиденциальность. Такой подход позволяет быстро стабилизировать состояние пациента и минимизировать риск осложнений.
Разобраться лучше – vrach-narkolog-na-dom irkutsk
Игнорирование этих симптомов может привести к тяжелым последствиям для здоровья, включая алкогольный психоз и повреждение внутренних органов.
Получить дополнительные сведения – капельница от запоя на дому недорого
Игнорирование этих симптомов может привести к тяжелым последствиям для здоровья, включая алкогольный психоз и повреждение внутренних органов.
Получить больше информации – капельница от запоя на дому недорого краснодар
Зависимость меняет работу нервной системы: алкоголь начинает выполнять функцию регулятора — сна, тревоги, настроения и даже физического самочувствия. Когда человек прекращает пить, организм реагирует отменой, и именно она подталкивает вернуться к употреблению. Сила воли в этой точке часто проигрывает физиологии: тревога растёт, сон исчезает, сердце бьётся чаще, давление «скачет», появляется ощущение угрозы.
Узнать больше – http://lechenie-alkogolizma-noginsk12.ru
В клинике «Вектор Восстановления» логика маршрута строится по этапам. Первый этап — оценка состояния и рисков: длительность употребления, тяжесть отмены, давление, пульс, обезвоживание, хронические заболевания, прошлые осложнения, препараты, которые пациент уже принимал дома. Второй этап — стабилизация: снижение интоксикации, коррекция состояния, восстановление сна, уменьшение тревоги. Третий этап — сопровождение первых суток и переход к восстановлению: план на 24–72 часа, контроль динамики и профилактика «вечернего отката». Четвёртый этап — работа с зависимостью как с привычкой и системой поведения: триггеры, стресс, режим, поддержка семьи, навыки отказа, профилактика рецидива.
Углубиться в тему – клиника лечения алкоголизма цена
thx
thx
Процесс оказания срочной помощи нарколога на дому в Мариуполе построен по отлаженной схеме, которая включает несколько ключевых этапов, направленных на быстрое и безопасное восстановление здоровья пациента.
Подробнее тут – http://narcolog-na-dom-mariupol00.ru/vyzov-narkologa-na-dom-mariupol/
В Красноярске используется широкий спектр современных методик для вывода из запоя. Комплексное лечение включает в себя несколько этапов, позволяющих обеспечить быструю детоксикацию и восстановление организма. Основное внимание уделяется индивидуальному подходу, что позволяет адаптировать терапию под конкретные потребности каждого пациента.
Исследовать вопрос подробнее – вывод из запоя вызов в красноярске
Помимо физической детоксикации, лечение запоя требует комплексной психологической поддержки. Психотерапевты работают с пациентами для выявления глубинных причин зависимости, помогают снизить уровень стресса и развивают навыки самоконтроля, что критически важно для предотвращения рецидивов.
Детальнее – вывод из запоя клиника
Такой комплексный подход позволяет не только купировать острые состояния, но и устранить внутренние факторы, провоцирующие развитие зависимости. После стабилизации состояния пациент переходит к этапу психотерапевтической коррекции, направленной на предотвращение рецидивов.
Углубиться в тему – платная наркологическая клиника в екатеринбурге
В статье-обзоре представлены данные сомнительной актуальности и факты без явной взаимосвязи. Читатель ознакомится с разными мнениями, хотя они вряд ли существенно изменят его представление о теме.
Подробнее читать – основные строительные материалы
Этот текст содержит различную информацию, которая, возможно, покажется любопытной, но в целом не меняет восприятия привычных вещей. Предлагаем просто получить удовольствие от чтения, не ожидая особой пользы.
Вот – скидки
Процесс начинается с оценки состояния. Врач уточняет длительность запоя, время последнего приёма алкоголя, выраженность симптомов, наличие хронических заболеваний, перенесённых осложнений, аллергий, принимаемых препаратов. После этого проводится осмотр: давление, пульс, дыхание, температура, уровень сознания, признаки обезвоживания, неврологический статус. На основании этой картины подбирается план детоксикации и поддержки.
Узнать больше – вывод из запоя в стационаре москва
В клинике «Пульс» процесс оказания помощи начинается сразу после вашего обращения. Наша бригада оперативно выезжает на дом, где врач проводит первичный осмотр пациента: измеряет давление, пульс, оценивает степень интоксикации и собирает анамнез. На основе полученных данных подбирается индивидуальный состав капельницы.
Получить дополнительные сведения – выезд на дом капельница от запоя
В домашних попытках обычно есть две крайности. Первая — «пить понемногу, чтобы не трясло», что затягивает запой и усиливает истощение. Вторая — резко прекратить и «перетерпеть», после чего отмена усиливается волной, человек пугается и снова пьёт. Врач помогает выйти из этих крайностей: стабилизировать состояние и дать маршрут, который снижает риск возврата к алкоголю из-за бессонницы и паники.
Подробнее – https://narkologicheskaya-klinika-noginsk12.ru/narkologicheskie-kliniki-cena-v-noginske/
В клинике проводится лечение различных видов зависимости с применением современных методов и препаратов. Ниже перечислены основные направления, отражающие широту оказываемой медицинской помощи.
Детальнее – лечение в наркологической клинике
В клинике проводится лечение различных видов зависимости с применением современных методов и препаратов. Ниже перечислены основные направления, отражающие широту оказываемой медицинской помощи.
Выяснить больше – https://narkologicheskaya-klinika-novosibirsk0.ru
Наркологическая клиника в Новосибирске — это специализированное медицинское учреждение, предоставляющее комплексную помощь пациентам с различными формами зависимости. Использование современных методов диагностики и терапии позволяет достигать устойчивых результатов в лечении алкогольной, наркотической и других зависимостей. В клинике «Преодоление» работают опытные специалисты, разрабатывающие индивидуальные программы с учётом особенностей каждого пациента.
Разобраться лучше – платная наркологическая клиника в новосибирске
Для повышения эффективности терапии применяются физиотерапевтические процедуры и витаминные комплексы, которые ускоряют восстановление и повышают сопротивляемость организма стрессам.
Детальнее – наркологическая клиника нарколог
Лечение начинается с внутривенных инфузий, вводимых с целью скорейшего выведения продуктов распада алкоголя. Препараты корректируют водно-электролитный баланс, поддерживают работу печени и почек, а также нормализуют работу сердечно-сосудистой системы. Все процедуры проводятся под наблюдением квалифицированного персонала, что обеспечивает максимальную безопасность терапии.
Углубиться в тему – вывод из запоя красноярск
Клинический опыт показывает: чем раньше начато лечение, тем выше шансы на устойчивую ремиссию. Промедление может привести к тяжёлым осложнениям — физическим, психическим и социальным.
Получить дополнительные сведения – https://narkologicheskaya-klinika-voronezh9.ru/anonimnaya-narkologicheskaya-klinika-voronezh/
Финансовые инструменты позволяют заказчику убедиться в надежности участника и его готовности выполнить обязательства по контракту. При этом грамотное сопровождение снижает вероятность финансовых рисков и помогает правильно оформить документы для банка.
Получите экспертное мнение – тендерное сопровождение ип
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Не оставайтесь в неведении – https://tendernoe-soprovozhdenie-rostov-na-donu.ru
Чтобы избежать опасных последствий, необходимо постепенно и безопасно вывести алкоголь из организма. Клиника «Ясный горизонт» предлагает профессиональный вывод из запоя в Новокузнецке как в условиях стационара, так и с выездом нарколога на дом.
Изучить вопрос глубже – вывод из запоя капельница на дому
Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
Разберитесь досконально – услуги тендерного сопровождения
Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
Разгадайте все загадки – комплексное тендерное сопровождение
Перед перечнем важно пояснить: эти симптомы не означают, что всё обязательно закончится осложнением, но они указывают на высокий риск и требуют профессиональной оценки состояния.
Подробнее можно узнать тут – https://vyvod-iz-zapoya-klin12.ru/vyvod-iz-zapoya-na-domu-v-klinu/