Como usa essa função de obfuscação?

1. Como usa essa função de obfuscação?

Victor
Saiko

(usa Ubuntu)

Enviado em 20/11/2019 - 17:01h

Olá galera :) Comecei a estudar shell há um tempo mas ainda estou no nível básico e não cheguei em funções. Apesar disso gostaria de entender como essa função que tirei de um script funciona, eu tentei utilizar ela mas não obtive nenhum resultado e ela não está funcionando no script de onde a tirei porque ele não estava obsfucado. Se puderem me ajudar, talvez com exemplos de uso, ficaria muito grato. Segue abaixo a função:

ofuscate_fun () {
unset link_list
unset txt_ofuscatw
unset txtofus
number=$(expr length $1)
for((i=1; i<$number+1; i++)); do
txt[$i]=$(echo "$1" | cut -b $i)
case ${txt[$i]} in
".")
txt[$i]="#";;
"$")
txt[$i]=".";;
"1")
txt[$i]="@";;
"@")
txt[$i]="1";;
"2")
txt[$i]="?";;
"?")
txt[$i]="2";;
"3")
txt[$i]="&";;
"&")
txt[$i]="3";;
esac
txtofus+="${txt[$i]}"
done
link_list=$(echo $txtofus|rev)
txt_ofuscatw=$(echo $txtofus|rev)
}



  


2. Re: Como usa essa função de obfuscação?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/11/2019 - 19:34h

Saiko escreveu:

Olá galera :) Comecei a estudar shell há um tempo mas ainda estou no nível básico e não cheguei em funções. Apesar disso gostaria de entender como essa função que tirei de um script funciona, eu tentei utilizar ela mas não obtive nenhum resultado e ela não está funcionando no script de onde a tirei porque ele não estava obsfucado. Se puderem me ajudar, talvez com exemplos de uso, ficaria muito grato. Segue abaixo a função:

ofuscate_fun () {
unset link_list
unset txt_ofuscatw
unset txtofus
number=$(expr length $1)
for((i=1; i<$number+1; i++)); do
txt[$i]=$(echo "$1" | cut -b $i)
case ${txt[$i]} in
".") txt[$i]="#";;
"$") txt[$i]=".";;
"1") txt[$i]="@";;
"@") txt[$i]="1";;
"2") txt[$i]="?";;
"?") txt[$i]="2";;
"3") txt[$i]="&";;
"&") txt[$i]="3";;
esac
txtofus+="${txt[$i]}"
done
link_list=$(echo $txtofus|rev)
txt_ofuscatw=$(echo $txtofus|rev)
}

Pelo que entendi, essa função faz o mesmo que o comando abaixo:
sed 'y/abcdefghij/0123456789/' <<< 'marcelo'|rev 

Troca os caracteres e inverte o texto, bem "ruinzinho"..... kkkkkk
Coloquei a SAÍDA, não existia.

#!/bin/bash
ofuscate_fun () {

number=$(expr length "$1")
for((i=1; i<$number+1; i++)); do
txt[$i]=$(echo $1 | cut -b $i)
case ${txt[$i]} in
a) txt[$i]="0";;
b) txt[$i]="1";;
c) txt[$i]="2";;
d) txt[$i]="3";;
e) txt[$i]="4";;
f) txt[$i]="5";;
g) txt[$i]="6";;
h) txt[$i]="7";;
i) txt[$i]="8";;
j) txt[$i]="9";;
esac
txtofus+="${txt[$i]}"
done
link_list=$(echo $txtofus|rev)
txt_ofuscatw=$(echo $txtofus|rev)
echo "SAÍDA: $txt_ofuscatw"
}
ofuscate_fun $1

Chame o script com um parâmetro,
Exemplo: ./script "vivaolinux"
SAÍDA: xun8lo0v8v
__________________________________________________________________
Importante: echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


3. Re: Como usa essa função de obfuscação?

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 20/11/2019 - 20:08h

Vou "tentar" destrinchar cada linha para você entender o que cada coisa faz:

Inicia a função...
ofuscate_fun () {

Limpa as variáveis...
unset link_list
unset txt_ofuscatw
unset txtofus

Conta o número de caracteres contido em $1 (qualquer coisa que vem na linha de comando após o script em si: ./script "qualquercoisa"
number=$(expr length $1)

Inicia um loop "for", começando de 1 até o total de caracteres +1 "$number+1"
for((i=1; i<$number+1; i++)); do

Para cada valor de $i verifica qual o caractere e substitui por outro...
txt[$i]=$(echo "$1" | cut -b $i)
case ${txt[$i]} in
".")
txt[$i]="#";;
"$")
txt[$i]=".";;
"1")
txt[$i]="@";;
"@")
txt[$i]="1";;
"2")
txt[$i]="?";;
"?")
txt[$i]="2";;
"3")
txt[$i]="&";;
"&")
txt[$i]="3";;
esac

Recria o texto inicial ($1) com as devidas trocas de caracteres...
txtofus+="${txt[$i]}"
done

Cria as novas variáveis com o texto "$txtofus" na ordem inversa (rev)...
link_list=$(echo $txtofus|rev)
txt_ofuscatw=$(echo $txtofus|rev)

Fim da função!
}

Falta colocar no script um "echo" para exibir as variáveis "$link_list" e "$txt_ofuscatw". Sem isso nada será mostrado!

Para ver como a função funciona, você tem que executar o script fornecendo alguma entrada de texto ($1) com os caracteres especiais (sem espaços!):
$ ./script.sh '?&texto.qualquer@123#?' 










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts