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://vyvod-iz-zapoya-krasnoyarsk70.ru/
В клинике проводится вывод из запоя, детоксикация организма, снятие ломки, медикаментозное лечение алкоголизма и наркомании, кодирование, психотерапия и реабилитация зависимых. Врач оценивает клинический статус человека и составляет план лечения, включающий необходимые процедуры, препараты, психологическую поддержку и контроль динамики. Наркологическая помощь может быть оказана амбулаторно, на дому или в стационаре. При тяжелом течении зависимости предпочтительным является лечение в клинике, где медицинский персонал круглосуточно наблюдает за состоянием больного.
Подробнее – narkologicheskaya-klinika-otzyvy
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Получить больше информации – http://1.vyvod-iz-zapoya-balashiha13.ru/
Вывод из запоя является одной из наиболее востребованных услуг наркологической клиники. Длительный прием алкоголя приводит к накоплению токсичных продуктов распада этанола, обезвоживанию, нарушениям сна, работы сердечно-сосудистой и нервной системы. Чем дольше продолжается запой, тем выше вероятность осложнений. Медицинский вывод из запоя помогает прекратить употребление под контролем врача и начать лечение алкоголизма без опасных самостоятельных экспериментов.
Получить больше информации – наркологическая клиника помощь на дому
В крупных и динамичных районах Ставрополя дорога сама по себе становится стрессором: непривычные запахи, чужие люди, ожидание в коридоре — всё это усиливает тремор, реактивность пульса и «ночной разгон» мыслей. Именно поэтому «СтаврМедЦентр» предлагает аккуратный выбор: если объективные риски низкие, мы начинаем дома или амбулаторно и переносим часть «тяжёлых» решений в первый вечер. Там проще включить светогигиену, отрегулировать шум, наладить воду и положить рядом тёплую лёгкую пищу. Когда среда управляемая, меньше соблазн «усилить» схему лишними препаратами, и организм быстрее выходит на коридоры безопасности.
Ознакомиться с деталями – http://
Состав капельницы не должен быть одинаковым для каждого больного. Профессиональный нарколог подбирает медикаменты только после первичного осмотра и диагностики. Врач проверит давление, частоту сердечного ритма, уровень сознания, выраженность тремора и других проявлений абстиненции, уточнит сведения об аллергии и хронических болезнях. При необходимости могут использоваться экспресс-тест, ЭКГ и дополнительные методы оценки состояния.
Получить больше информации – kapelnica-ot-zapoya-cena-moskva
Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
Переходите по ссылке ниже – наркологическая клиника дельта
Помощь при запое актуальна, когда запой продолжается и самостоятельный выход становится затруднительным. Врач оценивает общее самочувствие, врач уточняет длительность запоя и врач выбирает лечение. Наркологическая помощь может включать вывод запоя, наблюдение, терапию и решение вопроса о дальнейшем лечении алкоголизма. Следует не смешивать вывод с полным лечением зависимости: вывод относится к текущему запою, а лечение алкоголизма требует отдельного плана.
Узнать больше – вывод из запоя на дому недорого в Красноярске
Помощь оказывают врачи с практикой в наркологии, психиатрии и восстановительной терапии.
Получить больше информации – частная наркологическая клиника
Нарколог на дому помогает, если самочувствие пациента допускает лечение вне стационара. Служба выезжает по Балашихе и Московской области, а условия выезда в другие районы Подмосковья можно уточнить по телефону. Если нужен срочный вызов, диспетчеру сообщают адрес, возраст, сколько длится запой, когда человек пил последний раз и какие хронические заболевания у него есть. Это помогает подготовить необходимые препараты и оборудование до того, как нарколог приедет на дому.
Подробнее – vyvod-iz-zapoya-na-domu-balashiha-ceny
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Подробнее – http://narkologicheskaya-klinika-balashiha.ru/
Мы сознательно фиксируем не только «медицинские» параметры, но и бытовые маркеры: сколько воды выпито, как переносится тёплая пища малыми порциями, какой свет в комнате перед сном. Эти детали активно упоминаются в клинических рекомендациях, потому что нередко именно они решают исход первой ночи лучше, чем попытка «усилить» таблеткой.
Исследовать вопрос подробнее – частная наркологическая клиника в ставрополе
К стандартным ситуациям, в которых врач может рассматривать домашнюю инфузию, относятся следующие случаи:
Ознакомиться с деталями – kapelnicy-na-dom-kruglosutochno
Вывод из запоя в Красноярске рассматривается как наркологическая помощь, которую можно получить на дому или в клинике. Лечение запоя начинается с обращения к врачу: врач оценивает ситуацию, выбирает формат помощи и определяет, какое лечение подходит в конкретном случае. Наркологическая услуга может быть организована анонимно, а данные обращения используются в рамках выбранной услуги. Если требуется вывод на дому, нарколог приезжает домой; если нужен стационарный формат, лечение продолжается в клинике.
Получить больше информации – https://vyvod-iz-zapoya-krasnoyarsk70.ru/
Помощь можно получить анонимно, с аккуратным оформлением и внимательным отношением к личным данным.
Ознакомиться с деталями – вывод из запоя на дому круглосуточно Красноярск
Главная задача — вернуть контроль над самочувствием мягко и последовательно. Мы не соревнуемся в дозах, а собираем устойчивую траекторию улучшения: каждый модуль терапии отвечает за одну цель и имеет своё «окно оценки». Если отклик ниже ожиданий — меняем ровно один параметр (темп, последовательность или поведенческий элемент среды), чтобы точно понимать, что помогло.
Углубиться в тему – вывод из запоя капельница на дому в казани
Вывод из запоя нужен, когда после длительного приема спиртного самочувствие заметно ухудшается и самостоятельно прекратить цикл не получается. В Красноярске помощь можно организовать на дому или в профильном отделении: формат выбирается по тяжести ситуации, возрасту, длительности эпизода и сопутствующим факторам. Нарколог оценивает жалобы, уточняет, сколько длился период, когда был последний прием алкоголя, какие препараты принимались ранее и были ли осложнения. Такой подход позволяет подобрать безопасное лечение без универсальных схем.
Узнать больше – вывод из запоя недорого
casino https://seocheck.itmarketingsolutions.de/domain/skyhill.eu.com
В Казани дежурят мобильные бригады, покрывающие центральные районы и спальные кварталы. Координатор по телефону собирает лишь данные, влияющие на безопасность: текущие лекарства и дозировки, аллергии, эпизоды судорог/психозов в анамнезе, последние значения АД/ЧСС, температуру, а также бытовые условия — место полулёжа, доступ к розетке, возможность «тихого окна» на 2–3 часа. Врач приезжает быстро, но спокойно; вместо суеты — последовательность и аккуратные действия. Визит начинается с очного осмотра, где фиксируются исходные показатели и выбирается контур терапии. Далее выполняется тест переносимости и только затем — основной инфузионный этап. По завершении пациент получает «вечерний протокол» с простыми ритуалами: приглушить свет, проветрить комнату, исключить экраны за час до сна, пить воду малыми глотками.
Получить дополнительные сведения – скорая наркологическая помощь на дому
Наркологическая клиника в Екатеринбурге представляет собой специализированное медицинское учреждение, ориентированное на диагностику, лечение и профилактику зависимости от алкоголя, наркотиков и других психоактивных веществ. Современные подходы и комплексные методы терапии позволяют эффективно справляться с разнообразными формами аддиктивного поведения, обеспечивая пациентам качественную медицинскую помощь и психологическую поддержку. Подробнее о современных методах лечения зависимости можно узнать на сайте Всемирной организации здравоохранения.
Получить дополнительные сведения – https://narcologicheskaya-klinika-ekaterinburg00.ru/narkologicheskaya-klinika-kodirovka-v-ekaterinburge/
Если показатели нестабильны, капельница на дому может быть небезопасной. При нарушении сознания, судорогах, выраженной одышке, боли за грудиной, подозрении на инсульт, тяжелом отравлении, массивных отеках или резких изменениях артериального давления требуется вызывать скорую помощь. Откладывайте плановую процедуру только после согласования с доктором, но не откладывайте экстренное обращение при опасных признаках.
Получить больше информации – sdelat-kapelnicu-na-domu
Для наглядности ниже приведена таблица с основными направлениями медикаментозной терапии и их эффектами:
Получить дополнительные сведения – лечение в наркологической клинике
Все медицинские записи и личные данные хранятся на защищённых серверах с ограниченным доступом. Только лечащий врач и медицинская сестра имеют право просматривать их при необходимости оказания помощи.
Исследовать вопрос подробнее – http://тайный-вывод-из-запоя.рф/vyvod-iz-zapoya-czena-v-samare/
Вывод из запоя на дому подходит не всем. Преимущество домашнего формата — привычная обстановка, конфиденциальность и возможность пригласить специалиста без посещения приемного отделения. Нарколог приезжает по адресу, проводит осмотр, уточняет анамнез и решает, допустима ли помощь на дому. Если домашний формат небезопасен, врач рекомендует отделении.
Подробнее – наркологический вывод из запоя Красноярск
Помощь можно получить анонимно, с аккуратным оформлением и внимательным отношением к личным данным.
Дополнительная информация – kapelnica-ot-zapoya-cena
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Ознакомиться с деталями – https://3.kapelnica-ot-zapoya-v-moskve14.ru/
После списка важно подчеркнуть: вывод из запоя не должен превращаться в самолечение. Если пациент принимает препараты постоянно, врачу необходимо сообщить названия и дозировки, но самостоятельно повторять чужие назначения нельзя. Лечение подбирается индивидуально.
Получить больше информации – вывод из запоя на дому недорого Красноярск
При таких проявлениях домашнее самолечение может быть опасно. Нельзя без назначения использовать любые таблетки, самостоятельно ставить капельницу или комбинировать лекарственные препараты со спиртным. Медицинская помощь дает возможность провести диагностику, снизить вероятность осложнений и выбрать методы лечения с учетом состояния пациента.
Дополнительная информация – https://vyvod-iz-zapoya-krasnoyarsk69.ru/
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Смотрите также… – “delta clinic ru
Капельница на дому не сводится к механическому введению раствора. Медик оценивает состояние пациента, давление, пульс, температуру, показатели крови при наличии результатов, переносимость препаратов и вероятность осложнений. Для медицинского персонала важны качество процедуры, корректная дозировка и контроль реакции организма. Выездной формат особенно удобен пожилому человеку, человеку со сниженной физической активностью или тому, кому тяжело посещать клиники самостоятельно.
Подробнее – https://nadomu1.kapelnica-ot-zapoya-v-moskve14-1.ru/
Наркологическая клиника в Екатеринбурге уделяет большое внимание психотерапевтическим методам. Индивидуальный подход к пациенту позволяет выявить причины и особенности зависимости, сформировать устойчивую мотивацию на лечение и отказ от вредных привычек.
Получить дополнительные сведения – http://narcologicheskaya-klinika-ekaterinburg00.ru
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Есть чему поучиться – Медикаментозное кодирование от алкоголизма
В данном материале представлены ключевые тенденции в сфере медицинской науки и практики. Вы узнаете о последних открытиях, инновационных подходах к терапии и важности профилактики заболеваний. Особое внимание уделено практическому применению новых методов в клинической практике.
Подробнее – нарколог на дом в клинике
Круглосуточный формат работы и конфиденциальность — ключевые принципы «СамараМед». Обращаясь к нам, вы получаете:
Получить дополнительную информацию – https://тайный-вывод-из-запоя.рф/
Круглосуточный формат работы и конфиденциальность — ключевые принципы «СамараМед». Обращаясь к нам, вы получаете:
Получить дополнительные сведения – https://тайный-вывод-из-запоя.рф
Эта последовательность действий обеспечивает безопасное прекращение запоя и предотвращает развитие синдрома отмены.
Изучить вопрос глубже – вывод из запоя в стационаре
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Получить больше информации – kapelnica-na-domu-moskva-ceny
Наркологическая клиника в Самаре оказывает профессиональную помощь людям, страдающим зависимостью от алкоголя, наркотиков и других психоактивных веществ. В основе её деятельности лежит индивидуальный подход к каждому пациенту, сочетание медикаментозных и психотерапевтических методов, а также полная конфиденциальность. Лечение проводится опытными специалистами с применением современных медицинских технологий, направленных на восстановление здоровья и предотвращение рецидивов.
Ознакомиться с деталями – наркологическая клиника наркологический центр
Нарколог на дом в Красноярске — формат медицинской помощи, при котором врач приезжает по указанному адресу, проводит первичный осмотр и определяет дальнейший план лечения. Выезд подходит в случаях, когда человеку сложно самостоятельно посетить центр, требуется быстро получить консультацию или начать вывод из запоя в домашних условиях. Наркологическая служба работает с проблемами алкоголизма, наркомании и других зависимостей, а медицинские процедуры проводятся после оценки показаний и противопоказаний.
Дополнительная информация – https://narcolog-na-dom-krasnoyarsk2.ru/
Этот медицинский обзор сосредоточен на последних достижениях, которые оказывают влияние на пациентов и медицинскую практику. Мы разбираем инновационные методы лечения и исследований, акцентируя внимание на их значимости для общественного здоровья. Читатели узнают о свежих данных и их возможном применении.
Ознакомиться с деталями – кодировке от алкоголя
После длительного употребления этанола организм сталкивается с обезвоживанием, изменением водно-солевого обмена, нарушениями сна, колебаниями артериального давления и накоплением продуктов распада алкоголя. Капельница может использоваться для медицинской поддержки, если врач после диагностики считает инфузионную терапию показанной. Особенно важно не выбирать капельницу самостоятельно: даже стандартная процедура на дому требует оценки состояния пациента, потому что похожие симптомы иногда возникают при серьезных заболеваниях сердца, печени, почек или нервной системы.
Ознакомиться с деталями – kapelnica-ot-zapoya-cena
В статье по вопросам здоровья мы рассматриваем актуальные проблемы, с которыми сталкивается общество. Обсуждаются заболевания, факторы риска и важные аспекты профилактики. Читатели получат полезные советы о том, как сохранить здоровье и улучшить качество жизни.
Следуйте по ссылке – медицинский центр кодирования от алкоголизма
В статье рассматриваются различные стратегии борьбы с зависимостями, включая проверенные методы и реальные истории успеха. Читатель узнает, какие подходы наиболее эффективны и как начать путь к выздоровлению.
Проверенные методы — узнай сейчас – закодироваться от алкоголя
thx
thx
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Дополнительная информация – https://1.vyvod-iz-zapoya-balashiha13.ru/
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Изучить вопрос подробнее – http://1.vyvod-iz-zapoya-balashiha13.ru/
Современное лечение зависимости строится не вокруг одной процедуры, а вокруг последовательной программы медицинского и психологического восстановления. Специалисты учитывают причины формирования алкоголизма или наркомании, особенности поведения, физической зависимости, мотивацию, характер употребления и отношение человека к лечению. Такой индивидуальный подход помогает стабилизировать здоровье и перейти от срочной помощи к длительной ремиссии.
Подробнее – наркологические клиники в области
В этой статье рассматриваются актуальные вопросы, связанные с развитием медицинской науки и её внедрением в повседневную практику. Особое внимание уделено вопросам профилактики, ранней диагностики и использованию технологий для улучшения здоровья человека.
Неизвестные факты о… – Эспераль подшивка
thx