蓝屏,谁之过?

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隐藏得太深,总让人捉摸不定!>

18,517 条评论

  1. Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
    Ознакомиться с деталями – услуги нарколога на дому цена

  2. Amma çox vaxt ya vaxtı keçmiş olurdu, ya da işləmirdi. Burada həmişə yenilənmiş və işləyən kodlar var. 1xbet promo kod — daha çox mərc edə bilirəm. Heç bir tələ yoxdur. Mənə ən çox xoş gələn odur ki, promo kodlar həm yeni, həm də köhnə oyunçular üçün var. 1xbet promo code azerbaijan 1xbet promo code azerbaijan Bütün aktiv promo kodlar, bonus şərtləri və istifadə qaydaları buradadır üçün Azərbaycan. 1xbet promo kod ilə əlavə bonus əldə etmək istəyirsinizsə — linkə keçin. 1xbet promo kod — daha çox imkan, daha çox uduş!

  3. Сочетание медицинских и психотерапевтических мер создаёт устойчивую систему поддержки. Пациенты получают возможность постепенно восстановить утраченное здоровье и психологическую стабильность.
    Исследовать вопрос подробнее – http://narkologicheskaya-klinika-v-kazani16.ru

  4. Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
    Прочесть заключение эксперта – реабилитация наркозависимых мытищи

  5. Круглосуточный режим — не просто «расписание». Это доступность врача тогда, когда симптомы наиболее коварны: поздним вечером, ночью, в выходные и праздники. У нас нет очередей и «окна через неделю»: тревога, бессонница, нарастающая абстиненция или риск срыва требуют реагирования по факту, а не по талону. Чтобы не тратить драгоценные часы, мы приняли промышленный стандарт быстрого старта: диспетчер собирает клинически значимую информацию, нарколог определяет безопасный канал помощи, выездная команда берёт на адрес переносное оборудование и точечные препараты, а в карте заранее создаётся план первых 24–72 часов с контрольными точками.
    Детальнее – наркологическая клиника стационар в рязани

  6. Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
    Углубить понимание вопроса – вывод из запоя на дому казань цены

  7. Və bilirəm ki, 1xbet bonusları rəqiblərindən daha cəlbedicidir. İlk qeydiyyatdan sonra xoş gəlmə bonusu əldə etdim. 1xbet bonus — yeni oyunçular üçün xoş gəlmə bonusu var. Bonus şərtləri sadə və anlaşıqlıdır. Ən xoşum gələn odur ki, bonuslar həm idman mərclərinə, həm də kazino oyunlarına aiddir. 1xbet bonus qaydalari 1xbet bonus qaydalari Bütün aktiv bonuslar, şərtlər və istifadə qaydaları buradadır üçün Bakı. 1xbet bonus ilə əlavə qazanc əldə etmək istəyirsinizsə — linkə keçin. 1xbet bonus — uduş şansınızı artırmağın ən asan yolu!

  8. Наркологическая клиника «Эдельвейс» в Екатеринбурге специализируется на оказании оперативной и квалифицированной помощи при снятии ломки. Наши специалисты обладают многолетним опытом работы и применяют современные методики для безопасного и эффективного лечения абстинентного синдрома. Мы работаем круглосуточно, что позволяет оказывать помощь в любое время суток, обеспечивая анонимность и конфиденциальность каждого пациента.
    Выяснить больше – http://www.domen.ru

  9. После диагностики нарколог приступает к основному этапу — инфузионной детоксикации. Препараты подбираются индивидуально, с учётом тяжести интоксикации, анамнеза и сопутствующих заболеваний. Основу составляют водно-солевые растворы, глюкоза, витаминные комплексы, седативные препараты, гепатопротекторы и нейропротекторы. Инфузии выполняются капельно, медленно, в течение нескольких часов, с постоянным мониторингом состояния пациента. При необходимости используется оксигенотерапия, противорвотные, антиаритмические и противосудорожные препараты. Все растворы стерильны, а расходные материалы одноразовые и соответствуют стандартам качества.
    Выяснить больше – http://narkologicheskaya-pomoshh-novosibirsk0.ru/

  10. Этот текст представляет собой обзор свежих данных и исследований в области медицины. Он призван помочь читателям понять, как научные достижения влияют на лечение, диагностику и общее состояние системы здравоохранения.
    Ознакомиться с полной информацией – вызвать нарколога

  11. В этой статье обсуждаются актуальные медицинские вопросы, которые волнуют общество. Мы обращаем внимание на проблемы, касающиеся здравоохранения и лечения, а также на новшества в области медицины. Читатели будут осведомлены о последних событиях и смогут следить за тенденциями в медицине.
    Это ещё не всё… – нарколог на дом казань

  12. Необходимость обращения к врачу зависит не только от количества алкоголя. Важно учитывать возраст, длительность запоя, наличие хронических заболеваний, предыдущие эпизоды абстиненции, принимаемые лекарства и общее физическое состояние. Иногда человек выглядит относительно спокойно, однако нарушения уже затрагивают внутренние органы и нервную систему. Медицинский осмотр позволяет вовремя определить опасные признаки и выбрать безопасный способ выведения из запоя.
    Получить больше информации – https://1.vyvod-iz-zapoya-moskva1-13.ru/

  13. Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
    Почему это важно? – вывод из запоя цена на дому

  14. Каждый из этапов направлен на обеспечение максимальной безопасности и эффективности лечения. Индивидуальный подход, основанный на тщательной диагностике, позволяет значительно снизить риск осложнений и обеспечить комфортное протекание терапии.
    Подробнее можно узнать тут – снятие ломки екатеринбург

  15. После прибытия на место врач проводит тщательное обследование пациента. Измеряются основные физиологические параметры — артериальное давление, частота пульса, сатурация кислорода, температура тела. Проводится экспресс-анализ крови на сахар и кислотно-щелочной баланс. Также врач проводит оценку неврологического и психического статуса пациента, проверяет уровень сознания по шкале Глазго, выявляет признаки возможных осложнений: отёка мозга, энцефалопатии, алкогольного делирия. При необходимости принимается решение о дополнительной поддержке (например, вызов реанимационной бригады или немедленный перевод в стационар).
    Детальнее – частная наркологическая помощь новосибирск

  16. Читатели получат представление о том, как современные технологии влияют на развитие медицины. Обсуждаются новые методы лечения, персонализированный подход и роль цифровых решений в повышении качества медицинских услуг.
    Дополнительно читайте здесь – частная наркологическая помощь

  17. Наркологическая помощь требуется пациентам с разным стажем зависимости. Один пациент страдает алкоголизмом 2–3 года, другой — 10 лет, третий — 20 лет. Количество лет не является единственным показателем тяжести, но эта информация важна для врача. Чем подробнее анамнез, тем точнее можно подобрать лечение.
    Узнать больше – вызов нарколога на дом

  18. Анонимность — важнейшее условие обращения за помощью. В клинике действуют не декларации, а конкретные технологические и организационные меры, которые защищают пациента и его близких от стигмы и лишнего обсуждения.
    Ознакомиться с деталями – вывод наркологическая клиника

  19. Перед тем как поставить капельницу от запоя, врач проводит осмотр. Нарколог измеряет артериальное давление, пульс, оценивает дыхание, степень обезвоживания и тяжесть похмельного синдрома. Врач должен знать, сколько времени человек пьет, когда была последняя доза спиртного, какие медикаменты используются постоянно, есть ли аллергические реакции и хронические заболевания. При необходимости рекомендуется дополнительная диагностика, анализы крови, ЭКГ или обследования в клинике.
    Получить больше информации – vyvod-iz-zapoya-klinika

  20. Ниже — «скелет» визита. На месте врач адаптирует содержание под возраст, соматику, текущие лекарства и проявления абстиненции. Главная идея — быстро получить цифры, аккуратно запустить инфузию и заранее зафиксировать ориентиры, чтобы семья не импровизировала в «трудный час».
    Разобраться лучше – скорая вывод из запоя в ставрополе

  21. Состав капельницы никогда не «копируется»; он выбирается по доминирующему симптому и соматическому фону. Ниже — клинические профили, которые помогают понять нашу логику. Итоговая схема формируется на месте, а скорость и объём зависят от текущих показателей.
    Детальнее – нарколог на дом круглосуточно цены краснодар

  22. Наркологическая клиника «НаркоМед Плюс» в Нижнем Новгороде оказывает экстренную помощь при снятии ломки. Наша команда высококвалифицированных специалистов готова круглосуточно выехать на дом или принять пациента в клинике, обеспечивая оперативное, безопасное и полностью конфиденциальное лечение. Мы разрабатываем индивидуальные программы терапии, учитывая историю зависимости и текущее состояние каждого пациента, что позволяет быстро стабилизировать его состояние и начать процесс полного выздоровления.
    Подробнее можно узнать тут – http://snyatie-lomki-nnovgorod8.ru/snyatie-narkoticheskoj-lomki-v-nnovgorode/

  23. Запойное состояние сопровождается интоксикацией, обезвоживанием, нарушением обменных процессов и психоэмоциональными расстройствами. Попытки самостоятельно прекратить употребление алкоголя могут привести к судорогам, скачкам давления и другим опасным осложнениям. Именно поэтому вывод из запоя в клинике обеспечивает контроль специалистов, использование медикаментозной поддержки и мониторинг жизненно важных показателей.
    Выяснить больше – анонимный вывод из запоя ростов-на-дону

  24. В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
    Читать далее > – как бросить пить алкоголь самостоятельно женщине

  25. В Санкт-Петербурге для адресных обращений дежурят мобильные бригады круглосуточно. Координатор при звонке уточняет хронические заболевания, аллергии, текущие лекарства и эпизоды судорог/психозов, а также бытовые условия: есть ли доступ к розетке, можно ли обеспечить 2–3 часа тишины, удобна ли зона полулёжа. Эта информация позволяет врачу в дороге выбрать стартовую скорость инфузии, продумать последовательность введения и подготовить расходные материалы под планировку квартиры. Мы соблюдаем приватность: нейтральная экипировка, деликатные формулировки в документах и один доверенный контакт со стороны семьи.
    Изучить вопрос глубже – http://vivod-iz-zapoya-v-sankt-peterburge16.ru/vyvod-iz-zapoya-anonimno-v-sankt-peterburge/

  26. Наркологическая клиника «Эдельвейс» в Екатеринбурге специализируется на оказании оперативной и квалифицированной помощи при снятии ломки. Наши специалисты обладают многолетним опытом работы и применяют современные методики для безопасного и эффективного лечения абстинентного синдрома. Мы работаем круглосуточно, что позволяет оказывать помощь в любое время суток, обеспечивая анонимность и конфиденциальность каждого пациента.
    Подробнее можно узнать тут – снятие ломки анонимно в екатеринбурге

  27. Если наблюдаются вышеописанные симптомы, немедленное обращение к наркологу позволяет не только устранить острые проявления, но и предотвратить возможное развитие опасных для жизни осложнений, таких как сердечно-сосудистые сбои или нарушения работы центральной нервной системы.
    Подробнее – http://www.domen.ru

  28. Miami is a city that demands attention, and your car is part of that statement. I researched several luxury car rental companies before my trip. That’s when I came across the perfect match. miami luxury car rental — Everything from high-end sports cars to elegant luxury sedans. They made sure I got the car that suited my needs perfectly. Every drive in Miami felt like an event. If you want a car that turns heads and delivers excitement. miami exotic car rentals miami exotic car rentals Check the link for the full fleet and pricing for the area. If you want a luxury car in Miami — just use the link. Luxury car rental Miami — live the experience!

  29. Домашний визит особенно уместен при затянувшемся употреблении, когда нарастают тревожные вегетативные симптомы (тремор, потливость, сердцебиение), появляются проблемы со сном и «качели» давления, но при этом сохранён контакт, нет выраженной дыхательной недостаточности и глубокой дезориентации. Преимущества очевидны: экономия времени (нет дороги и ожидания), психологический комфорт, меньше сенсорных триггеров (яркий свет, шум), возможность сразу настроить режим первой «тихой ночи». Технологически выездная бригада оснащена как приёмный кабинет: инфузомат для точной скорости капания, пульсоксиметр, глюкометр, кассеты Na?/K?, портативный кардиомонитор с возможностью регистрации ЭКГ, набор проверенных средств для коррекции тошноты и защиты слизистой. Если во время триажа выявляются «красные флаги» — риск судорог, падение сатурации, признаки делирия, нестабильная гемодинамика, — мы организуем перевод в стационар «КубаньМедЦентра» без задержек и с непрерывностью терапии.
    Разобраться лучше – нарколог капельница на дом краснодар

  30. После прибытия на место врач проводит тщательное обследование пациента. Измеряются основные физиологические параметры — артериальное давление, частота пульса, сатурация кислорода, температура тела. Проводится экспресс-анализ крови на сахар и кислотно-щелочной баланс. Также врач проводит оценку неврологического и психического статуса пациента, проверяет уровень сознания по шкале Глазго, выявляет признаки возможных осложнений: отёка мозга, энцефалопатии, алкогольного делирия. При необходимости принимается решение о дополнительной поддержке (например, вызов реанимационной бригады или немедленный перевод в стационар).
    Подробнее тут – срочная наркологическая помощь новосибирск

  31. Если при телефонном триаже выявляются «красные флаги» (дыхание, ритм, сознание), маршрут настраивается сразу под стационар: те же цели, тот же ответственный куратор, только непрерывный мониторинг витальных и ночной пост. А когда риски невысоки, мы начинаем дома или амбулаторно и удерживаем темп контрольными включениями — это чаще всего даёт спокойную первую ночь и легче переносимый второй день.
    Ознакомиться с деталями – срочный вывод из запоя

  32. Обращение за экстренной помощью требуется в ситуациях, когда симптомы ломки становятся невыносимыми и ухудшают общее состояние пациента. Основными показаниями для вызова специалиста являются:
    Исследовать вопрос подробнее – снятие наркотической ломки екатеринбург

  33. Наркологическая клиника «РеМед Карелия» — это круглосуточная медицинская помощь, построенная на принципе клинической точности: каждая процедура имеет цель, проверяемые маркеры и назначенное окно переоценки. Мы используем современные методы детоксикации и постабстинентной стабилизации, не перегружая терапию «на всякий случай» и не полагаясь на универсальные «сильные капельницы». Вместо этого — модульные схемы, корректировка одного параметра за раз и обязательная оценка результата. Такой подход снижает фармаконагрузку, ускоряет восстановление сна и аппетита и делает лечение предсказуемым для пациента и его семьи. Анонимность встроена в процессы: немаркированные входы, гражданская форма персонала, нейтральные формулировки в документах, «тихие» уведомления и разграниченный доступ к карте наблюдения.
    Подробнее – http://narkologicheskaya-klinika-v-petrozavodske15.ru/narkolog-petrozavodsk-otzyvy/

  34. После диагностики нарколог приступает к основному этапу — инфузионной детоксикации. Препараты подбираются индивидуально, с учётом тяжести интоксикации, анамнеза и сопутствующих заболеваний. Основу составляют водно-солевые растворы, глюкоза, витаминные комплексы, седативные препараты, гепатопротекторы и нейропротекторы. Инфузии выполняются капельно, медленно, в течение нескольких часов, с постоянным мониторингом состояния пациента. При необходимости используется оксигенотерапия, противорвотные, антиаритмические и противосудорожные препараты. Все растворы стерильны, а расходные материалы одноразовые и соответствуют стандартам качества.
    Исследовать вопрос подробнее – https://narkologicheskaya-pomoshh-novosibirsk0.ru/skoraya-narkologicheskaya-pomoshh-novosibirsk

  35. В каждом случае решение принимается индивидуально. Капельница на дому не должна ставиться только по желанию клиента или по совету знакомых. Даже популярные составы имеют противопоказания, а лекарственные препараты могут вызывать индивидуальные реакции. Именно поэтому медицинский специалист обязательно проверяет назначения перед началом процедуры и следит за показателями человека в течение введения раствора.
    Получить больше информации – сделать капельницу на дому

  36. Подбирал жаростойкий кабель для бани. Смотрел разные сечения — kabel-termostojkij-5499.ru. Держат сечения под нагрузку, берут с отгрузкой. Сверяйте марку, не ставьте обычный ПВХ на высокие температуры.

  37. После прибытия на место врач проводит тщательное обследование пациента. Измеряются основные физиологические параметры — артериальное давление, частота пульса, сатурация кислорода, температура тела. Проводится экспресс-анализ крови на сахар и кислотно-щелочной баланс. Также врач проводит оценку неврологического и психического статуса пациента, проверяет уровень сознания по шкале Глазго, выявляет признаки возможных осложнений: отёка мозга, энцефалопатии, алкогольного делирия. При необходимости принимается решение о дополнительной поддержке (например, вызов реанимационной бригады или немедленный перевод в стационар).
    Разобраться лучше – http://narkologicheskaya-pomoshh-novosibirsk0.ru/

  38. Необходимость обращения к врачу зависит не только от количества алкоголя. Важно учитывать возраст, длительность запоя, наличие хронических заболеваний, предыдущие эпизоды абстиненции, принимаемые лекарства и общее физическое состояние. Иногда человек выглядит относительно спокойно, однако нарушения уже затрагивают внутренние органы и нервную систему. Медицинский осмотр позволяет вовремя определить опасные признаки и выбрать безопасный способ выведения из запоя.
    Изучить вопрос подробнее – https://1.vyvod-iz-zapoya-moskva1-13.ru/

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注