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隐藏得太深,总让人捉摸不定!>
Эта познавательная публикация погружает вас в море интересного контента, который быстро захватит ваше внимание. Мы рассмотрим важные аспекты темы и предоставим вам уникальные Insights и полезные сведения для дальнейшего изучения.
Ознакомиться с теоретической базой – https://www.poulaillon.fr/comptes-consolide-annexe-legale-30-septmebre-2021
Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
А есть ли продолжение? – https://pautabrasil.com.br/2023/09/08/brasil-decide-retomar-exigencia-de-vistos-para-turistas-dos-eua-canada-e-australia-a-partir-de-janeiro-de-2024
Этот текст призван помочь читателю расширить кругозор и получить практические знания. Мы используем простой язык, наглядные примеры и структурированное изложение, чтобы сделать обучение максимально эффективным и увлекательным.
Детали по клику – http://yura.oops.jp/review/log/eid23.html
Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
Изучить материалы по теме – https://e-poketsearch.com/post-121819
Финансовые инструменты позволяют заказчику убедиться в надежности участника и его готовности выполнить обязательства по контракту. При этом грамотное сопровождение снижает вероятность финансовых рисков и помогает правильно оформить документы для банка.
Эксклюзивная информация для вас – тендерное сопровождение ростов на дону
Участие в государственных и коммерческих процедурах требует точной подготовки, понимания законодательства и внимательной работы с документами. Для многих компаний самостоятельная работа с закупками становится сложной задачей: необходимо отслеживать новые закупки, анализировать требования, оформлять документы и взаимодействовать с площадками.
Разберитесь досконально – оквэд тендерное сопровождение
В Ставрополе мы выстроили так называемую «тихую логистику»: запись без послеобеденных «окон», экспресс-приём без ожидания, сопровождение от входа до палаты, а при необходимости — деликатная госпитализация через отдельный вход. При первичном обращении пациент получает пошаговый план на ближайшие 72 часа: стабилизация самочувствия, детоксикация по показаниям, психообразование, старт профилактики срыва. Такой регламент экономит время и снижает тревожность — вы понимаете, что и зачем делается, и видите прогноз по срокам.
Разобраться лучше – лечение в наркологической клинике в ставрополе
Hello, all the time i used to check webpage posts here in the early hours in the dawn, because i enjoy to find out more and more.
adult xxx video porn site xxx sex video
Ключевым принципом является безопасность: на этапе детоксикации проводится мониторинг сердечно-сосудистой и дыхательной систем, оценка неврологического статуса и лабораторных показателей по показаниям. Выбор интенсивности наблюдения зависит от тяжести абстинентного синдрома, сопутствующих заболеваний и переносимости терапии.
Узнать больше – вывод из запоя с выездом
Эта публикация содержит набор несвязанных идей, трудно применимых в практике. Мы лишь поверхностно затрагиваем различные точки зрения, не проводя глубокий анализ и не предлагая выводов.
Подробнее читать – сухие строительные смеси
Сочетание перечисленных направлений обеспечивает полноту помощи и позволяет выстроить предсказуемый маршрут лечения с понятными целями на каждом этапе.
Получить дополнительные сведения – http://narkologicheskaya-klinika-lugansk0.ru
thx
Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
Все ответы на ваши вопросы – услуги тендерного сопровождения ростов на дону
Мы работаем без пауз и очередей, принимая пациентов в любое время суток. В распоряжении бригад — немаркированный транспорт для выезда на дом, портативная диагностика (ЭКГ, пульсоксиметрия, экспресс-анализаторы), а в стационаре — палаты с регулируемым микроклиматом и круглосуточный мониторинг жизненных показателей. Вся документация оформляется в нейтральной терминологии, доступ к данным разграничен по ролям, что защищает вашу анонимность.
Подробнее можно узнать тут – наркологическая клиника нарколог в ставрополе
Алгоритм в клинической практике выстроен поэтапно: от первичной оценки до планирования реабилитационного маршрута. Последовательность вмешательств обеспечивает предсказуемую динамику и прозрачную коммуникацию с пациентом и его близкими.
Подробнее тут – наркология вывод из запоя в луганске
Стационар уместен при тяжёлой абстиненции, скачках давления, угрозе делирия, эпизодах судорог, неукротимой рвоте, а также когда дома нет взрослого помощника на ночь. В палате — аппаратный контроль по показаниям, пост медсестёр 24/7, ЭКГ и базовая лаборатория, регулярные переоценки с корректировкой схемы. Решения принимаются быстро, без логистических задержек; это снижает риск поздних осложнений и повторных экстренных вызовов.
Исследовать вопрос подробнее – рейтинг наркологических клиник
Программы терапии строятся так, чтобы одновременно воздействовать на биологические, психологические и социальные факторы зависимости. Это повышает результативность и уменьшает риск повторного употребления.
Получить дополнительную информацию – наркологическая клиника нарколог в луганске
Для кого
Узнать больше – http://narkologicheskaya-klinika-himki0.ru/narkologicheskaya-klinika-stoimost-v-himkah/
Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
Погрузитесь в детали – тендерное сопровождение под ключ в ростове на дону
Когда состояние алкогольной интоксикации достигает критических уровней, своевременное вмешательство становится жизненно необходимым. В Мариуполе, Донецкая область, высококвалифицированные наркологи оказывают срочную помощь на дому, позволяя оперативно начать детоксикацию и стабилизировать состояние пациента. Такой формат лечения обеспечивает быстрый выход из кризиса в условиях комфорта и конфиденциальности, что особенно важно для тех, кто не может позволить себе задержки в стационарном лечении.
Ознакомиться с деталями – нарколог на дом вывод из запоя в мариуполе
Когда острые угрозы исключены, программа стартует дома. Пациент получает понятную карту действий, близкие — короткие окна обратной связи, врач — чистую «картинку» для тонкой настройки. Мы просим сообщать факты, а не эмоции: минуты до засыпания, число пробуждений, объём тёплой воды малыми глотками, пульс к вечеру, переносимость мягкой пищи, ясность головы утром.
Углубиться в тему – http://vyvod-iz-zapoya-saratov0.ru/
На данном этапе врач уточняет продолжительность запоя, характер употребляемого алкоголя и наличие сопутствующих заболеваний. Тщательный анализ позволяет оперативно определить оптимальную схему детоксикации и минимизировать риск осложнений.
Исследовать вопрос подробнее – вывод из запоя цена
Хотя принципы лечения похожи, клиническая логика отличается. При алкогольной зависимости чаще нужен быстрый контроль вегетативных симптомов, восстановление сна и коррекция электролитов. При наркозависимости добавляются протоколы снижения импульсивности, работа с абстиненцией другой природы и расширенная психотерапевтическая часть. В обоих случаях результат не сводится к «капельнице»: мы учим распознавать ранние сигналы срыва, формировать безопасные ритуалы и поддерживать общение без давления и скрытых конфликтов.
Детальнее – анонимная наркологическая клиника
Если вовремя не принять меры, состояние может усугубиться, повышая риск серьёзных осложнений. Наиболее эффективным способом очищения организма является постановка капельницы, которая помогает быстро стабилизировать состояние. Клиника «Курс на ясность» оказывает экстренную наркологическую помощь с выездом врачей на дом 24/7.
Ознакомиться с деталями – капельница от запоя стоимость красноярск
Честная наркология — это не «универсальная капельница», а система шагов, привязанная к параметрам конкретного человека. В Чехове мы выезжаем круглосуточно, на месте проводим допуск к терапии, сверяем совместимости с уже принятыми препаратами, подбираем состав инфузий без лишних компонентов и избыточной седативной нагрузки. Если дома нет условий для безопасной ночи, предложим стационар — это не усложнение, а короткий путь к безопасности. Анонимность — стандарт: нейтральные формулировки в документах по запросу, ограниченный доступ к данным, деликатная связь.
Подробнее можно узнать тут – http://narkologicheskaya-klinika-chekhov8.ru
Экстренная капельничная терапия от запоя на дому в Луганске ЛНР имеет ряд преимуществ, благодаря которым лечение становится максимально оперативным и безопасным:
Исследовать вопрос подробнее – капельница от запоя анонимно
Тендерный специалист помогает разобраться в особенностях каждого закона, а также обеспечивает грамотное сопровождение всех процедур. Это особенно важно для компаний, которые только начинают участвовать в торгах и не имеют опыта работы с государственными контрактами.
Погрузитесь в детали – https://tendernoe-soprovozhdenie-rostov-na-donu.ru/
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Изучите все нюансы – https://tendernoe-soprovozhdenie-rostov-na-donu.ru/
Мы вместе составляем карту триггеров («тёмные часы» вечера, недосып, конфликты, привычные маршруты) и набор «буферов» на 20–40 минут: тёплый душ, короткая прогулка у дома, дыхательная практика, нейтральный созвон с «своим» человеком. Эти бесплатные шаги уменьшают внеплановые затраты и добавляют устойчивости.
Ознакомиться с деталями – http://narkologicheskaya-klinika-mytishchi9.ru/chastnaya-narkologicheskaya-klinika-v-mytishchah/
thx
thx
В первые два часа после прибытия бригады важно не «сделать побольше», а принять наименьшее количество решений, которое реально меняет картину. Команда фиксирует базовую линию (ЧСС, АД, SpO?, температура, шкала тошноты/тремора), даёт антиеметический мост и запускает регидратацию. При тахикардии — добавляет антивегетативный контур. Семья получает сценарий ночи: когда приглушить свет, когда предложить воду, какие цифры на тонометре считать нормой и при каких — звонить. Такой протокол экономит время и силы, а главное — превращает вечер из хаотичного в управляемый, снижая риск ночных экстренных вызовов и «эмоциональных качелей».
Узнать больше – капельница от запоя челябинск
Наркологическая клиника в Луганске организует помощь людям с алкогольной и наркотической зависимостью по стандартам доказательной медицины. Целью является не только купирование симптомов и снятие интоксикации, но и формирование устойчивой ремиссии, восстановление психоэмоционального баланса и возвращение к социальной активности. Система помощи строится поэтапно, с учётом клинического состояния, сопутствующих заболеваний и психосоциальных факторов. Команда специалистов обеспечивает согласованность действий, а регламенты лечения — прозрачность и предсказуемость каждого шага.
Получить дополнительные сведения – вывод наркологическая клиника луганск
Чтобы уменьшить неопределённость, мы придерживаемся прозрачного алгоритма — без многоступенчатых согласований и «перебросов» между специалистами.
Изучить вопрос глубже – наркологическая клиника в химках
В данном тексте собраны разнообразные случайные сведения и не вполне определённые идеи, которые могут вызвать интерес. Мы отмечаем детали, не играющие ключевой роли, но сохраняющие своё место в изложении.
Подробнее читать – гипсокартон цена
Сочетание методов подбирается индивидуально, чтобы охватить соматические, психологические и социальные компоненты зависимости. Ниже приведены основные направления, используемые в клинической практике.
Ознакомиться с деталями – http://narkologicheskaya-klinika-v-luganske0.ru/
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Узнайте, как это работает – тендерное сопровождение под ключ в ростове на дону
Основные показания для обращения в нашу клинику включают.
Исследовать вопрос подробнее – http://alko-konsultaciya.ru/vivod-iz-zapoya-na-domu-v-smolenske/
Лечение алкоголизма в Луганске организуется по принципам доказательной медицины и включает медицинскую, психотерапевтическую и социальную компоненты. Цель — безопасно снять острые проявления заболевания, стабилизировать соматическое состояние, снизить тягу и закрепить новые модели поведения. Индивидуальные планы формируются с учётом стадии расстройства, сопутствующих заболеваний, предшествующего опыта лечения и уровня семейной поддержки.
Узнать больше – http://lechenie-alkogolizma-lugansk0.ru
Hi there, its good article on the topic of media print, we all be aware of media is a fantastic source of information.
Watch sexual porno video xxx sex adults site
Наркологическая клиника в Донецке применяет только проверенные и эффективные методы, позволяющие комплексно воздействовать на зависимость. Врачи учитывают как физическое состояние, так и психологические особенности пациента.
Подробнее тут – narkologicheskaya-klinika-v-doneczke0.ru/
Сначала короткий осмотр и проверка совместимостей, затем — инфузионная терапия с мониторингом давления/пульса/сатурации, после — инструктаж семьи и назначение контрольного контакта. Такой порядок снижает тревогу и делает ночь предсказуемой: понятно, чего ждать, когда отдыхать и в какой момент связываться с врачом.
Подробнее – https://vyvod-iz-zapoya-sergiev-posad8.ru/vyvod-iz-zapoya-klinika-v-sergievom-posade
Метод и срок подбираются после очного осмотра и исключения противопоказаний. Возможны медикаментозные и психотерапевтические подходы, а также комбинированные программы. Мы объясняем плюсы и ограничения каждого метода, помогаем подготовиться (диета, анализы, отмена определённых препаратов), а затем сопровождаем пациента в период адаптации к трезвости. Кодирование — часть комплексного плана, а не «волшебная кнопка»: устойчивый результат достигается, когда его дополняют поддерживающая терапия и работа с триггерами.
Получить дополнительную информацию – анонимная наркологическая частная клиника
Процесс лечения строится поэтапно, что позволяет пациенту проходить все стадии восстановления в безопасном и контролируемом режиме.
Детальнее – https://lechenie-alkogolizma-doneczk0.ru/
Когда запой угрожает здоровью и жизни, оперативное вмешательство становится критически важным. В Донецке ДНР опытные специалисты по наркологии оказывают профессиональную помощь на дому, обеспечивая качественную детоксикацию организма, стабилизацию жизненно важных функций и психологическую поддержку. Такой формат лечения позволяет пациенту получить комплексную терапию в условиях комфорта, сохраняя полную конфиденциальность и избегая лишних формальностей.
Подробнее – https://vyvod-iz-zapoya-donetsk-dnr0.ru/vyvod-iz-zapoya-na-domu-doneczk-dnr/
Когда зависимость выходит из-под контроля, каждая задержка превращается в цепочку случайностей: рушится сон, «скачет» давление и пульс, усиливается тревога, дома нарастает напряжение. «МедСфера Мытищи» убирает хаос управляемым маршрутом: чёткий первичный осмотр, объяснённые назначения, понятные правила на 48–72 часа и прогнозируемые окна связи. Мы не лечим «пакетами ради прайса» — только клиническая достаточность на сегодня с учётом длительности употребления, сопутствующих диагнозов, принимаемых препаратов и исходных показателей. Такой подход снижает тревожность, возвращает ощущение контроля и быстрее приводит к первому ровному сну — именно он становится переломной точкой, после которой решения принимаются спокойно и по плану. Важная деталь — отсутствие общих очередей и «публичных» зон: приём разнесён по времени, входы приватны, а коммуникация ведётся через закрытые каналы. Когда понятно, что будет через час, вечером и завтра утром, исчезает потребность в импровизациях, и лечение действительно работает.
Ознакомиться с деталями – http://narkologicheskaya-klinika-mytishchi9.ru
Каждый этап имеет ключевое значение и обеспечивает устойчивость результата.
Разобраться лучше – lechenie-alkogolizma-doneczk0.ru/
Если человек страдает от алкоголизма, запойное состояние требует незамедлительного вмешательства, особенно если признаки токсического отравления начинают угрожать жизни. Признаки запоя — это не только физическая зависимость, но и эмоциональные и психические расстройства, такие как тревога, агрессия и галлюцинации.
Получить больше информации – https://алко-ребцентр.рф/vyvod-iz-zapoya-nizhnij-novgorod-czena/
Под наблюдением врача пациенту вводятся капельницы с растворами, устраняющими интоксикацию, восстанавливается водно-солевой баланс, купируются симптомы ломки или похмельного синдрома.
Получить дополнительную информацию – http://narkologicheskaya-klinika-voronezh9.ru
Этап
Углубиться в тему – вывод из запоя в стационаре