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隐藏得太深,总让人捉摸不定!>
Помимо медицинских процедур, клиника делает акцент на психологической поддержке и постлечебной адаптации. Пациентам помогают не только избавиться от физической зависимости, но и сформировать устойчивую мотивацию к трезвости, восстановить интерес к жизни и наладить отношения с близкими. Это достигается за счёт участия психологов, психотерапевтов и специалистов по социальной реабилитации.
Выяснить больше – http://narkologicheskaya-klinika-v-izhevske18.ru
В основе работы клиники «ИжТрезвоМед Центр» лежит принцип персонализированной медицины. Это означает, что каждый пациент получает не шаблонное лечение, а тщательно подобранный комплекс процедур, учитывающий его состояние, историю заболевания, уровень мотивации и социальную ситуацию. Такой подход позволяет добиться стабильного результата даже в сложных случаях. Лечение проводится анонимно, без постановки на учёт и разглашения данных, что особенно важно для тех, кто ценит конфиденциальность.
Подробнее – частная наркологическая клиника в ижевске
«Ижевский Центр Трезвых Решений» — это частное медицинское учреждение, где проводится лечение всех форм алкогольной и наркотической зависимости. Программы терапии разработаны на основе международных рекомендаций и включают не только медикаментозное воздействие, но и психологическую поддержку. Все процедуры проходят анонимно, без постановки на учёт, что особенно важно для пациентов, желающих сохранить конфиденциальность.
Подробнее тут – наркологическая клиника в ижевске
Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
Эксклюзивная информация для вас – https://tendernoe-soprovozhdenie-rostov-na-donu.ru/
В процессе терапии специалисты используют только сертифицированные препараты и современные методики, рекомендованные Минздравом РФ. Это позволяет безопасно очищать организм, устранять симптомы абстиненции и снижать риск рецидивов. Принцип клиники — работать не с последствиями зависимости, а с её причиной.
Узнать больше – запой наркологическая клиника в астрахани
Состав подбирается персонально, без шаблонов: корректируется гидратация, электролиты, витамины, антиоксидантная и гепатопротекторная поддержка. Ниже приведены ориентировочные модели, иллюстрирующие подход к детоксу при разных клинических сценариях.
Получить больше информации – http://vyvod-iz-zapoya-ulan-ude0.ru/vyvod-iz-zapoya-na-domu-ulan-ude/https://vyvod-iz-zapoya-ulan-ude0.ru
Этот информативный текст отличается привлекательным содержанием и актуальными данными. Мы предлагаем читателям взглянуть на привычные вещи под новым углом, предоставляя интересный и доступный материал. Получите удовольствие от чтения и расширьте кругозор!
Продолжить чтение – https://cinemalido.com.br/abebet-turkye-canl-bahs-sanal-rulet-oyna
Для формирования структурированного лечения используются методы, обеспечивающие анализ текущей клинической картины. Ниже представлены ключевые направления, задействованные при формировании терапевтических решений.
Подробнее можно узнать тут – наркологическая клиника лечение алкоголизма
Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
Кликни и узнай всё! – https://www.sergiobartoli.it/2024/02/05/insieme-per-la-prevenzione-del-tumore-al-seno
Лечение проходит поэтапно, чтобы пациент не испытывал стресса и перегрузок. Каждый шаг контролируется врачами, а терапия корректируется в зависимости от состояния. В таблице ниже представлена структура программы лечения в клинике «АстраМед Трезвость».
Ознакомиться с деталями – http://narkologicheskaya-klinika-v-astrakhani18.ru/astrakhanskaya-narkologiya/
Публикация посвящена жизненным историям людей, успешно справившихся с зависимостью. Мы покажем, что выход есть, и он начинается с первого шага — принятия проблемы и желания измениться.
Ознакомьтесь поближе – https://demetra-tmn.ru/klinika-kodirovaniya-ot-alkogolizma
Этот обзор предлагает структурированное изложение информации по актуальным вопросам. Материал подан так, чтобы даже новичок мог быстро освоиться в теме и начать использовать полученные знания в практике.
Желаете узнать подробности? – https://www.hotel-sugano.com/bbs/sugano.cgi/www.skitour.su/www.skitour.su/www.hip-hop.ru/forum/id298234-worksale/www.tovery.net/www.hip-hop.ru/forum/fen-d-10.ru
Детокс — важный этап лечения, который помогает очистить организм от токсинов и продуктов распада алкоголя или наркотиков. В клинике «ТомскМед Трезвость» используются современные капельницы и лекарственные комбинации, направленные на восстановление биохимических процессов в организме. Ниже представлена таблица с примерами капельниц, применяемых в детоксикационных программах.
Получить больше информации – наркологическая клиника вывод из запоя томск
В данной статье вы найдете комплексный подход к изучению насущных тем. Мы комбинируем теоретические сведения с практическими советами, чтобы читатель мог не только понять проблему, но и найти пути её решения.
Более того — здесь – https://doon.ca/courses/baf3m-financial-accounting-fundamentals-grade-11-university
*Седативные компоненты применяются по строгим показаниям, с мониторингом дыхания и сатурации.
Углубиться в тему – https://vyvod-iz-zapoya-ulan-ude0.ru/lechenie-alkogolizma-ulan-ude
Эта статья погружает вас в увлекательный мир знаний, где каждый факт становится открытием. Мы расскажем о ключевых исторических поворотных моментах и научных прорывах, которые изменили ход цивилизации. Поймите, как прошлое формирует настоящее и как его уроки могут помочь нам строить будущее.
Лови подробности – https://restauration-eglise-saint-yves-minihy.com/photo-entete-3
«Ижевский Центр Трезвых Решений» — это частное медицинское учреждение, где проводится лечение всех форм алкогольной и наркотической зависимости. Программы терапии разработаны на основе международных рекомендаций и включают не только медикаментозное воздействие, но и психологическую поддержку. Все процедуры проходят анонимно, без постановки на учёт, что особенно важно для пациентов, желающих сохранить конфиденциальность.
Подробнее можно узнать тут – http://narkologicheskaya-klinika-v-izhevsk18.ru
Структурированное наблюдение позволяет поддерживать согласованность лечебных мероприятий и своевременно реагировать на изменения. Такая система создаёт единый аналитический подход для оценки состояния и обеспечивает целостность терапевтического процесса.
Углубиться в тему – анонимная наркологическая клиника владивосток
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Разгадайте все загадки – https://tendernoe-soprovozhdenie-rostov-na-donu.ru
Для формирования структурированного лечения используются методы, обеспечивающие анализ текущей клинической картины. Ниже представлены ключевые направления, задействованные при формировании терапевтических решений.
Детальнее – наркологическая клиника лечение алкоголизма владивосток
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Разгадайте все загадки – тендерное сопровождение под ключ цена
Вывод из запоя — это не просто медицинская процедура, а важный шаг на пути восстановления организма и возвращения человека к нормальной жизни. В клинике «ВладТрезвие Центр» пациенты получают профессиональную помощь, основанную на современных методиках детоксикации и безопасном медикаментозном восстановлении. Каждый случай рассматривается индивидуально, а лечение подбирается с учётом возраста, состояния здоровья и продолжительности запоя. Наркологи центра выезжают на дом круглосуточно, обеспечивая помощь даже в экстренных ситуациях, когда время играет ключевую роль.
Выяснить больше – наркологический вывод из запоя владивосток
Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
Связаться за уточнением – http://besthiddengunsafeinwall.com/small-corner-gun-safe
В этой статье собраны факты, которые освещают целый ряд важных вопросов. Мы стремимся предложить читателям четкую, достоверную информацию, которая поможет сформировать собственное мнение и лучше понять сложные аспекты рассматриваемой темы.
Читать полностью – https://gatrik-ui.or.id/2021/10/25/s5e11-pembicara-prof-dr-dahlan-iskan
Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
Подробная информация доступна по запросу – https://portaldobrejo.com.br/rede-de-oticas-fabrica-de-oculos-e-reinaugurada-em-belem-na-pb/dsc_3635
Этот информативный текст отличается привлекательным содержанием и актуальными данными. Мы предлагаем читателям взглянуть на привычные вещи под новым углом, предоставляя интересный и доступный материал. Получите удовольствие от чтения и расширьте кругозор!
Подробнее тут – https://futuredream.wpxblog.jp/wpxblog-struggle-x2
В этой информационной статье вы найдете интересное содержание, которое поможет вам расширить свои знания. Мы предлагаем увлекательный подход и уникальные взгляды на обсуждаемые темы, побуждая пользователей к активному мышлению и критическому анализу.
Дополнительно читайте здесь – https://palmarubacondos.com/contact-aruba-condos/people-1
Этот текст призван помочь читателю расширить кругозор и получить практические знания. Мы используем простой язык, наглядные примеры и структурированное изложение, чтобы сделать обучение максимально эффективным и увлекательным.
Что скрывают от вас? – https://www.drachenreiter.berlin/leitbild
В данной обзорной статье представлены интригующие факты, которые не оставят вас равнодушными. Мы критикуем и анализируем события, которые изменили наше восприятие мира. Узнайте, что стоит за новыми открытиями и как они могут изменить ваше восприятие реальности.
Перейти к статье – https://crvradio.com.co/vida-latina
Тендерный специалист помогает разобраться в особенностях каждого закона, а также обеспечивает грамотное сопровождение всех процедур. Это особенно важно для компаний, которые только начинают участвовать в торгах и не имеют опыта работы с государственными контрактами.
Узнайте больше прямо сейчас – услуги тендерного сопровождения ростов на дону
В статье представлены ключевые моменты по актуальной теме, дополненные советами экспертов и ссылками на дополнительные ресурсы. Цель материала — дать читателю инструменты для самостоятельного развития и принятия осознанных решений.
Лови подробности – https://weskus-mall.co.za
Эта статья сочетает познавательный и занимательный контент, что делает ее идеальной для любителей глубоких исследований. Мы рассмотрим увлекательные аспекты различных тем и предоставим вам новые знания, которые могут оказаться полезными в будущем.
Где можно узнать подробнее? – https://bontontoys.jp/philosophy/philosophy-catch
В этой информационной статье вы найдете интересное содержание, которое поможет вам расширить свои знания. Мы предлагаем увлекательный подход и уникальные взгляды на обсуждаемые темы, побуждая пользователей к активному мышлению и критическому анализу.
Подробнее – https://saifbelhasaholding.com/2022/05/18/wasel-vehicle-testing-opening-nad-al-hammar-dubai
Финансовые инструменты позволяют заказчику убедиться в надежности участника и его готовности выполнить обязательства по контракту. При этом грамотное сопровождение снижает вероятность финансовых рисков и помогает правильно оформить документы для банка.
Глубже в тему — здесь – тендерное сопровождение в ростове на дону
Вывод из запоя требует комплексного контроля всех физиологических параметров. Ниже представлены основные направления наблюдения, формирующие структуру оценки состояния.
Узнать больше – https://vyvodiz-zapoya-izhevsk18.ru
Наркологическая клиника выстраивает лечебные мероприятия в соответствии с алгоритмами, направленными на достижение стабильного состояния пациента. Важную роль играет последовательное выполнение процедур, включая оценку реакции организма и корректировку вмешательств. Формирование индивидуальной программы позволяет учитывать особенности каждого случая и поддерживать высокий уровень эффективности. Процесс наблюдения сопровождается непрерывным анализом, что делает терапию адаптивной и предсказуемой. В клинике соблюдается принцип многоуровневого контроля, обеспечивающий безопасность и стабильность лечения.
Ознакомиться с деталями – наркологическая клиника наркологический центр в томске
Такой подход позволяет устранить физические последствия запоя и снизить психологическую зависимость. Уже после первой процедуры пациенты отмечают улучшение самочувствия, появление аппетита и нормализацию сна. Важно не ограничиваться только экстренной помощью — специалисты рекомендуют пройти курс восстановления, чтобы предотвратить рецидивы.
Получить дополнительную информацию – врач вывод из запоя владивосток
Этот медицинский обзор сосредоточен на последних достижениях, которые оказывают влияние на пациентов и медицинскую практику. Мы разбираем инновационные методы лечения и исследований, акцентируя внимание на их значимости для общественного здоровья. Читатели узнают о свежих данных и их возможном применении.
Подробнее тут – https://alko-narko.info/zapoy/kapelnica-ot-pohmelya.html
Эта информационная статья охватывает широкий спектр актуальных тем и вопросов. Мы стремимся осветить ключевые факты и события с ясностью и простотой, чтобы каждый читатель мог извлечь из нее полезные знания и полезные инсайты.
Есть чему поучиться – https://appeal.org.uk/andy-malkinson
В обзорной статье вы найдете собрание важных фактов и аналитики по самым разнообразным темам. Мы рассматриваем как современные исследования, так и исторические контексты, чтобы вы могли получить полное представление о предмете. Погрузитесь в мир знаний и сделайте шаг к пониманию!
Углубить понимание вопроса – https://savorrecipes.com/recipe/cheddar-and-horseradish-burger
Этот обзор сосредоточен на различных подходах к избавлению от зависимости. Мы изучим традиционные и альтернативные методы, а также их сочетание для достижения максимальной эффективности. Читатели смогут открыть для себя новые стратегии и подходы, которые помогут в их борьбе с зависимостями.
Исследовать вопрос подробнее – https://stop-alko.info/alkogolizm/kak-vybrat-nadyozhnuyu-kliniku-dlya-kodirovaniya.html
Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
Интересует подробная информация – https://dreva.by/_3
Наркологическая клиника выстраивает лечебные мероприятия в соответствии с алгоритмами, направленными на достижение стабильного состояния пациента. Важную роль играет последовательное выполнение процедур, включая оценку реакции организма и корректировку вмешательств. Формирование индивидуальной программы позволяет учитывать особенности каждого случая и поддерживать высокий уровень эффективности. Процесс наблюдения сопровождается непрерывным анализом, что делает терапию адаптивной и предсказуемой. В клинике соблюдается принцип многоуровневого контроля, обеспечивающий безопасность и стабильность лечения.
Получить дополнительную информацию – http://narkologicheskaya-klinika-tomsk18.ru/narkologicheskaya-klinika-v-tomske-otzyvy/
Эта информационная заметка содержит увлекательные сведения, которые могут вас удивить! Мы собрали интересные факты, которые сделают вашу жизнь ярче и полнее. Узнайте нечто новое о привычных аспектах повседневности и откройте для себя удивительный мир информации.
Только факты! – https://dh-electricalservices.co.uk/electrical-inspection-testing/what-is-5-year-electrical-testing
В этом интересном тексте собраны обширные сведения, которые помогут вам понять различные аспекты обсуждаемой темы. Мы разбираем детали и факты, делая акцент на важности каждого элемента. Не упустите возможность расширить свои знания и взглянуть на мир по-новому!
Подробная информация доступна по запросу – https://bookwormloscabos.com/2019/02/20/2792
Каждая процедура проводится под контролем врача и сопровождается мониторингом давления, пульса и температуры. После курса капельниц пациент чувствует улучшение самочувствия, нормализуется сон, снижается раздражительность, появляется энергия и ясность сознания.
Подробнее тут – наркологическая клиника клиника помощь в астрахани
Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
Получите экспертное мнение – тендерное сопровождение
thxx
Участие в государственных и коммерческих процедурах требует точной подготовки, понимания законодательства и внимательной работы с документами. Для многих компаний самостоятельная работа с закупками становится сложной задачей: необходимо отслеживать новые закупки, анализировать требования, оформлять документы и взаимодействовать с площадками.
Полный разбор — только здесь – участие в тендерах госзакупок ростов на дону
Наркологическая клиника применяет структурированные методы, включающие изучение анамнеза, оценку текущего состояния и определение возможных рисков. На основе полученной информации формируются индивидуальные схемы лечения, направленные на нормализацию внутренних процессов. Работа строится на многоуровневом наблюдении, включающем анализ лабораторных показателей и оценку функциональных систем организма. Такой формат позволяет поддерживать стабильную динамику изменений и избегать осложнений. В клинике создается согласованная модель вмешательств, позволяющая получать устойчивые результаты.
Узнать больше – http://narkologicheskaya-klinika-tomsk18.ru