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隐藏得太深,总让人捉摸不定!>
Эта публикация раскрывает психологические механизмы зависимости и их роль в развитии расстройств. Читатель узнает о том, как психология влияет на формирование зависимостей и как профессиональная помощь может изменить ситуацию.
Где почитать поподробнее? – наркологическая больница стационар
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Подробнее – наркологическая клиника вывод из запоя в Красноярске
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Изучить вопрос подробнее – вывод из запоя
Полный курс лечения включает не только снятие интоксикации, но и восстановление организма, работу с психотерапевтом и поддержку родственников. Подробнее о каждой процедуре вы можете узнать у оператора по телефону — мы бесплатно проконсультируем и поможем выбрать подходящий формат. Все услуги оказываются анонимно, без постановки на учёт в государственных учреждениях. Если вам нужна платная наркологическая помощь в Москве или Московской области, свяжитесь с нами — врачи нашей клиники найдут оптимальное решение для каждого случая и проведут эффективное лечение алкоголизма.
Узнать больше – помощь вывод из запоя
В мегаполисе привычный ритм часто мешает системному лечению: плотный график, транспортные задержки, высокая социальная видимость. Чтобы терапия проходила спокойно, «НеоТрезвие СПБ» использует «немаркированную» логистику: нейтральные формулировки в документах, аккуратные визиты, разнесенные по времени консультации специалистов и персональный координатор. По желанию пациента часть этапов — образовательные сессии и посткодовое сопровождение — выполняются онлайн. Это снижает тревогу и делает маршрут лечения менее заметным для окружения.
Узнать больше – бесплатное кодирование от алкоголизма санкт-петербург
Выезд нарколога на дому удобен тем, что помощь проводится в спокойной обстановке. Капельница на дому может быть организована круглосуточно, если состояние человека позволяет такой формат; выезд доступен в том числе ночью и по выходным. Нарколог и специалисты выездной службы работают по медицинским стандартам, а сама капельница проводится с наблюдением за самочувствием. Наркологическая служба принимает звонок, уточняет адрес и основные жалобы, затем направляет врача. Капельница назначается с учетом осмотра, а препараты вводятся постепенно. Доктор следит за реакцией пациента и при необходимости меняет темп инфузии.
Получить больше информации – капельница от запоя на дому круглосуточно
В мегаполисе привычный ритм часто мешает системному лечению: плотный график, транспортные задержки, высокая социальная видимость. Чтобы терапия проходила спокойно, «НеоТрезвие СПБ» использует «немаркированную» логистику: нейтральные формулировки в документах, аккуратные визиты, разнесенные по времени консультации специалистов и персональный координатор. По желанию пациента часть этапов — образовательные сессии и посткодовое сопровождение — выполняются онлайн. Это снижает тревогу и делает маршрут лечения менее заметным для окружения.
Получить больше информации – кодирование от алкоголизма цены санкт-петербург
Реабилитационные мероприятия в клинике направлены на устранение соматических последствий зависимости, нормализацию когнитивных функций и восстановление социальной адаптации. Для этого используются современные методики физиотерапии, диетологической коррекции и психологического сопровождения, позволяющие закрепить достигнутые результаты лечения.
Изучить вопрос глубже – narkologicheskaya-klinika-v-spb16.ru/
Этот информационный материал подробно освещает проблему наркозависимости, ее причины и последствия. Мы предлагаем информацию о методах лечения, профилактики и поддерживающих программах. Цель статьи — повысить осведомленность и продвигать идеи о необходимости борьбы с зависимостями.
Получить полную информацию – выведение из запоя в домашних условиях
Каждый профиль решает одну задачу и имеет ожидаемую динамику. Мы избегаем параллельных «усилений», чтобы не «замазывать» вклад отдельного шага и не перегружать организм.
Детальнее – вызвать наркологическую помощь в казани
Каждый пациент проходит несколько последовательных этапов, направленных на очищение организма, стабилизацию эмоционального состояния и формирование стойкой мотивации к трезвой жизни. Такой подход позволяет не только устранить физическую зависимость, но и укрепить психическую устойчивость.
Подробнее – вывод наркологическая клиника в самаре
Срочный вывод из запоя требуется при выраженной абстиненции, многодневном пьянстве и заметном ухудшении самочувствия. Нарколог приезжает на дом после оформления вызова и оценивает, можно ли проводить лечение на месте. Чем тяжелее запой, тем важнее вовремя принять решение о переводе в клинику. Иногда неотложная помощь требуется утром после тяжелой ночи, иногда состояние ухудшается вечером или ночью, поэтому возможность круглосуточного обращения имеет практическое значение.
Ознакомиться с деталями – вывод из запоя с выездом балашиха
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Дополнительная информация – вывод из запоя капельница на дому Екатеринбург
Лечение в наркологической клинике начинается с медицинской оценки и выбора безопасной схемы помощи. Врач уточняет, сколько дней человек употребляет алкоголь, как долго существует проблема зависимости, какие препараты принимались ранее и есть ли заболевания печени, сердца или психические расстройства. При наркотической зависимости важно определить вид психоактивных веществ, длительность употребления, выраженность ломки и общее самочувствие. Полученные данные позволяют подобрать лечение, которое соответствует конкретной клинической ситуации.
Подробнее – https://1narkologicheskaya-klinika-balashiha.ru/
Первые симптомы отмены иногда напоминают обычное похмелье, но затем могут быстро усиливаться. Если близкий начал вести себя необычно, перестал ориентироваться в обстановке или не может удерживать жидкость из-за рвоты, необходимо вызвать врача. При угрозе жизни следует обращаться в скорую помощь, а не ждать плановый выезд частной службы.
Узнать больше – анонимный вывод из запоя
Особенность петербургского контекста — большая доля интеллектуального труда и проектной занятости. Мы учитываем это при выборе методики: отдаем предпочтение схемам, которые не «глушат» когнитивную активность и позволяют быстро возвращаться к задачам. Если требуются краткие больничные листы, предоставляем корректные медицинские документы без «ярлыков».
Ознакомиться с деталями – кодирование от алкоголизма цены в санкт-петербурге
Вывод из запоя на дому подходит не каждому пациенту, но при отсутствии критических осложнений позволяет получить медицинскую помощь в привычной обстановке. После обращения в службу уточняются район Красноярска, возраст человека, длительность запоя, примерное количество выпитого алкоголя и основные жалобы. Затем организуется выезд медицинского специалиста. Врач приезжает по указанному адресу, проводит осмотр и принимает решение о возможности домашнего лечения.
Изучить вопрос подробнее – https://vyvod-iz-zapoya-krasnoyarsk68.ru/
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Ознакомиться с деталями – kapelnica-ot-zapoya-vyzov
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Изучить вопрос подробнее – prokapat-kapelnicu-ot-zapoya
Нарколог на дом помогает при разных проявлениях зависимости. Врач оценивает состояние пациента, но не ограничивается одной жалобой. Важны стаж алкоголизма, длительность употребления, наличие заболеваний и предыдущие попытки лечения. Если алкоголизм длится много лет, лечение должно быть комплексным.
Дополнительная информация – https://narcolog-na-dom-krasnoyarsk3.ru/
Первые симптомы отмены иногда напоминают обычное похмелье, но затем могут быстро усиливаться. Если близкий начал вести себя необычно, перестал ориентироваться в обстановке или не может удерживать жидкость из-за рвоты, необходимо вызвать врача. При угрозе жизни следует обращаться в скорую помощь, а не ждать плановый выезд частной службы.
Узнать больше – https://vyvod-iz-zapoya-v-ekaterinburge20.ru/
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Получить больше информации – https://narkologicheskaya-klinika-v-krasnoyarske18.ru/
Состояние пациента отслеживается на каждом этапе, от первичной консультации до дальнейших рекомендаций.
Дополнительная информация – нарколог на дом вывод
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Узнать больше – https://narkologicheskaya-klinika-v-krasnoyarske18.ru/
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Подробнее – анонимный вывод из запоя Екатеринбург
Вывод из запоя в Екатеринбурге — профессиональная помощь при продолжительном употреблении алкоголя, похмельном синдроме и выраженной абстиненции. Лечение организуется на дому или в стационаре клиники. Врач оценивает состояние пациента, длительность запоя, стаж зависимости, работу сердца, нервной и сердечно-сосудистой системы, наличие заболеваний внутренних органов и риск осложнений. Далее нарколог определяет оптимальное лечение: детоксикация, капельница, лекарственная терапия, наблюдение, госпитализация, кодирование или реабилитация.
Дополнительная информация – вывод из запоя с выездом
Сотрудники клиники оценивают проблему комплексно. Учитываются стаж зависимости, возраст, хронические болезни и готовность к лечению. Следует рассказать врачу о предыдущих курсах и препаратах. Клиника подбирает лечение индивидуально.
Дополнительная информация – https://narkologicheskaya-klinika-v-krasnoyarske22.ru/
Продолжительное употребление спиртных напитков запускает цепочку патологических реакций: страдает печень, сердечно-сосудистая система, головной мозг, нарушается водно-солевой баланс, развивается абстинентный синдром. Отравление продуктами распада этанола сопровождается тремором, тошнотой, бессонницей и тревогой. Последствия запоя могут быть необратимыми: риск инсульта, отека мозга, сердечной недостаточности и тяжелых осложнений увеличивается с каждым днем употребления. Особенно опасен похмельный синдром у людей с хроническими заболеваниями, у пациентов старшего возраста и у тех, кто ранее перенёс судорожные приступы. Отмена алкоголя на второй и третьей стадии алкоголизма часто носит характер тяжёлой ломки: появляются галлюцинации, депрессия, неадекватное поведение, страх и панические атаки. Самостоятельно избавиться от запоя практически невозможно, ведь попытка резко отказаться от спиртного заканчивается срывом. Именно поэтому важно не доверять народным советам, а обратиться к специалистам, которые проведут обследование, снимут интоксикацию и стабилизируют состояние. Чем раньше начато лечение, тем меньше вероятность развития необратимых последствий для организма.
Дополнительная информация – вывод из запоя балашиха
Рекомендации строятся вокруг состояния человека, а не по универсальному шаблону для всех случаев.
Подробнее – наркология вывод из запоя в Екатеринбурге
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Дополнительная информация – narkologicheskie-kliniki-v-oblasti
В Красноярске выездной формат особенно удобен, когда больной отказывается ехать в клинику или физически не может сделать это самостоятельно. При этом домашний визит не заменяет полноценное лечение алкоголизма и не исключает последующую реабилитацию.
Изучить вопрос подробнее – вызвать нарколога на дом Красноярск
Процесс включает:
Получить дополнительные сведения – https://vyvod-iz-zapoya-v-rostove-na-donu16.ru/vyvedenie-iz-zapoya-rostov-na-donu/
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Ознакомиться с деталями – нарколог на дом анонимно Красноярск
Домашнее лечение не означает стандартную капельницу для всех. Состав растворов зависит от клинической картины. В некоторых случаях требуется только симптоматическая помощь, в иных ситуациях нужна инфузионная терапия, а при тяжелом течении необходим стационар.
Ознакомиться с деталями – вывод из запоя дешево Екатеринбург
Врач учитывает симптомы, риски, анамнез и семейную ситуацию, чтобы предложить подходящую программу.
Ознакомиться с деталями – https://1narkologicheskaya-klinika-balashiha.ru/
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Узнать больше – наркологическая клиника клиника помощь
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Узнать больше – https://vyvod-iz-zapoya-krasnoyarsk68.ru/
Этот медицинский обзор сосредоточен на последних достижениях, которые оказывают влияние на пациентов и медицинскую практику. Мы разбираем инновационные методы лечения и исследований, акцентируя внимание на их значимости для общественного здоровья. Читатели узнают о свежих данных и их возможном применении.
Выяснить больше – ночной вывод из запоя на дому
Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
Получить больше информации – лечение алкоголизма в москве стационар
В мегаполисе привычный ритм часто мешает системному лечению: плотный график, транспортные задержки, высокая социальная видимость. Чтобы терапия проходила спокойно, «НеоТрезвие СПБ» использует «немаркированную» логистику: нейтральные формулировки в документах, аккуратные визиты, разнесенные по времени консультации специалистов и персональный координатор. По желанию пациента часть этапов — образовательные сессии и посткодовое сопровождение — выполняются онлайн. Это снижает тревогу и делает маршрут лечения менее заметным для окружения.
Подробнее – бесплатное кодирование от алкоголизма санкт-петербург
Капельница от запоя «Мед Алко» в Москве — медицинская услуга для людей, которым требуется выведение продуктов распада этанола, уменьшение проявлений похмельного и абстинентного синдрома, восстановление водно-электролитного баланса и контроль общего самочувствия. Медицинский центр организует выезд специалиста на дому круглосуточно: врач-нарколог проводит осмотр, собирает анамнез, оценивает тяжесть интоксикации, наличие хронических заболеваний и только затем определяет, можно ли безопасно поставить капельницу в домашних условиях. Такой подход позволяет учитывать возраст, длительность запоя, количество выпитого алкоголя, артериальное давление, работу сердца, печени и почек.
Дополнительная информация – капельница от запоя клиника
Мы рассмотрим современные вызовы здравоохранения и пути их решения с помощью технологий и научных исследований. В статье собраны данные о новых лекарствах, методах диагностики и системном подходе к улучшению здоровья населения.
Получить исчерпывающие сведения – delta clinic ru борисоглебск
Эта медицинская заметка содержит сжатую информацию о новых находках и методах в области здравоохранения. Мы предлагаем читателям свежие данные о заболеваниях, профилактике и лечении. Наша цель — быстро и доступно донести важную информацию, которая поможет в повседневной жизни и понимании здоровья.
Как это работает — подробно – вывод из алкогольного запоя на дому
Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
Выяснить больше – deltaclinic
С пациентом работают профильные специалисты, которые оценивают состояние и подбирают безопасный план помощи.
Подробнее – https://narcolog-na-dom-krasnoyarsk2.ru/
Специалисты регулярно помогают при интоксикации, запоях, абстиненции и сложных состояниях зависимости.
Получить больше информации – вывод из запоя клиника
Капельница от запоя в Москве применяется для облегчения абстинентного синдрома, восполнения жидкости и поддержки организма при алкогольной интоксикации. Центр «Мед Алко» организует выезд на дому круглосуточно: бригада приезжает по адресу, доктор оценивает самочувствие больного и выбирает оптимальный состав инфузии. Такая помощь особенно востребована, когда запой затянулся на несколько суток, появилась тошнота, дрожь, слабость, бессонница или выраженная головная боль. Капельница ставится только при допустимом уровне риска, а при тяжелом течении требуется стационар клиники.
Подробнее – капельница от запоя на дом москва
Лечение на дому подходит не каждому, но позволяет провести обследование и первичную стабилизацию в привычной обстановке. Выезд нарколога доступен круглосуточно по Екатеринбургу. До приезда не следует самостоятельно использовать сильнодействующие седативные, снотворные или сочетать лекарства с новой дозой спиртного. Такие действия могут привести к опасным реакциям.
Изучить вопрос подробнее – https://vyvod-iz-zapoya-v-ekaterinburge18.ru/
Обратившись в клинику «Частный Медик 24» в Челябинске, вы делаете первый шаг к здоровой и трезвой жизни. Наши специалисты помогут вам преодолеть зависимость и вернуться к нормальной жизни.
Подробнее можно узнать тут – вывод из запоя капельница на дому челябинск
Затяжной запой способен заметно нарушить работу нервной системы, сердца, сосудов, печени и почек. Когда организм длительное время получает алкоголь, резкий отказ иногда сопровождается тяжелой абстиненцией: появляется тревожность, бессонница, тремор, тошнота, скачки давления, слабость и дезориентация. Вывод из запоя в Екатеринбурге проводится как медицинское лечение, цель которого — оценить общее самочувствие, уменьшить обезвоживание, восстановить водно-электролитный баланс и своевременно выявить признаки осложнений. Если состояние нестабильно, обращаться к специалистам нужно без промедления.
Ознакомиться с деталями – анонимный вывод из запоя Екатеринбург