diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e8d65f10..dcf2bc337 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ ### 11.22 + - Possibility to add manually ESSID name for selected hidden networks - Improvement on process killing on Evil Twin attacks ### 11.21 diff --git a/airgeddon.sh b/airgeddon.sh index 4c1c80d24..bbe3ac734 100755 --- a/airgeddon.sh +++ b/airgeddon.sh @@ -2965,31 +2965,59 @@ function read_essid() { read -rp "> " essid } -#Validate the input on essid questions -function ask_essid() { +#Check if selected essid is hidden and offer a change +function check_hidden_essid() { debug_print - if [ -z "${essid}" ]; then + if [ "${1}" = "wps" ]; then + if [[ -z "${wps_essid}" ]] || [[ "${wps_essid}" = "(Hidden Network)" ]]; then + ask_yesno 30 "no" + if [ "${yesno}" = "y" ]; then + while [[ -z "${wps_essid}" ]] || [[ "${wps_essid}" = "(Hidden Network)" ]]; do + read_essid + done - if [ "${1}" = "verify" ]; then - ask_yesno 439 "no" - if [ "${yesno}" = "n" ]; then - return 1 + echo + language_strings "${language}" 718 "blue" fi fi - - while [[ -z "${essid}" ]]; do - read_essid - done - elif [ "${essid}" = "(Hidden Network)" ]; then - echo - language_strings "${language}" 30 "yellow" - read_essid + else + if [[ -z "${essid}" ]] || [[ "${essid}" = "(Hidden Network)" ]]; then + if [ "${2}" = "verify" ]; then + ask_yesno 30 "no" + if [ "${yesno}" = "y" ]; then + while [[ -z "${essid}" ]] || [[ "${essid}" = "(Hidden Network)" ]]; do + read_essid + done + else + return 1 + fi + else + while [[ -z "${essid}" ]] || [[ "${essid}" = "(Hidden Network)" ]]; do + read_essid + done + fi + echo + language_strings "${language}" 31 "blue" + fi fi +} - echo - language_strings "${language}" 31 "blue" +#Validate the input on essid questions +function ask_essid() { + + debug_print + + if [ "${1}" = "verify" ]; then + if ! check_hidden_essid "normal" "verify"; then + return 1 + fi + else + if ! check_hidden_essid "normal" "noverify"; then + return 1 + fi + fi } #Read the user input on custom pin questions @@ -5426,6 +5454,43 @@ function print_iface_internet_selected() { fi } +#Print selected target parameters (bssid, channel, essid and type of encryption) for dos attacks menu +function print_all_target_dos_attacks_menu_vars() { + + debug_print + + if [ -n "${bssid}" ]; then + language_strings "${language}" 43 "blue" + if [ -n "${channel}" ]; then + language_strings "${language}" 44 "blue" + fi + if [ -n "${essid}" ]; then + if [ "${essid}" = "(Hidden Network)" ]; then + language_strings "${language}" 45 "blue" + else + language_strings "${language}" 46 "blue" + fi + fi + if [ -n "${enc}" ]; then + language_strings "${language}" 135 "blue" + fi + else + if [ -n "${channel}" ]; then + language_strings "${language}" 44 "blue" + fi + if [ -n "${essid}" ]; then + if [ "${essid}" = "(Hidden Network)" ]; then + language_strings "${language}" 45 "blue" + else + language_strings "${language}" 46 "blue" + fi + fi + if [ -n "${enc}" ]; then + language_strings "${language}" 135 "blue" + fi + fi +} + #Print selected target parameters (bssid, channel, essid and type of encryption) function print_all_target_vars() { @@ -5765,7 +5830,7 @@ function initialize_menu_and_print_selections() { et_mode="" dos_pursuit_mode=0 print_iface_selected - print_all_target_vars + print_all_target_dos_attacks_menu_vars ;; "dos_handshake_menu") print_iface_selected @@ -13473,6 +13538,7 @@ function explore_for_wps_targets_option() { done wps_essid=${wps_network_names[${selected_wps_target_network}]} + check_hidden_essid "wps" "verify" wps_channel=${wps_channels[${selected_wps_target_network}]} wps_bssid=${wps_macs[${selected_wps_target_network}]} wps_locked=${wps_lockeds[${selected_wps_target_network}]} @@ -13570,6 +13636,7 @@ function select_target() { done essid=${network_names[${selected_target_network}]} + check_hidden_essid "normal" "verify" channel=${channels[${selected_target_network}]} bssid=${macs[${selected_target_network}]} enc=${encs[${selected_target_network}]} diff --git a/language_strings.sh b/language_strings.sh index c21a91043..170cc0652 100644 --- a/language_strings.sh +++ b/language_strings.sh @@ -1452,19 +1452,19 @@ function initialize_language_strings() { arr["ARABIC",29]=":الهدف ESSID اكتب" arr["CHINESE",29]="请输入目标的 ESSID:" - arr["ENGLISH",30]="You have selected a hidden network ESSID. Can't be used. Select another one or perform a BSSID based attack instead of this" - arr["SPANISH",30]="Has seleccionado un ESSID de red oculta. No se puede usar. Selecciona otro o ejecuta un ataque basado en BSSID en lugar de este" - arr["FRENCH",30]="Vous avez choisi un réseau dont l'ESSID est caché et ce n'est pas possible. Veuillez sélectionner une autre cible ou bien effectuer une attaque qui se fonde sur le BSSID au lieu de celle-ci" - arr["CATALAN",30]="Has seleccionat un ESSID de xarxa oculta. No es pot utilitzar. Selecciona un altre o executa un atac basat en BSSID en lloc d'aquest" - arr["PORTUGUESE",30]="Você selecionou uma rede com ESSID oculto. Você não pode utilizar. Selecione outro ou execute um ataque com BSSID ao invés deste" - arr["RUSSIAN",30]="Вы выбрали сеть со скрытым ESSID. Использование невозможно. Выберите другую или, вместо этой, выполните атаку, которая использует BSSID" - arr["GREEK",30]="Επιλέξατε ESSID κρυφού δικτύου. Δεν μπορεί να χρησιμοποιηθεί. Επιλέξτε κάποιο άλλο ή ξεκινήστε μία επίθεση βασισμένη στο BSSID αντί αυτού" - arr["ITALIAN",30]="È stata selezionata una rete ESSID nascosta. Non puó essere utilizzata. Selezionare un altra rete o eseguire un attacco basato in BSSID invece di questo" - arr["POLISH",30]="Wybrałeś ukrytą sieć ESSID. Nie można jej używać. Wybierz inną lub uruchom atak oparty na BSSID" - arr["GERMAN",30]="Sie haben ein verstecktes Netzwerk-ESSID ausgewählt. Es kann nicht verwendet werden. Wählen Sie einen anderen oder führen Sie stattdessen einen BSSID-basierenden Angriff aus" - arr["TURKISH",30]="Gizli bir ağ seçtiniz ESSID. Bu kullanılamaz. Bunun yerine BSSID tabanlı başka bir saldırı seçiniz" - arr["ARABIC",30]="بدلاً من ذلك BSSID شبكة مخفية. لا يمكن استخدامها. حدد واحدًا آخر أو نفذ هجومًا يستند على ESSID لقد حددتبدلاً من ذلك BSSID شبكة مخفية. لا يمكن استخدامها. حدد واحدًا آخر أو نفذ هجومًا يستند على ESSID لقد حددت" - arr["CHINESE",30]="您选择了一个隐藏网络的 ESSID。无法使用。选择另一个 ESSID 或执行基于 BSSID 的攻击" + arr["ENGLISH",30]="\${blue_color}You haven't selected any target or you have selected a hidden network ESSID. This could be because you scanned few time or maybe the selected network has a hidden ESSID. These kind of networks will show their real ESSID only if a client connects while scanning and that could require so much time. If you already know the real ESSID of this target, it can be set manually. \${green_color}Do you want to set ESSID manually for this target network? \${normal_color}\${visual_choice}" + arr["SPANISH",30]="\${blue_color}No tienes seleccionado ningún objetivo o has seleccionado un ESSID de red oculta. Esto podría deberse a que escaneste poco tiempo o quizás la red seleccionada tiene el ESSID oculto. Este tipo de redes mostrarán su ESSID real sólo si un cliente se conecta mientras escaneas pero eso podría requerir mucho tiempo. Si ya conoces el ESSID real de este objetivo, puedes configurarlo manualmente. \${green_color}¿Quieres configurar el ESSID manualmente para esta red objetivo? \${normal_color}\${visual_choice}" + arr["FRENCH",30]="\${pending_of_translation} \${blue_color}Vous n'avez sélectionné aucune cible ou vous avez sélectionné un ESSID de réseau masqué. Cela peut être dû au fait que vous avez scanné plusieurs fois ou peut-être que le réseau sélectionné a un ESSID masqué. Ces types de réseaux afficheront leur véritable ESSID uniquement si un client se connecte pendant la numérisation, ce qui peut prendre beaucoup de temps. Si vous connaissez déjà le véritable ESSID de cette cible, il peut être défini manuellement. \${green_color}Voulez-vous définir l'ESSID manuellement pour ce réseau cible ? \${normal_color}\${visual_choice}" + arr["CATALAN",30]="\${pending_of_translation} \${blue_color}No has seleccionat cap objectiu o has seleccionat un ESSID de xarxa amagada. Això pot ser perquè has escanejat poc temps o potser la xarxa seleccionada té un ESSID amagat. Aquest tipus de xarxes només mostraran el seu ESSID real si un client es connecta mentre escanejes i això podria requerir molt de temps. Si ja saps l'ESSID real d'aquest objectiu, pots configurar-lo manualment. \${green_color}Vols configurar l'ESSID manualment per a aquesta xarxa objectiu? \${normal_color}\${visual_choice}" + arr["PORTUGUESE",30]="\${pending_of_translation} \${blue_color}Você não selecionou nenhum alvo ou selecionou um ESSID de rede oculto. Isso pode ocorrer porque você escaneou há pouco tempo ou talvez a rede selecionada tenha um ESSID oculto. Esse tipo de rede mostrará seu ESSID real somente se um cliente se conectar durante a varredura e isso pode exigir muito tempo. Se você já conhece o ESSID real deste alvo, ele pode ser definido manualmente. \${green_color}Deseja definir o ESSID manualmente para esta rede de destino? \${normal_color}\${visual_choice}" + arr["RUSSIAN",30]="\${pending_of_translation} \${blue_color}Вы не выбрали ни одну цель или выбрали скрытый ESSID сети. Это может быть связано с тем, что вы сканировали мало времени или, возможно, выбранная сеть имеет скрытый ESSID. Сети такого типа будут показывать свой настоящий ESSID только в том случае, если клиент подключается во время сканирования, а это может занять очень много времени. Если вы уже знаете настоящий ESSID этой цели, его можно установить вручную. \${green_color}Хотите вручную установить ESSID для этой целевой сети? \${normal_color}\${visual_choice}" + arr["GREEK",30]="\${pending_of_translation} \${blue_color}Δεν έχετε επιλέξει κανένα στόχο ή έχετε επιλέξει ένα κρυφό ESSID δικτύου. Αυτό μπορεί να οφείλεται στο ότι σαρώσατε λίγες φορές ή ίσως το επιλεγμένο δίκτυο έχει ένα κρυφό ESSID. Αυτού του είδους τα δίκτυα θα εμφανίσουν το πραγματικό τους ESSID μόνο εάν ένας πελάτης συνδεθεί κατά τη σάρωση και αυτό θα μπορούσε να απαιτεί τόσο πολύ χρόνο. Εάν γνωρίζετε ήδη το πραγματικό ESSID αυτού του στόχου, μπορείτε να τον ορίσετε χειροκίνητα. \${green_color}Θέλετε να ορίσετε το ESSID μη αυτόματα για αυτό το δίκτυο προορισμού; \${normal_color}\${visual_choice}" + arr["ITALIAN",30]="\${pending_of_translation} \${blue_color}Non hai selezionato alcun target o hai selezionato un ESSID di rete nascosta. Ciò potrebbe essere dovuto al fatto che hai eseguito la scansione poche volte o forse la rete selezionata ha un ESSID nascosto. Questo tipo di reti mostreranno il loro reale ESSID solo se un client si connette durante la scansione e ciò potrebbe richiedere molto tempo. Se conosci già il vero ESSID di questo target, puoi impostarlo manualmente. \${green_color}Vuoi impostare manualmente l'ESSID per questa rete di destinazione? \${normal_color}\${visual_choice}" + arr["POLISH",30]="\${pending_of_translation} \${blue_color}Nie wybrałeś żadnego celu lub wybrałeś ukryty identyfikator ESSID sieci. Może to być spowodowane tym, że skanowałeś kilka razy lub wybrana sieć ma ukryty identyfikator ESSID. Tego rodzaju sieci pokażą swój prawdziwy ESSID tylko wtedy, gdy klient połączy się podczas skanowania, a to może zająć dużo czasu. Jeśli znasz już prawdziwy identyfikator ESSID tego celu, możesz go ustawić ręcznie. \${green_color}Czy chcesz ręcznie ustawić ESSID dla tej sieci docelowej? \${normal_color}\${visual_choice}" + arr["GERMAN",30]="\${pending_of_translation} \${blue_color}Sie haben kein Ziel ausgewählt oder eine versteckte Netzwerk-ESSID ausgewählt. Dies kann daran liegen, dass Sie nur wenige Male gescannt haben oder dass das ausgewählte Netzwerk eine versteckte ESSID hat. Diese Art von Netzwerken zeigen ihre echte ESSID nur an, wenn ein Client während des Scannens eine Verbindung herstellt, und das kann sehr viel Zeit in Anspruch nehmen. Wenn Sie die tatsächliche ESSID dieses Ziels bereits kennen, können Sie sie manuell festlegen. \${green_color}Möchten Sie die ESSID für dieses Zielnetzwerk manuell festlegen? \${normal_color}\${visual_choice}" + arr["TURKISH",30]="\${pending_of_translation} \${blue_color}Herhangi bir hedef seçmediniz veya gizli bir ağ ESSID'si seçtiniz. Bunun nedeni birkaç kez tarama yapmış olmanız veya seçilen ağın gizli bir ESSID'ye sahip olması olabilir. Bu tür ağlar gerçek ESSID'lerini yalnızca bir istemci tarama sırasında bağlanırsa gösterir ve bu çok fazla zaman gerektirir. Bu hedefin gerçek ESSID'sini zaten biliyorsanız manuel olarak ayarlanabilir. \${green_color}Bu hedef ağ için ESSID'yi manuel olarak ayarlamak ister misiniz? \${normal_color}\${visual_choice}" + arr["ARABIC",30]="\${pending_of_translation} \${normal_color}\${visual_choice} \${green_color}هل تريد ضبط؟ ESSID يدويًا لهذه الشبكة المستهدفة \${blue_color}.لم تقم بتحديد أي هدف أو قمت بتحديد شبكة مخفية ESSID. قد يكون هذا بسبب قيامك بالمسح الضوئي لبعض الوقت أو ربما تحتوي الشبكة المحددة على ESSID مخفي. سيُظهر هذا النوع من الشبكات ESSID الحقيقي الخاص به فقط إذا اتصل العميل أثناء المسح وقد يتطلب ذلك الكثير من الوقت. إذا كنت تعرف بالفعل ESSID الحقيقي لهذا الهدف، فيمكن ضبطه يدويًا\${normal_color}" + arr["CHINESE",30]="\${pending_of_translation} \${blue_color}您尚未选择任何目标或您选择了隐藏网络 ESSID。这可能是因为您扫描的次数很少,或者所选网络可能具有隐藏的 ESSID。仅当客户端在扫描时连接时,此类网络才会显示其真实的 ESSID,这可能需要很多时间。如果您已经知道该目标的真实 ESSID,则可以手动设置。 \${green_color}您要为此目标网络手动设置 ESSID 吗? \${normal_color}\${visual_choice}" arr["ENGLISH",31]="ESSID set to \${normal_color}\${essid}" arr["SPANISH",31]="ESSID elegido \${normal_color}\${essid}" @@ -7179,19 +7179,19 @@ function initialize_language_strings() { arr["ARABIC",438]="\${normal_color}\${urlgithub_wiki}/Contributing\${blue_color} :بلغتك الأم وتعرف اللغة الإنجليزية أيضًا ، فاتصل بنا. مزيد من المعلومات على airgeddon نحن نبحث عن مترجمين للغات أخرى. إذا كنت تريد أن ترى\${normal_color}" arr["CHINESE",438]="我们正在寻找其他语言的翻译。如果您想以您的母语使用 airgeddon,并且您也懂英语,请联系我们。更多信息在: \${normal_color}\${urlgithub_wiki}/Contributing" - arr["ENGLISH",439]="\${blue_color}You haven't selected any target, you'll be prompted to input data manually. \${green_color}Do you want to continue? \${normal_color}\${visual_choice}" - arr["SPANISH",439]="\${blue_color}Se ha detectado que no tienes seleccionado ningún objetivo, tendrás que introducir los datos manualmente. \${green_color}¿Deseas continuar? \${normal_color}\${visual_choice}" - arr["FRENCH",439]="\${blue_color}Aucun objectif n'a été sélectionnéIl semble que vous avez sélectionné aucun but, vous devez saisir les données manuellement. \${green_color}Voulez-vous continuer? \${normal_color}\${visual_choice}" - arr["CATALAN",439]="\${blue_color}S'ha detectat que no tens seleccionat cap objectiu, hauràs d'introduir les dades manualment. \${green_color}¿Vols continuar? \${normal_color}\${visual_choice}" - arr["PORTUGUESE",439]="\${blue_color}Nenhum alvo foi selecionado, você será direcionado para inserir os dados manualmente. \${green_color}Deseja continuar? \${normal_color}\${visual_choice}" - arr["RUSSIAN",439]="\${blue_color}Вы не выбрали какую-либо цель, вам будет предложено ввести данные вручную. \${green_color}Вы хотите продолжить? \${normal_color}\${visual_choice}" - arr["GREEK",439]="\${blue_color}Δεν έχετε επιλέξει κάποιο στόχο, θα σας ζητηθεί να εισάγετε τα δεδομένα χειροκίνητα. \${green_color}Θέλετε να συνεχίσετε; \${normal_color}\${visual_choice}" - arr["ITALIAN",439]="\${blue_color}Abbiamo rilevato che non è stato selezionato alcun obiettivo, è necessario immettere manualmente i dati. \${green_color}Vuoi continuare? \${normal_color}\${visual_choice}" - arr["POLISH",439]="\${blue_color}Wykryto, że nie wybrano żadnych celów, konieczne będzie ręczne wprowadzanie danych. \${green_color}Czy chcesz kontynuować? \${normal_color}\${visual_choice}" - arr["GERMAN",439]="\${blue_color}Es wurde festgestellt, dass Sie kein Ziel ausgewählt haben. Sie müssen die Daten manuell eingeben. \${green_color}Möchten Sie fortfahren? \${normal_color}\${visual_choice}" - arr["TURKISH",439]="\${blue_color}Hiçbir hedef seçmediyseniz, verileri manuel olarak girmeniz istenir. \${green_color}Devam etmek istiyor musunuz? \${normal_color}\${visual_choice}" - arr["ARABIC",439]="\${normal_color}\${visual_choice}\${green_color} هل تريد المتابعة؟ \${blue_color}.لم تحدد أي هدف ، سيُطلب منك إدخال البيانات يدويًا\${normal_color}" - arr["CHINESE",439]="\${blue_color}您还没有选择任何目标,脚本会提示您手动输入数据。\${green_color}你想继续吗?\${normal_color}\${visual_choice}" + arr["ENGLISH",439]="\${blue_color}You haven't selected any target or your target is not valid, you'll be prompted to input data manually. \${green_color}Do you want to continue? \${normal_color}\${visual_choice}" + arr["SPANISH",439]="\${blue_color}Se ha detectado que no tienes seleccionado ningún objetivo o su objetivo no es válido, se le pedirá que ingrese los datos manualmente. \${green_color}¿Deseas continuar? \${normal_color}\${visual_choice}" + arr["FRENCH",439]="\${pending_of_translation} \${blue_color}Vous n'avez sélectionné aucune cible ou votre cible n'est pas valide, vous serez invité à saisir les données manuellement. \${green_color}Voulez-vous continuer? \${normal_color}\${visual_choice}" + arr["CATALAN",439]="\${pending_of_translation} \${blue_color}No heu seleccionat cap objectiu o el vostre objectiu no és vàlid, se us demanarà que introduïu dades manualment. \${green_color}¿Vols continuar? \${normal_color}\${visual_choice}" + arr["PORTUGUESE",439]="\${pending_of_translation} \${blue_color}Você não selecionou nenhum alvo ou seu alvo não é válido, você será solicitado a inserir os dados manualmente. \${green_color}Deseja continuar? \${normal_color}\${visual_choice}" + arr["RUSSIAN",439]="\${pending_of_translation} \${blue_color}Вы не выбрали ни одну цель или ваша цель недействительна, вам будет предложено ввести данные вручную. \${green_color}Вы хотите продолжить? \${normal_color}\${visual_choice}" + arr["GREEK",439]="\${pending_of_translation} \${blue_color}Δεν έχετε επιλέξει κανέναν στόχο ή ο στόχος σας δεν είναι έγκυρος, θα σας ζητηθεί να εισαγάγετε δεδομένα με μη αυτόματο τρόπο. \${green_color}Θέλετε να συνεχίσετε; \${normal_color}\${visual_choice}" + arr["ITALIAN",439]="\${pending_of_translation} \${blue_color}Non hai selezionato alcun target o il tuo target non è valido, ti verrà richiesto di inserire i dati manualmente. \${green_color}Vuoi continuare? \${normal_color}\${visual_choice}" + arr["POLISH",439]="\${pending_of_translation} \${blue_color}Nie wybrałeś żadnego celu lub Twój cel jest nieprawidłowy. Zostaniesz poproszony o ręczne wprowadzenie danych. \${green_color}Czy chcesz kontynuować? \${normal_color}\${visual_choice}" + arr["GERMAN",439]="\${pending_of_translation} \${blue_color}Sie haben kein Ziel ausgewählt oder Ihr Ziel ist ungültig. Sie werden aufgefordert, Daten manuell einzugeben. \${green_color}Möchten Sie fortfahren? \${normal_color}\${visual_choice}" + arr["TURKISH",439]="\${pending_of_translation} \${blue_color}Hiçbir hedef seçmediniz veya hedefiniz geçerli değil, verileri manuel olarak girmeniz istenecek. \${green_color}Devam etmek istiyor musunuz? \${normal_color}\${visual_choice}" + arr["ARABIC",439]="\${pending_of_translation} \${normal_color}\${visual_choice}\${green_color} هل تريد المتابعة؟ \${blue_color}.لم تقم بتحديد أي هدف أو أن هدفك غير صالح، سيُطلب منك إدخال البيانات يدويًا\${normal_color}" + arr["CHINESE",439]="\${pending_of_translation} \${blue_color}您尚未选择任何目标或您的目标无效,系统将提示您手动输入数据。 \${green_color}你想继续吗?\${normal_color}\${visual_choice}" arr["ENGLISH",440]="Aircrack trophy file generated successfully at [\${normal_color}\${aircrackpotenteredpath}\${blue_color}]" arr["SPANISH",440]="Fichero de trofeo aircrack generado con éxito en [\${normal_color}\${aircrackpotenteredpath}\${blue_color}]" @@ -11084,6 +11084,20 @@ function initialize_language_strings() { arr["TURKISH",717]="13. Çince" arr["ARABIC",717]="13. الصينيه" arr["CHINESE",717]="13. 简体中文" + + arr["ENGLISH",718]="ESSID set to \${normal_color}\${wps_essid}" + arr["SPANISH",718]="ESSID elegido \${normal_color}\${wps_essid}" + arr["FRENCH",718]="l'ESSID sélectionné est \${normal_color}\${wps_essid}" + arr["CATALAN",718]="l'ESSID seleccionat \${normal_color}\${wps_essid}" + arr["PORTUGUESE",718]="ESSID escolhido \${normal_color}\${wps_essid}" + arr["RUSSIAN",718]="Установленный ESSID: \${normal_color}\${wps_essid}" + arr["GREEK",718]="Το ESSID τέθηκε σε \${normal_color}\${wps_essid}" + arr["ITALIAN",718]="ESSID selezionato \${normal_color}\${wps_essid}" + arr["POLISH",718]="Wybrany ESSID \${normal_color}\${wps_essid}" + arr["GERMAN",718]="Gewählte ESSID \${normal_color}\${wps_essid}" + arr["TURKISH",718]="ESSID şu şekilde ayarlandı \${normal_color}\${wps_essid}" + arr["ARABIC",718]="\${normal_color}\${wps_essid}\${blue_color} المختار ESSID\${normal_color}" + arr["CHINESE",718]="ESSID 设置为 \${normal_color}\${wps_essid}" } #Expand escaped variables in language strings with their actual values