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隐藏得太深,总让人捉摸不定!>
Наркологическая помощь подходит пациентам с разным стажем заболевания. Один пациент страдает алкоголизмом несколько лет, другой сталкивается с зависимостью 10 лет, третий употребляет 15 лет или больше. Количество лет учитывается вместе с общим состоянием, частотой запоя и результатами прежнего лечения.
Дополнительная информация – нарколог на дом в Воронеже
Провести инфузию на дому врач может при наличии медицинских показаний и стабильном состоянии человека. Процедура особенно востребована, когда больному сложно самостоятельно приехать в медицинский центр, после заболевания требуется восстановление или назначили курс внутривенного лечения. В некоторых случаях помощь на дому удобна пожилому человеку, пациенту после перенесенной инфекции или человеку, которому необходимо продолжить терапию в домашней обстановке.
Подробнее – капельница от запоя на дому
Помощь оказывают врачи с практикой в наркологии, психиатрии и восстановительной терапии.
Дополнительная информация – https://clients1.google.com.qa/url?sa=t&url=https://c.vyvod-iz-zapoya-v-krasnoyarske17.ru
В этой статье мы рассмотрим современные достижения в области медицины, включая инновационные методы лечения и диагностики. Мы обсудим важность профилактики заболеваний и роль технологий в улучшении качества здравоохранения. Читатели узнают о влиянии медицины на повседневную жизнь и ее значение для современного общества.
Читать далее > – наркологические клиники помощь
Помощь может включать консультацию, детоксикацию, стационар и дальнейшее сопровождение по показаниям.
Подробнее – http://www.4.vyvod-iz-zapoya-moskva1-13.ru
Врач проводит осмотр и определяет степень тяжести абстиненции. В некоторых случаях стандартная капельница на дому позволяет значительно улучшить самочувствие, однако при серьезно измененных показателях здоровья, психозе, угрозе жизни или сочетанном употреблении различных веществ специалист предложит госпитализацию. Такое решение принимается исходя из безопасности больного, а не только из желания провести лечение дома.
Узнать больше – skoraya-pomoshch-vyvoda-iz-zapoya
Провести инфузию на дому врач может при наличии медицинских показаний и стабильном состоянии человека. Процедура особенно востребована, когда больному сложно самостоятельно приехать в медицинский центр, после заболевания требуется восстановление или назначили курс внутривенного лечения. В некоторых случаях помощь на дому удобна пожилому человеку, пациенту после перенесенной инфекции или человеку, которому необходимо продолжить терапию в домашней обстановке.
Дополнительная информация – https://nadomu4.kapelnica-ot-zapoya-v-moskve14-1.ru/
В каждом случае решение принимается индивидуально. Капельница на дому не должна ставиться только по желанию клиента или по совету знакомых. Даже популярные составы имеют противопоказания, а лекарственные препараты могут вызывать индивидуальные реакции. Именно поэтому медицинский специалист обязательно проверяет назначения перед началом процедуры и следит за показателями человека в течение введения раствора.
Ознакомиться с деталями – kapelnica-na-domu-moskva-ceny
Схема помощи зависит от состояния, стажа употребления, противопоказаний и дальнейших целей лечения.
Узнать больше – vyvod-iz-zapoya-na-domu
Этот обзор сосредоточен на различных подходах к избавлению от зависимости. Мы изучим традиционные и альтернативные методы, а также их сочетание для достижения максимальной эффективности. Читатели смогут открыть для себя новые стратегии и подходы, которые помогут в их борьбе с зависимостями.
А что дальше? – кодирование от алкоголизма адреса
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Подробнее – частная наркологическая клиника казань
В данной публикации мы поговорим о процессе восстановления от зависимости, о том, как вернуть себе нормальную жизнь. Мы обсудим преодоление трудностей, значимость поддержки и наличие программ реабилитации. Читатели смогут узнать о ключевых шагах к успешному восстановлению.
Нажмите, чтобы узнать больше – наркология вывод из запоя на дому цена адреса и телефоны
Текст посвящён распространённым мифам о зависимости и их развенчанию. Мы предоставим научно обоснованную информацию и дадим рекомендации по выбору эффективного способа борьбы с зависимым поведением.
Исследовать вопрос подробнее – наркология вывод из запоя на дому цена адреса и телефоны
Наркологическая служба в Красноярске принимает обращения круглосуточно. Срочный вызов нарколога может понадобиться ночью, в выходной или праздник, когда самостоятельно справиться с похмельным синдромом не получается. В легких и среднетяжелых случаях помощь возможна дома. При делирии, судорогах, тяжелых сердечно-сосудистых нарушениях, передозировке или угрозе жизни требуется стационар либо бригада скорой и неотложной помощи.
Дополнительная информация – https://www.google.com.ag/url?q=http://a.vyvod-iz-zapoya-v-krasnoyarske17.ru
Ən çox diqqət etdiyim şey bonus şərtləri idi. 1xbet-də bonuslar həqiqətən də cəlbedicidir. 1xbet bonus — burada həm yeni, həm də təcrübəli oyunçular üçün bonuslar var. Bonus şərtləri şəffafdır və sadədir. Ən xoşum gələn odur ki, bonusları asanlıqla aktivləşdirmək olar. 1xbet bonus 1xbet bonus Bonusları vaxtında aktivləşdirin, qaçırmayın üçün Azərbaycan. 1xbet bonus ilə əlavə qazanc əldə etmək istəyirsinizsə — linkə keçin. 1xbet bonus — daha çox imkan, daha çox uduş!
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Дополнительная информация – вывод из запоя сайт
Помощь оказывают врачи с практикой в наркологии, психиатрии и восстановительной терапии.
Узнать больше – вызвать нарколога на дом в Воронеже
Принимаем заявки круглосуточно, уточняем состояние и подбираем безопасный формат помощи.
Ознакомиться с деталями – нарколог на дом
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Как достичь результата? – кодирование от алкоголизма на дому в казани
Если у человека абстиненция началась резко, родственникам не стоит пытаться самостоятельно очистить организм алкоголика большим количеством лекарств. Это относится и к ситуации, когда сформировался длительный пивной запой. Снятие похмельного синдрома должно проводиться грамотно: капельница на дому назначается врачом, а дозировки рассчитываются строго по клиническим данным. Эти данные помогают выбрать безопасный объем инфузии. Некоторые средства в сочетании со спиртным способны усилить побочные реакции. Грамотно оценить ситуацию может врач: он определит, показана ли капельница на дому или безопаснее выбрать палаты стационара.
Получить больше информации – vyzvat-kapelnicu-ot-zapoya-na-domu
Запой опасен не только похмельным самочувствием. При длительном употреблении спиртного повышается нагрузка на печень, сердце, сосудистую и нервную системы, головной мозг и другие внутренние органы. У зависимых могут развиваться обезвоживание, нарушения электролитного баланса, аритмии, тревожность, депрессия, судорожные состояния и алкогольные психозы. Поэтому вопрос, стоит ли самостоятельно резко прекращать длительный запой, необходимо решать вместе с врачом. Особенно важно обратиться за медицинской помощью, если больной употребляет алкоголь несколько дней подряд, страдает тяжелыми хроническими заболеваниями или ранее сталкивался с осложнениями отмены.
Подробнее – вывод из запоя стационар
Этот обзор медицинских исследований собрал самое важное из последних публикаций в области медицины. Мы проанализировали ключевые находки и представили их в доступной форме, чтобы читатели могли легко ориентироваться в актуальных темах. Этот материал станет отличным подспорьем для изучения медицины.
Смотрите также… – вывод из запоя на дому реутов
Условия пребывания и продолжительность курса напрямую зависят от состояния человека, диагноза, стадии зависимости, периода употребления, ранее проведенного лечения и готовности зависимого участвовать в программе. В стационар кладут не каждого обратившегося: иногда помощь нарколога может проводиться амбулаторно или на дому, однако при тяжелых истощениях, обострениях хронических болезней, психозах, выраженной абстиненции и других опасных состояниях может потребоваться госпитализировать человека. Решение принимает врач на основании осмотра и оценки рисков, а не только по желанию родственников.
Узнать больше – http://images.google.nl/url?q=https://a.narkologicheskaya-klinika-v-krasnoyarske17.ru
Информация об обращении не передается третьим лицам, а детали лечения обсуждаются только с пациентом.
Узнать больше – srochnyj-vyvod-iz-zapoya
casino https://perfectmarketingsolution.com/website-analysis/domain/legion-bet.gb.net
Помощь можно получить анонимно, с аккуратным оформлением и внимательным отношением к личным данным.
Ознакомиться с деталями – https://1.kapelnica-ot-zapoya-v-moskve14.ru/
В этой статье обсуждаются актуальные медицинские вопросы, которые волнуют общество. Мы обращаем внимание на проблемы, касающиеся здравоохранения и лечения, а также на новшества в области медицины. Читатели будут осведомлены о последних событиях и смогут следить за тенденциями в медицине.
Углубиться в тему – Капельница от запоя
В этом обзоре мы обсудим современные методы борьбы с зависимостями, включая медикаментозную терапию и психотерапию. Мы представим последние исследования и их результаты, чтобы читатели могли быть в курсе наиболее эффективных подходов к лечению и поддержке.
Что скрывают от вас? – вызвать капельницу на дом от запоя
Этот информационный материал подробно освещает проблему наркозависимости, ее причины и последствия. Мы предлагаем информацию о методах лечения, профилактики и поддерживающих программах. Цель статьи — повысить осведомленность и продвигать идеи о необходимости борьбы с зависимостями.
Углубиться в тему – https://trezviy-gorod.ru/lechenie-alkogolizma
В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
Ознакомьтесь с аналитикой – https://trezviy-gorod.ru/lechenie-pivnogo-alkogolizma
Особенно опасно без контроля резко прекращать длительный запой, использовать сильнодействующие таблетки или сочетать их с алкоголем. Домашнее лечение возможно лишь при приемлемой клинической картине. Если есть сомнения, лучше вызвать специалиста и получить рекомендации.
Дополнительная информация – врач нарколог на дом в Воронеже
В центре используются современные медицинские и психотерапевтические методики. Лечение может начинаться с экстренной процедуры и продолжаться длительным курсом, который включает медикаментозное лечение, психотерапию, психологическую поддержку и реабилитацию. Важно не только быстро улучшить самочувствие, но и помочь зависимому вернуться к нормальной жизни без прежних разрушительных привычек.
Узнать больше – https://narkologicheskaya-klinika-zhukovskij4.ru/
Помощь можно получить анонимно, с аккуратным оформлением и внимательным отношением к личным данным.
Подробнее – https://1.vyvod-iz-zapoya-moskva1-13.ru/
После продолжительного употребления спиртного организм человека сталкивается с обезвоживанием, накоплением продуктов распада этанола и сбоем обменных процессов. Токсины воздействуют на нервную систему, печень, сердце и почки, из-за чего самочувствие может быстро ухудшаться. Капельница при запое помогает восполнять дефицит жидкости, поддерживает солевой баланс и ускоряет восстановительные процессы. Однако выбор схемы зависит от тяжести состояния пациента, возраста, длительности употребления и сопутствующих болезней.
Подробнее – https://1.kapelnica-ot-zapoya-v-moskve14.ru/
casino https://wmhost.ru/whois/domain/koningcasino.eu.com
Некоторые алкоголики пытаются вывести себя из запоя самостоятельно: резко прекращают пить, используют случайные лекарства или ориентируются на советы из информационных статей. Однако безопасный вывод зависит от множества факторов. Одни и те же препараты могут по-разному действовать при хронических заболеваниях, нарушениях функции печени, сердечной патологии или сочетании алкоголя с лекарственными веществами.
Дополнительная информация – vyvod-iz-zapoya-moskovskij-rajon
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Ознакомиться с деталями – вывод из запоя в стационаре
Лечение запоя на дому подходит не во всех случаях. При относительно стабильном самочувствии нарколог приезжает по указанному адресу, оценивает пациента, подбирает препараты и при наличии показаний проводит инфузионное лечение. Если абстиненция протекает тяжело, пациенту предлагают лечение в стационаре клиники. Такой путь позволяет организовать круглосуточный контроль и быстро скорректировать лечение, если самочувствие меняется.
Подробнее – наркология вывод из запоя
Продолжительный запой сопровождается накоплением токсических продуктов распада спиртного, нарушениями водно-электролитного баланса, бессонницей, раздражительностью, слабостью, тремором, тошнотой, рвотой и изменением артериального давления. Чем больше количество выпитого и длительность алкогольной нагрузки, тем выше вероятность осложнений со стороны сердца, печени, нервной системы и головного мозга. Поэтому резкий самостоятельный отказ от алкоголя после длительного запоя может быть опасен. Опытный нарколог определяет уровень тяжести синдрома, исключает противопоказания и решает, подходит ли человеку лечение на дому или необходима транспортировка в стационар.
Получить больше информации – москва вывод из запоя
Вывод из запоя представляет собой последовательный процесс. Лечение начинается с оценки текущих жалоб пациента и причин ухудшения самочувствия. Нарколог учитывает течение абстинентного синдрома, наличие сопутствующих расстройств и результаты доступной диагностики. Затем выбирается лечение на дому либо лечение в клинике. В тяжелых ситуациях пациент получает помощь в стационаре, где имеется возможность круглосуточного контроля.
Узнать больше – http://vyvod-iz-zapoya-orekhovo-zuevo4.ru/
Если наблюдаются судороги, потеря сознания, выраженные нарушения дыхания, тяжелая передозировка, психоз или резкое изменение поведения, обычного домашнего выезда может быть недостаточно. В таких ситуациях требуется неотложная медицинская помощь. После осмотра нарколог также может принять решение о необходимости стационара.
Получить больше информации – нарколог на дом анонимно в Воронеже
Решение вызвать врача особенно важно, если состояние зависимого быстро ухудшается, появляются выраженные расстройства сна, тревожные или панические атаки, сильная слабость, рвота, тремор, перепады давления либо нарушения поведения. Однако запой часто сопровождается обострением хронических заболеваний и развитием сопутствующих патологий. Поэтому медицинская диагностика нужна не только для снятия похмелья, но и для оценки возможных осложнений.
Ознакомиться с деталями – https://maps.google.cat/url?sa=t&url=https://c.vyvod-iz-zapoya-v-krasnoyarske17.ru
And nothing says style quite like driving a luxury car. I wanted to find a company that offered both quality cars and great service. Fortunately, I stumbled upon exactly what I was looking for. rent a luxury car miami — the selection was amazing. No hard sales tactics, just honest advice. It made every journey feel like an adventure. If you’re looking for a car that matches the city’s energy. luxury rental cars miami https://luxury-car-rental-miami-nwj.com All the details are there for Miami. If you want a luxury car in Miami — just use the link. Luxury car rental Miami — drive in style, create memories!
В центре используются современные медицинские и психотерапевтические методики. Лечение может начинаться с экстренной процедуры и продолжаться длительным курсом, который включает медикаментозное лечение, психотерапию, психологическую поддержку и реабилитацию. Важно не только быстро улучшить самочувствие, но и помочь зависимому вернуться к нормальной жизни без прежних разрушительных привычек.
Получить больше информации – narkologicheskaya klinika
Лечение в клинике проходит под контролем специалистов. Врач оценивает динамику, при необходимости меняет назначения и объясняет пациенту, какие этапы лечения предстоит пройти далее. Такой подход позволяет сделать медицинскую помощь последовательной и безопасной. Если состояние меняется, программа корректируется, поэтому человек получает именно тот объем лечения, который необходим сейчас.
Подробнее – наркологическая клиника телефон
К наиболее частым проявлениям относятся следующие симптомы и нарушения:
Подробнее – narkolog-vyvod-iz-zapoya
Быстро собираем первичную информацию, оцениваем риски и предлагаем подходящий вариант обращения.
Ознакомиться с деталями – http://www.google.co.zw/url?q=http://a.vyvod-iz-zapoya-v-krasnoyarske17.ru
Принимаем заявки круглосуточно, уточняем состояние и подбираем безопасный формат помощи.
Ознакомиться с деталями – врач нарколог на дом
Главный ориентир для родственников — не только количество выпитого, но и изменения поведения, сознания и физических показателей больного. Если состояние быстро ухудшается, человек плохо ориентируется в обстановке или уже имеет серьезные хронические заболевания, помощь необходимо получить максимально оперативно. Экстренная наркологическая помощь особенно важна при сочетании алкоголя с лекарственными средствами, наркотиками или другими психоактивными веществами.
Дополнительная информация – скорая вывод из запоя
Главная задача процедуры — мягко снять проявления похмелья, восполнить воду и соль, поддержать обмен веществ и создать условия, в которых восстановление проходит легче. В раствор могут вводиться физраствор, раствор Рингера, глюкоза, витамин, препараты натрия, калия, магния или хлорида, а также средства по показаниям. Капельница не является способом мгновенно избавиться от алкоголизма: она используется как этап детоксикации и помогает вернуть более стабильное самочувствие. При повторных запоях клиника предлагает продолжить лечение зависимости.
Дополнительная информация – https://1.kapelnica-ot-zapoya-v-moskve14.ru/