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://narkolog-na-dom-moskva-21.ru/
Выезд нарколога начинается с осмотра пациента. Доктора измеряют давление, пульс, оценивают уровень сознания и выраженность симптомов. На основании этих данных формируется план лечения, который реализуется сразу на месте. Такой подход позволяет быстро перейти к стабилизации состояния без лишних этапов.
Детальнее – вывод из запоя на дому анонимно в санкт-петербурге
В этой информационной статье вы найдете интересное содержание, которое поможет вам расширить свои знания. Мы предлагаем увлекательный подход и уникальные взгляды на обсуждаемые темы, побуждая пользователей к активному мышлению и критическому анализу.
Хочешь знать всё? – вывод из запоя на дому недорого
Детоксикация в стационаре — это не разовая процедура, а последовательный процесс, разделенный на диагностику, активное выведение токсинов, стабилизацию функций и подготовку к противорецидивному этапу. При поступлении врач проводит первичный осмотр, собирает подробный анамнез, оценивает неврологический статус и при необходимости назначает лабораторные исследования. На основе полученных данных формируется индивидуальный протокол, учитывающий возраст, вес, длительность запоя, наличие сопутствующих патологий и переносимость лекарственных средств. Мы применяем только сертифицированные медикаменты, зарегистрированные в РФ, и строго соблюдаем клинические рекомендации Минздрава, исключая псевдонаучные методики. Все вмешательства документируются в электронной медицинской карте, доступ к которой имеют только лечащие специалисты.
Выяснить больше – вывод из запоя в стационаре клиника
Наиболее частыми причинами обращения становятся запой, тяжелый похмельный синдром, тремор, выраженная слабость, тревога, бессонница, нестабильное давление, учащенный пульс, тошнота и признаки обезвоживания. Эти проявления могут сочетаться между собой и усиливаться после прекращения употребления алкоголя, особенно если эпизод длился несколько дней.
Узнать больше – вызов нарколога на дом в москве
Поводом для обращения обычно становятся слабость, тремор, тревога, бессонница, учащенный пульс, нестабильное давление, тошнота и ощущение физического истощения. Эти проявления часто усиливаются после прекращения употребления алкоголя или на фоне затянувшегося запоя.
Подробнее – вызвать нарколога на дом в москве
Эта статья сочетает познавательный и занимательный контент, что делает ее идеальной для любителей глубоких исследований. Мы рассмотрим увлекательные аспекты различных тем и предоставим вам новые знания, которые могут оказаться полезными в будущем.
Связаться за уточнением – капельница от похмелья анонимно
В статье рассматриваются различные стратегии борьбы с зависимостями, включая проверенные методы и реальные истории успеха. Читатель узнает, какие подходы наиболее эффективны и как начать путь к выздоровлению.
Узнать из первых рук – капельница от алкоголя воронеж
thx
После первичной стабилизации важен второй шаг — закрепление результата. Если человек просто почувствовал облегчение, но не восстановил сон, не снизил тревогу и не понял, как действовать вечером и ночью, запой часто возвращается. Поэтому клиника делает акцент на понятном маршруте: что происходит с организмом в ближайшие сутки, как меняется самочувствие, какие признаки требуют повторной оценки и как снизить риск повторного употребления.
Разобраться лучше – наркологические клиники помощь
Основные показания для проведения процедуры:
Разобраться лучше – капельница от похмелья в воронеже
Основные показания для проведения процедуры:
Подробнее – капельница от похмелья анонимно
Процедура вывода из запоя на дому включает несколько этапов, каждый из которых имеет важное значение для общего улучшения состояния пациента. Главная цель — это не только устранение симптомов абстиненции, но и восстановление нормальной работы органов и систем организма. Врач, который проводит процедуру, использует медикаментозные средства для восстановления водно-солевого баланса, нормализации работы печени, почек и других органов, пострадавших от алкоголя. Также в процесс включаются препараты, которые способствуют снятию нервного напряжения и психоэмоционального стресса.
Получить больше информации – https://vyvod-iz-zapoya-na-domu-ekaterinburg-19.ru/
Вывод из запоя на дому в Санкт-Петербурге с выездом специалиста, стабилизацией состояния и медицинской поддержкой в наркологической клинике «Частный медик 24»
Выяснить больше – нарколог на дом вывод из запоя
В этой статье мы говорим о важности поддержки в процессе выздоровления. Рассматриваются семьи, группы поддержки, специалисты и онлайн-ресурсы, которые могут сыграть решающую роль в избавлении от зависимости.
Подробности по ссылке – прокапаться на дому
В этой статье мы обсудим процесс восстановления после зависимостей, акцентируя внимание на различных методах и подходах к реабилитации. Читатели узнают, как создать план выздоровления и использовать полезные ресурсы для достижения устойчивых изменений.
Расширить кругозор по теме – прокапаться от алкоголя воронеж
Эта публикация исследует взаимосвязь зависимости и психологии. Мы обсудим, как психологические аспекты влияют на появление зависимостей и процесс выздоровления. Читатели смогут понять важность профессиональной поддержки и применения научных подходов в терапии.
Следуйте по ссылке – вызвать врача нарколога на дом
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Погрузиться в научную дискуссию – нарколог на дом цены
Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
Только для своих – капельница от алкоголя на дому воронеж
casino https://telegra.ph/Napoléon-Games-révolutionne-lunivers-des-cartes-gratter-04-16-3
В обзорной статье вы найдете собрание важных фактов и аналитики по самым разнообразным темам. Мы рассматриваем как современные исследования, так и исторические контексты, чтобы вы могли получить полное представление о предмете. Погрузитесь в мир знаний и сделайте шаг к пониманию!
Углубить понимание вопроса – прокапаться от алкоголя цены
Нарколог на дом в Москве: круглосуточный выезд, детоксикация и лечение зависимостей в наркологической клинике «Клиника доктора Калюжной».
Подробнее тут – запой нарколог на дом
Основой стационарной детоксикации является инфузионная терапия, направленная на выведение токсинов, коррекцию водно-электролитного баланса и восстановление метаболических процессов. Капельницы включают кристаллоидные растворы, витамины группы B и C, гепатопротекторы, антиоксиданты и симптоматические препараты для нормализации сна. Состав и скорость введения рассчитываются индивидуально, чтобы избежать перегрузки сердечно-сосудистой системы. При выраженной абстиненции подключаются средства для коррекции нейромедиаторного обмена, однако их применение строго дозируется. Дозировки пересматриваются ежедневно на основе динамики показателей, что обеспечивает безопасность и эффективность терапии.
Изучить вопрос глубже – быстрый вывод из запоя в стационаре санкт-петербург
Домашний формат помощи рассматривают тогда, когда человеку тяжело добраться до медицинского учреждения, состояние ухудшается после нескольких дней употребления спиртного или родственникам требуется очная оценка без промедления. После осмотра становится ясно, допустима ли помощь на дому, требуется ли капельница, можно ли ограничиться наблюдением в домашних условиях или нужен другой маршрут помощи. Вопрос о том, как вызвать специалиста, нередко возникает в ситуациях, когда состояние нарастает быстро и требуется решение без откладывания. Если подобные эпизоды повторяются, дальнейшее обсуждение может касаться не только текущего состояния, но и лечения алкоголизма, работы с зависимостью и более длительной программы восстановления.
Ознакомиться с деталями – нарколог на дом цена в москве
Дальше задача — восстановить управляемость состояния. Это включает снижение интоксикации, коррекцию обезвоживания, выравнивание показателей, уменьшение тревоги и нормализацию сна. Но чтобы результат закрепился, необходим второй слой: работа с триггерами (стресс, конфликт, усталость, одиночество), профилактика «вечернего отката», поддержка режима и понимание, какие симптомы допустимы, а какие требуют повторной оценки. Именно это отличает лечение зависимости от разовой попытки «стало легче — дальше как-нибудь».
Углубиться в тему – где находится наркологическая клиника
Нарколог на дом в Москве: срочный выезд врача, капельницы и помощь при запое в наркологической клинике «Клиника доктора Калюжной».
Ознакомиться с деталями – нарколог на дом анонимно в москве
Выбор формата — ключевой момент. Нельзя ориентироваться только на удобство, потому что в ряде случаев «домашний» вариант создаёт иллюзию безопасности, когда на самом деле нужен контроль. В клинике «Свет Баланса» формат подбирается по состоянию: оценивают симптомы, риски осложнений, способность пациента соблюдать назначения и необходимость наблюдения.
Детальнее – http://www.domen.ru
Процедура вывода из запоя на дому включает несколько ключевых этапов, которые обеспечивают максимально быстрое и безопасное восстановление пациента. Эти этапы тщательно контролируются врачом, что минимизирует риски и помогает достичь наилучших результатов.
Детальнее – вывод из запоя на дому круглосуточно
В этой статье мы рассмотрим современные достижения в области медицины, включая инновационные методы лечения и диагностики. Мы обсудим важность профилактики заболеваний и роль технологий в улучшении качества здравоохранения. Читатели узнают о влиянии медицины на повседневную жизнь и ее значение для современного общества.
Смотрите также… – вызвать нарколога на дом екатеринбург
Этот интересный отчет представляет собой сборник полезных фактов, касающихся актуальных тем. Мы проанализируем данные, чтобы вы могли сделать обоснованные выводы. Читайте, чтобы узнать больше о последних трендах и значимых событиях!
Уточнить детали – капельница от запоя на дому
Этот информативный текст сочетает в себе темы здоровья и зависимости. Мы обсудим, как хронические заболевания могут усугубить зависимости и наоборот, как зависимость может влиять на общее состояние здоровья. Читатели получат представление о комплексном подходе к лечению как физического, так и психического состояния.
Нажмите, чтобы узнать больше – нарколог на дом круглосуточно екатеринбург
Этот информативный текст отличается привлекательным содержанием и актуальными данными. Мы предлагаем читателям взглянуть на привычные вещи под новым углом, предоставляя интересный и доступный материал. Получите удовольствие от чтения и расширьте кругозор!
Кликни и узнай всё! – прокапаться воронеж
Осмотр на дому особенно важен в тех случаях, когда больному трудно вставать, пить воду, принимать пищу, спокойно лежать или ориентироваться в собственном состоянии. Чем тяжелее переносится выход из употребления, тем выше значение очной оценки, потому что по телефону невозможно полноценно определить границы безопасной помощи. При выраженных симптомах может потребоваться срочный выезд, чтобы вовремя оценить риски и определить, допустим ли вывод из запоя дома или необходимо наблюдение в стационаре.
Детальнее – вызов нарколога на дом москва
casino https://telegra.ph/Stagnant-Ireland-Gambling-Reward-Purchase-Tendencies-04-16
Помощь на дому рассматривают при состояниях, которые сопровождаются заметным ухудшением самочувствия после алкоголя. Это может быть запой на протяжении нескольких дней, тяжелое похмелье, дрожь в руках, нарушение сна, выраженная слабость, тревога, тошнота, сухость во рту, снижение аппетита и признаки обезвоживания. В таких случаях осмотр врача нужен для того, чтобы оценить тяжесть состояния и понять, безопасно ли оставаться дома.
Исследовать вопрос подробнее – вызвать нарколога на дом москва
Наркологическая клиника нужна, чтобы разорвать этот сценарий безопасно и без хаотичных решений. В клинике «Баланс Плюс» лечение выстраивается по этапам: оценка состояния и рисков, стабилизация (в том числе детоксикация при показаниях), подбор формата — стационар, амбулаторно или помощь на дому — и обязательно план на первые 24–72 часа. Эти дни критичны: именно в этот период чаще всего усиливаются тревога и бессонница, и без понятных ориентиров человек легко возвращается к алкоголю или веществам «чтобы отпустило».
Узнать больше – наркологическая клиника орехово
Далее выполняется медицинская детоксикация: корректируется водно-электролитный баланс, снимается интоксикация, поддерживается работа сердечно-сосудистой системы, снижается тремор, стабилизируется сон и тревожность. Важно, что схема подбирается индивидуально: при разных рисках объём поддержки будет различаться. В ряде случаев достаточно амбулаторного наблюдения и рекомендаций, в других — нужен стационар, чтобы контролировать динамику и вовремя корректировать терапию.
Подробнее можно узнать тут – москва вывод из запоя на дому
Дальше задача — восстановить управляемость состояния. Это включает снижение интоксикации, коррекцию обезвоживания, выравнивание показателей, уменьшение тревоги и нормализацию сна. Но чтобы результат закрепился, необходим второй слой: работа с триггерами (стресс, конфликт, усталость, одиночество), профилактика «вечернего отката», поддержка режима и понимание, какие симптомы допустимы, а какие требуют повторной оценки. Именно это отличает лечение зависимости от разовой попытки «стало легче — дальше как-нибудь».
Получить дополнительные сведения – https://narkologicheskaya-klinika-sergiev-posad12.ru/chastnaya-narkologicheskaya-klinika-v-sergievom-posade/
casino https://graph.org/MisterGreen-and-the-Aviator-Crash-Challenge-Wonder-04-16
casino https://graph.org/MisterGreen-Casino-og-Bonus-Buy-Alternativer-04-16
Лечение алкоголизма в Сергиевом Посаде важно рассматривать не как разовую «чистку» или временный перерыв, а как последовательный маршрут. Самый уязвимый период — первые 24–72 часа после прекращения употребления: днём может стать легче, но к вечеру и ночью волной возвращаются тревога и бессонница, усиливается внутреннее напряжение, появляются телесные симптомы. В этот момент человек чаще всего срывается, потому что ему кажется, что «иначе не выдержу». Поэтому качественная помощь строится так, чтобы пациент прошёл вечер и ночь безопасно, с понятными ориентирами и медицинской поддержкой, а затем перешёл к восстановлению и профилактике рецидива.
Разобраться лучше – lechenie-alkogolizma-sergiev-posad
thx
Нарколог на дом в Москве — это формат врачебной помощи, который рассматривают при состояниях после употребления алкоголя, когда больному требуется осмотр без посещения клиники. Чаще всего обращение связано с запоем, тяжелым похмельным синдромом, слабостью, нарушением сна, тремором, тревогой, тошнотой, сухостью во рту, скачками давления, сердцебиением и общим ухудшением самочувствия. Дальнейшая тактика определяется после осмотра, с учетом длительности употребления алкоголя, возраста, сопутствующих заболеваний и выраженности текущих симптомов.
Получить больше информации – вызов нарколога на дом москва
Стационар выбирают, когда нужно наблюдать состояние круглосуточно или есть вероятность резкого ухудшения. Это может быть длительный запой, выраженная абстиненция, нестабильное давление, подозрение на осложнения со стороны сердца и сосудов, история судорог, спутанность сознания, психотические симптомы. Преимущество стационара — контроль динамики и возможность быстро менять терапию, если план «не заходит». Кроме того, в стационаре проще выстроить полноценный переход к лечению зависимости: не просто снять острые проявления, а сразу подключить психологическое сопровождение и подготовить пациента к следующему этапу.
Подробнее – narkologicheskaya-klinika-v-moskve-ceny
К основным показаниям относятся:
Подробнее можно узнать тут – http://vyvod-iz-zapoya-na-domu-sankt-peterburg-8.ru/
Помощь на дому рассматривают при состояниях, которые возникают после длительного употребления алкоголя или тяжелого алкогольного эпизода. Чаще всего это запой, выраженная интоксикация, бессонница, тревога, слабость, тремор, тошнота, сухость во рту, отсутствие аппетита, нестабильное давление и сердцебиение. Врачебный осмотр требуется в тех случаях, когда больному трудно восстановиться самостоятельно, а самочувствие продолжает ухудшаться.
Исследовать вопрос подробнее – вызов нарколога на дом в екатеринбурге
Затяжной запой перестает быть бытовой проблемой в тот момент, когда организм теряет способность самостоятельно восстанавливаться после интоксикации. Накопление ацетальдегида, нарушение водно-электролитного баланса, истощение запасов витаминов и перегрузка сердечно-сосудистой системы создают состояние, при котором домашние методы перестают быть безопасными. Срочно стабилизировать самочувствие и быстро купировать абстинентный синдром позволяет только контролируемая медицинская среда. Вывод из запоя в стационаре в Нижнем Новгороде становится клинически обоснованным решением, когда требуется не просто снятие симптомов, а комплексная детоксикация под круглосуточным наблюдением врачей. Наркологическая клиника «Стармед» организует процесс лечения в соответствии с актуальными стандартами доказательной медицины, обеспечивая безопасность пациента, прозрачность процедур и плавный переход к противорецидивной терапии. Мы понимаем, что решение о госпитализации часто принимается в состоянии стресса, поэтому наша работа начинается с четкой диагностики, честного объяснения плана лечения и соблюдения строгих протоколов конфиденциальности. Опытные специалисты клиники помогут вызвать доверие к процессу восстановления уже на этапе первого контакта.
Узнать больше – https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-6.ru/
Нарколог на дом в Екатеринбурге: выезд врача на дом, лечение запоя и консультации в наркологической клинике «НЕО+».
Подробнее можно узнать тут – вызвать нарколога на дом екатеринбург
Показания для обращения за помощью включают:
Подробнее можно узнать тут – капельница от похмелья анонимно в воронеже
Вывод из запоя на дому в Екатеринбурге: эффективное лечение, детоксикация и восстановление организма в наркологической клинике «Детокс»
Получить дополнительные сведения – вывод из запоя на дому цена