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隐藏得太深,总让人捉摸不定!>
Ниже представлена таблица, отражающая основные направления медикаментозного лечения и сопутствующих процедур:
Изучить вопрос глубже – http://narkologicheskaya-klinika-omsk0.ru
Игнорирование этих симптомов может привести к тяжелым последствиям для здоровья, включая алкогольный психоз и повреждение внутренних органов.
Детальнее – капельница от запоя стоимость краснодар
Помощь 24/7 означает, что нарколог на дом в Хабаровске может быть направлен в любое время суток, включая ночные часы и выходные дни. В клинике «Ясный Вектор» выездная служба функционирует с учётом логистики города, что позволяет минимизировать время ожидания врача.
Детальнее – нарколог на дом круглосуточно в хабаровске
В этом тексте собрано множество случайных сведений и довольно неопределённых мыслей, которые могут чем-то заинтересовать. Мы отмечаем моменты, которые не особенно важны, но всё же занимают своё место в повествовании.
Вот – программирования
Специалисты применяют методы когнитивно-поведенческой терапии, мотивационного консультирования и техники релаксации. Такие подходы помогают пациенту изменить негативные установки, научиться управлять своими эмоциями и сформировать здоровые модели поведения. Это способствует не только скорейшему выздоровлению, но и долгосрочному поддержанию трезвости.
Получить дополнительные сведения – вывод из запоя на дому в красноярске
Современная наркология в клинике ориентирована на всестороннее восстановление физического и психологического здоровья пациентов. Медицинское сопровождение включает этапы детоксикации, медикаментозной терапии, психотерапевтической поддержки и последующей реабилитации. Такой подход способствует не только устранению физической зависимости, но и проработке психологических причин, что снижает риск рецидивов.
Узнать больше – https://narkologicheskaya-klinika-novosibirsk0.ru/
Состав подбирается персонально, без шаблонов: корректируется гидратация, электролиты, витамины, антиоксидантная и гепатопротекторная поддержка. Ниже приведены ориентировочные модели, иллюстрирующие подход к детоксу при разных клинических сценариях.
Ознакомиться с деталями – http://www.domen.ru
Лечение начинается с всестороннего обследования, которое позволяет оценить стадию зависимости и общее состояние пациента. Это обследование помогает сформировать персонализированную программу терапии, учитывающую все особенности конкретного случая. Медикаментозное лечение направлено на детоксикацию, устранение абстинентного синдрома и поддержку функций жизненно важных органов.
Получить дополнительные сведения – наркологическая клиника стационар
Обращение к специалистам становится необходимым, если наблюдаются следующие симптомы, указывающие на тяжелую интоксикацию:
Исследовать вопрос подробнее – вывод из запоя капельница на дому в сочи
Лечение проводится непосредственно в домашних условиях, что позволяет избежать стресса, связанного с пребыванием в стационаре. Применение современных медикаментов и индивидуальный подход к выбору терапии обеспечивают безопасность и эффективность процедуры.
Выяснить больше – narkolog-na-dom-czena irkutsk
thx
thx
thx
Затянувшийся запой — это состояние, которое опасно не только выраженной интоксикацией, но и непредсказуемыми осложнениями со стороны сердца, нервной системы и обмена веществ. В наркологической клинике «БайкалМедЦентр» (Улан-Удэ) услуги экстренного вывода из запоя организованы в формате «одного окна»: круглосуточный выезд врача-нарколога на дом, инфузионная терапия (капельницы) с индивидуальным подбором составов и детокс-протоколы, учитывающие возраст, сопутствующие заболевания и продолжительность употребления. Команда работает 24/7 по городу и пригородам; время прибытия в большинстве случаев составляет 30–45 минут с момента подтверждения вызова.
Ознакомиться с деталями – помощь вывод из запоя
Обращение за помощью к профессионалам в условиях домашнего лечения имеет ряд важных преимуществ:
Разобраться лучше – вывод из запоя донецкая область
thx
Do you have a spam problem on this website; I also am a blogger, and I was wondering your situation; many of us have created some nice procedures and we are looking to trade solutions with others, be sure to shoot me an e-mail if interested.
https://kfek.org.ua/kytaiskyi-plastylin-proty-brendovoho-butylu.html
В этой статье-обзоре мы собрали данные, актуальность которых сомнительна, а факты — не всегда взаимосвязаны. Читатель сможет ознакомиться с разными мнениями, хотя вряд ли они существенно повлияют на его понимание темы.
Вот – телифон дешево
Этот обзор предлагает свежий взгляд на предметы, которые и без того привычны. Мы упоминаем факты, не имеющие большого значения, и события с неясной важностью, но они присутствуют здесь.
Подробнее читать – купить керамический блок
Описание
Исследовать вопрос подробнее – нарколог на дом вывод из запоя в сочи
Наркологическая клиника — это пространство профессиональной помощи, где пациент получает комплексное лечение зависимости, медицинский контроль и психологическую поддержку. В клинике «ВолгаМед Баланс» в Тольятти лечение основано на принципах доказательной медицины и конфиденциальности. Каждая терапевтическая программа выстраивается индивидуально, с учётом физического состояния пациента, стадии заболевания и его мотивации к выздоровлению. Врачи клиники обеспечивают непрерывный контроль за состоянием, применяя современные методы дезинтоксикации, психотерапии и медикаментозной стабилизации.
Подробнее – http://www.domen.ru
При тяжелых формах алкогольной интоксикации своевременное вмешательство критически важно для предотвращения опасных осложнений. В Луганске ЛНР специалисты по наркологии предоставляют услугу экстренной капельничной терапии на дому, что позволяет быстро снизить токсическую нагрузку и стабилизировать работу жизненно важных органов. Такой метод лечения позволяет обеспечить высокую эффективность терапии в комфортной, привычной для пациента обстановке, при этом сохраняется полная конфиденциальность.
Изучить вопрос глубже – http://kapelnica-ot-zapoya-lugansk-lnr00.ru/vyzvat-kapelniczu-ot-zapoya-lugansk-lnr/
Ключ к эффективному выведению из запоя — гибкая персонализация. Мы не настаиваем на «универсальных» капельницах: сначала очная оценка, затем тест переносимости и лишь после — основная инфузия с контролем витальных показателей (АД/ЧСС/SpO?/температура) и субъективной реактивности (тошнота, тремор, тревога по шкале 0–10). Такой подход позволяет мягко провести детоксикацию, восстановить сон, стабилизировать вегетативную нервную систему и уменьшить «шум» организма.
Подробнее можно узнать тут – вывод из запоя в екатеринбурге
Ниже представлена таблица, отражающая основные направления медикаментозного лечения и сопутствующих процедур:
Подробнее тут – частная наркологическая клиника омск
Есть несколько маркеров, по которым обычно становится ясно: речь уже не о привычке, а о заболевании, которое требует профессиональной помощи. Перед списком — короткий ориентир: не обязательно наличие всех пунктов сразу, достаточно устойчивого повторения части из них.
Узнать больше – https://lechenie-alkogolizma-noginsk12.ru/lechenie-alkogolizma-cena-v-noginske
Вызов специалиста на дом рекомендуется, если запой затягивается и самостоятельное прекращение пьянства становится невозможным. Своевременное обращение помогает предотвратить ухудшение состояния, развитие хронических осложнений и негативное воздействие на психику.
Получить дополнительные сведения – https://narcolog-na-dom-v-irkutske66.ru/narkolog-na-dom-kruglosutochno-irkutsk
Помощь 24/7 означает, что нарколог на дом в Хабаровске может быть направлен в любое время суток, включая ночные часы и выходные дни. В клинике «Ясный Вектор» выездная служба функционирует с учётом логистики города, что позволяет минимизировать время ожидания врача.
Детальнее – http://narkolog-na-dom-khabarovsk0.ru
Выезд врача — это не «процедура без вопросов», а клиническое решение. На месте оценивают давление, пульс, дыхание, степень обезвоживания, уровень сознания, выраженность тревоги, наличие боли, судорожных проявлений, неврологические симптомы. После этого подбирают схему поддержки, объясняют ограничения и ожидаемую динамику: что должно улучшаться в первые часы, какие симптомы допустимы, а какие требуют немедленного обращения. Важная часть — рекомендации на ближайшие сутки: режим питья и питания, сон, контроль давления, что категорически нельзя смешивать и почему. Такой подход снижает риск осложнений и помогает не «сорваться» в самостоятельные эксперименты.
Разобраться лучше – narkologicheskaya-klinika-v-moskve
При поступлении вызова нарколог незамедлительно выезжает на дом для проведения первичного осмотра. Специалист собирает анамнез, измеряет жизненно важные показатели – пульс, артериальное давление и температуру – и оценивает степень алкогольной интоксикации. Точная диагностика становится основой для составления индивидуального плана терапии, адаптированного под конкретное состояние пациента.
Получить дополнительную информацию – вывод из запоя на дому тверь цены
Детоксикация при запое — это не «универсальная капельница», а медицинская стабилизация по состоянию. Сначала оцениваются риски: давление, пульс, дыхание, признаки обезвоживания, выраженность интоксикации и отмены, наличие хронических заболеваний, препараты, которые человек уже принимал. Затем подбирается поддержка, направленная на снижение интоксикации и восстановление функций организма.
Подробнее можно узнать тут – вывод из запоя
Когда запой угрожает здоровью и жизни, оперативное вмешательство становится критически важным. В Донецке ДНР опытные специалисты по наркологии оказывают профессиональную помощь на дому, обеспечивая качественную детоксикацию организма, стабилизацию жизненно важных функций и психологическую поддержку. Такой формат лечения позволяет пациенту получить комплексную терапию в условиях комфорта, сохраняя полную конфиденциальность и избегая лишних формальностей.
Узнать больше – наркология вывод из запоя в донецке
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Откройте для себя новое – https://tendernoe-soprovozhdenie-rostov-na-donu.ru/
В клинике «Пульс» процесс оказания помощи начинается сразу после вашего обращения. Наша бригада оперативно выезжает на дом, где врач проводит первичный осмотр пациента: измеряет давление, пульс, оценивает степень интоксикации и собирает анамнез. На основе полученных данных подбирается индивидуальный состав капельницы.
Изучить вопрос глубже – капельница от запоя анонимно на дому
Помимо физической детоксикации, лечение запоя требует комплексной психологической поддержки. Психотерапевты работают с пациентами для выявления глубинных причин зависимости, помогают снизить уровень стресса и развивают навыки самоконтроля, что критически важно для предотвращения рецидивов.
Подробнее – вывод из запоя в стационаре
Конфиденциальность обеспечивается процессом: нейтральные формулировки в документах, минимум персональных данных, немаркированные формы и транспорт, отдельный вход, «короткие» переговоры у двери, единый контакт по медицинским вопросам. Внутри команды действует «язык цифр» — витальные показатели, шкалы, интервалы питья и сна, окна проверки. Это исключает лишние обсуждения и защищает от распространения деликатной информации за пределы клинического круга.
Получить дополнительную информацию – наркологическая клиника нарколог
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Не оставайтесь в неведении – https://tendernoe-soprovozhdenie-rostov-na-donu.ru
Алкогольная зависимость часто держится не на «желании выпить», а на страхе отмены. Человек пьёт, чтобы не столкнуться с тремором, потливостью, тошнотой, скачками давления, паникой и бессонницей. Поэтому помощь начинается с медицинской оценки: насколько состояние безопасно для прекращения, какие есть сопутствующие болезни, что усиливает риски и какой формат лечения нужен именно сейчас.
Детальнее – наркологическая клиника телефон
В клинике «Ось Здоровья» лечение строится так, чтобы пациент не оставался один на один с уязвимым периодом после прекращения употребления. Даже при хорошем старте первые ночи часто становятся испытанием: тревога усиливается, сон не приходит, появляется ощущение внутреннего напряжения. Когда есть план на 24–72 часа и поддержка по динамике, риск срыва снижается.
Подробнее – https://narkologicheskaya-klinika-klin12.ru/chastnaya-narkologicheskaya-klinika-v-klinu
Помощь 24/7 означает, что нарколог на дом в Хабаровске может быть направлен в любое время суток, включая ночные часы и выходные дни. В клинике «Ясный Вектор» выездная служба функционирует с учётом логистики города, что позволяет минимизировать время ожидания врача.
Узнать больше – нарколог на дом хабаровск
Финансовые инструменты позволяют заказчику убедиться в надежности участника и его готовности выполнить обязательства по контракту. При этом грамотное сопровождение снижает вероятность финансовых рисков и помогает правильно оформить документы для банка.
Узнайте, как это работает – комплексное тендерное сопровождение ростов на дону
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Все тайны раскрыты – комплексное тендерное сопровождение в ростове на дону
I enjoy, cause I found exactly what I used to be having a look for. You’ve ended my 4 day lengthy hunt! God Bless you man. Have a nice day. Bye
https://mama-86.org.ua/chym-kleyity-fary-lexus-pislya-zaminy-skla-abo-vid.html
Чрезмерное употребление алкоголя приводит к отравлению организма, негативно сказываясь на работе внутренних органов, уровне жидкости и общем самочувствии. Длительные запои сопровождаются тяжёлыми последствиями, включая нарушения сердечной деятельности, сбои в работе печени, скачки давления и психоэмоциональные расстройства.
Исследовать вопрос подробнее – http://www.domen.ru
Чтобы избежать опасных последствий, необходимо постепенно и безопасно вывести алкоголь из организма. Клиника «Ясный горизонт» предлагает профессиональный вывод из запоя в Новокузнецке как в условиях стационара, так и с выездом нарколога на дом.
Разобраться лучше – вывод из запоя на дому цена
Услуга “Нарколог на дом” в Мариуполе, Донецкая область, предусматривает оперативное оказание медицинской помощи при запое. После получения вызова специалист незамедлительно выезжает к пациенту, проводит детальный осмотр, измеряет жизненно важные показатели и собирает анамнез. На основе полученных данных разрабатывается индивидуальный план терапии, включающий медикаментозную детоксикацию, инфузионную терапию и психологическую поддержку. Такой комплексный подход позволяет эффективно вывести токсины из организма и предотвратить развитие осложнений.
Выяснить больше – https://narcolog-na-dom-mariupol00.ru/vyzov-narkologa-na-dom-mariupol/
На практике выезд врача позволяет оперативно стабилизировать состояние пациента и снизить риск осложнений, связанных с отсрочкой медицинской помощи.
Выяснить больше – нарколог на дом цены
Зависимость меняет работу нервной системы: алкоголь начинает выполнять функцию регулятора — сна, тревоги, настроения и даже физического самочувствия. Когда человек прекращает пить, организм реагирует отменой, и именно она подталкивает вернуться к употреблению. Сила воли в этой точке часто проигрывает физиологии: тревога растёт, сон исчезает, сердце бьётся чаще, давление «скачет», появляется ощущение угрозы.
Подробнее – https://lechenie-alkogolizma-noginsk12.ru/lechenie-alkogolizma-cena-v-noginske/
Конфиденциальность обеспечивается процессом: нейтральные формулировки в документах, минимум персональных данных, немаркированные формы и транспорт, отдельный вход, «короткие» переговоры у двери, единый контакт по медицинским вопросам. Внутри команды действует «язык цифр» — витальные показатели, шкалы, интервалы питья и сна, окна проверки. Это исключает лишние обсуждения и защищает от распространения деликатной информации за пределы клинического круга.
Узнать больше – http://narkologicheskaya-clinika-v-rostove-na-donu16.ru/narkologiya-rostov-kruglosutochno/
Капельница от запоя в Краснодаре рекомендуется при первых признаках алкогольной интоксикации или тяжелого похмелья. Без своевременного медицинского вмешательства состояние человека может резко ухудшиться, привести к развитию осложнений и даже стать угрозой для жизни. Срочная помощь необходима в таких случаях:
Получить дополнительную информацию – поставить капельницу от запоя на дому в краснодаре
Специалисты применяют методы когнитивно-поведенческой терапии, мотивационного консультирования и техники релаксации. Такие подходы помогают пациенту изменить негативные установки, научиться управлять своими эмоциями и сформировать здоровые модели поведения. Это способствует не только скорейшему выздоровлению, но и долгосрочному поддержанию трезвости.
Исследовать вопрос подробнее – помощь вывод из запоя красноярск