diff --git a/CHANGELOG.md b/CHANGELOG.md index af55e5505..e486ab10b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### 7.2 + - Improved chipset detection + - New language and options menu + - Colorization, auto-update and startup language autodetection now can be enabled/disabled persistently from menu + - Language can be set permanently from menu even for next startup after an update + - New check using xset internal tool to check for a working X window system in order to avoid uncontrolled xterm errors + ### 7.11 - Added hccapx support for hashcat 3.40 or higher - Decrypted hashcat trophy files beautified @@ -34,7 +41,7 @@ ### 6.21 - Improved chipset detection, lsusb added to internal tools - Improved internet checking. Now more methods, not only icmp - - Fixed error executing airgeddon after auto update on some distros + - Fixed error executing airgeddon after auto-update on some distros - Added LICENSE.md and README.md files to Kali package ### 6.2 diff --git a/Dockerfile b/Dockerfile index ce8ea5c35..258956afc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,16 +10,17 @@ LABEL \ maintainer="OscarAkaElvis " \ description="This is a multi-use bash script for Linux systems to audit wireless networks." -#Url env vars +#Env vars ENV AIRGEDDON_URL="https://github.com/v1s1t0r1sh3r3/airgeddon.git" ENV HASHCAT2_URL="https://github.com/v1s1t0r1sh3r3/hashcat2.0.git" +ENV DEBIAN_FRONTEND="noninteractive" #Update system -RUN apt-get update +RUN apt update #Set locales RUN \ - apt-get -y install \ + apt -y install \ locales && \ locale-gen en_US.UTF-8 && \ sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ @@ -34,7 +35,7 @@ ENV LC_ALL="en_US.UTF-8" #Install airgeddon essential tools RUN \ - apt-get -y install \ + apt -y install \ gawk \ net-tools \ wireless-tools \ @@ -44,24 +45,25 @@ RUN \ #Install airgeddon internal tools RUN \ - apt-get -y install \ + apt -y install \ ethtool \ pciutils \ usbutils \ rfkill \ x11-utils \ wget \ - ccze + ccze \ + x11-xserver-utils #Install update tools RUN \ - apt-get -y install \ + apt -y install \ curl \ git #Install airgeddon optional tools RUN \ - apt-get -y install \ + apt -y install \ crunch \ hashcat \ mdk3 \ @@ -79,7 +81,7 @@ RUN \ #Install needed Ruby gems RUN \ - apt-get -y install \ + apt -y install \ beef-xss \ bettercap @@ -119,9 +121,9 @@ RUN \ #Clean packages RUN \ - apt-get clean && \ - apt-get autoclean && \ - apt-get autoremove + apt clean && \ + apt autoclean && \ + apt autoremove #Clean files RUN rm -rf /opt/airgeddon/imgs > /dev/null 2>&1 && \ @@ -131,7 +133,8 @@ RUN rm -rf /opt/airgeddon/imgs > /dev/null 2>&1 && \ rm -rf /opt/airgeddon/Dockerfile > /dev/null 2>&1 && \ rm -rf /opt/airgeddon/binaries > /dev/null 2>&1 && \ rm -rf /opt/hashcat2.0 > /dev/null 2>&1 && \ - rm -rf /tmp/* > /dev/null 2>&1 + rm -rf /tmp/* > /dev/null 2>&1 && \ + rm -rf /var/lib/apt/lists/* > /dev/null 2>&1 #Expose BeEF control panel port EXPOSE 3000 diff --git a/README.md b/README.md index 7b3f045b4..555d71d72 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ --- -All the needed info about how to install|use|enjoy `airgeddon` is present at [Github's Wiki]. +All the needed info about how to "install | use | enjoy" `airgeddon` is present at [Github's Wiki]. - *I. Content & Features* - [Home] @@ -74,7 +74,7 @@ All the needed info about how to install|use|enjoy `airgeddon` is present at [Gi [Hat Tip To]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Hat%20Tip%20To [Inspiration]: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Inspiration -[Version-shield]: https://img.shields.io/badge/version-7.11-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version" +[Version-shield]: https://img.shields.io/badge/version-7.2-blue.svg?style=flat-square&colorA=273133&colorB=0093ee "Latest version" [Bash4.2-shield]: https://img.shields.io/badge/bash-4.2%2B-blue.svg?style=flat-square&colorA=273133&colorB=00db00 "Bash 4.2 or later" [License-shield]: https://img.shields.io/badge/license-GPL%20v3%2B-blue.svg?style=flat-square&colorA=273133&colorB=bd0000 "GPL v3+" [Docker-shield]: https://img.shields.io/docker/automated/v1s1t0r1sh3r3/airgeddon.svg?style=flat-square&colorA=273133&colorB=f9ff5a "Docker rules!" diff --git a/airgeddon.sh b/airgeddon.sh index 96984a2ba..f31c923b7 100644 --- a/airgeddon.sh +++ b/airgeddon.sh @@ -2,8 +2,8 @@ #Title........: airgeddon.sh #Description..: This is a multi-use bash script for Linux systems to audit wireless networks. #Author.......: v1s1t0r -#Date.........: 20170614 -#Version......: 7.11 +#Date.........: 20170717 +#Version......: 7.2 #Usage........: bash airgeddon.sh #Bash Version.: 4.2 or later @@ -109,8 +109,8 @@ declare -A possible_alias_names=( ) #General vars -airgeddon_version="7.11" -language_strings_expected_version="7.11-1" +airgeddon_version="7.2" +language_strings_expected_version="7.2-1" standardhandshake_filename="handshake-01.cap" tmpdir="/tmp/" osversionfile_dir="/etc/" @@ -268,13 +268,14 @@ known_arm_compatible_distros=( ) #Hint vars -declare main_hints=(128 134 163 437 438 442) +declare main_hints=(128 134 163 437 438 442 445) declare dos_hints=(129 131 133) declare handshake_hints=(127 130 132 136) declare handshake_attack_hints=(142) declare decrypt_hints=(171 178 179 208 244) declare select_interface_hints=(246) -declare language_hints=(250) +declare language_hints=(250 438) +declare option_hints=(445 250 448 477) declare evil_twin_hints=(254 258 264 269 309 328 400) declare evil_twin_dos_hints=(267 268) declare beef_hints=(408) @@ -473,6 +474,98 @@ function language_strings_handling_messages() { language_strings_key_to_continue["GREEK"]="Πατήστε το κουμπί [Enter] για να συνεχίσετε..." } +#Toggle language auto-detection feature +function auto_change_language_toggle() { + + debug_print + + if [ "${auto_change_language}" -eq 1 ]; then + sed -ri 's:(auto_change_language)=(1):\1=0:' "${scriptfolder}${scriptname}" 2> /dev/null + grep -E "auto_[c]hange_language=0" "${scriptfolder}${scriptname}" > /dev/null + if [ "$?" != "0" ]; then + return 1 + fi + auto_change_language=$((auto_change_language-1)) + else + sed -ri 's:(auto_change_language)=(0):\1=1:' "${scriptfolder}${scriptname}" 2> /dev/null + grep -E "auto_[c]hange_language=1" "${scriptfolder}${scriptname}" > /dev/null + if [ "$?" != "0" ]; then + return 1 + fi + auto_change_language=$((auto_change_language+1)) + fi + return 0 +} + +#Toggle allow colorization feature +function allow_colorization_toggle() { + + debug_print + + if [ "${allow_colorization}" -eq 1 ]; then + sed -ri 's:(allow_colorization)=(1):\1=0:' "${scriptfolder}${scriptname}" 2> /dev/null + grep -E "allow_[c]olorization=0" "${scriptfolder}${scriptname}" > /dev/null + if [ "$?" != "0" ]; then + return 1 + fi + allow_colorization=$((allow_colorization-1)) + else + sed -ri 's:(allow_colorization)=(0):\1=1:' "${scriptfolder}${scriptname}" 2> /dev/null + grep -E "allow_[c]olorization=1" "${scriptfolder}${scriptname}" > /dev/null + if [ "$?" != "0" ]; then + return 1 + fi + allow_colorization=$((allow_colorization+1)) + fi + initialize_colorized_output + return 0 +} + +#Toggle auto-update feature +function auto_update_toggle() { + + debug_print + + if [ "${auto_update}" -eq 1 ]; then + sed -ri 's:(auto_update)=(1):\1=0:' "${scriptfolder}${scriptname}" 2> /dev/null + grep -E "auto_[u]pdate=0" "${scriptfolder}${scriptname}" > /dev/null + if [ "$?" != "0" ]; then + return 1 + fi + auto_update=$((auto_update-1)) + else + sed -ri 's:(auto_update)=(0):\1=1:' "${scriptfolder}${scriptname}" 2> /dev/null + grep -E "auto_[u]pdate=1" "${scriptfolder}${scriptname}" > /dev/null + if [ "$?" != "0" ]; then + return 1 + fi + auto_update=$((auto_update+1)) + fi + return 0 +} + +#Get current permanent language +function get_current_permanent_language() { + + debug_print + + current_permanent_language=$(grep "language=" "${scriptfolder}${scriptname}" | grep -v "auto_change_language" | head -n 1 | awk -F "=" '{print $2}') + current_permanent_language=$(echo "${current_permanent_language}" | sed -e 's/^"//;s/"$//') +} + +#Set language as permanent +function set_permanent_language() { + + debug_print + + sed -ri "s:^([l]anguage)=\"[a-zA-Z]+\":\1=\"${language}\":" "${scriptfolder}${scriptname}" 2> /dev/null + grep -E "^[l]anguage=\"${language}\"" "${scriptfolder}${scriptname}" > /dev/null + if [ "$?" != "0" ]; then + return 1 + fi + return 0 +} + #Print the current line of where this was called and the function's name. Applies to some (which are useful) functions function debug_print() { @@ -510,7 +603,6 @@ function debug_print() { return 1 fi - #TODO "${@}" to print parameters echo "Line:${BASH_LINENO[1]}" "${FUNCNAME[1]}" return 0 fi @@ -1113,6 +1205,179 @@ function check_interface_mode() { exit_script_option } +#Option menu +function option_menu() { + + debug_print + + clear + language_strings "${language}" 443 "title" + current_menu="option_menu" + initialize_menu_and_print_selections + echo + language_strings "${language}" 47 "green" + print_simple_separator + language_strings "${language}" 78 + print_simple_separator + if [ "${auto_update}" -eq 1 ]; then + language_strings "${language}" 455 + else + language_strings "${language}" 449 + fi + if [ "${allow_colorization}" -eq 1 ]; then + language_strings "${language}" 456 + else + language_strings "${language}" 450 + fi + if [ "${auto_change_language}" -eq 1 ]; then + language_strings "${language}" 468 + else + language_strings "${language}" 467 + fi + language_strings "${language}" 447 + print_simple_separator + language_strings "${language}" 174 + print_hint ${current_menu} + + read -r option_selected + case ${option_selected} in + 1) + language_menu + ;; + 2) + if [ "${auto_update}" -eq 1 ]; then + ask_yesno 457 "no" + if [ "${yesno}" = "y" ]; then + auto_update_toggle + if [ "$?" = "0" ]; then + echo + language_strings "${language}" 461 "blue" + else + echo + language_strings "${language}" 417 "red" + fi + language_strings "${language}" 115 "read" + fi + else + language_strings "${language}" 459 "yellow" + ask_yesno 458 "no" + if [ "${yesno}" = "y" ]; then + auto_update_toggle + if [ "$?" = "0" ]; then + echo + language_strings "${language}" 460 "blue" + else + echo + language_strings "${language}" 417 "red" + fi + language_strings "${language}" 115 "read" + fi + fi + ;; + 3) + if ! hash ccze 2> /dev/null; then + echo + language_strings "${language}" 464 "yellow" + fi + + if [ "${allow_colorization}" -eq 1 ]; then + ask_yesno 462 "yes" + if [ "${yesno}" = "y" ]; then + allow_colorization_toggle + if [ "$?" = "0" ]; then + echo + language_strings "${language}" 466 "blue" + else + echo + language_strings "${language}" 417 "red" + fi + language_strings "${language}" 115 "read" + fi + else + ask_yesno 463 "yes" + if [ "${yesno}" = "y" ]; then + allow_colorization_toggle + if [ "$?" = "0" ]; then + echo + language_strings "${language}" 465 "blue" + else + echo + language_strings "${language}" 417 "red" + fi + language_strings "${language}" 115 "read" + fi + fi + ;; + 4) + if [ "${auto_change_language}" -eq 1 ]; then + ask_yesno 469 "no" + if [ "${yesno}" = "y" ]; then + auto_change_language_toggle + if [ "$?" = "0" ]; then + echo + language_strings "${language}" 473 "blue" + else + echo + language_strings "${language}" 417 "red" + fi + language_strings "${language}" 115 "read" + fi + else + echo + language_strings "${language}" 471 "yellow" + ask_yesno 470 "no" + if [ "${yesno}" = "y" ]; then + auto_change_language_toggle + if [ "$?" = "0" ]; then + echo + language_strings "${language}" 472 "blue" + else + echo + language_strings "${language}" 417 "red" + fi + language_strings "${language}" 115 "read" + fi + fi + ;; + 5) + ask_yesno 478 "yes" + if [ "${yesno}" = "y" ]; then + get_current_permanent_language + if [ "${language}" = "${current_permanent_language}" ]; then + echo + language_strings "${language}" 480 "red" + else + local auto_change_value + auto_change_value=$(grep "auto_change_language=" "${scriptfolder}${scriptname}" | head -n 1 | awk -F "=" '{print $2}') + if [ "${auto_change_value}" -eq 1 ]; then + echo + language_strings "${language}" 479 "yellow" + auto_change_language_toggle + fi + + set_permanent_language + if [ "$?" = "0" ]; then + echo + language_strings "${language}" 481 "blue" + else + echo + language_strings "${language}" 417 "red" + fi + fi + language_strings "${language}" 115 "read" + fi + ;; + 6) + return + ;; + *) + invalid_menu_option + ;; + esac + + option_menu +} + #Language change menu function language_menu() { @@ -1132,6 +1397,8 @@ function language_menu() { language_strings "${language}" 249 language_strings "${language}" 308 language_strings "${language}" 320 + print_simple_separator + language_strings "${language}" 446 print_hint ${current_menu} read -r language_selected @@ -1200,10 +1467,15 @@ function language_menu() { fi language_strings "${language}" 115 "read" ;; + 8) + return + ;; *) invalid_language_selected ;; esac + + language_menu } #Read the chipset for an interface @@ -1212,52 +1484,45 @@ function set_chipset() { debug_print chipset="" - sedrule1="s/^....//" - sedrule2="s/ Network Connection//g" - sedrule3="s/ Wireless Adapter//" - sedrule4="s/Wireless LAN Controller //g" - sedrule5="s/ Wireless Adapter//" - sedrule6="s/^ //" - sedrule7="s/ Gigabit Ethernet.*//" - sedrule8="s/ Fast Ethernet.*//" - sedrule9="s/ \[.*//" - sedrule10="s/ (.*//" - - sedrulewifi="${sedrule1};${sedrule2};${sedrule3};${sedrule6}" - sedrulegeneric="${sedrule4};${sedrule2};${sedrule5};${sedrule6};${sedrule7};${sedrule8};${sedrule9};${sedrule10}" - sedruleall="${sedrule1};${sedrule2};${sedrule3};${sedrule6};${sedrule7};${sedrule8};${sedrule9};${sedrule10}" + sedrule1="s/^[0-9a-f]\{1,4\} \|^ //Ig" + sedrule2="s/ Network Connection.*//Ig" + sedrule3="s/ Wireless.*//Ig" + sedrule4="s/ PCI Express.*//Ig" + sedrule5="s/ \(Gigabit\|Fast\) Ethernet.*//Ig" + sedrule6="s/ \[.*//" + sedrule7="s/ (.*//" - if [ -f "/sys/class/net/${1}/device/modalias" ]; then + sedruleall="${sedrule1};${sedrule2};${sedrule3};${sedrule4};${sedrule5};${sedrule6};${sedrule7}" - bus_type=$(cut -d ":" -f 1 < "/sys/class/net/${1}/device/modalias") + if [ -f "/sys/class/net/${1}/device/modalias" ]; then + bus_type=$(cut -f 1 -d ":" < "/sys/class/net/${1}/device/modalias") if [ "${bus_type}" = "usb" ]; then vendor_and_device=$(cut -b 6-14 < "/sys/class/net/${1}/device/modalias" | sed 's/^.//;s/p/:/') if hash lsusb 2> /dev/null; then - chipset=$(lsusb | grep -i "${vendor_and_device}" | head -n1 - | cut -f3- -d ":" | sed "${sedrulewifi}") + chipset=$(lsusb | grep -i "${vendor_and_device}" | head -n 1 | cut -f 3 -d ":" | sed -e "${sedruleall}") fi elif [[ "${bus_type}" =~ pci|ssb|bcma|pcmcia ]]; then - - if [[ -f /sys/class/net/${1}/device/vendor && -f /sys/class/net/${1}/device/device ]]; then + if [[ -f /sys/class/net/${1}/device/vendor ]] && [[ -f /sys/class/net/${1}/device/device ]]; then vendor_and_device=$(cat "/sys/class/net/${1}/device/vendor"):$(cat "/sys/class/net/${1}/device/device") if hash lspci 2> /dev/null; then - chipset=$(lspci -d "${vendor_and_device}" | cut -f3- -d ":" | sed "${sedrulegeneric}") + chipset=$(lspci -d "${vendor_and_device}" | cut -f 3 -d ":" | sed -e "${sedruleall}") fi else if hash ethtool 2> /dev/null; then ethtool_output=$(ethtool -i "${1}" 2>&1) - vendor_and_device=$(printf "%s" "${ethtool_output}" | grep bus-info | cut -d ":" -f "3-" | sed 's/^ //') + vendor_and_device=$(printf "%s" "${ethtool_output}" | grep "bus-info" | cut -f 3 -d ":" | sed 's/^ //') if hash lspci 2> /dev/null; then - chipset=$(lspci | grep "${vendor_and_device}" | head -n1 - | cut -f3- -d ":" | sed "${sedrulegeneric}") + chipset=$(lspci | grep "${vendor_and_device}" | head -n 1 | cut -f 3 -d ":" | sed -e "${sedruleall}") fi fi fi fi - elif [[ -f /sys/class/net/${1}/device/idVendor && -f /sys/class/net/${1}/device/idProduct ]]; then + elif [[ -f /sys/class/net/${1}/device/idVendor ]] && [[ -f /sys/class/net/${1}/device/idProduct ]]; then vendor_and_device=$(cat "/sys/class/net/${1}/device/idVendor"):$(cat "/sys/class/net/${1}/device/idProduct") if hash lsusb 2> /dev/null; then - chipset=$(lsusb | grep -i "${vendor_and_device}" | head -n1 - | cut -f3- -d ":" | sed "${sedruleall}") + chipset=$(lsusb | grep -i "${vendor_and_device}" | head -n 1 | cut -f 3 -d ":" | sed -e "${sedruleall}") fi fi } @@ -1309,7 +1574,7 @@ function select_internet_interface() { fi set_chipset "${item}" echo -ne "${option_counter}.${spaceiface}${item} " - if [ "${chipset}" = "" ]; then + if [ -z "${chipset}" ]; then language_strings "${language}" 245 "blue" else echo -e "${blue_color}// ${yellow_color}Chipset:${normal_color} ${chipset}" @@ -1510,7 +1775,7 @@ function ask_bssid() { if [ "${1}" = "wps" ]; then if [ -z "${wps_bssid}" ]; then ask_yesno 439 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then return 1 fi fi @@ -1523,7 +1788,7 @@ function ask_bssid() { else if [ -z "${bssid}" ]; then ask_yesno 439 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then return 1 fi fi @@ -1556,7 +1821,7 @@ function ask_essid() { if [ "${1}" = "verify" ]; then ask_yesno 439 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then return 1 fi fi @@ -2643,6 +2908,30 @@ function wps_attacks_parameters() { return 0 } +#Print selected options +function print_options() { + + debug_print + + if [ "${auto_update}" -eq 1 ]; then + language_strings "${language}" 451 "blue" + else + language_strings "${language}" 452 "blue" + fi + + if [ "${allow_colorization}" -eq 1 ]; then + language_strings "${language}" 453 "blue" + else + language_strings "${language}" 454 "blue" + fi + + if [ "${auto_change_language}" -eq 1 ]; then + language_strings "${language}" 474 "blue" + else + language_strings "${language}" 475 "blue" + fi +} + #Print selected interface function print_iface_selected() { @@ -2947,6 +3236,9 @@ function initialize_menu_and_print_selections() { print_iface_selected print_all_target_vars_et ;; + "option_menu") + print_options + ;; *) print_iface_selected print_all_target_vars @@ -3117,6 +3409,13 @@ function print_hint() { randomhint=$(shuf -i 0-"${hintlength}" -n 1) strtoprint=${hints[language_hints|${randomhint}]} ;; + "option_menu") + store_array hints option_hints "${option_hints[@]}" + hintlength=${#option_hints[@]} + ((hintlength--)) + randomhint=$(shuf -i 0-"${hintlength}" -n 1) + strtoprint=${hints[option_hints|${randomhint}]} + ;; "evil_twin_attacks_menu") store_array hints evil_twin_hints "${evil_twin_hints[@]}" hintlength=${#evil_twin_hints[@]} @@ -3183,7 +3482,7 @@ function main_menu() { language_strings "${language}" 426 print_simple_separator language_strings "${language}" 60 - language_strings "${language}" 78 + language_strings "${language}" 444 language_strings "${language}" 61 print_hint ${current_menu} @@ -3220,7 +3519,7 @@ function main_menu() { credits_option ;; 11) - language_menu + option_menu ;; 12) exit_script_option @@ -3841,7 +4140,7 @@ function manage_asking_for_captured_file() { echo language_strings "${language}" 186 "blue" ask_yesno 187 "yes" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then ask_capture_file fi else @@ -3858,7 +4157,7 @@ function manage_asking_for_dictionary_file() { echo language_strings "${language}" 183 "blue" ask_yesno 184 "yes" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then ask_dictionary fi else @@ -3875,7 +4174,7 @@ function manage_asking_for_rule_file() { echo language_strings "${language}" 239 "blue" ask_yesno 240 "yes" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then ask_rules fi else @@ -3986,7 +4285,7 @@ function select_wpa_bssid_target_from_captured_file() { language_strings "${language}" 192 "blue" ask_yesno 193 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then bssid=${targetbssid} return 0 fi @@ -4204,7 +4503,7 @@ function manage_hashcat_pot() { echo language_strings "${language}" 234 "yellow" ask_yesno 235 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then hashcat_potpath="${default_save_path}" lastcharhashcat_potpath=${hashcat_potpath: -1} @@ -4256,7 +4555,7 @@ function manage_aircrack_pot() { echo language_strings "${language}" 234 "yellow" ask_yesno 235 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then aircrack_potpath="${default_save_path}" lastcharaircrack_potpath=${aircrack_potpath: -1} if [ "${lastcharaircrack_potpath}" != "/" ]; then @@ -4299,7 +4598,7 @@ function manage_ettercap_log() { ettercap_log=0 ask_yesno 302 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then ettercap_log=1 default_ettercap_logpath="${default_save_path}" lastcharettercaplogpath=${default_ettercap_logpath: -1} @@ -4324,7 +4623,7 @@ function manage_bettercap_log() { bettercap_log=0 ask_yesno 302 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then bettercap_log=1 default_bettercap_logpath="${default_save_path}" lastcharbettercaplogpath=${default_bettercap_logpath: -1} @@ -4801,7 +5100,7 @@ function set_hostapd_config() { tmpfiles_toclean=1 rm -rf "${tmpdir}${hostapd_file}" > /dev/null 2>&1 - different_mac_digit=$(tr -dc A-F0-9 < /dev/urandom | fold -w2 | head -n100 | grep -v "${bssid:10:1}" | head -c 1) + different_mac_digit=$(tr -dc A-F0-9 < /dev/urandom | fold -w2 | head -n 100 | grep -v "${bssid:10:1}" | head -c 1) et_bssid=${bssid::10}${different_mac_digit}${bssid:11:6} { @@ -6126,7 +6425,7 @@ function prepare_beef_start() { if [[ ${beef_found} -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[19]}]} -eq 0 ]]; then language_strings "${language}" 405 "blue" ask_yesno 191 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then manual_beef_set search_for_beef fi @@ -6148,7 +6447,7 @@ function prepare_beef_start() { elif [[ "${beef_found}" -eq 0 ]] && [[ ${optional_tools[${optional_tools_names[19]}]} -eq 1 ]]; then language_strings "${language}" 405 "blue" ask_yesno 415 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then manual_beef_set search_for_beef if [[ ${beef_found} -eq 1 ]] && [[ ${valid_possible_beef_path} -eq 1 ]]; then @@ -6320,6 +6619,8 @@ function parse_ettercap_log() { pass_counter=$((pass_counter + 1)) done + add_contributing_footer_to_file "${tmpdir}parsed_file" + if [ ${pass_counter} -eq 0 ]; then language_strings "${language}" 305 "yellow" else @@ -6378,6 +6679,8 @@ function parse_bettercap_log() { fi done + add_contributing_footer_to_file "${tmpdir}parsed_file" + if [ ${pass_counter} -eq 0 ]; then language_strings "${language}" 305 "yellow" else @@ -6538,7 +6841,7 @@ function clean_handshake_file_option() { else language_strings "${language}" 151 "blue" ask_yesno 152 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then filetoclean="${enteredpath}" else readpath=1 @@ -7321,7 +7624,7 @@ function explore_for_wps_targets_option() { if [[ ${selected_wps_target_network} -ge 1 ]] && [[ ${selected_wps_target_network} -le ${wash_counter} ]]; then if [ "${wps_lockeds[${selected_wps_target_network}]}" = "Yes" ]; then ask_yesno 350 "no" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then break else echo @@ -7528,7 +7831,7 @@ function et_prerequisites() { language_strings "${language}" 276 "yellow" print_simple_separator ask_yesno 277 "yes" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then return_to_et_main_menu=1 return_to_et_main_menu_from_beef=1 return @@ -7536,7 +7839,7 @@ function et_prerequisites() { fi ask_yesno 419 "no" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then mac_spoofing_desired=1 fi @@ -7651,13 +7954,13 @@ function ask_et_handshake_file() { elif [[ -z "${enteredpath}" ]] && [[ -n "${et_handshake}" ]]; then language_strings "${language}" 313 "blue" ask_yesno 187 "yes" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then readpath=1 fi elif [[ -n "${enteredpath}" ]] && [[ -z "${et_handshake}" ]]; then language_strings "${language}" 151 "blue" ask_yesno 187 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then et_handshake="${enteredpath}" else readpath=1 @@ -7665,7 +7968,7 @@ function ask_et_handshake_file() { elif [[ -n "${enteredpath}" ]] && [[ -n "${et_handshake}" ]]; then language_strings "${language}" 313 "blue" ask_yesno 187 "yes" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then readpath=1 fi fi @@ -7713,7 +8016,7 @@ function et_dos_menu() { if [ ${internet_interface_selected} -eq 0 ]; then language_strings "${language}" 330 "blue" ask_yesno 326 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then check_et_without_internet_compatibility if [ "$?" = "0" ]; then captive_portal_mode="dnsblackhole" @@ -7760,7 +8063,7 @@ function et_dos_menu() { if [ ${internet_interface_selected} -eq 0 ]; then language_strings "${language}" 330 "blue" ask_yesno 326 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then check_et_without_internet_compatibility if [ "$?" = "0" ]; then captive_portal_mode="dnsblackhole" @@ -7807,7 +8110,7 @@ function et_dos_menu() { if [ ${internet_interface_selected} -eq 0 ]; then language_strings "${language}" 330 "blue" ask_yesno 326 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then check_et_without_internet_compatibility if [ "$?" = "0" ]; then captive_portal_mode="dnsblackhole" @@ -7869,7 +8172,7 @@ function detect_internet_interface() { echo language_strings "${language}" 285 "blue" ask_yesno 284 "yes" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then select_internet_interface fi else @@ -7924,8 +8227,6 @@ function invalid_language_selected() { language_strings "${language}" 82 "red" echo language_strings "${language}" 115 "read" - echo - language_menu } #Show message for captive portal invalid selected language @@ -8000,7 +8301,7 @@ function capture_traps() { ;; *) ask_yesno 12 "yes" - if [ ${yesno} = "y" ]; then + if [ "${yesno}" = "y" ]; then exit_code=1 exit_script_option else @@ -8039,7 +8340,7 @@ function exit_script_option() { if [ "${ifacemode}" = "Monitor" ]; then ask_yesno 166 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then action_on_exit_taken=1 language_strings "${language}" 167 "multiline" ${airmon} stop "${interface}" > /dev/null 2>&1 @@ -8386,7 +8687,7 @@ function ask_for_pin_dbfile_download_retry() { debug_print ask_yesno 380 "no" - if [ ${yesno} = "n" ]; then + if [ "${yesno}" = "n" ]; then pin_dbfile_checked=1 fi } @@ -8807,7 +9108,7 @@ function check_compatibility() { done update_toolsok=1 - if [ ${auto_update} -eq 1 ]; then + if [ "${auto_update}" -eq 1 ]; then echo language_strings "${language}" 226 "blue" @@ -8871,7 +9172,7 @@ function check_update_tools() { debug_print - if [ ${auto_update} -eq 1 ]; then + if [ "${auto_update}" -eq 1 ]; then if [ ${update_toolsok} -eq 1 ]; then autoupdate_check else @@ -9017,6 +9318,20 @@ function initialize_script_settings() { set_script_folder_and_name http_proxy_set=0 hccapx_needed=0 + xterm_ok=1 +} + +#Detect if there is a working X window system +function check_xwindow_system() { + + debug_print + + if hash xset 2> /dev/null; then + xset -q > /dev/null 2>&1 + if [ "$?" != "0" ]; then + xterm_ok=0 + fi + fi } #Detect screen resolution if possible @@ -9027,7 +9342,6 @@ function detect_screen_resolution() { resolution_detected=0 if hash xdpyinfo 2> /dev/null; then resolution=$(xdpyinfo 2> /dev/null | grep -A 3 "screen #0" | grep "dimensions" | tr -s " " | cut -d " " -f 3 | grep "x") - if [ "$?" = "0" ]; then resolution_detected=1 fi @@ -9187,6 +9501,7 @@ function welcome() { check_language_strings + check_xwindow_system detect_screen_resolution set_possible_aliases initialize_optional_tools_values @@ -9218,12 +9533,18 @@ function welcome() { check_bash_version echo - if [ ${resolution_detected} -eq 1 ]; then + if [[ ${resolution_detected} -eq 1 ]] && [[ "${xterm_ok}" -eq 1 ]]; then language_strings "${language}" 294 "blue" else - language_strings "${language}" 295 "red" - echo - language_strings "${language}" 300 "yellow" + if [ "${xterm_ok}" -eq 0 ]; then + language_strings "${language}" 476 "red" + exit_code=1 + exit_script_option + else + language_strings "${language}" 295 "red" + echo + language_strings "${language}" 300 "yellow" + fi fi echo @@ -9297,6 +9618,8 @@ function download_last_version() { download_language_strings_file if [ "$?" = "0" ]; then + + get_current_permanent_language timeout -s SIGTERM 15 curl -L ${urlscript_directlink} -s -o "${0}" if [ "$?" = "0" ]; then @@ -9320,6 +9643,17 @@ function download_last_version() { if [ -n "${beef_custom_path}" ]; then rewrite_script_with_custom_beef "set" "${beef_custom_path}" fi + + if [ "${allow_colorization}" -ne 1 ]; then + sed -ri 's:(allow_colorization)=(1):\1=0:' "${scriptfolder}${scriptname}" 2> /dev/null + fi + + if [ "${auto_change_language}" -ne 1 ]; then + sed -ri 's:(auto_change_language)=(1):\1=0:' "${scriptfolder}${scriptname}" 2> /dev/null + fi + + sed -ri "s:^([l]anguage)=\"[a-zA-Z]+\":\1=\"${current_permanent_language}\":" "${scriptfolder}${scriptname}" 2> /dev/null + language_strings "${language}" 115 "read" chmod +x "${scriptfolder}${scriptname}" > /dev/null 2>&1 exec "${scriptfolder}${scriptname}" diff --git a/binaries/arch/airgeddon-git-7.11-1-any.pkg.tar.xz b/binaries/arch/airgeddon-git-7.11-1-any.pkg.tar.xz new file mode 100644 index 000000000..86400e300 Binary files /dev/null and b/binaries/arch/airgeddon-git-7.11-1-any.pkg.tar.xz differ diff --git a/binaries/arch/airgeddon-git-7.1-1-any.pkg.tar.xz b/binaries/arch/legacy/airgeddon-git-7.1-1-any.pkg.tar.xz similarity index 100% rename from binaries/arch/airgeddon-git-7.1-1-any.pkg.tar.xz rename to binaries/arch/legacy/airgeddon-git-7.1-1-any.pkg.tar.xz diff --git a/binaries/kali/airgeddon_7.2-1_all.deb b/binaries/kali/airgeddon_7.2-1_all.deb new file mode 100644 index 000000000..4112593fa Binary files /dev/null and b/binaries/kali/airgeddon_7.2-1_all.deb differ diff --git a/binaries/kali/airgeddon_7.11-1_all.deb b/binaries/kali/legacy/airgeddon_7.11-1_all.deb similarity index 100% rename from binaries/kali/airgeddon_7.11-1_all.deb rename to binaries/kali/legacy/airgeddon_7.11-1_all.deb diff --git a/known_pins.db b/known_pins.db index 73fc71d9a..704a915b8 100644 --- a/known_pins.db +++ b/known_pins.db @@ -2,7 +2,7 @@ #Title........: known_pins.db #Description..: This is a WPS PIN database for routers that generate generic passwords. #Author.......: v1s1t0r -#Date.........: 20170505 +#Date.........: 20170806 #Bash Version.: 4.2 or later #Set PIN database. Keys are the first 6 bssid digits and are ordered @@ -30,7 +30,7 @@ function set_pin_database() { PINDB["001915"]="12345670 63396638" PINDB["001918"]="12345670" PINDB["001970"]="12345670" - PINDB["001A2B"]="15624697 16495265 88478760 77775078" + PINDB["001A2B"]="15624697 16495265 88478760 77775078 51340865 21143892" PINDB["001B11"]="84794079" PINDB["001D19"]="66026402 12345670" PINDB["001D73"]="88420707" @@ -67,6 +67,7 @@ function set_pin_database() { PINDB["0026F2"]="32312966 64426679" PINDB["003872"]="18836486" PINDB["00487A"]="15471628" + PINDB["004A77"]="51798161 62012089 43887842 42567646 10124314" PINDB["004F62"]="21207136" PINDB["004F67"]="13648947" PINDB["006064"]="13948696 71876160 17002318" @@ -118,7 +119,7 @@ function set_pin_database() { PINDB["586D8F"]="47158382 69382161 67387953 37110802" PINDB["589835"]="36232925 78568242 56217391 13128562 53890894" PINDB["5C338E"]="00764025 03015162 04581277 11765592 15986511 30414129 30999022 33685984 39657053 53842763 60387400 73968597 78614062 78963641 82848439 85776104 91345080 12345670" - PINDB["5C353B"]="64874487" + PINDB["5C353B"]="64874487 95755212 64874487 58945537 79082020 12345670" PINDB["5C571A"]="46577450" PINDB["5CD998"]="11554424 67554409" PINDB["626BD3"]="25415001" @@ -170,6 +171,7 @@ function set_pin_database() { PINDB["A021B7"]="39149138 41252147 80324560 82581507 25815078 22813503 11352464 47624313 92442559 81121496 43454044 86559256 33440279 15880208 53134424 72218013 01874341 43135479 51920104 26515274 84361455 71202358 12345679" PINDB["A4526F"]="16538061 16702738 18355604 43297917 73767053 88202907 43297917 19756967 13409708" PINDB["A4B1E9"]="75090753" + PINDB["A8D3F7"]="08593399 31013628 98011193 69216664 33109893" PINDB["ACE87B"]="77502896" PINDB["B0487A"]="61116597 53171801 65822234 31400206 06465179 18668872 22637307 40176451 37493691 57739601 40184708 40166148 37505073 61116597 37494506 37494063 37489014 37496081 37494650 37490034 54335677" PINDB["B4749F"]="23659391" @@ -191,17 +193,20 @@ function set_pin_database() { PINDB["CCB255"]="97354833" PINDB["D0AEEC"]="12263813 36831678 43419012 46275288 49570724 58441640 67791088 76871559 63220926 23970472 04325093 35041054 31433273 97855996 11248729 52217388 59432265 77485625 06235307 78597235" PINDB["D0D412"]="16538061 16702738 18355604 88202907 73767053 43297917 19756967 13409708" - PINDB["D47BB0"]="14550911" + PINDB["D47BB0"]="14550911 98852413 70795660 20859978 13090586 67774128 14738340 11317890 53741134 22388414 72768198 11651659 83914829 36956074 11277576" PINDB["D85D4C"]="73448907" + PINDB["D86194"]="71537573 10009321 31348034 18794786 15738370" PINDB["D8B6B7"]="49385052 12715657 66131533 96567111 18811728" PINDB["DC0B1A"]="19756967 73767053 16702738 16538061 88202907 18355604 13409708 21158766 43297917" + PINDB["DC537C"]="95755212 64874487 58945537 79082020 12345670" PINDB["E0469A"]="30022645 19004938 75401139 47386914" PINDB["E08FEC"]="00235211" PINDB["E09115"]="42764199" PINDB["E091F5"]="37380342 82234577 49945386" PINDB["E0CB4E"]="62987523" - PINDB["E24136"]="89817841" - PINDB["E4C146"]="71537573" + PINDB["E24136"]="89817841 29612000 19107011 92008601 15763297" + PINDB["E43ED7"]="29187386 60551085 07281808 78232099 37706937" + PINDB["E4C146"]="71537573 10009321 31348034 18794786 15738370" PINDB["E840F2"]="12345670" PINDB["EC1A59"]="19366838" PINDB["F07D68"]="01290141 00927659" @@ -213,7 +218,7 @@ function set_pin_database() { PINDB["F81BFA"]="12345670" PINDB["F83DFF"]="25905892" PINDB["F86394"]="12345670" - PINDB["F88E85"]="49385052 12715657 66131533 96567111 18811728 19117652" + PINDB["F88E85"]="49385052 12715657 66131533 96567111 18811728 19117652 16035232 20172527" PINDB["F8D111"]="41441282 93834186 93802598 46337443 81315697 11801962 48155113 23229006" PINDB["F8ED80"]="12345670" PINDB["F8F111"]="71031811 11212256 46518408 08114419" diff --git a/language_strings.sh b/language_strings.sh index dfd67ef13..42147d30b 100644 --- a/language_strings.sh +++ b/language_strings.sh @@ -2,7 +2,7 @@ #Title........: language_strings.sh #Description..: All the translated strings that airgeddon uses are located here. #Author.......: v1s1t0r -#Date.........: 20170615 +#Date.........: 20170806 #Bash Version.: 4.2 or later #Set language_strings file version @@ -11,7 +11,7 @@ function set_language_strings_version() { debug_print - language_strings_version="7.11-1" + language_strings_version="7.2-1" } #Set different language text strings @@ -405,7 +405,7 @@ function language_strings() { arr["GREEK",1]="Αυτή η διεπαφή ${interface} δεν είναι κάρτα wifi. Δεν υποστηρίζει ετερόκλητη κατάσταση." arr["ENGLISH",2]="English O.S. language detected. Supported by script. Automatically changed" - arr["SPANISH",2]="Idioma Español del S.O. detectado. Soportado por el script. Se cambió automaticamente" + arr["SPANISH",2]="Idioma Español del S.O. detectado. Soportado por el script. Se cambió automáticamente" arr["FRENCH",2]="S.E. en Français détecté. Langue prise en charge par le script et changé automatiquement" arr["CATALAN",2]="Idioma Català del S.O. detectat. Suportat pel script. S'ha canviat automàticament" arr["PORTUGUESE",2]="S.O. em Português detectado. Compatível com o script. Linguagem automaticamente alterada" @@ -994,7 +994,7 @@ function language_strings() { arr["CATALAN",75]="Agraïments al \"Spanish pentesting crew\", al \"Wifislax Staff\", a la gent dels fòrums que m'ajuda, als meus col·laboradors, traductors i especialment al Kcdtv i xtonousou per les proves beta i el suport rebut" arr["PORTUGUESE",75]="Agradecimentos a \"Spanish pentesting crew\", \"Wifislax Staff\", as pessoas dos fóruns por me ajudar, os colaboradores, tradutores e especialmente para Kcdtv e xtonousou por testes beta e também a todo apoio recebido" arr["RUSSIAN",75]="Спасибо \"Spanish pentesting crew\", за \"Wifislax Staff\", людям с форумов, которые мне помогают, тем, кто принимает участие в проекте, переводчикам и особенно Kcdtv и xtonousou за бета тестирование и полученную поддержку" - arr["GREEK",75]="Τις ευχαριστίες μου στην \"Ισπανική ομάδα pentesting\", στο \"Wifislax Staff\", στα άτομα από το forum που με βοηθάνε, στους συνεργάτες μου, στους μεταφραστές και ειδικά στον Kcdtv και xtonousou για το beta testing και την υποστήριξη που λάβαμε από αυτόν" + arr["GREEK",75]="Τις ευχαριστίες μου στην \"Ισπανική ομάδα pentesting\", στο \"Wifislax Staff\", στα άτομα από το forum που με βοηθάνε, στους συνεργάτες μου, στους μεταφραστές και ειδικά στον Kcdtv και στον xtonousou για το beta testing και την υποστήριξη που λάβαμε" arr["ENGLISH",76]="Invalid menu option was chosen" arr["SPANISH",76]="Opción del menú no válida" @@ -1012,13 +1012,13 @@ function language_strings() { arr["RUSSIAN",77]="Был выбран недействительный интерфейс" arr["GREEK",77]="Επιλέχθηκε άκυρη διεπαφή" - arr["ENGLISH",78]="11. Change language" - arr["SPANISH",78]="11. Cambiar idioma" - arr["FRENCH",78]="11. Changer de langue" - arr["CATALAN",78]="11. Canviar l'idioma" - arr["PORTUGUESE",78]="11. Alterar idioma" - arr["RUSSIAN",78]="11. Сменить язык" - arr["GREEK",78]="11. Αλλαγή γλώσσας" + arr["ENGLISH",78]="1. Change language" + arr["SPANISH",78]="1. Cambiar idioma" + arr["FRENCH",78]="1. Changer de langue" + arr["CATALAN",78]="1. Canviar l'idioma" + arr["PORTUGUESE",78]="1. Alterar idioma" + arr["RUSSIAN",78]="1. Сменить язык" + arr["GREEK",78]="1. Αλλαγή γλώσσας" arr["ENGLISH",79]="1. English" arr["SPANISH",79]="1. Inglés" @@ -1305,8 +1305,8 @@ function language_strings() { arr["FRENCH",114]="Utilisez-le seulement dans vos propres réseaux!!" arr["CATALAN",114]="Utilitza'l només a les teves pròpies xarxes!!" arr["PORTUGUESE",114]="Use-o apenas em suas próprias redes!!" - arr["RUSSIAN",114]="Используйте только на ваших собственных сетях!!!" - arr["GREEK",114]="Χρησιμοποιήστε το μόνο σε δικά σας δίκτυα!!!" + arr["RUSSIAN",114]="Используйте только на ваших собственных сетях!!" + arr["GREEK",114]="Χρησιμοποιήστε το μόνο σε δικά σας δίκτυα!!" arr["ENGLISH",115]="Press [Enter] key to continue..." arr["SPANISH",115]="Pulsa la tecla [Enter] para continuar..." @@ -2757,7 +2757,7 @@ function language_strings() { arr["GREEK",295]="Εντοπίζεται η ανάλυση... Δεν μπορεί να εντοπιστεί!, χρησιμοποιείται η προεπιλεγμένη : ${normal_color}${resolution}" arr["ENGLISH",296]="All parameters and requirements are set. The attack is going to start. Multiple windows will be opened, don't close anyone. When you want to stop the attack press [Enter] on this window and the script will automatically close them all" - arr["SPANISH",296]="Todos los parámetros y requerimientos están listos. Va a comenzar el ataque. Se abrirán múltiples ventanas, no cierres ninguna. Cuando quieras parar el ataque pulsa [Enter] en esta ventana y el script cerrará automaticamente todo" + arr["SPANISH",296]="Todos los parámetros y requerimientos están listos. Va a comenzar el ataque. Se abrirán múltiples ventanas, no cierres ninguna. Cuando quieras parar el ataque pulsa [Enter] en esta ventana y el script cerrará automáticamente todo" arr["FRENCH",296]="Tous les paramètres de l'attaque sont prêts et elle peut comenmcer. Plusieurs consoles vont s'ouvrir, ne les fermez pas. Lorsque vous voulez arrêter l'attaque, appuyez sur [Entrée] dans cette console et le script fermera automatiquement les autres" arr["CATALAN",296]="Tots els paràmetres i requeriments estan preparats. Començarà l'atac. S'obriran múltiples finestres, no tanquis cap. Quan vulguis parar l'atac prem [Enter] en aquesta finestra i el script tancarà automàticament tot" arr["PORTUGUESE",296]="Todos os parâmetros e requisitos estão prontos. Você vai começar o ataque. Várias janelas iram se abrir, não feche nenhuma delas. Quando quiser parar o ataque pressione [Enter] nesta janela e o script irá fechar automaticamente" @@ -2788,13 +2788,13 @@ function language_strings() { arr["RUSSIAN",299]="Восстановление интерфейса..." arr["GREEK",299]="Γίνεται επαναφορά διεπαφής..." - arr["ENGLISH",300]="If make work xpdyinfo command, the script will be able to calculate your screen resolution and show you the windows in a better way. Depending of the system, the package name could be x11-utils, xdpyinfo, xorg-xdpyinfo, etc." - arr["SPANISH",300]="Si haces que funcione en tu sistema el comando xdpyinfo, el script podrá calcular tu resolución de pantalla y mostrarte las ventanas de forma más optimizada. Dependiendo del sistema el paquete puede llamarse x11-utils, xdpyinfo, xorg-xdpyinfo, etc." + arr["ENGLISH",300]="If the xpdyinfo command works, the script will be able to calculate your screen resolution and display the windows in a better way. Depending of the system, the package name containing it could be x11-utils, xdpyinfo, xorg-xdpyinfo, etc." + arr["SPANISH",300]="Si haces que funcione en tu sistema el comando xdpyinfo, el script podrá calcular tu resolución de pantalla y mostrarte las ventanas de forma más optimizada. Dependiendo del sistema el paquete que lo contiene puede llamarse x11-utils, xdpyinfo, xorg-xdpyinfo, etc." arr["FRENCH",300]="Si la commande xdpyinfo est installée dans vôtre système le script pourra calculer votre résolution d'écran et optimiser l'affichage en conséquence. Le paquet à installer pour avoir cette commande s'appelle (selon la distribution) x11-utils, xdpyinfo, xorg-xdpyinfo, etc." - arr["CATALAN",300]="Si fas que funcioni en el teu sistema l'ordre xdpyinfo, el script podrà calcular la teva resolució de pantalla i mostrar-te les finestres de forma més optimitzada. Depenent del sistema el paquet pot dir-se x11-utils, xdpyinfo, xorg-xdpyinfo, etc." - arr["PORTUGUESE",300]="Se o comando xdpyinfo funcionar em seu sistema o script será capaz de calcular a resolução da tela e mostrar-lhe as janelas de uma maneira melhor. Dependendo do sistema, o nome do pacote pode ser x11-utils, xdpyinfo, xorg-xdpyinfo, etc." - arr["RUSSIAN",300]="Если использовать команду xpdyinfo, скрипт сможет определить разрешение вашего экрана и выбрать наилучшее отображение окон. В зависимости от системы, имя пакета может быть x11-utils, xdpyinfo, xorg-xdpyinfo, и т.д." - arr["GREEK",300]="Αν δουλέψει η εντολή xpdyinfo, το script θα μπορέσει να υπολογίσει την ανάλυση της οθόνης και να δείχνει τα παράθυρα καλύτερα. Εξαρτάται από το σύστημα, το όνομα του πακέτου μπορεί να είναι x11-utils, xdpyinfo, xorg-xdpyinfo, κτλπ." + arr["CATALAN",300]="Si fas que funcioni en el teu sistema l'ordre xdpyinfo, el script podrà calcular la teua resolució de pantalla i mostrar-te les finestres de forma més optimitzada. Depenent del sistema el paquet que el conté pot dir-se x11-utils, xdpyinfo, xorg-xdpyinfo, etc." + arr["PORTUGUESE",300]="Se o comando xdpyinfo funcionar em seu sistema o script será capaz de calcular a resolução da tela e mostrar-lhe as janelas de uma maneira melhor. Dependendo do sistema, o nome do pacote pode ser: x11-utils, xdpyinfo, xorg-xdpyinfo, etc." + arr["RUSSIAN",300]="Команда xpdyinfo поможет этому скрипту определить разрешение вашего экрана и выбрать наилучшее отображение окон. В зависимости от системы, имя пакета, в котором содержится эта программа, может быть x11-utils, xdpyinfo, xorg-xdpyinfo, и т.д." + arr["GREEK",300]="Αν δουλέψει η εντολή xpdyinfo, το script θα μπορέσει να υπολογίσει την ανάλυση της οθόνης και να δείχνει τα παράθυρα καλύτερα. Εξαρτάται από το σύστημα, το όνομα του πακέτου που το περιέχει θα μπορούσε να είναι x11-utils, xdpyinfo, xorg-xdpyinfo, κτλπ." arr["ENGLISH",301]="Despite having all essential tools installed, your system uses airmon-zc instead of airmon-ng. In order to work properly you need to install lspci (pciutils) and you don't have it right now. Please, install it and launch the script again" arr["SPANISH",301]="A pesar de tener todas las herramientas esenciales instaladas, tu sistema usa airmon-zc en lugar de airmon-ng. Para poder funcionar necesitas tener instalado lspci (pciutils) y tú no lo tienes en este momento. Por favor, instálalo y vuelve a lanzar el script" @@ -3932,6 +3932,318 @@ function language_strings() { arr["RUSSIAN",442]="Если вы установите ccze, то некоторые цветные элементы airgeddon будут выглядеть лучше. Это не требование или зависимость, но это улучшит работу пользователя" arr["GREEK",442]="Αν εγκαταστήσετε το ccze θα δείτε μερικά κομμάτια του airgeddon, πολύχρωμα με καλύτερη εμφάνιση. Δεν είναι απαραίτητο dependency, αλλά θα βελτιώσει την εμπειρία του χρήστη" + arr["ENGLISH",443]="Options and language menu" + arr["SPANISH",443]="Menú de opciones e idioma" + arr["FRENCH",443]="Menu options et langues" + arr["CATALAN",443]="Menú d'opcions i idioma" + arr["PORTUGUESE",443]="Opções de menu e linguagem" + arr["RUSSIAN",443]="Настройки и языковое меню" + arr["GREEK",443]="Μενού επιλογών και γλώσσας" + + arr["ENGLISH",444]="11. Options and language menu" + arr["SPANISH",444]="11. Menú de opciones e idioma" + arr["FRENCH",444]="11. Menu options et langues" + arr["CATALAN",444]="11. Menú d'opcions i idioma" + arr["PORTUGUESE",444]="11. Opções de menu e linguagem" + arr["RUSSIAN",444]="11. Настройки и языковое меню" + arr["GREEK",444]="11. Μενού επιλογών και γλώσσας" + + arr["ENGLISH",445]="If you have ccze installed and are experiencing display errors or glitches on some windows, you should disable colorization in the option and language menu" + arr["SPANISH",445]="Si tienes instalado ccze y experimentas errores de visualización o parpadeos en algunas ventanas, desactiva la colorización en el menú de opciones e idioma" + arr["FRENCH",445]="Si ccze est installé et que vous avez des erreurs d'affichage et de clignotement avec certaines fenêtres, désactivez la colorisation depuis le menu options et langues" + arr["CATALAN",445]="Si tens instal·lat ccze i experimentes errors de visualització o pampallugues en algunes finestres, desactiva la coloració al menú d'opcions i idioma" + arr["PORTUGUESE",445]="Se você tiver ccze instalado e estiver com erros de exibição ou com algumas janelas piscando, desative a colorização em opções de menu e linguagem" + arr["RUSSIAN",445]="Если у вас установлен ccze и возникают ошибки отображения или сбои в некоторых окнах, вы должны отключить цветной вывод в пункте Настройки и языковое меню" + arr["GREEK",445]="Εάν έχετε εγκαταστήσει το ccze και αντιμετωπίζετε σφάλματα εμφάνισης ή δυσλειτουργίες σε ορισμένα παράθυρα, θα πρέπει να απενεργοποιήσετε τον χρωματισμό στο μενού επιλογών και γλώσσας" + + arr["ENGLISH",446]="8. Return to options menu" + arr["SPANISH",446]="8. Volver al menú de opciones" + arr["FRENCH",446]="8. Retourner au menu options" + arr["CATALAN",446]="8. Tornar al menú d'opcions" + arr["PORTUGUESE",446]="8. Voltar ao menu de opções" + arr["RUSSIAN",446]="8. Возврат в меню опций" + arr["GREEK",446]="8. Επιστροφή στο μενού επιλογών" + + arr["ENGLISH",447]="5. Set permanently airgeddon's language to the current one" + arr["SPANISH",447]="5. Cambiar permanentemente el idioma de airgeddon al actual" + arr["FRENCH",447]="5. Etablir comme langue permanente d'airgeddon celle utilisée actuellement" + arr["CATALAN",447]="5. Canviar permanentment l'idioma de airgeddon a l'actual" + arr["PORTUGUESE",447]="5. Alterar permanentemente o idioma do airgeddon para o atual" + arr["RUSSIAN",447]="5. Сделать текущий язык airgeddon постоянным" + arr["GREEK",447]="5. Θέστε μόνιμα την τρέχουσα γλώσσα του airgeddon ως προεπιλεγμένη" + + arr["ENGLISH",448]="If you installed airgeddon from a repository, you should not enable automatic updates. airgeddon will be updated when there is a new version in the repository" + arr["SPANISH",448]="Si instalaste airgeddon desde un repositorio, no deberías activar la actualización automática. airgeddon se actualizará cuando haya una nueva versión en el repositorio" + arr["FRENCH",448]="Si vous avez installé airgeddon depuis des dêpots vous devriez ne pas activer les mises à jour automatiques. airgeddon sera mis à jour quand une nouvelle version sera disponible dans vos dépôts" + arr["CATALAN",448]="Si vas instal·lar airgeddon des d'un repositori, no hauries d'activar l'actualització automàtica. airgeddon s'actualitzarà quan hi hagi una nova versió al repositori" + arr["PORTUGUESE",448]="Se você instalou airgeddon partir de um repositório, você não deve ativar a atualização automática. airgeddon será atualizado quando houvér nova versão no repositório" + arr["RUSSIAN",448]="Если вы установили airgeddon из репозитория, вам не следует включать автоматические обновления. airgeddon будет обновляться, когда в репозитории будет новая версия" + arr["GREEK",448]="Αν εγκαταστήσατε το airgeddon από κάποιο official repository, δεν θα πρέπει να ενεργοποιήσετε τις αυτόματες ενημερώσεις. Το airgeddon θα ενημερωθεί όταν υπάρξει κάποια νέα έκδοση στο official repository" + + arr["ENGLISH",449]="2. Enable automatic updates permanently" + arr["SPANISH",449]="2. Habilitar permanentemente la actualización automática" + arr["FRENCH",449]="2. Activer de façon permanante la mise à jour automatique" + arr["CATALAN",449]="2. Habilita permanentment l'actualització automàtica" + arr["PORTUGUESE",449]="2. Ativar permanentemente a atualização automática" + arr["RUSSIAN",449]="2. Включение постоянных автоматических обновлений" + arr["GREEK",449]="2. Ενεργοποιήστε μόνιμα τις αυτόματες ενημερώσεις" + + arr["ENGLISH",450]="3. Enable colorization permanently (on some screen's output)" + arr["SPANISH",450]="3. Habilitar permanentemente la colorización (en la salida de algunas pantallas)" + arr["FRENCH",450]="3. Activer dé façon permanante la colorisation (en sortie de certains écrans)" + arr["CATALAN",450]="3. Habilita permanentment la coloració (a la sortida d'algunes pantalles)" + arr["PORTUGUESE",450]="3. Ativar permanentemente a colorização (em algumas telas)" + arr["RUSSIAN",450]="3. Включение постоянного цветного вывода (в некоторых окнах программы)" + arr["GREEK",450]="3. Ενεργοποιήστε μόνιμα τον χρωματισμό (σε κάποια σημεία)" + + arr["ENGLISH",451]="Automatic updates: ${pink_color}Enabled${normal_color}" + arr["SPANISH",451]="Actualizaciones automáticas: ${pink_color}Activadas${normal_color}" + arr["FRENCH",451]="Mises à jour automatiques: ${pink_color}Activées${normal_color}" + arr["CATALAN",451]="Actualitzacions automàtiques: ${pink_color}Activades${normal_color}" + arr["PORTUGUESE",451]="Atualizações automáticas: ${pink_color}Ativa${normal_color}" + arr["RUSSIAN",451]="Автоматическое обновление: ${pink_color}Включено${normal_color}" + arr["GREEK",451]="Αυτόματη ενημέρωση: ${pink_color}Ενεργοποιημένο${normal_color}" + + arr["ENGLISH",452]="Automatic updates: ${pink_color}Disabled${normal_color}" + arr["SPANISH",452]="Actualizaciones automáticas: ${pink_color}Desactivadas${normal_color}" + arr["FRENCH",452]="Mises à jour automatiques: ${pink_color}Désactivées${normal_color}" + arr["CATALAN",452]="Actualitzacions automàtiques: ${pink_color}Desactivades${normal_color}" + arr["PORTUGUESE",452]="Atualizações automáticas: ${pink_color}Desativa${normal_color}" + arr["RUSSIAN",452]="Автоматическое обновление: ${pink_color}Отключено${normal_color}" + arr["GREEK",452]="Αυτόματη ενημέρωση: ${pink_color}Απενεργοποιημένο${normal_color}" + + arr["ENGLISH",453]="Colorization (on some screen's output): ${pink_color}Enabled${normal_color}" + arr["SPANISH",453]="Colorización (en la salida de algunas pantallas): ${pink_color}Activada${normal_color}" + arr["FRENCH",453]="Colorisation (sur certains écrans): ${pink_color}Activée${normal_color}" + arr["CATALAN",453]="Coloració (a la sortida d'algunes pantalles): ${pink_color}Activade${normal_color}" + arr["PORTUGUESE",453]="Colorização (em algumas telas): ${pink_color}Ativa${normal_color}" + arr["RUSSIAN",453]="Использование цветов (в некоторых окнах программы): ${pink_color}Включено${normal_color}" + arr["GREEK",453]="Χρωματισμός (σε κάποια σημεία): ${pink_color}Ενεργοποιημένο${normal_color}" + + arr["ENGLISH",454]="Colorization (on some screen's output): ${pink_color}Disabled${normal_color}" + arr["SPANISH",454]="Colorización (en la salida de algunas pantallas): ${pink_color}Desactivada${normal_color}" + arr["FRENCH",454]="Colorisation (sur certains écrans): ${pink_color}Désactivée${normal_color}" + arr["CATALAN",454]="Coloració (a la sortida d'algunes pantalles): ${pink_color}Desactivade${normal_color}" + arr["PORTUGUESE",454]="Colorização (em algumas telas): ${pink_color}Desativa${normal_color}" + arr["RUSSIAN",454]="Использование цветов (в некоторых окнах программы): ${pink_color}Отключено${normal_color}" + arr["GREEK",454]="Χρωματισμός (σε κάποια σημεία): ${pink_color}Απενεργοποιημένο${normal_color}" + + arr["ENGLISH",455]="2. Disable automatic updates permanently" + arr["SPANISH",455]="2. Deshabilitar permanentemente la actualización automática" + arr["FRENCH",455]="2. Désactiver de façon permanante les mises à jour automatiques" + arr["CATALAN",455]="2. Deshabilita permanentment l'actualització automàtica" + arr["PORTUGUESE",455]="2. Desativar permanentemente a atualização automática" + arr["RUSSIAN",455]="2. Отключить постоянные автоматические обновления" + arr["GREEK",455]="2. Απενεργοποιήστε μόνιμα τις αυτόματες ενημερώσεις" + + arr["ENGLISH",456]="3. Disable colorization permanently (on some screen's output)" + arr["SPANISH",456]="3. Deshabilitar permanentemente la colorización (en la salida de algunas pantallas)" + arr["FRENCH",456]="3. Désactiver dé façon permanante (sur certains écrans)" + arr["CATALAN",456]="3. Deshabilita permanentment la colorización (a la sortida d'algunes pantalles)" + arr["PORTUGUESE",456]="3. Desativar permanentemente a colorização (em algumas telas)" + arr["RUSSIAN",456]="3. Постоянное отключение использования цветов (в некоторых окнах программы)" + arr["GREEK",456]="3. Απενεργοποιήστε μόνιμα τον χρωματισμό (σε κάποια σημεία)" + + arr["ENGLISH",457]="${blue_color}Automatic updates are going to be disabled. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",457]="${blue_color}Se van a desactivar las actualizaciones automáticas. ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",457]="${blue_color}Désactivation des mises à jour automatiques. ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",457]="${blue_color}Es van a desactivar les actualitzacions automàtiques. ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",457]="${blue_color}As atualizações automáticas serão desabilitadas. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",457]="${blue_color}Автоматические обновления будут отключены. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",457]="${blue_color}Οι αυτόματες ενημερώσεις πρόκειται να απενεργοποιηθούν. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + + arr["ENGLISH",458]="${blue_color}Automatic updates are going to be enabled. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",458]="${blue_color}Se van a activar las actualizaciones automáticas. ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",458]="${blue_color}Activation des mises à jour automatiques. ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",458]="${blue_color}Es van a activar les actualitzacions automàtiques. ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",458]="${blue_color}As atualizações automáticas serão ativadas. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",458]="${blue_color}Автоматические обновления будут включены. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",458]="${blue_color}Οι αυτόματες ενημερώσεις πρόκειται να ενεργοποιηθούν. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + + arr["ENGLISH",459]="If you installed airgeddon from a repository you shouldn't enable this option. airgeddon will be updated when the repositories do. If you continue, make sure you know what you are doing, or you could cause problems with update flow" + arr["SPANISH",459]="Si instalaste airgeddon desde un repositorio no deberías activar esta opción. airgeddon se actualizará cuando lo hagan los repositorios. Si continuas, asegúrate de saber bien lo que haces o podrías causar problemas con flujo de actualizaciones" + arr["FRENCH",459]="Si airgeddon a été installé depuis des dépôts vous devriez ne pas activer cette option. airgeddon sera mis à jour automatiquement en passant par vos dépôts. Si vous décidez de continuer soyez conscient du fait que vous pourriez générer ainsi des conflits lors de futures actualisations système" + arr["CATALAN",459]="Si vas instal·lar airgeddon des d'un repositori no hauries d'activar aquesta opció. airgeddon s'actualitzarà quan ho facin els repositoris. Si continues, assegura't de saber bé el que fas o podries causar problemes amb flux d'actualitzacions" + arr["PORTUGUESE",459]="Se você instalou airgeddon a partir de um repositório você não deve ativar essa opção. airgeddon será atualizado quando você estiver disponivel nos repositórios. Se você continuar, verifique se você sabe o que está fazendo ou ou você pode causar problemas com o fluxo de atualização" + arr["RUSSIAN",459]="Если вы установили airgeddon из репозитория, вы не должны включать эту опцию. airgeddon будет обновляться вместе с репозиториями. Если вы продолжите, убедитесь, что знаете, что делаете, или ваши действия могут вызвать проблемы для этой программы" + arr["GREEK",459]="Εάν εγκαταστήσατε το airgeddon από κάποιο official repository, δεν πρέπει να ενεργοποιήσετε αυτή την επιλογή. Το airgeddon θα ενημερωθεί όταν ενημερωθούν και τα repositories. Αν συνεχίσετε, βεβαιωθείτε ότι γνωρίζετε τι κάνετε και ότι θα μπορεί να προκαλέσετε προβλήματα με τη ροή ενημέρωσης" + + arr["ENGLISH",460]="Automatic updates have been enabled" + arr["SPANISH",460]="Se han activado las actualizaciones automáticas" + arr["FRENCH",460]="Mises à jour automatiques activées" + arr["CATALAN",460]="S'han activat les actualitzacions automàtiques" + arr["PORTUGUESE",460]="As atualizações automáticas foram ativadas" + arr["RUSSIAN",460]="Автоматические обновления включены" + arr["GREEK",460]="Οι αυτόματες ενημερώσεις έχουν ενεργοποιηθεί" + + arr["ENGLISH",461]="Automatic updates have been disabled" + arr["SPANISH",461]="Se han desactivado las actualizaciones automáticas" + arr["FRENCH",461]="Mises à jour automatiques désactivées" + arr["CATALAN",461]="S'han desactivat les actualitzacions automàtiques" + arr["PORTUGUESE",461]="As atualizações automáticas foram desativadas" + arr["RUSSIAN",461]="Автоматические обновления отключены" + arr["GREEK",461]="Οι αυτόματες ενημερώσεις έχουν απενεργοποιηθεί" + + arr["ENGLISH",462]="${blue_color}Colorization (on some screen's output) is going to be disabled. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",462]="${blue_color}Se va a desactivar la colorización (en la salida de algunas pantallas). ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",462]="${blue_color}Désactivation de la colorisation (sur certains écrans). ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",462]="${blue_color}Es va a desactivar le coloració (a la sortida d'algunes pantalles). ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",462]="${blue_color}A coloração (em algumas telas) será desabilitada. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",462]="${blue_color}Использование цветов (в некоторых окнах программы) будет отключено. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",462]="${blue_color}Ο χρωματισμός (σε κάποια σημεία) πρόκειται να απενεργοποιηθεί. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + + arr["ENGLISH",463]="${blue_color}Colorization (on some screen's output) is going to be enabled. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",463]="${blue_color}Se va a activar la colorización (en la salida de algunas pantallas). ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",463]="${blue_color}Activation colorisation (sur certains écrans). ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",463]="${blue_color}Es va a activar la coloració (a la sortida d'algunes pantalles). ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",463]="${blue_color}A coloração (em algumas telas) será ativada. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",463]="Использование цветов (в некоторых окнах программы) будет включено. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",463]="${blue_color}Ο χρωματισμός (σε κάποια σημεία) πρόκειται να ενεργοποιηθεί. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + + arr["ENGLISH",464]="You don't have the ccze package installed so any change on this option will have no effect until you install it" + arr["SPANISH",464]="No tienes instalado el paquete ccze por lo que cualquier cambio que realices sobre esta opción no tendrá efecto hasta que lo instales" + arr["FRENCH",464]="Ccze n'est pas installé, les paramétrages effectués avec cette option seront effectifs une fois czze installé" + arr["CATALAN",464]="No tens instal·lat el paquet ccze pel que qualsevol canvi que facis sobre aquesta opció no tindrà efecte fins que el instal·lis" + arr["PORTUGUESE",464]="Você não tem o pacote ccze instalado, qualquer alterações feita nesta opção não terá efeito até que você instale-o" + arr["RUSSIAN",464]="У вас не установлен пакет ccze, поэтому любое изменение этой опции не будет иметь никакого эффекта, пока вы его не установите" + arr["GREEK",464]="Δεν έχετε εγκατεστημένο το πακέτο ccze, οπότε οποιαδήποτε αλλαγή σε αυτήν την επιλογή δεν θα έχει αποτέλεσμα μέχρι να το εγκαταστήσετε" + + arr["ENGLISH",465]="Colorization has been enabled" + arr["SPANISH",465]="Se ha activado la colorización" + arr["FRENCH",465]="Colorisation activée" + arr["CATALAN",465]="S'ha activat la coloració" + arr["PORTUGUESE",465]="A colorização foi ativa" + arr["RUSSIAN",465]="Использование цветов включено" + arr["GREEK",465]="Ο χρωματισμός ενεργοποιήθηκε" + + arr["ENGLISH",466]="Colorization has been disabled" + arr["SPANISH",466]="Se ha desactivado la colorización" + arr["FRENCH",466]="Colorisation désactivée" + arr["CATALAN",466]="S'ha desactivat la coloració" + arr["PORTUGUESE",466]="A colorização foi desativa" + arr["RUSSIAN",466]="Использование цветов отключено" + arr["GREEK",466]="Ο χρωματισμός απενεργοποιήθηκε" + + arr["ENGLISH",467]="4. Enable startup language autodetection permanently" + arr["SPANISH",467]="4. Habilitar permanentemente la autodetección de idioma al inicio" + arr["FRENCH",467]="4. Activer de façon permanente la détection de langue au lancement" + arr["CATALAN",467]="4. Habilitar permanentment l'autodetecció d'idioma a l'inici" + arr["PORTUGUESE",467]="4. Ativar permanentemente autodetecção de linguagem no início" + arr["RUSSIAN",467]="4. Автоматическое определение языка постоянно отключено" + arr["GREEK",467]="4. Ενεργοποίηση του αυτόματου εντοπισμού γλώσσας κατά την εκκίνηση μόνιμα" + + arr["ENGLISH",468]="4. Disable startup language autodetection permanently" + arr["SPANISH",468]="4. Deshabilitar permanentemente la autodetección de idioma al inicio" + arr["FRENCH",468]="4. Désactiver de façon permanente la détection de langue au lancement" + arr["CATALAN",468]="4. Deshabilitar permanentment l'autodetecció d'idioma a l'inici" + arr["PORTUGUESE",468]="4. Desativar permanentemente a autodetecção de linguagem no início" + arr["RUSSIAN",468]="4. Постоянное отключение автоматического определения языка" + arr["GREEK",468]="4. Απενεργοποίηση του αυτόματου εντοπισμού γλώσσας κατά την εκκίνηση μόνιμα" + + arr["ENGLISH",469]="${blue_color}Startup language autodetection will be disabled. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",469]="${blue_color}Se va a deshabilitar la autodetección de idioma al inicio. ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",469]="${blue_color}Désactivation détection langue au lancement. ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",469]="${blue_color}Es va a desactivar la detecció automàtica d'idioma a l'inici. ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",469]="${blue_color}A autodeteção de linguagem será desativada. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",469]="${blue_color}Автоопределение языка при запуске будет отключено. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",469]="${blue_color}Ο αυτόματος εντοπισμός γλώσσας κατά την εκκίνηση θα απενεργοποιηθεί. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + + arr["ENGLISH",470]="${blue_color}Startup language autodetection will be enabled. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",470]="${blue_color}Se va a habilitar la autodetección de idioma al inicio. ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",470]="${blue_color}Activation détection langue au lancement. ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",470]="${blue_color}Es va a habilitar la detecció automàtica d'idioma a l'inici. ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",470]="${blue_color}A autodeteção de linguagem será ativada. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",470]="${blue_color} Автоопределение языка при запуске будет включено. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",470]="${blue_color}Ο αυτόματος εντοπισμός γλώσσας κατά την εκκίνηση θα ενεργοποιηθεί. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + + arr["ENGLISH",471]="Any permanent change of language you have will be lost on the next start if you enable this option!!" + arr["SPANISH",471]="Cualquier cambio permanente de idioma que tenga se perderá en el siguiente inicio si activa esta opción!!" + arr["FRENCH",471]="Les configurations permanentes de langue seront perdues au prochain démarrage si vous choisssez cette option!!" + arr["CATALAN",471]="Qualsevol canvi permanent d'idioma que tinguis es perdrà en el següent inici si actives aquesta opció!!" + arr["PORTUGUESE",471]="Qualquer mudança na linguagem será perderida no próximo inicio se você habilitar esta opção!!" + arr["RUSSIAN",471]="При включении этой опции, сделанный выбор по изменению языка будет потерян при следующем запуске!!" + arr["GREEK",471]="Οποιαδήποτε μόνιμη αλλαγή της γλώσσας θα χαθεί κατά την επόμενη εκκίνηση, αν ενεργοποιήσετε αυτή την επιλογή!!" + + arr["ENGLISH",472]="Startup language autodetection has been enabled" + arr["SPANISH",472]="Se ha activado la autodetección de idioma al inicio" + arr["FRENCH",472]="Détection automatique du langage au démarrage activée" + arr["CATALAN",472]="S'ha activat l'autodetecció d'idioma a l'inici" + arr["PORTUGUESE",472]="A autodetecção do idioma foi ativo na inicialização" + arr["RUSSIAN",472]="Автоматическое определение языка было включено" + arr["GREEK",472]="Ο αυτόματος εντοπισμός γλώσσας κατά την εκκίνηση έχει ενεργοποιηθεί" + + arr["ENGLISH",473]="Startup language autodetection has been disabled" + arr["SPANISH",473]="Se ha desactivado la autodetección de idioma al inicio" + arr["FRENCH",473]="Détection automatique du langage au démarrage désactivée" + arr["CATALAN",473]="S'ha desactivat l'autodetecció d'idioma a l'inici" + arr["PORTUGUESE",473]="A autodetecção do idioma foi desativada na inicialização" + arr["RUSSIAN",473]="Автоматическое определение языка было отключено" + arr["GREEK",473]="Ο αυτόματος εντοπισμός γλώσσας κατά την εκκίνηση έχει απενεργοποιηθεί" + + arr["ENGLISH",474]="Startup language autodetection: ${pink_color}Enabled${normal_color}" + arr["SPANISH",474]="Autodetección de idioma al inicio: ${pink_color}Activada${normal_color}" + arr["FRENCH",474]="Détection automatique du langage au démarrage: ${pink_color}Activée${normal_color}" + arr["CATALAN",474]="Autodetecció d'idioma a l'inici: ${pink_color}Activade${normal_color}" + arr["PORTUGUESE",474]="Autodetecção do idioma na inicialização: ${pink_color}ativado${normal_color}" + arr["RUSSIAN",474]="Автоопределение языка при запуске: ${pink_color}Включено${normal_color}" + arr["GREEK",474]="Αυτόματος εντοπισμός γλώσσας κατά την εκκίνηση: ${pink_color}Ενεργοποιημένο${normal_color}" + + arr["ENGLISH",475]="Startup language autodetection: ${pink_color}Disabled${normal_color}" + arr["SPANISH",475]="Autodetección de idioma al inicio: ${pink_color}Desactivada${normal_color}" + arr["FRENCH",475]="Détection automatique du langage au démarrage: ${pink_color}Désactivée${normal_color}" + arr["CATALAN",475]="Autodetecció d'idioma a l'inici: ${pink_color}Desactivade${normal_color}" + arr["PORTUGUESE",475]="Autodetecção do idioma na inicialização: ${pink_color}Desativa${normal_color}" + arr["RUSSIAN",475]="Автоопределение языка при запуске: ${pink_color}Отключено${normal_color}" + arr["GREEK",475]="Αυτόματος εντοπισμός γλώσσας κατά την εκκίνηση: ${pink_color}Απενεργοποιημένο${normal_color}" + + arr["ENGLISH",476]="A graphical X window system has not been detected. If you already have one, check it's working properly. It's essential for airgeddon. The script can't continue" + arr["SPANISH",476]="No se ha detectado un sistema gráfico de ventanas X. Si lo tienes, comprueba su que esté funcionando correctamente. Es esencial para airgeddon. El script no puede continuar" + arr["FRENCH",476]="Aucun système graphique X window détecté. Si un tel système est installé vérifiez qu'il fonctionne correctement. Le script ne peut pas continuer sans ça." + arr["CATALAN",476]="No s'ha detectat un sistema gràfic de finestres X. Si el tens, comprova que estigui funcionant correctament. És essencial per a airgeddon. El script no pot continuar" + arr["PORTUGUESE",476]="Não foi detectado um sistema X Window (interface grafica). Se você possui, verifique se está funcionando corretamente. É essencial para airgeddon. O script não pode continuar" + arr["RUSSIAN",476]="Графическая X система не обнаружена. Если она уже имеется, проверьте её работоспособность. Это важно для airgeddon. Скрипт не может продолжить" + arr["GREEK",476]="Δεν έχει εντοπιστεί κάποιο γραφικό σύστημα παραθύρων X. Αν έχετε ήδη ένα, ελέγξτε ότι λειτουργεί σωστά. Είναι απαραίτητο για το airgeddon. Το script δεν μπορεί να συνεχίσει" + + arr["ENGLISH",477]="The options in this menu containing the word \"permanently\" modify airgeddon to save the settings for the next time that is to be launched. However, you can always return to this menu to change the value of the option again" + arr["SPANISH",477]="Las opciones de este menú que contienen la palabra \"permanentemente\", modifican airgeddon para que incluso la siguiente vez que sea iniciado siga guardando la configuración. No obstante, siempre puedes volver a este menú a cambiar de nuevo el valor de la opción" + arr["FRENCH",477]="Les options contenant le mot \"permanente\" modifiént airgeddon de sorte que les paramétrages persisteront lors des prochains redémarrages. Vous pourrez cependant toujours modifier la configuration permanante depuis ce même menu" + arr["CATALAN",477]="Les opcions d'aquest menú que contenen la paraula \"permanentment\", modifiquen airgeddon perquè fins i tot la següent vegada que sigui iniciat segueixi guardant la configuració. No obstant això, sempre pots tornar a aquest menú a canviar de nou el valor de l'opció" + arr["PORTUGUESE",477]="As opções neste menu contendo a palavra \"permanentemente\" serão modificadas de modo que mesmo no próximo inicio do airgeddon as configuração serão mantidas. No entanto, você pode sempre voltar a este menu e alterar as opções" + arr["RUSSIAN",477]="Опции в этом меню, содержащие слово \"постоянное\", сохраняются в airgeddon при перезапусках программы. Однако вы всегда можете вернуться в это меню, чтобы снова изменить значение параметра" + arr["GREEK",477]="Οι επιλογές σε αυτό το μενού που περιέχουν τη λέξη \"μόνιμα\" τροποποιούν το airgeddon ώστε να αποθηκεύει τις ρυθμίσεις για την επόμενη φορά. Ωστόσο, μπορείτε πάντα να επιστρέψετε σε αυτό το μενού για να αλλάξετε ξανά την τιμή της επιλογής" + + arr["ENGLISH",478]="${blue_color}Language is going to be set permanently to the current one, so on the next start of airgeddon it will be used directly. ${green_color}Do you want to continue? ${normal_color}${visual_choice}" + arr["SPANISH",478]="${blue_color}Se va a cambiar permanentemente el idioma al actual para que al siguiente inicio de airgeddon este sea el idioma en el que arranque directamente. ${green_color}¿Deseas continuar? ${normal_color}${visual_choice}" + arr["FRENCH",478]="${blue_color}La langue actuelle va être activée de façon permanente, c'est à dire que ce sera la langue d'usage lors des prochains démarrages d'airgeddon. ${green_color}Voulez-vous continuer? ${normal_color}${visual_choice}" + arr["CATALAN",478]="${blue_color}Es canviarà permanentment l'idioma a l'actual perquè al següent inici d' airgeddon aquest sigui l'idioma en què arrenqui directament. ${green_color}¿Vols continuar? ${normal_color}${visual_choice}" + arr["PORTUGUESE",478]="${blue_color}A linguagem será definida permanentemente para a atual, no próximo início do airgeddon esta será a usada linguagem. ${green_color}Você deseja continuar? ${normal_color}${visual_choice}" + arr["RUSSIAN",478]="${blue_color}Текущий язык будет установлен как постоянный, поэтому при следующем запуске airgeddon он будет использоваться без определения языка системы. ${green_color}Вы хотите продолжить? ${normal_color}${visual_choice}" + arr["GREEK",478]="${blue_color}Η τρέχουσα γλώσσα πρόκειται να τεθεί μόνιμα ως προεπιλεγμένη, ώστε κατά την επόμενη εκκίνηση του airgeddon θα χρησιμοποιηθεί κατ' ευθείαν αυτή. ${green_color}Θέλετε να συνεχίσετε; ${normal_color}${visual_choice}" + + arr["ENGLISH",479]="This change conflicts with the startup language autodetection which is currently enabled. It will be disabled automatically in order to perform the change" + arr["SPANISH",479]="Este cambio entra en conflicto con la autodetección del idioma al inicio que en este momento está activada. Se desactivará automáticamente para poder realizar el cambio" + arr["FRENCH",479]="Ce changement entre en conflit avec la détection automatique de la langue au démarrage qui est actuellement activée. Elle va être automatiquement désactivée pour effectuer le changement" + arr["CATALAN",479]="Aquest canvi entra en conflicte amb la detecció automàtica de l'idioma a l'inici que en aquest moment està activada. Es desactivarà automàticament per a poder realitzar el canvi" + arr["PORTUGUESE",479]="Esta mudança entra em conflito com a Autodeteção de linguagem, ativa atualmente. Ele é desativa para fazer a mudança" + arr["RUSSIAN",479]="Это изменение конфликтует с автоопределением языка, которое в данный момент включено. Оно будет автоматически отключено для выполнения изменения" + arr["GREEK",479]="Αυτή η αλλαγή έρχεται σε σύγκρουση με τoν αυτόματo εντοπισμό της γλώσσας εκκίνησης, ο οποίος είναι αυτή τη στιγμή ενεργοποιημένος. Θα απενεργοποιηθεί αυτόματα για να πραγματοποιηθεί η αλλαγή αυτή" + + arr["ENGLISH",480]="Current language is the same of permanent language already set. No changes will be done" + arr["SPANISH",480]="El idioma actual es el mismo que ya está puesto como permanente. No se realizarán cambios" + arr["FRENCH",480]="La langue actuelle est la même que celle désignée comme langue permanente. Pas de changements" + arr["CATALAN",480]="L'idioma actual és el mateix que ja està posat com permanent. No es realitzaran canvis" + arr["PORTUGUESE",480]="O idioma atual já é permanente. Nenhuma alteração será feita" + arr["RUSSIAN",480]="Текущий язык тот же, что и уже установленный постоянный язык. Никаких изменений не будет сделано" + arr["GREEK",480]="Η τρέχουσα γλώσσα είναι ίδια με τη μόνιμη γλώσσα που έχει οριστεί ήδη. Δεν θα γίνει καμία αλλαγή" + + arr["ENGLISH",481]="Language set to the current one permanently" + arr["SPANISH",481]="Idioma cambiado al actual permanentemente" + arr["FRENCH",481]="La langue choisie est l'actuelle langue permanente" + arr["CATALAN",481]="Idioma canviat a l'actual permanentment" + arr["PORTUGUESE",481]="Idioma definido permanentemente para o atual " + arr["RUSSIAN",481]="Язык изменён на текущий с сохранением после перезапуска" + arr["GREEK",481]="Τέθηκε μόνιμα η τρέχουσα γλώσσα" + case "${3}" in "yellow") interrupt_checkpoint "${2}" "${3}" diff --git a/pindb_checksum.txt b/pindb_checksum.txt index 7fdfc60fc..b8f84741c 100644 --- a/pindb_checksum.txt +++ b/pindb_checksum.txt @@ -1 +1 @@ -fec39884ecb9e45ffe16daac50587c8f +4672e24ea031b3f7311647462ce9e2d8