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隐藏得太深,总让人捉摸不定!>
Нарколог на дом — это не «капельница по заказу». Запой и отмена алкоголя/веществ влияют на сердце, сосуды, дыхание, нервную систему, водно-электролитный баланс. Ошибка в тактике часто происходит именно тогда, когда пытаются действовать без оценки состояния: ставят капельницу без измерения давления, не учитывают уже принятые препараты, не спрашивают о судорогах и проблемах с сердцем. На выезде врач измеряет давление и пульс, оценивает дыхание, температуру, уровень сознания, признаки обезвоживания, выраженность тремора и тревоги. После этого выбирается безопасная схема помощи и объясняется ожидаемая динамика.
Получить больше информации – vyezd-narkologa-na-dom-cena
Формат помощи выбирают не по принципу «как удобнее», а по тому, насколько стабильно состояние и каков риск осложнений. Один и тот же диагноз «запой» может выглядеть по-разному: у кого-то ведущая проблема — давление и тахикардия, у другого — выраженная тревога и бессонница, у третьего — сильная тошнота и обезвоживание, у четвёртого — спутанность сознания или признаки психотических симптомов. Именно поэтому первое, что делает врач, — собирает информацию о длительности употребления, времени последнего приёма, сопутствующих заболеваниях, аллергиях и лекарствах, которые человек принимал самостоятельно. После этого проводится очная оценка: на дому или в клинике.
Изучить вопрос глубже – наркологическая клиника отзывы
Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
Глубже в тему — здесь – http://tendernoe-soprovozhdenie-rostov-na-donu.ru
Помощь при зависимостях в клинике «Южный Вектор» базируется на клинической диагностике, позволяющей определить стадию расстройства и сопутствующие нарушения. Наркологическая клиника в Ростове-на-Дону уделяет внимание не только купированию острых проявлений, но и стабилизации соматических показателей. Такой подход снижает риски осложнений и формирует условия для дальнейших этапов терапии. Медицинская практика подтверждает, что отсутствие системности приводит к краткосрочному эффекту и рецидивам.
Углубиться в тему – http://narkologicheskaya-klinika-v-rnd19.ru/narkologiya-rostov-kruglosutochno/https://narkologicheskaya-klinika-v-rnd19.ru
Лечение в клинике «Вектор Трезвости» основано на клинически обоснованных методах, адаптированных под формат круглосуточной работы. Наркологическая клиника в Ростове-на-Дону применяет комплексную диагностику, позволяющую учитывать тяжесть зависимости, длительность употребления и наличие сопутствующих заболеваний. Такой подход обеспечивает точность медицинских решений и снижает вероятность неблагоприятных реакций.
Подробнее можно узнать тут – наркологическая клиника цены ростов-на-дону
thx
thx
В этой статье мы рассмотрим ключевые признаки эффективной наркологической помощи в Ярославле — от состава команды до подходов в работе с мотивацией пациента.
Ознакомиться с деталями – лечение наркомании ярославская область
Резкое прекращение употребления алкоголя часто сопровождается выраженными симптомами абстиненции: тремор, тахикардия, повышенное давление, беспокойство. В клинике «Северная Звезда» для детоксикации применяется инфузионная терапия с балансированными растворами, содержащими:
Получить больше информации – https://lechenie-alkogolizma-arkhangelsk0.ru/anonimnoe-lechenie-alkogolizma-arkhangelsk
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Разгадайте все загадки – тендерное сопровождение под ключ ростов на дону
Анонимность — один из ключевых принципов работы клиники «Северная Звезда». Все обращения регистрируются под кодовым номером, без упоминания фамилии и контактных данных в базе данных, доступ к которой имеют только прямые исполнители процедур. Круглосуточная линия позволяет связаться со специалистом в любой момент: ночью, в праздники или выходные. Вызов врача на дом возможен в любой час, без предварительной записи, а при необходимости пациент может быть госпитализирован в отдельное крыло клиники с минимальным контактом с другими посетителями.
Подробнее – http://lechenie-alkogolizma-arkhangelsk0.ru
Каждый курс лечения включает несколько этапов, направленных на постепенное улучшение состояния. Система выстроена так, чтобы обеспечить плавное восстановление функций организма без стресса. Ниже приведена таблица, показывающая основные этапы лечения и применяемые процедуры.
Подробнее можно узнать тут – http://vyvod-iz-zapoya-v-rnd19.ru/vyvedenie-iz-zapoya-rostov-na-donu/
После снятия острого состояния часто остаются тревожность, бессонница, эмоциональная нестабильность и выраженная тяга. Поэтому клиника помогает выстроить следующий этап: диагностику зависимости, профилактику рецидива, психотерапевтическую поддержку и восстановление режима, без которого трезвость плохо удерживается на длительной дистанции.
Получить дополнительные сведения – narkologicheskaya klinika telefon
Стационарный формат выбирают, когда цена ошибки слишком высока. Основная ценность стационара — круглосуточный контроль и возможность быстро корректировать лечение, если динамика ухудшается. Это особенно важно при длительном запое, тяжёлой абстиненции, нестабильном давлении, выраженной тахикардии, повторяющейся рвоте, обезвоживании, а также при подозрении на осложнения со стороны сердца и сосудов. Нередко стационар рекомендуют и тогда, когда пациент живёт один, нет возможности обеспечить наблюдение близких или ранее уже были «ночные провалы», когда состояние резко ухудшалось и приводило к повторному употреблению.
Узнать больше – narkologicheskaya-klinika-pushkino12.ru/
В этой информационной статье вы найдете интересное содержание, которое поможет вам расширить свои знания. Мы предлагаем увлекательный подход и уникальные взгляды на обсуждаемые темы, побуждая пользователей к активному мышлению и критическому анализу.
Узнать из первых рук – https://justpets.tw/%E3%80%8C%E5%B7%B4%E5%93%A5%E7%8A%AC%E3%80%8D%E7%B8%BD%E6%98%AF%E8%A2%AB%E4%B8%BB%E4%BA%BA%E6%A3%84%E9%A4%8A%EF%BC%8C%E5%83%85%E5%9B%A0%E9%80%99%E4%BA%9B%E5%8E%9F%E5%9B%A0%EF%BC%8C%E5%BF%83%E7%96%BC
Врачи клиники «КубаньТрезвость» применяют только безопасные, доказательно эффективные методы очищения организма. Каждый пациент получает персональную схему терапии, включающую капельницы, поддерживающие препараты и восстановительные процедуры. Детоксикация проводится под контролем нарколога, а дозировки медикаментов подбираются индивидуально.
Подробнее – https://vyvod-iz-zapoya-v-krasnodare19.ru/krasnodar-vyvod-iz-zapoya-na-domu/
Публикация предлагает читателю не просто информацию, а инструменты для анализа и саморазвития. Мы стимулируем критическое мышление, предлагая различные точки зрения и призывая к самостоятельному поиску решений.
Получить дополнительную информацию – https://adsujsr.adsu.edu.ng/publications/28-ab-initio-study-of-structural-elastic-electronic-and-vibrational-properties-of-pbse-in-the-rock-salt-structure-corrected-latest-revised-version
Резкое прекращение употребления алкоголя часто сопровождается выраженными симптомами абстиненции: тремор, тахикардия, повышенное давление, беспокойство. В клинике «Северная Звезда» для детоксикации применяется инфузионная терапия с балансированными растворами, содержащими:
Детальнее – http://lechenie-alkogolizma-arkhangelsk0.ru/anonimnoe-lechenie-alkogolizma-arkhangelsk/
Критерии оценки профессионального уровня сотрудников:
Подробнее можно узнать тут – центр лечения алкоголизма ярославская область
Этот информативный текст отличается привлекательным содержанием и актуальными данными. Мы предлагаем читателям взглянуть на привычные вещи под новым углом, предоставляя интересный и доступный материал. Получите удовольствие от чтения и расширьте кругозор!
Не пропусти важное – https://youtrading.com/ru/otchet-po-bezraboticze-usilil-impuls-na-fondovom-rynke
В практической работе выделяются последовательные этапы, обеспечивающие медицинскую целостность:
Изучить вопрос глубже – наркологическая клиника клиника помощь в ростове-на-дону
В статье представлены ключевые моменты по актуальной теме, дополненные советами экспертов и ссылками на дополнительные ресурсы. Цель материала — дать читателю инструменты для самостоятельного развития и принятия осознанных решений.
См. подробности – http://oldwordpress39.pkl.beep.pl/kontakt
Каждый курс лечения включает несколько этапов, направленных на постепенное улучшение состояния. Система выстроена так, чтобы обеспечить плавное восстановление функций организма без стресса. Ниже приведена таблица, показывающая основные этапы лечения и применяемые процедуры.
Детальнее – срочный вывод из запоя в ростове-на-дону
Эта информационная заметка предлагает лаконичное и четкое освещение актуальных вопросов. Здесь вы найдете ключевые факты и основную информацию по теме, которые помогут вам сформировать собственное мнение и повысить уровень осведомленности.
Что ещё? Расскажи всё! – https://blog.ouriken.com/what-is-web-beacon-bug
В данной статье вы найдете комплексный подход к изучению насущных тем. Мы комбинируем теоретические сведения с практическими советами, чтобы читатель мог не только понять проблему, но и найти пути её решения.
Смотрите также… – http://ministries.ministerioshebron.com/index.php?option=com_k2&view=item&id=76:pr%C3%A9dicas-escogidas&lang=es&limitstart=267540
В этом интересном тексте собраны обширные сведения, которые помогут вам понять различные аспекты обсуждаемой темы. Мы разбираем детали и факты, делая акцент на важности каждого элемента. Не упустите возможность расширить свои знания и взглянуть на мир по-новому!
Проверенные методы — узнай сейчас – http://sochi.scapp.ru/scapp-krasota/za-krasotoj-svetit-luna
В этом интересном тексте собраны обширные сведения, которые помогут вам понять различные аспекты обсуждаемой темы. Мы разбираем детали и факты, делая акцент на важности каждого элемента. Не упустите возможность расширить свои знания и взглянуть на мир по-новому!
Что ещё? Расскажи всё! – https://template102.webekspor.com/5-main-destination-countries-for-indonesian-coffee-exports
Лечебный процесс организуется таким образом, чтобы каждый этап логически дополнял предыдущий и формировал устойчивую динамику. Это позволяет избежать резких изменений состояния и поддерживать медицинскую безопасность.
Получить дополнительную информацию – наркологическая клиника стационар в ростове-на-дону
Лечебный процесс организуется таким образом, чтобы каждый этап логически дополнял предыдущий и формировал устойчивую динамику. Это позволяет избежать резких изменений состояния и поддерживать медицинскую безопасность.
Получить дополнительные сведения – http://narkologicheskaya-klinika-v-rnd19.ru/chastnaya-narkologicheskaya-klinika-rostov-na-donu/
Ниже представлена таблица, демонстрирующая основные направления деятельности клиники и их особенности:
Подробнее тут – вывод наркологическая клиника
В этой информационной статье вы найдете интересное содержание, которое поможет вам расширить свои знания. Мы предлагаем увлекательный подход и уникальные взгляды на обсуждаемые темы, побуждая пользователей к активному мышлению и критическому анализу.
Расширить кругозор по теме – https://tyszkiewiczwadim.pl/moje-wazne-wydarzenia
Этот обзор предлагает структурированное изложение информации по актуальным вопросам. Материал подан так, чтобы даже новичок мог быстро освоиться в теме и начать использовать полученные знания в практике.
Желаете узнать подробности? – https://taiaea.org.tw/wp/archives/1330
Этот информативный текст отличается привлекательным содержанием и актуальными данными. Мы предлагаем читателям взглянуть на привычные вещи под новым углом, предоставляя интересный и доступный материал. Получите удовольствие от чтения и расширьте кругозор!
Полная информация здесь – https://www.avalab.org/2013/01/08/avastar-1-update-725/help_links_in_blender/comment-page-36420
В этой публикации мы предлагаем подробные объяснения по актуальным вопросам, чтобы помочь читателям глубже понять их. Четкость и структурированность материала сделают его удобным для усвоения и применения в повседневной жизни.
Более того — здесь – https://webofthings.org/2011/01/11/lifthackerspace-urbaniot
Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
Что ещё? Расскажи всё! – http://k-kawasho.sakura.ne.jp/light/light.cgi
Эта информационная статья содержит полезные факты, советы и рекомендации, которые помогут вам быть в курсе последних тенденций и изменений в выбранной области. Материал составлен так, чтобы быть полезным и понятным каждому.
Практические советы ждут тебя – https://www.congrescnge.fr/2019/10/28/le-congres-vous-presente-ses-animations
Этот сборник информации привлекает множеством мелких деталей и необычных ракурсов. Мы предлагаем взгляды, редко полезные, но способные немного разнообразить знакомство с темой.
Подробнее читать – купить бетон
Эта статья погружает вас в увлекательный мир знаний, где каждый факт становится открытием. Мы расскажем о ключевых исторических поворотных моментах и научных прорывах, которые изменили ход цивилизации. Поймите, как прошлое формирует настоящее и как его уроки могут помочь нам строить будущее.
Как это работает — подробно – https://en.teknopedia.teknokrat.ac.id/wiki/Category:Official_website_different_in_Wikidata_and_Wikipedia
Такой курс не только очищает организм от токсинов, но и помогает вернуть эмоциональное равновесие. После завершения терапии пациент чувствует себя отдохнувшим, восстанавливает аппетит и сон, уходит тревожность и раздражительность.
Выяснить больше – наркологический вывод из запоя краснодар
Врачи клиники используют современные методики, сочетающие медикаментозную терапию, психотерапию и физиологическое восстановление. Основное внимание уделяется не только физическому очищению организма, но и устранению причин, провоцирующих зависимость. Благодаря постоянному мониторингу жизненных показателей и корректировке схемы лечения удаётся избежать осложнений и обеспечить безопасное восстановление.
Разобраться лучше – http://narkologicheskaya-klinika-v-krd19.ru/narkolog-krasnodar-anonimno/
Структурированное наблюдение позволяет поддерживать согласованность лечебных мероприятий и своевременно реагировать на изменения. Такая система создаёт единый аналитический подход для оценки состояния и обеспечивает целостность терапевтического процесса.
Получить дополнительные сведения – запой наркологическая клиника в владивостоке
Перед началом терапии проводится полная диагностика организма, включая лабораторные исследования и ЭКГ. Это позволяет оценить состояние пациента и подобрать оптимальный курс лечения. После стабилизации физического состояния начинается психотерапевтическая и реабилитационная работа. Такой подход помогает не только снять симптомы, но и устранить первопричины зависимости.
Углубиться в тему – наркологическая клиника вывод из запоя кемерово
Клиника создана как современное пространство для безопасного восстановления. Здесь пациенты получают комплексную помощь в комфортных условиях. Основные преимущества учреждения:
Ознакомиться с деталями – наркологическая клиника в ростове-на-дону
thx
thx
thx
Каждое из направлений обеспечивает высокий уровень контроля и помогает формировать индивидуальный план воздействия. Такая модель создаёт условия для прогнозируемого восстановления. Для наглядности процессов применяется таблица, отражающая ключевые параметры наблюдения.
Разобраться лучше – запой наркологическая клиника
Современная наркологическая клиника — это не просто место, где оказывают медицинскую помощь. Это пространство, где пациенту помогают вернуться к жизни, свободной от зависимости, с заботой, уважением и индивидуальным подходом. В клинике «СибМед Кемерово» реализованы комплексные программы терапии алкоголизма, наркомании и других зависимостей. Каждая программа адаптируется под конкретное состояние пациента и сочетает медицинские, психологические и социальные методы воздействия. Важное преимущество — полная анонимность, обеспечивающая комфорт и доверие со стороны пациентов.
Получить дополнительные сведения – платная наркологическая клиника
В клинике работают врачи-наркологи, психиатры, терапевты, психологи, реабилитологи. Вместо «универсальной» схемы каждому пациенту подбирают индивидуальный план, учитывая возраст, стаж употребления, состояние внутренних органов, психоэмоциональный фон, семейную ситуацию. Это особенно важно для жителей Долгопрудного, где многие совмещают работу в Москве с плотным графиком, и любая ошибка в лечении может дорого обойтись — потерей работоспособности, срывом деловых или личных планов.
Исследовать вопрос подробнее – kodirovanie-ot-alkogolizma-na-domu-v-dolgoprudnom
Многие тянут до последнего, считая, что к наркологу обращаются только в самых крайних случаях. На деле показаний для консультации гораздо больше, и они часто появляются задолго до того, как человек впервые оказывается в запое или не выходит из состояния опьянения несколько дней подряд.
Узнать больше – воскресенская клиника