-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdecode_curl_output.sh
More file actions
executable file
·33 lines (30 loc) · 1.39 KB
/
decode_curl_output.sh
File metadata and controls
executable file
·33 lines (30 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
# Script para decodificar a saída do curl e extrair bytes vazados
# Uso: curl -s http://localhost:8080/echo -X POST -H "Content-Type: application/json" -d '{"message":"test"}' | ./decode_curl_output.sh
echo "🔍 Decodificando saída do curl..."
echo "=================================="
# Extrai apenas o campo "echo" do JSON e converte para ASCII
# grep -o: extrai apenas as linhas que contêm o padrão
# {"echo":\[[^]]*\]}: regex para encontrar objetos JSON com campo echo
grep -o '{"echo":\[[^]]*\]}' | \
# sed 's/{"echo":\[//g': remove o início do JSON {"echo":[
sed 's/{"echo":\[//g' | \
# sed 's/\]}//g': remove o final do JSON ]}
sed 's/\]}//g' | \
# tr ',' ' ': converte vírgulas em espaços para separar os números
tr ',' ' ' | \
# while read -r line: lê cada linha processada
while read -r line; do
echo "📦 Processando bytes..."
# for byte in $line: itera sobre cada número (byte) na linha
for byte in $line; do
# if [[ $byte =~ ^[0-9]+$ ]]: verifica se é um número válido
if [[ $byte =~ ^[0-9]+$ ]]; then
# printf "\\$(printf '%03o' $byte)": converte número decimal para caractere ASCII
# %03o: formata como octal com 3 dígitos
# \\$(...): interpreta o resultado como caractere de escape
printf "\\$(printf '%03o' $byte)"
fi
done
echo "" # Quebra de linha após cada objeto processado
done