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隐藏得太深,总让人捉摸不定!>
Тендерный специалист помогает разобраться в особенностях каждого закона, а также обеспечивает грамотное сопровождение всех процедур. Это особенно важно для компаний, которые только начинают участвовать в торгах и не имеют опыта работы с государственными контрактами.
Изучите все нюансы – тендерное сопровождение ип
Услуга вывода из запоя на дому в Архангельске разработана для оперативного снижения токсической нагрузки при тяжелых формах алкогольной интоксикации. Сразу после вызова нарколог проводит подробный осмотр, измеряет жизненно важные показатели и собирает анамнез, что позволяет точно определить степень интоксикации. На основе полученной информации формируется индивидуальный план лечения, включающий капельничное введение современных медикаментов с использованием автоматизированных инфузионных систем и сопровождение в виде психологической поддержки.
Узнать больше – капельница от запоя на дому круглосуточно
thxx
thxx
Для повышения эффективности лечения наркологическая клиника применяет стандартизированные методы, включающие мониторинг жизненно важных параметров, корректировку фармакотерапии и оценку неврологических показателей. Совокупность таких мер делает процесс более предсказуемым и снижает вероятность осложнений. Кроме того, практическая часть работы включает регулярную проверку метаболических функций, что способствует точному дозированию препаратов и своевременному изменению схем. Это позволяет поддерживать физиологическую устойчивость организма даже при интенсивной нагрузке и сохранять стабильность состояния на протяжении всего периода терапии.
Узнать больше – вывод наркологическая клиника в пензе
Мы верим, что каждый человек, столкнувшийся с проблемой зависимости, заслуживает шанса на новую жизнь. Наша миссия — предоставить необходимые инструменты и поддержку, чтобы помочь пациентам в их стремлении к здоровой и свободной от зависимостей жизни.
Подробнее – https://нарко-фильтр.рф/vivod-iz-zapoya-v-kruglosutochno-v-rostove-na-donu
Детоксикация — ключевой этап в лечении зависимости. Она направлена на очищение организма от токсинов и нормализацию обмена веществ. В клинике «АстраМед Трезвость» капельницы подбираются индивидуально, с учётом возраста, массы тела и хронических заболеваний пациента. Ниже представлена таблица с основными видами инфузий и их назначением.
Узнать больше – http://narkologicheskaya-klinika-v-astrakhani18.ru/narkologiya-astrakhan-adres/
Да, многие клиники выезжают в Ленинградскую область — в радиусе 50–100 км от Санкт-Петербурга. Время прибытия согласуется при обращении.
Подробнее тут – вывод из запоя на дому цена санкт-петербург
thx
Финансовые инструменты позволяют заказчику убедиться в надежности участника и его готовности выполнить обязательства по контракту. При этом грамотное сопровождение снижает вероятность финансовых рисков и помогает правильно оформить документы для банка.
Получите экспертное мнение – https://tendernoe-soprovozhdenie-rostov-na-donu.ru/
Процедура вывода из запоя проводится только под медицинским наблюдением, так как самостоятельные попытки могут привести к осложнениям — аритмии, судорогам, резкому скачку давления. Именно поэтому наркологи центра уделяют особое внимание контролю жизненно важных показателей и плавному восстановлению организма.
Ознакомиться с деталями – наркологический вывод из запоя
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Все тайны раскрыты – https://tendernoe-soprovozhdenie-rostov-na-donu.ru/
Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
Узнайте больше прямо сейчас – https://tendernoe-soprovozhdenie-rostov-na-donu.ru
Участие в государственных и коммерческих процедурах требует точной подготовки, понимания законодательства и внимательной работы с документами. Для многих компаний самостоятельная работа с закупками становится сложной задачей: необходимо отслеживать новые закупки, анализировать требования, оформлять документы и взаимодействовать с площадками.
Погрузитесь в детали – оквэд тендерное сопровождение
При тяжелой алкогольной интоксикации оперативное лечение становится жизненно необходимым для спасения здоровья. В Архангельске специалисты оказывают помощь на дому, используя метод капельничного лечения от запоя. Такой подход позволяет быстро вывести токсины, восстановить обмен веществ и стабилизировать работу внутренних органов, обеспечивая при этом высокий уровень конфиденциальности и комфорт в условиях привычного домашнего уюта.
Получить дополнительную информацию – https://kapelnica-ot-zapoya-arkhangelsk0.ru/kapelnicza-ot-zapoya-na-domu-arkhangelsk/
thxx
Обращение за помощью к наркологу на дому имеет ряд преимуществ, особенно в экстренных ситуациях:
Ознакомиться с деталями – нарколог на дом клиника в мариуполе
В рамках лечебного процесса наркологическая клиника задействует структурированные механизмы наблюдения, включающие анализ лабораторных показателей, оценку соматического тонуса и изучение активности нервной системы. Эти элементы обеспечивают комплексность работы и позволяют своевременно корректировать план лечения. Такая система предотвращает перегрузку организма и способствует поддержанию стабильности на фоне применения медикаментозных схем. Ниже представлены ключевые составляющие терапевтического процесса, формирующие основу для клинического восстановления.
Узнать больше – платная наркологическая клиника пенза
На данном этапе врач уточняет длительность запоя, тип употребляемого алкоголя и наличие сопутствующих заболеваний. Тщательный анализ этих данных позволяет оперативно сформировать индивидуальный план лечения и выбрать оптимальные методы детоксикации.
Детальнее – https://kapelnica-ot-zapoya-arkhangelsk00.ru/kapelnicza-ot-zapoya-na-domu-arkhangelsk
Лечебные мероприятия строятся на основе поэтапного внедрения терапевтических решений, которые опираются на индивидуальные характеристики пациента. Уточнение анамнеза, анализ данных обследований и выявление сопутствующих факторов позволяют создавать эффективные и прогнозируемые программы лечения. В клинике соблюдается строгая последовательность процедур, направленная на снижение рисков и обеспечение безопасности. На каждом этапе проводится проверка клинической реакции, что позволяет своевременно выявлять необходимость корректировки и адаптировать лечебные меры под текущую картину.
Ознакомиться с деталями – http://narkologicheskaya-klinika-v-penze18.ru/
Обращение за помощью нарколога на дому в Архангельске имеет множество преимуществ, среди которых:
Получить больше информации – http://kapelnica-ot-zapoya-arkhangelsk00.ru/
На данном этапе врач уточняет длительность запоя, тип употребляемого алкоголя и наличие сопутствующих заболеваний. Тщательный анализ этих данных позволяет оперативно сформировать индивидуальный план лечения и выбрать оптимальные методы детоксикации.
Изучить вопрос глубже – врача капельницу от запоя архангельск
Тендерный специалист помогает разобраться в особенностях каждого закона, а также обеспечивает грамотное сопровождение всех процедур. Это особенно важно для компаний, которые только начинают участвовать в торгах и не имеют опыта работы с государственными контрактами.
Не оставайтесь в неведении – тендерное сопровождение ип
В стационаре пациент получает круглосуточный контроль, расширенную диагностику и возможность подключения к аппаратуре мониторинга. Это особенно важно при тяжёлой интоксикации, нарушении сознания или судорожной активности.
Исследовать вопрос подробнее – https://narko-zakodirovan.ru/vyvod-iz-zapoya-na-domu-spb/
Наркологическая клиника “Путь к выздоровлению” расположена по адресу: г. Ростов-на-Дону, ул. Петровская, д. 19. Клиника работает ежедневно с 8:00 до 20:00, без выходных. Наши специалисты готовы предоставить консультацию и ответить на все вопросы, связанные с лечением зависимостей. Мы гарантируем конфиденциальность и индивидуальный подход к каждому пациенту.
Выяснить больше – http://нарко-фильтр.рф
Сразу после поступления вызова нарколог приезжает на дом для проведения детального первичного осмотра. Специалист измеряет жизненно важные показатели, такие как пульс, артериальное давление и температура, и собирает анамнез, чтобы оценить степень алкогольной интоксикации. Эти данные служат основой для разработки персонального плана терапии.
Изучить вопрос глубже – запой нарколог на дом мариуполь
Наркологическая клиника “Путь к выздоровлению” — специализированное медицинское учреждение, предназначенное для оказания помощи лицам, страдающим от алкогольной и наркотической зависимости. Наша основная задача — предоставить эффективные методы лечения и поддержку, чтобы помочь пациентам преодолеть пагубное пристрастие и вернуть их к здоровой и полноценной жизни.
Разобраться лучше – http://нарко-фильтр.рф/vivod-iz-zapoya-anonimno-v-rostove-na-donu/
Наши наркологи придерживаются принципов уважительного и внимательного отношения к пациентам, создавая атмосферу доверия. Они проводят детальное обследование, выявляют коренные причины зависимости и разрабатывают индивидуальные стратегии лечения. Профессионализм и компетентность врачей являются ключевыми факторами успешного восстановления пациентов.
Получить больше информации – http://нарко-фильтр.рф
В рамках последовательного анализа состояния применяется также оценочная шкала, позволяющая фиксировать изменения и уточнять степень выраженности симптомов. Далее представлена таблица, демонстрирующая основные критерии наблюдения и их функциональное значение в клиническом процессе.
Исследовать вопрос подробнее – наркологическая клиника наркологический центр
Обращение за помощью к наркологу на дому имеет ряд преимуществ, особенно в экстренных ситуациях:
Получить больше информации – http://narcolog-na-dom-mariupol0.ru
Когда проблемы с алкоголизмом достигают критической точки, оперативное вмешательство становится жизненно необходимым. В Мариуполе квалифицированные наркологи оказывают помощь на дому, обеспечивая оперативную детоксикацию организма, стабилизацию жизненно важных показателей и психологическую поддержку. Такой формат лечения позволяет пациенту получить качественную медицинскую помощь в привычной домашней обстановке, сохраняя конфиденциальность и минимизируя стресс, связанный с посещением стационара.
Разобраться лучше – выезд нарколога на дом мариуполь
В рамках лечебного процесса наркологическая клиника задействует структурированные механизмы наблюдения, включающие анализ лабораторных показателей, оценку соматического тонуса и изучение активности нервной системы. Эти элементы обеспечивают комплексность работы и позволяют своевременно корректировать план лечения. Такая система предотвращает перегрузку организма и способствует поддержанию стабильности на фоне применения медикаментозных схем. Ниже представлены ключевые составляющие терапевтического процесса, формирующие основу для клинического восстановления.
Детальнее – наркологическая клиника стационар в пензе
Ниже приведены ключевые элементы, которые отражают базовую структуру процессов, формирующих последовательность лечебных мероприятий. Они помогают подробно рассмотреть основные направления работы и понять роль каждого звена в общей терапевтической системе.
Ознакомиться с деталями – https://narkologicheskaya-klinika-penza18.ru/narkologicheskaya-pomoshh-penza/
Обращение за помощью к наркологу на дому имеет ряд преимуществ, особенно в экстренных ситуациях:
Выяснить больше – выезд нарколога на дом в мариуполе
Системная работа, которой характеризуется наркологическая клиника, предполагает последовательное исследование состояния пациента, анализ факторов риска и создание индивидуального терапевтического маршрута. Такой формат позволяет уточнять клиническую картину на ранних этапах и корректировать вмешательства по мере изменения состояния человека. Применение структурированных методик повышает предсказуемость результата и обеспечивает безопасность всех процедур. При этом выводы формируются на основании объективных данных наблюдения, лабораторных показателей и динамики симптомов. Оптимальная нагрузка распределяется на весь период лечения для достижения устойчивого эффекта без переутомления организма.
Углубиться в тему – анонимная наркологическая клиника
Важным инструментом контроля является таблица оценочных параметров, применяемых в ходе наблюдения. Она служит для систематизации данных и поддержания единых стандартов анализа. Ниже приведена таблица, отражающая основные направления наблюдения.
Узнать больше – частная наркологическая клиника в пензе
В рамках лечебного процесса наркологическая клиника задействует структурированные механизмы наблюдения, включающие анализ лабораторных показателей, оценку соматического тонуса и изучение активности нервной системы. Эти элементы обеспечивают комплексность работы и позволяют своевременно корректировать план лечения. Такая система предотвращает перегрузку организма и способствует поддержанию стабильности на фоне применения медикаментозных схем. Ниже представлены ключевые составляющие терапевтического процесса, формирующие основу для клинического восстановления.
Узнать больше – наркологическая клиника нарколог пенза
Да, многие клиники выезжают в Ленинградскую область — в радиусе 50–100 км от Санкт-Петербурга. Время прибытия согласуется при обращении.
Исследовать вопрос подробнее – https://narko-zakodirovan.ru/vyvod-iz-zapoya-czena-spb
Важным инструментом контроля является таблица оценочных параметров, применяемых в ходе наблюдения. Она служит для систематизации данных и поддержания единых стандартов анализа. Ниже приведена таблица, отражающая основные направления наблюдения.
Исследовать вопрос подробнее – наркологическая клиника клиника помощь пенза
Процедура вывода из запоя проводится только под медицинским наблюдением, так как самостоятельные попытки могут привести к осложнениям — аритмии, судорогам, резкому скачку давления. Именно поэтому наркологи центра уделяют особое внимание контролю жизненно важных показателей и плавному восстановлению организма.
Узнать больше – срочный вывод из запоя
Да, многие клиники выезжают в Ленинградскую область — в радиусе 50–100 км от Санкт-Петербурга. Время прибытия согласуется при обращении.
Подробнее тут – http://narko-zakodirovan.ru/
Услуга капельничного лечения от запоя на дому в Архангельске предусматривает комплексный подход, направленный на оперативное восстановление организма. Сразу после вызова нарколог прибывает на дом, проводит детальный осмотр, собирает анамнез и измеряет жизненно важные показатели. На основе этих данных разрабатывается персональный план терапии, который включает введение современных медикаментов с использованием автоматизированных систем дозирования, а также психологическую поддержку для создания условий долгосрочной ремиссии.
Подробнее тут – капельница от запоя цена в архангельске
Лечение проходит поэтапно, чтобы пациент не испытывал стресса и перегрузок. Каждый шаг контролируется врачами, а терапия корректируется в зависимости от состояния. В таблице ниже представлена структура программы лечения в клинике «АстраМед Трезвость».
Ознакомиться с деталями – вывод наркологическая клиника в астрахани
Pretty section of content. I just stumbled upon your website and in accession capital to assert that I acquire actually enjoyed account your blog posts. Anyway I will be subscribing to your augment and even I achievement you access consistently fast.
https://rockradio.com.ua/vstanovlennya-linz-v-fary-audi-a4-pokrokovo-pro-ho.html
Такая структура терапии обеспечивает контроль на всех стадиях и помогает добиться устойчивого результата без вреда для здоровья. Пациент получает не просто временное облегчение, а полное восстановление физического и эмоционального состояния.
Разобраться лучше – http://narkologicheskaya-klinika-v-astrakhani18.ru/
В процессе терапии специалисты используют только сертифицированные препараты и современные методики, рекомендованные Минздравом РФ. Это позволяет безопасно очищать организм, устранять симптомы абстиненции и снижать риск рецидивов. Принцип клиники — работать не с последствиями зависимости, а с её причиной.
Получить дополнительные сведения – анонимная наркологическая клиника астрахань
Обращение за помощью к наркологу на дому имеет ряд преимуществ, особенно в экстренных ситуациях:
Получить дополнительные сведения – нарколог на дом клиника мариуполь
Основным инструментом при выведении из запоя является капельница. Её состав зависит от состояния пациента, продолжительности запоя и наличия хронических заболеваний. В клинике «ПензаМед Трезвость» используются только проверенные препараты с минимальной нагрузкой на организм. Ниже приведена таблица с примерами инфузионных растворов и их воздействием.
Выяснить больше – вывод из запоя круглосуточно
Услуга капельничного лечения от запоя на дому в Архангельске предусматривает комплексный подход, направленный на оперативное восстановление организма. Сразу после вызова нарколог прибывает на дом, проводит детальный осмотр, собирает анамнез и измеряет жизненно важные показатели. На основе этих данных разрабатывается персональный план терапии, который включает введение современных медикаментов с использованием автоматизированных систем дозирования, а также психологическую поддержку для создания условий долгосрочной ремиссии.
Углубиться в тему – капельница от запоя на дому архангельск
Современное SEO требует системного подхода — от сбора семантики до юзабилити. Подробности по ссылке: https://drivetvchannel.ru/stati/prodvizhenie-sajtov-iskusstvo-i-nauka-onlajn-uspeha/