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
Одним из ключевых факторов успешного лечения наркомании является психотерапия. В клинике «Сибирский Доктор» применяются различные методы психотерапии, включая когнитивно-поведенческую терапию, групповые и индивидуальные занятия, которые помогают пациентам осознать причины зависимости, научиться справляться с эмоциональными и психологическими трудностями.
Узнать больше – лечение наркомании реабилитация
Solid platform with a great community feel. I appreciate the customer support being so responsive to my questions. Keep it up pkwin988!
Современная наркологическая помощь в Ростове-на-Дону базируется на комплексном подходе, который объединяет медицинское лечение, психологическую поддержку и социальную реабилитацию. Такой подход доказал свою эффективность в многочисленных исследованиях, доступных на сайте Российского общества наркологов.
Подробнее тут – анонимная наркологическая клиника
Стационар также выбирают, когда родственники не могут обеспечить спокойную обстановку дома. Иногда зависимый ведет себя агрессивно, продолжает искать алкоголь или отказывается принимать назначенные препараты. В этом случае лечение в клинике позволяет полностью исключить доступ к спиртному и проводить процедуры в контролируемых условиях. Скорая наркологическая помощь при необходимости организует транспортировку пациента.
Получить больше информации – vyvod-iz-zapoya-moskva-na-domu
В этой статье мы подробно рассматриваем проверенные методы борьбы с зависимостями, включая психотерапию, медикаментозное лечение и поддержку со стороны общества. Мы акцентируем внимание на важности комплексного подхода и возможности успешного восстановления для людей, столкнувшихся с этой проблемой.
Узнать больше – кодирование от алкоголизма частный медик 24
В данном обзоре представлены основные направления и тренды в области медицины. Мы обсудим актуальные проблемы здравоохранения, свежие открытия и новые подходы, которые меняют представление о лечении и профилактике заболеваний. Эта информация будет полезна как специалистам, так и широкой публике.
Подробнее – частный медик 24 адрес
Перед кодированием врач оценивает, насколько безопасное вмешательство возможно в конкретном случае. На первом этапе проводится консультация, сбор данных, обследование и определение диагноза. Нарколог выясняет длительность алкогольной зависимости, частоту запоя, количество выпитого, период трезвости, наличие заболеваний сердца, печени, нервной системы и психических расстройств. Важно сообщить, какие таблетки или другие препараты человек принимает постоянно, были ли раньше кодировки, аллергические реакции, депрессии, неврозы, бессонница или судорожные проявления. Лечение подбирают не по шаблону: один и тот же препарат или психотерапевтический метод подходит не каждому.
Изучить вопрос подробнее – кодирование от алкоголизма цены
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Дополнительная информация – https://vyvod-iz-zapoya-moskva15-1.ru
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Получить больше информации – https://vyvod-iz-zapoya-moskva15-1.ru/
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Детальнее – лечение алкоголизма условия нарколог 24
В этой статье рассматриваются различные аспекты избавления от зависимости, включая физические и психологические методы. Мы обсудим поддержку, мотивацию и стратегии, которые помогут в процессе выздоровления. Читатели узнают, как преодолеть трудности и двигаться к новой жизни без зависимости.
Исследовать вопрос подробнее – вызвать нарколога на дом в Воронеже
Такая схема позволяет комплексно воздействовать на организм и уменьшить риски осложнений.
Получить дополнительные сведения – http://narkolog-na-dom-v-krasnodare14.ru/krasnodar-narkologicheskaya-klinika/
При появлении острых признаков не стоит откладывать обращение. Своевременно проведенная диагностика позволяет определить степень тяжести абстиненции и выбрать безопасный формат лечения. В неосложненных случаях возможен выезд врача-нарколога на дом, а при высоком риске осложнений рекомендуется госпитализация в наркологический стационар. Решение принимает специалист после оценки клинической картины.
Изучить вопрос подробнее – vyvod-iz-zapoya-sajt
Помощь может включать консультацию, детоксикацию, стационар и дальнейшее сопровождение по показаниям.
Узнать больше – наркологическая клиника москва
Публикация посвящена жизненным историям людей, успешно справившихся с зависимостью. Мы покажем, что выход есть, и он начинается с первого шага — принятия проблемы и желания измениться.
Изучить аспект более тщательно – частный наркологический центр в Екатеринбурге
Даже если кажется, что ситуация еще не критическая, консультация с врачом по телефону поможет оценить риски и принять правильное решение. Наши специалисты бесплатно проконсультируют родных, подскажут, как вести себя с зависимым, и при необходимости направят бригаду. Помните: самостоятельный выход из продолжительного запоя опасен развитием алкогольного делирия, белой горячки, острой сердечной недостаточности, инсульта и других жизнеугрожающих состояний. Поэтому лучше доверить выведение из запоя профессионалам. Просто позвоните нам — и мы сразу приедем.
Получить больше информации – вывод из запоя бесплатно
Этот обзор сосредоточен на различных подходах к избавлению от зависимости. Мы изучим традиционные и альтернативные методы, а также их сочетание для достижения максимальной эффективности. Читатели смогут открыть для себя новые стратегии и подходы, которые помогут в их борьбе с зависимостями.
Узнать больше – капельница от запоя в Екатеринбурге цена
Зависимость часто развивается постепенно. Сначала употребление кажется контролируемым, затем алкоголь или наркотики начинают влиять на здоровье, отношения и повседневную жизнь. Человек может регулярно запивать, не выполнять обязанности, конфликтовать с окружением и терять контроль. Если самостоятельно решить проблемы невозможно, стоит позвонить специалистам и получить первичное информирование.
Изучить вопрос подробнее – наркологическая клиника нарколог Красноярск
Срочный вызов требуется, если состояние быстро ухудшается. Особенно опасны спутанность сознания, выраженная тревога, психические расстройства, сильная рвота, судороги и нарушения работы сердца. В таких случаях откладывать обращение не следует.
Подробнее – https://5.narcolog-na-dom-krasnoyarsk0.ru/
Поводом вызвать врача и рассмотреть капельницу становятся следующие проявления:
Дополнительная информация – vyzvat-narkologa-kapelnica-ot-zapoya
На первичном приеме нарколог выясняет, как долго человек пьет, насколько часто возникает запой, присутствует ли пивной или иной вариант хронического алкоголизма, были ли попытки самостоятельно отказаться от алкоголя и применялось ли кодирование раньше. Врач уточняет наличие заболеваний сердца, печени, нервной системы и мозга, эпизодов депрессии, неврозов, бессонницы или других психических расстройств. При необходимости назначаются анализы и дополнительная диагностика. Для пациента особенно важно не скрывать информацию о лекарствах и сопутствующем лечении, потому что совместимость средств непосредственно влияет на безопасность процедуры.
Подробнее – ceny-adresa-kodirovanie-ot-alkogolizma
Эта публикация содержит ценные советы и рекомендации по избавлению от зависимости. Мы обсуждаем различные стратегии, которые могут помочь в процессе выздоровления и важность обращения за помощью. Читатели смогут использовать полученные знания для улучшения своего состояния.
Только для своих – лечение хронический алкоголизм частный медик
Ломка – это тяжелый синдром отмены, возникающий после длительного употребления алкоголя или наркотических веществ. При резком прекращении их приема нервная система и другие органы начинают страдать от недостатка необходимых веществ, что приводит к сильному дискомфорту, психоэмоциональным нарушениям и ухудшению общего состояния организма. В Новосибирске наркологическая клиника «Возрождение» оказывает экстренную помощь при снятии ломки, обеспечивая безопасное, круглосуточное и конфиденциальное лечение под наблюдением опытных специалистов.
Подробнее тут – снятие ломок на дому
Клиника «Возрождение» применяет комплексный подход к снятию ломки, используя современные детоксикационные методики и проверенные препараты. Приведенная ниже таблица демонстрирует основные группы медикаментов, используемых в терапии, и их назначение:
Ознакомиться с деталями – снятие ломки на дому цена
Клиника работает с людьми разного возраста и стажа употребления. Врач учитывает психические расстройства, хронические заболевания и способность человека соблюдать рекомендации. Специалисты оценивают, требуется ли стационар или лечение возможно в другом формате. Очень важно не ждать тяжелых осложнений и вовремя получить профессиональную помощь.
Узнать больше – наркологические клиники алкоголизм
thank you
casino https://script12.prothemes.biz/addons/internal-links/domain/ninecasino-belgium.com
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Подробнее – http://www.5.narcolog-na-dom-krasnoyarsk0.ru
casino https://hroni.ru/tools/whoisdomain/ninecasino-belgium.com
casino https://aiseo.tech/site_checkup/domain/ninecasino-belgium.com
Этот медицинский обзор сосредоточен на последних достижениях, которые оказывают влияние на пациентов и медицинскую практику. Мы разбираем инновационные методы лечения и исследований, акцентируя внимание на их значимости для общественного здоровья. Читатели узнают о свежих данных и их возможном применении.
Изучить эмпирические данные – нарколог на дом цена
При поступлении вызова наши опытные специалисты незамедлительно приступают к комплексной диагностике состояния пациента. Первая задача – оценить уровень интоксикации и тяжесть симптомов, что включает измерение показателей артериального давления, пульса, температуры тела, а также уровня насыщения крови кислородом. На основании собранных данных формируется индивидуальная схема лечения, которая направлена на быстрое снятие симптомов ломки и стабилизацию нервной и иммунной систем.
Узнать больше – http://www.domen.ru
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Ознакомиться с деталями – vyvod-iz-zapoya-moskovskaya-oblast-moskva
В данном обзоре представлены основные направления и тренды в области медицины. Мы обсудим актуальные проблемы здравоохранения, свежие открытия и новые подходы, которые меняют представление о лечении и профилактике заболеваний. Эта информация будет полезна как специалистам, так и широкой публике.
Следуйте по ссылке – сколько стоит вывести из запоя и цена услуги
В этой статье мы говорим о важности поддержки в процессе выздоровления. Рассматриваются семьи, группы поддержки, специалисты и онлайн-ресурсы, которые могут сыграть решающую роль в избавлении от зависимости.
Переходите по ссылке ниже – наркологическая частная клиника
Необходимо незамедлительно обращаться за медицинской помощью, если у пациента наблюдаются следующие симптомы:
Получить дополнительную информацию – снятие ломки на дому цена новосибирск
Эта публикация посвящена актуальным вопросам современной медицины и здравоохранения. Мы обсудим новейшие технологии диагностики и лечения, а также их влияние на продолжительность и качество жизни. Читатель найдет здесь информацию о научных исследованиях и перспективных разработках, доступно изложенную для широкой аудитории.
Открой скрытое – вызов нарколога на дом
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Обратитесь за информацией – нарколог на дом вывод из запоя на дому
Для успешного и безопасного очищения организма от наркотиков применяются методы медикаментозной поддержки, что способствует уменьшению риска осложнений и облегчению состояния пациента.
Подробнее – https://lechenie-narkomanii-novosibirsk0.ru/novosibirsk-lechenie-narkozavisimosti/
В данной публикации мы поговорим о процессе восстановления от зависимости, о том, как вернуть себе нормальную жизнь. Мы обсудим преодоление трудностей, значимость поддержки и наличие программ реабилитации. Читатели смогут узнать о ключевых шагах к успешному восстановлению.
Ссылка на источник – нарколог на дом цена
В реальной городской ткани Ставрополя на самочувствие влияет не только схема лечения, но и логистика: утренние заторы на въезде, плотная застройка частного сектора, шумные перекрёстки. Мы заранее «поглощаем» эти риски организацией: секторные выезды, согласованная парковка, нейтральная переписка без «говорящих» терминов, при необходимости — курьерская доставка расходников отдельно от врача, чтобы на месте сразу переходить к оценке и запуску инфузии. Пациенту не нужно «вписываться» в систему — система подстраивается под реальную жизнь человека, экономя десятки минут и снижая сенсорную нагрузку перед первой ночью.
Получить дополнительные сведения – https://narkologicheskaya-klinika-v-stavropole15.ru/narkologicheskaya-klinika-stavropol-otzyvy/
thxx
Первый этап лечения начинается с беседы и медицинской оценки. Нарколог выясняет, сколько лет существует проблема, как часто человек употребляет алкоголь или наркотические вещества, когда был последний прием, присутствуют ли симптомы интоксикации, бессонницы, тревоги или психических расстройств. При необходимости назначаются анализы и дополнительная диагностика. Врач также учитывает документы и выписки, если ранее лечение проводилось в другой организации. Такой подход позволяет подобрать безопасные методы лечения пациента и определить, может ли помощь оказываться на дому либо необходима госпитализация в стационар.
Получить больше информации – наркологическая больница москвы
В этой заметке мы представляем шаги, которые помогут в процессе преодоления зависимостей. Рассматриваются стратегии поддержки и чек-листы для тех, кто хочет сделать первый шаг к выздоровлению. Наша цель — вдохновить читателей на положительные изменения и поддержать их в трудных моментах.
Узнать больше – клиника наркология самара
В этой публикации мы исследуем ключевые аспекты здоровья, включая влияние образа жизни на благополучие. Читатели узнают о важности правильного питания, физической активности и психического здоровья. Мы предоставим практические советы и рекомендации для поддержания здоровья и развития профилактических подходов.
Лучшее решение — прямо здесь – клиника лечения зависимостей медицинская помощь