蓝屏,谁之过?

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,237 条评论

  1. Самостоятельно выйти из продолжительного запоя бывает сложно. Резкое прекращение употребления спиртного способно усилить тревогу, тремор рук, бессонницу, тошноту, рвоту, скачки давления и нарушения поведения. В тяжелых случаях существует риск судорожного синдрома, алкогольного психоза, сердечно-сосудистых осложнений и потери сознания. Поэтому нарколог сначала проводит осмотр и диагностику, а уже после определяет состав капельницы, необходимые препараты, длительность наблюдения и место оказания помощи. Если показатели стабильны, возможен выезд врача на дом; если риск выше, лечение безопаснее проходить в клинике под круглосуточным наблюдением.
    Подробнее – vyvod-iz-zapoya-moskva-vyzov-narkologa-kapelnica

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

  3. Эта медицинская заметка содержит сжатую информацию о новых находках и методах в области здравоохранения. Мы предлагаем читателям свежие данные о заболеваниях, профилактике и лечении. Наша цель — быстро и доступно донести важную информацию, которая поможет в повседневной жизни и понимании здоровья.
    Неизвестные факты о… – лечение похмелья капельницей

  4. Первичная консультация помогает определить, безопасно ли лечение на дому или необходимо направить пациента в стационар. Врач учитывает уровень интоксикации, симптомы абстиненции, риск осложнений, возраст и общее физическое состояние. При наличии острых психиатрических симптомов, нарушений сознания или тяжелых заболеваний медицинская помощь должна оказываться в условиях постоянного наблюдения. Специалисты центра объясняют родственникам, что делать в конкретной ситуации и как правильно уговорить близкого начать лечение без давления и конфликтов.
    Ознакомиться с деталями – klinika-narkologii-moskva

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

  6. Лечение ломки в клинике «Эдельвейс» проходит по четко отлаженной схеме, которая учитывает индивидуальные особенности каждого пациента. После первоначального осмотра и сбора анамнеза составляется персональный план терапии, цель которого – как можно быстрее снять симптомы ломки и стабилизировать состояние пациента. Ниже приведен поэтапный алгоритм лечения:
    Узнать больше – снятие наркотической ломки

  7. Если на первичном звонке звучат «красные флаги» (выраженная одышка, спутанность сознания, скачки ритма), мы предлагаем стационарное окно мониторинга. При низком риске стартуем дома или амбулаторно и поддерживаем человека вечерними видеовставками по 15–20 минут, чтобы пройти «трудный час» без лишних поездок и паники.
    Получить дополнительную информацию – https://vyvod-iz-zapoya-v-voronezhe15.ru/vyvod-iz-zapoya-za-den-voronezh/

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

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

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

  11. Перед применением конкретных средств врач проводит обследование, определяет уровень интоксикации и выявляет сопутствующие заболевания. Это позволяет максимально точно подобрать лечение. Ниже представлены ключевые методы, которые применяются для стабилизации состояния пациента:
    Выяснить больше – вывод из запоя капельница на дому ростов-на-дону

  12. Экстренный вывод из запоя — это цепочка управляемых медицинских действий, а не «сильная капельница на удачу». В наркологической клинике «ВитаМед Воронеж» круглосуточные бригады работают по единым протоколам: от телефонного триажа и «тихого» выезда без опознавательных знаков до адресной инфузионной терапии и вечерних онлайн-вставок. Мы планируем вмешательства так, чтобы в первые часы безопасно стабилизировать состояние, вернуть переносимость воды и тёплой, щадящей пищи малыми порциями, выровнять частоту пульса к сумеркам и обеспечить физиологичный сон без переседации. Анонимность встроена в каждый шаг: нейтральные формулировки в документах, немаркированный транспорт, доступ к карте наблюдения по ролям и «беззвучные» уведомления.
    Исследовать вопрос подробнее – вывод из запоя на дому воронеж

  13. Мы работаем с вниманием к деталям повседневности: как человек засыпает на фоне вечернего света, сколько воды переносит малыми глотками, как реагирует на цифровые уведомления, есть ли привычные «включатели» тяги и как на организм влияет шумное окружение. Врач и куратор переводят этот жизненный контекст в ясные, измеримые ориентиры: время до сна, число пробуждений, вариабельность пульса к сумеркам, объём воды, аппетит, переносимость тёплой мягкой пищи. Решения принимаются адресно и последовательно, чтобы сохранять ясность днём и избегать ненужной фармаконагрузки.
    Углубиться в тему – http://narkologicheskaya-klinika-kaliningrad15.ru/kaliningrad-narkologicheskaya-bolnicza/

  14. В этой статье мы говорим о важности поддержки в процессе выздоровления. Рассматриваются семьи, группы поддержки, специалисты и онлайн-ресурсы, которые могут сыграть решающую роль в избавлении от зависимости.
    Почему это важно? – наркологическая клиника дельта в рязани

  15. Вывод из запоя в Ростове-на-Дону является востребованной медицинской услугой, направленной на восстановление физического состояния пациента и снижение рисков осложнений. Длительное употребление алкоголя вызывает тяжелые нарушения в работе организма, и самостоятельное прекращение приёма спиртных напитков часто приводит к абстинентному синдрому. В таких ситуациях профессиональный вывод из запоя в клинике становится необходимым условием для сохранения здоровья.
    Получить дополнительную информацию – наркологический вывод из запоя ростов-на-дону

  16. But I also knew that the car I drove would make a huge difference. I wanted a rental company that offered more than just a car — I wanted a full experience. I found exactly what I was looking for. exotic car rental miami — Every car was spotless, well-maintained, and ready to drive. The team was welcoming and professional. It made my Miami experience unforgettable. This is where you should book. rent exotic cars in miami https://luxury-car-rental-miami-qhd.com Save it, share it, don’t lose it for Miami. It’s the easiest way to make your trip unforgettable. Luxury car rental Miami — elevate your journey!

  17. Круглосуточная наркологическая помощь особенно востребована, когда последствия запоя становятся выраженными ночью, рано утром, в выходных или после нескольких суток регулярного употребления. Вызвать врача на дому в Москве можно для первичного осмотра и решения вопроса о капельнице. Нарколог проверит показатели, уточнит анамнез, наличие аллергии, перенесенных заболеваний, использование лекарств или наркотиков. Если капельница на дому безопасна, специалист проводит процедуру под медицинским контролем. При тяжелых нарушениях требуется стационар, постоянное наблюдение или экстренное обращение в скорую помощь.
    Изучить вопрос подробнее – skolko-stoit-kapelnica-ot-zapoya

  18. «РостовМедЦентр» предоставляет несколько форматов, чтобы лечение не сталкивалось лоб в лоб с работой, учебой и семейными обязанностями. Стационар — для случаев с рисками, дневной стационар — для интенсивной дневной терапии, амбулаторный режим — для поддержания динамики без разрыва с повседневной жизнью. Выезд на дом сохраняет приватность и экономит время, а защищённые видеосессии позволяют поддерживать мотивацию между очными визитами. Все каналы соединены в единую систему: план, составленный сегодня в клинике, доступен врачу, который завтра приедет на дом, и психологу, с которым запланирована онлайн-сессия через два дня.
    Ознакомиться с деталями – вывод наркологическая клиника ростов-на-дону

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

  20. Если к «окну оценки» динамика ниже ожидаемой, меняется один параметр: последовательность введения, плотность «тихих окон», режим воды или время вечернего «безэкранного коридора». Такой минимализм делает вклад каждого шага прозрачным и снижает риск перегрузки.
    Исследовать вопрос подробнее – срочный вывод из запоя

  21. Mən özüm uzun müddət brauzer vasitəsilə oynayırdım. Tətbiq daha sürətli, daha rahat və daha sabit işləyir. 1xbet yukle — bir neçə dəqiqəyə yüklənir. Hər şey bir yerdə, rahat və əlçatan. 1xbet tətbiqi ilə mərc etmək daha zövqlüdür. 1xbet yukle android 1xbet yukle android Yükləyin, quraşdırın, başlayın üçün Bakı. 1xbet tətbiqini yükləyib mərclərinizi telefonunuzdan etmək istəyirsinizsə — linkə keçin. 1xbet yüklə — hər zaman, hər yerdə mərc et!

  22. Вызов врача особенно актуален, если близкий находится в запое несколько суток, плохо спит, практически не принимает питание, испытывает сильную слабость или не может самостоятельно справиться с похмельным синдромом. Нарколог приезжает на указанный адрес, проводит диагностику и определяет безопасный способ лечения. Срочный выезд позволяет начать помощь прямо сейчас, не заставляя зависимого самостоятельно приезжать в центр. В большинстве стандартных случаев врач может провести вывод на дому, однако решение всегда зависит от клинической картины.
    Дополнительная информация – vyvod-iz-zapoya-moskva

  23. Эта публикация исследует взаимосвязь зависимости и психологии. Мы обсудим, как психологические аспекты влияют на появление зависимостей и процесс выздоровления. Читатели смогут понять важность профессиональной поддержки и применения научных подходов в терапии.
    А что дальше? – нарколог капельницу на дому

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

  25. This time, I decided to treat myself to something more than just basic transportation. I searched through a bunch of rental companies online before my trip. Then I found a place that really stood out. luxury car rental miami — Every car looked like it had just rolled off the showroom floor. The staff was professional, friendly, and genuinely helpful. Smooth ride, stunning looks, and plenty of power. If you’re visiting Miami and want to take your trip to the next level. supercar rental miami supercar rental miami All the details are there for South Florida. If you want a luxury car in Miami — just use the link. Luxury car rental Miami — drive the experience!

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

  27. Мы рассмотрим современные вызовы здравоохранения и пути их решения с помощью технологий и научных исследований. В статье собраны данные о новых лекарствах, методах диагностики и системном подходе к улучшению здоровья населения.
    Все материалы собраны здесь – кодирование от алкоголизма

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

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

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

  31. Для назначения капельницы врачу необходимо определить клиническую задачу. Это может быть восполнение жидкости, введение назначенного препарата, поддержка организма после интоксикации или проведение курса по рекомендации профильного доктора. Оптимальное сочетание компонентов зависит от диагноза, возраста, анализов и общего самочувствия.
    Изучить вопрос подробнее – https://nadomu1.kapelnica-ot-zapoya-v-moskve14-1.ru/

  32. Каждый из этапов направлен на обеспечение максимальной безопасности и эффективности лечения. Индивидуальный подход, основанный на тщательной диагностике, позволяет значительно снизить риск осложнений и обеспечить комфортное протекание терапии.
    Получить дополнительную информацию – https://snyatie-lomki-ekb8.ru/snyatie-lomki-na-domu-v-ekb

  33. Домашнее лечение начинается не с капельницы, а с клинической оценки. Врач проверяет пульс и давление, оценивает сознание, выраженность абстиненции, признаки обезвоживания и наличие противопоказаний. Затем нарколог определяет, можно ли проводить процедуры дома. Если показатели пациента вызывают опасения, специалист предложит госпитализацию в клинику. Такой подход снижает риск осложнений и помогает подобрать безопасный объем медицинской помощи.
    Ознакомиться с деталями – https://vyvod-iz-zapoya-moskva15-3.ru/

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

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

  36. Инфузионная терапия в «СамарМед Ассист» складывается из узких модулей. Каждый модуль — одна задача, один измеримый параметр и чёткий критерий остановки. Чтобы не терять причинно-следственную связь, новые элементы подключаются по одному; после достижения цели модуль отключается. Ниже — ориентировочная сетка, иллюстрирующая логику; конкретные составы и дозировки определяет врач по результатам осмотра.
    Выяснить больше – выезд нарколога на дом

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

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

  39. Главное назначение капельницы — не «мгновенно очистить» организм, а поддержать восстановление жидкости, электролитный баланс и функции организма после алкоголя. Капельница может помочь уменьшить отдельные проявления похмельного и абстинентного синдрома, однако она не является самостоятельным лечением алкоголизма. После детоксикации специалисты клиники могут рекомендовать консультацию психиатра, психотерапевта, психолога, медикаментозное лечение, кодирование или реабилитационный курс. Такой комплексный подход направлен не только на физическое облегчение, но и на работу с зависимостью и тягой к спиртному.
    Подробнее – vyzvat-kapelnicu-ot-zapoya

发表回复

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