Corrected subroutines to follow POSIX syntax.

This commit is contained in:
Matias Barcenas 2018-01-09 15:20:11 -06:00
parent 0e2bb3a4bd
commit 7a61592df5
1 changed files with 39 additions and 37 deletions

76
fluxion
View File

@ -191,7 +191,7 @@ source "$FLUXIONPath/language/en.sh"
# ============================================================ #
# ================== < Startup & Shutdown > ================== #
# ============================================================ #
function fluxion_startup() {
fluxion_startup() {
if [ "$FLUXIONDebug" ]; then return 1; fi
local banner=()
@ -271,7 +271,7 @@ function fluxion_startup() {
echo -e "\n\n" # This echo is for spacing
}
function fluxion_shutdown() {
fluxion_shutdown() {
if [ $FLUXIONDebug ]; then return 1; fi
# Show the header if the subroutine has already been loaded.
@ -360,12 +360,12 @@ function fluxion_shutdown() {
# ================= < Handler Subroutines > ================== #
# ============================================================ #
# Delete log only in Normal Mode !
function fluxion_conditional_clear() {
fluxion_conditional_clear() {
# Clear iff we're not in debug mode
if [ ! $FLUXIONDebug ]; then clear; fi
}
function fluxion_conditional_bail() {
fluxion_conditional_bail() {
echo ${1:-"Something went wrong, whoops! (report this)"}
sleep 5
if [ ! $FLUXIONDebug ]; then
@ -385,7 +385,7 @@ if [ $FLUXIONDebug ]; then
trap 'fluxion_error_report $LINENO' ERR
fi
function fluxion_handle_abort_attack() {
fluxion_handle_abort_attack() {
if [ $(type -t stop_attack) ]; then
stop_attack &> $FLUXIONOutputDevice
unprep_attack &> $FLUXIONOutputDevice
@ -397,7 +397,7 @@ function fluxion_handle_abort_attack() {
# In case of abort signal, abort any attacks currently running.
trap fluxion_handle_abort_attack SIGABRT
function fluxion_handle_exit() {
fluxion_handle_exit() {
fluxion_handle_abort_attack
fluxion_shutdown
exit 1
@ -410,7 +410,7 @@ trap fluxion_handle_exit SIGINT SIGHUP
# ============================================================ #
# =============== < Resolution & Positioning > =============== #
# ============================================================ #
function fluxion_set_resolution() { # Windows + Resolution
fluxion_set_resolution() { # Windows + Resolution
# Calc options
RATIO=4
@ -467,7 +467,7 @@ declare -rA FLUXIONUndoable=( \
# Yes, I know, the identifiers are fucking ugly. If only we had
# some type of mangling with bash identifiers, that'd be great.
function fluxion_do() {
fluxion_do() {
if [ ${#@} -lt 2 ]; then return -1; fi
local -r __fluxion_do__namespace=$1
@ -478,7 +478,7 @@ function fluxion_do() {
return $?
}
function fluxion_undo() {
fluxion_undo() {
if [ ${#@} -ne 1 ]; then return -1; fi
local -r __fluxion_undo__namespace=$1
@ -501,7 +501,7 @@ function fluxion_undo() {
return -2 # The undo-chain failed.
}
function fluxion_done() {
fluxion_done() {
if [ ${#@} -ne 1 ]; then return -1; fi
local -r __fluxion_done__namespace=$1
@ -511,7 +511,7 @@ function fluxion_done() {
if [ ! "$FluxionDone" ]; then return 1; fi
}
function fluxion_done_reset() {
fluxion_done_reset() {
if [ ${#@} -ne 1 ]; then return -1; fi
local -r __fluxion_done_reset__namespace=$1
@ -519,7 +519,7 @@ function fluxion_done_reset() {
eval FXDLog_$__fluxion_done_reset__namespace=\(\)
}
function fluxion_do_sequence() {
fluxion_do_sequence() {
if [ ${#@} -ne 2 ]; then return -1; fi
# TODO: Implement an alternative, better method of doing
@ -568,7 +568,7 @@ function fluxion_do_sequence() {
# ============================================================ #
# ================= < Load All Subroutines > ================= #
# ============================================================ #
function fluxion_header() {
fluxion_header() {
format_apply_autosize "[%*s]\n"
local verticalBorder=$FormatApplyAutosize
@ -587,7 +587,7 @@ function fluxion_header() {
}
# ======================= < Language > ======================= #
function fluxion_unset_language() {
fluxion_unset_language() {
FluxionLanguage=""
if [ "$FLUXIONPreferencesFile" ]; then
@ -595,7 +595,7 @@ function fluxion_unset_language() {
fi
}
function fluxion_set_language() {
fluxion_set_language() {
if [ ! "$FluxionLanguage" ]; then
# Get all languages available.
local languageCodes
@ -647,7 +647,7 @@ function fluxion_set_language() {
# ====================== < Interfaces > ====================== #
declare -A FluxionInterfaces=() # Global interfaces' registry.
function fluxion_deallocate_interface() { # Release interfaces
fluxion_deallocate_interface() { # Release interfaces
if [ ! "$1" ] || ! interface_is_real $1; then return 1; fi
local -r oldIdentifier=$1
@ -691,7 +691,7 @@ function fluxion_deallocate_interface() { # Release interfaces
# Return 3: Unable to determine interface's driver.
# Return 4: Fluxion failed to reidentify interface.
# Return 5: Interface allocation failed (identifier missing).
function fluxion_allocate_interface() { # Reserve interfaces
fluxion_allocate_interface() { # Reserve interfaces
if [ ! "$1" ]; then return 1; fi
local -r identifier=$1
@ -838,7 +838,7 @@ function fluxion_allocate_interface() { # Reserve interfaces
# ------------------------------------------------------------ #
# Return -1: Go back
# Return 1: Missing interfaces lambda identifier (not passed).
function fluxion_get_interface() {
fluxion_get_interface() {
if ! type -t "$1" &> /dev/null; then return 1; fi
while true; do
@ -925,7 +925,7 @@ function fluxion_get_interface() {
# Return 2: Xterm failed to start airmon-ng.
# Return 3: Invalid capture file was generated.
# Return 4: No candidates were detected.
function fluxion_target_get_candidates() {
fluxion_target_get_candidates() {
# Assure a valid wireless interface for scanning was given.
if [ ! "$1" ] || ! interface_is_wireless "$1"; then return 1; fi
@ -989,7 +989,7 @@ function fluxion_target_get_candidates() {
}
function fluxion_get_target() {
fluxion_get_target() {
# Assure a valid wireless interface for scanning was given.
if [ ! "$1" ] || ! interface_is_wireless "$1"; then return 1; fi
@ -1147,7 +1147,7 @@ function fluxion_get_target() {
FluxionTargetRogueMAC="${FluxionTargetMAC::13}${rogueMACHex:1:1}${FluxionTargetMAC:14:4}"
}
function fluxion_target_show() {
fluxion_target_show() {
format_apply_autosize "%*s$CBlu%7s$CClr: %-32s%*s\n"
local colorlessFormat="$FormatApplyAutosize"
@ -1165,7 +1165,7 @@ function fluxion_target_show() {
# =================== < Hash Subroutines > =================== #
# Parameters: <hash path> <bssid> <essid> [channel [encryption [maker]]]
function fluxion_hash_verify() {
fluxion_hash_verify() {
if [ ${#@} -lt 3 ]; then return 1; fi
local -r hashPath=$1
@ -1238,12 +1238,12 @@ function fluxion_hash_verify() {
if [ $hashResult -ne 0 ]; then return 1; fi
}
function fluxion_hash_unset_path() {
fluxion_hash_unset_path() {
FluxionHashPath=""
}
# Parameters: <hash path> <bssid> <essid> [channel [encryption [maker]]]
function fluxion_hash_set_path() {
fluxion_hash_set_path() {
if [ "$FluxionHashPath" ]; then return 0; fi
fluxion_hash_unset_path
@ -1308,7 +1308,7 @@ function fluxion_hash_set_path() {
}
# Paramters: <defaultHashPath> <bssid> <essid>
function fluxion_hash_get() {
fluxion_hash_get() {
# Assure we've got the bssid and the essid passed in.
if [ ${#@} -lt 2 ]; then return 1; fi
@ -1325,11 +1325,11 @@ function fluxion_hash_get() {
# ================== < Attack Subroutines > ================== #
function fluxion_unset_attack() {
fluxion_unset_attack() {
FluxionAttack=""
}
function fluxion_set_attack() {
fluxion_set_attack() {
if [ "$FluxionAttack" ]; then return 0; fi
fluxion_unset_attack
@ -1380,7 +1380,7 @@ function fluxion_set_attack() {
FluxionAttack=${IOQueryFormatFields[0]}
}
function fluxion_unprep_attack() {
fluxion_unprep_attack() {
if type -t unprep_attack &> /dev/null; then
unprep_attack
fi
@ -1388,7 +1388,7 @@ function fluxion_unprep_attack() {
return 1 # Trigger another undo since prep isn't significant.
}
function fluxion_prep_attack() {
fluxion_prep_attack() {
local -r path="$FLUXIONPath/attacks/$FluxionAttack"
if [ ! -x "$path/attack.sh" ]; then return 1; fi
@ -1399,6 +1399,8 @@ function fluxion_prep_attack() {
# will define the constant FLUXIONAttackTargetted.
source "$path/language/$FluxionLanguage.sh"
source "$path/attack.sh"
if
if ! prep_attack "$@"; then
fluxion_unprep_attack
@ -1406,7 +1408,7 @@ function fluxion_prep_attack() {
fi
}
function fluxion_run_attack() {
fluxion_run_attack() {
start_attack
local choices=( \
@ -1436,7 +1438,7 @@ function fluxion_run_attack() {
# ============================================================ #
# =================== < Test Subroutines > =================== #
# ============================================================ #
function subtest1() {
subtest1() {
local interface
interface_list_all
for interface in "${InterfaceListAll[@]}"; do
@ -1495,16 +1497,16 @@ shift # Remove "--" to prepare for attacks to read parameters.
# ============================================================ #
# ===================== < FLUXION Loop > ===================== #
# ============================================================ #
function fluxion_main() {
fluxion_main() {
fluxion_startup
fluxion_set_resolution
local -r sequence=( \
"set_language" \
"set_attack" \
"prep_attack" \
"run_attack" \
local -r sequence=(
"set_language"
"set_attack"
"prep_attack"
"run_attack"
)
while true; do # Fluxion's runtime-loop.