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隐藏得太深,总让人捉摸不定!>
Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
Почему это важно? – “delta clinic ru
При перечисленных проявлениях домашнее лечение может быть небезопасным. Врач определяет, нужна ли срочная госпитализация, дополнительная диагностика или лечение в стационаре. Самостоятельный прием сильнодействующих лекарств, попытка снять абстиненцию новой дозой алкоголя или случайным уколом способны привести к ухудшению.
Подробнее – вывод из запоя вызов в Екатеринбурге
Капельница от запоя обычно облегчает проявления интоксикации постепенно, а не мгновенно. По мере введения раствора врач наблюдает за реакциями, контролирует показатели и при необходимости корректирует схему. Эффект зависит от тяжести отравления, продолжительности запоя, возраста, особенностей обмена веществ, состояния внутренних органов и количества алкоголя, которое человек употреблял в последние часы и дни.
Подробнее – вызвать капельницу от запоя
В Красноярске наркологическая помощь на дому может быть организована круглосуточно, включая выходные и праздники. При обращении необходимо сообщить адрес, возраст, длительность запоя, количество алкоголя и сведения о хронических заболеваниях. Нарколог использует эти данные для подготовки выезда и выбора медицинских средств. Если человеку требуется срочный вызов, желательно подробно описать жалобы, чтобы врач мог заранее оценить характер проблемы.
Изучить вопрос подробнее – https://narcolog-na-dom-krasnoyarsk3.ru/
Эта статья подробно расскажет о процессе выздоровления, который включает в себя эмоциональную, физическую и психологическую реабилитацию. Мы обсуждаем значимость поддержки и наличие профессиональных программ. Читатели узнают, как строить новую жизнь и не возвращаться к старым привычкам.
Более подробно об этом – капельница против похмелья сколько стоит
Срочный вывод из запоя требуется при выраженной абстиненции, многодневном пьянстве и заметном ухудшении самочувствия. Нарколог приезжает на дом после оформления вызова и оценивает, можно ли проводить лечение на месте. Чем тяжелее запой, тем важнее вовремя принять решение о переводе в клинику. Иногда неотложная помощь требуется утром после тяжелой ночи, иногда состояние ухудшается вечером или ночью, поэтому возможность круглосуточного обращения имеет практическое значение.
Ознакомиться с деталями – https://4.vyvod-iz-zapoya-balashiha13.ru
Особого внимания требуют ситуации, когда появляются:
Дополнительная информация – вывод из алкогольного запоя
Рекомендации строятся вокруг состояния человека, а не по универсальному шаблону для всех случаев.
Дополнительная информация – https://vyvod-iz-zapoya-v-ekaterinburge20.ru/
Вывод из запоя в Ростове-на-Дону — это медицинская процедура, направленная на устранение симптомов алкогольной интоксикации, восстановление функций организма и предотвращение осложнений. В клинике помощь оказывается круглосуточно, а лечение проводится под контролем опытных наркологов. Такой подход позволяет безопасно прекратить употребление алкоголя, избежать резкой отмены и стабилизировать состояние пациента. Процедура проводится как в стационаре, так и на дому, с учётом состояния здоровья и степени зависимости.
Подробнее тут – https://vyvod-iz-zapoya-v-rostove-na-donu16.ru/
Эта медицинская заметка содержит сжатую информацию о новых находках и методах в области здравоохранения. Мы предлагаем читателям свежие данные о заболеваниях, профилактике и лечении. Наша цель — быстро и доступно донести важную информацию, которая поможет в повседневной жизни и понимании здоровья.
Откройте для себя больше – нарколог на дом клиника
Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
Интересует подробная информация – вызвать врача нарколога на дом срочно
Помощь оказывают врачи с практикой в наркологии, психиатрии и восстановительной терапии.
Получить больше информации – наркологическая клиника Красноярск
В статье рассматриваются различные стратегии борьбы с зависимостями, включая проверенные методы и реальные истории успеха. Читатель узнает, какие подходы наиболее эффективны и как начать путь к выздоровлению.
Полная информация здесь – вывод из запоя под наблюдением врачей
В данной статье рассматриваются проблемы общественного здоровья и социальные факторы, влияющие на него. Мы акцентируем внимание на значении профилактики и осведомленности в защите здоровья на уровне общества. Читатели смогут узнать о новых инициативах и программах, направленных на улучшение здоровья населения.
Провести детальное исследование – вызвать нарколога на дом срочно нижний новгород
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
Выяснить больше – капельница при алкогольной интоксикации цена
Эта публикация исследует взаимосвязь зависимости и психологии. Мы обсудим, как психологические аспекты влияют на появление зависимостей и процесс выздоровления. Читатели смогут понять важность профессиональной поддержки и применения научных подходов в терапии.
Узнать больше – вывод из запоя в стационаре клиника
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Ознакомьтесь с аналитикой – услуги нарколога выезд на дом
Эта публикация обращает внимание на важность профилактики зависимостей. Мы обсудим, как осведомленность и образование могут помочь в предотвращении возникновения зависимости. Читатели смогут ознакомиться с полезными советами и ресурсами, которые способствуют здоровому образу жизни.
Нажмите, чтобы узнать больше – delta clinic ru борисоглебск
Обзор посвящён процессу восстановления после зависимостей. Мы расскажем о различных этапах реабилитации, поддерживающих ресурсах и важности мотивации в достижении устойчивого выздоровления.
Познакомиться с результатами исследований – вывод из запоя в стационаре
Текст посвящён распространённым мифам о зависимости и их развенчанию. Мы предоставим научно обоснованную информацию и дадим рекомендации по выбору эффективного способа борьбы с зависимым поведением.
Получить дополнительную информацию – вывод из запоя в стационаре клиника
Вывод из запоя в стационаре в Челябинске — эффективное решение для длительного запоя. Мы предоставляем круглосуточную медицинскую помощь, обеспечивая комфорт и безопасность на каждом этапе лечения.
Получить больше информации – наркологический вывод из запоя в челябинске
Запой часто развивается на фоне хронического алкоголизма. Регулярное употребление этанола нарушает физиологические процессы, влияет на ткани мозга, нервную систему и работу сосудов. Чем больше лет продолжается зависимость, тем выше вероятность тяжелой абстиненции, обезвоживания, психических нарушений и повторного запоя. Своевременное лечение помогает стабилизировать состояние и начать дальнейший путь к трезвой жизни.
Дополнительная информация – https://vyvod-iz-zapoya-v-ekaterinburge21.ru/
Затеяли ремонт. То размеры не те, то ниша неудобная. Заказать кухню по размерам с выездом замерщика — И учитывают каждую мелочь. Сначала замерщик приезжает. Кухни на заказ каталог с ценами — И уже потом заказывать. Можете ознакомиться по ссылке: каталог кухонь на заказ от производителя СПб https://zakazat-kuhnyu-bkr.ru Там и про каталог кухонь Глория для Ленобласти. Проверяйте варианты заранее.
Помню, знакомый собирался в отпуск. Ни оплатить отель. Открыть карту зарубежного банка — это не то же самое, что обычная карта. Кто-то оформляет удалённо. Как получить зарубежную карту — И какие документы нужны. Вся информация доступна здесь: карта иностранного банка удаленно карта иностранного банка удаленно И про удалённое открытие для оплаты за рубежом. Иногда оформление занимает не один день.
casino https://urlrating.com/domain/starvegascasino.it
Во время выезда специалист контролирует переносимость назначений. Если выясняется, что на дому нельзя обеспечить достаточную безопасность, больному предлагают стационар. Такая тактика особенно важна при продолжительном запое, заболеваниях сердца, выраженных психических нарушениях или сомнениях в диагнозе.
Изучить вопрос подробнее – нарколог на дом вывод из запоя
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Подробнее – быстрый вывод из запоя
Психотерапия в лечении алкоголизма играет важнейшую роль. Используются когнитивно-поведенческие техники, групповые занятия, а также индивидуальные консультации с психологами и психотерапевтами. Применение методов мотивационного интервьюирования способствует формированию устойчивой мотивации на трезвость, что подробно описано в исследованиях Американской психиатрической ассоциации. Также актуальную информацию можно найти на портале Психологической ассоциации России.
Исследовать вопрос подробнее – https://lechenie-alkogolizma-krasnodar00.ru/metody-lecheniya-alkogolizma-krasnodar
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Дополнительная информация – нарколог на дом вывод из запоя Екатеринбург
В этой статье рассматривается комплексный подход к избавлению от зависимости. Читатель узнает, как сочетание физического, психологического и духовного восстановления помогает достичь стойкого выздоровления.
Следуйте по ссылке – deltaclinic
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Ознакомиться с деталями – вывод из запоя в стационаре
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Узнать больше – https://vyvod-iz-zapoya-krasnoyarsk69.ru/
Вывод из запоя в Екатеринбурге применяется для прерывания продолжительного приема алкоголя, облегчения абстиненции и восстановления нормальной работы организма. Нарколог оценивает симптомы, длительность запойного периода, возраст, стаж алкоголизма, работу сердца, печени и почек. В зависимости от тяжести помощь можно оказать на дому либо продолжить лечение в стационаре. Основная задача — безопасно вывести зависимого из острого периода и создать условия для дальнейшего лечения алкоголизма.
Ознакомиться с деталями – вывод из запоя в Екатеринбурге
В «Частном Медике 24» в Челябинске мы заботимся о вашем здоровье и благополучии, предоставляя качественную медицинскую помощь. Наши специалисты всегда готовы помочь вам на пути к выздоровлению.
Подробнее – вывод из запоя на дому в челябинске
Эта информационная публикация освещает широкий спектр тем из мира медицины. Мы предлагаем читателям ясные и понятные объяснения современных заболеваний, методов профилактики и лечения. Информация будет полезна как пациентам, так и медицинским работникам, желающим поддержать уровень своих знаний.
Только факты! – выезд нарколога на дом екатеринбург
Капельница от запоя в Москве применяется как медицинский метод детоксикации при алкогольной интоксикации и выраженном похмельном или абстинентном синдроме. Центр «Мед Алко» организует помощь круглосуточно: возможен выезд врача на дому либо проведение процедуры в стационаре. Нарколог оценивает общее состояние человека, длительность запоя, количество выпитого спиртного, наличие хронических заболеваний, показатели давления, пульса и уровень сознания. Только после осмотра подбирается индивидуальный состав капельницы, определяется объем раствора и решается вопрос, безопасно ли проводить лечение в домашних условиях.
Ознакомиться с деталями – https://2.kapelnica-ot-zapoya-v-moskve14.ru/
Ниже собраны основные тематические направления, связанные с вытрезвлением, лечением алкоголизма, работой нарколога, восстановлением организма, реабилитацией и помощью родственникам. Плитка не содержит ссылок и используется как дополнительный тематический блок страницы.
Дополнительная информация – https://vyvod-iz-zapoya-v-ekaterinburge24.ru/
В этой статье мы рассмотрим современные достижения в области медицины, включая инновационные методы лечения и диагностики. Мы обсудим важность профилактики заболеваний и роль технологий в улучшении качества здравоохранения. Читатели узнают о влиянии медицины на повседневную жизнь и ее значение для современного общества.
Это стоит прочитать полностью – вывод из запоя в стационаре
Врач учитывает симптомы, риски, анамнез и семейную ситуацию, чтобы предложить подходящую программу.
Дополнительная информация – скорая вывод из запоя
За границей просто не работает. Ни снять деньги в банкомате. Оформить зарубежную карту — И другой процесс оформления. Кто-то оформляет удалённо. Карта зарубежного банка для россиян — И какие документы нужны. Вся информация доступна здесь: карты иностранных банков в рф карты иностранных банков в рф И про карты банков СНГ для поездок. Не откладывайте на последний момент.
Ниже собраны основные тематические направления, связанные с вытрезвлением, лечением алкоголизма, работой нарколога, восстановлением организма, реабилитацией и помощью родственникам. Плитка не содержит ссылок и используется как дополнительный тематический блок страницы.
Дополнительная информация – вывод из запоя на дому недорого в Екатеринбурге
Вывод из запоя в Балашихе в «Частный Медик 24» предполагает помощь человеку при алкогольной интоксикации, похмельном синдроме и ухудшении самочувствия после нескольких дней непрерывного приема спиртного. Наркологическая помощь доступна анонимно: специалист может приехать на дом, провести осмотр, определить степень тяжести состояния и подобрать лечение. Если вывод из запоя на дому небезопасен, лечение продолжают в клинике или стационаре, где доступен более полный контроль показателей и круглосуточная поддержка.
Узнать больше – vyvod-iz-zapoya-s-vyezdom
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Получить больше информации – помощь вывод из запоя Екатеринбург
Лечение на дому подходит не каждому, но позволяет провести обследование и первичную стабилизацию в привычной обстановке. Выезд нарколога доступен круглосуточно по Екатеринбургу. До приезда не следует самостоятельно использовать сильнодействующие седативные, снотворные или сочетать лекарства с новой дозой спиртного. Такие действия могут привести к опасным реакциям.
Получить больше информации – http://www.vyvod-iz-zapoya-v-ekaterinburge18.ru
С пациентом работают профильные специалисты, которые оценивают состояние и подбирают безопасный план помощи.
Подробнее – вывод из запоя капельница в Екатеринбурге
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Изучить вопрос подробнее – помощь вывод из запоя Екатеринбург
Эта статья подробно расскажет о процессе выздоровления, который включает в себя эмоциональную, физическую и психологическую реабилитацию. Мы обсуждаем значимость поддержки и наличие профессиональных программ. Читатели узнают, как строить новую жизнь и не возвращаться к старым привычкам.
Перейти к полной версии – капельница снятие похмелья
При подобных проявлениях врач решает, подходит ли лечение на дому. Иногда безопаснее сразу попасть в отделение наркологии, где есть оборудование, анализы крови, мониторинг и возможность экстренного вмешательства. Клинику можно выбрать заранее или обратиться в ближайший профильный диспансер.
Подробнее – вывод из запоя вызов на дом
Дверь заперта, телефон не берёт. Запой жуткий, сам не остановится. Нарколог на дом для вывода из запоя — это когда врач приезжает сам. Потом давление выравнивают. Срочный вывод из запоя на дому — работает и ночью. Советую глянуть источник: капельница для вывода из запоя на дому https://vyvod-iz-zapoya-v-irkutske-hnu.ru И про срочный выезд для Иркутской области. Не ждите, пока станет хуже.
В данной статье мы акцентируем внимание на важности поддержки в процессе выздоровления. Мы обсудим, как друзья, семья и профессионалы могут помочь тем, кто сталкивается с зависимостями. Читатели получат практические советы, как поддерживать близких на пути к новой жизни.
Это стоит прочитать полностью – врач нарколог на дом