57 lines
2.0 KiB
Bash
57 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# usage
|
|
# binwalk.sh filename [default/opcodes/basicextract/compressionextract/opcodeextract
|
|
set -e
|
|
filename="$2"
|
|
unix_seconds=$(date +%s)
|
|
dir="binwalk-exracted-$filename-$unix_seconds"
|
|
log="binwalk-log-$filename-$unix_seconds.txt"
|
|
|
|
basic="Bf"
|
|
basicextract="Bef"
|
|
compressionextract="BeMXZCf"
|
|
opcodecompressextract="ABeMXZCf"
|
|
opcodeextract="ABeCf"
|
|
opcode="ABf"
|
|
|
|
basic_cmd="--signature"
|
|
basicextract_cmd="--signature --extract --directory=$dir"
|
|
compressionextract_cmd="--signature --extract --matryoshka --deflate --lzma --directory=$dir"
|
|
opcodecompressextract_cmd="--opcodes --signature --extract --matryoshka --deflate -lzma --directory=$dir"
|
|
opcodeextract_cmd="--opcodes --signature --extract --directory=$dir"
|
|
opcode_cmd="--opcodes --signature"
|
|
|
|
usage_string="Usage:\n\tbinwalk.sh <option> <file>\n\t\tb/d/basic/default\n\t\to/op/opcode/opcodes\n\t\tbe/eb/basicextract/extractbasic\n\t\tce/ec/compressionextract/extractcompression\n\t\tope/oce/oec/opcodecompressionextract\n\t\toe/eo/opcodeextract/extractopcode"
|
|
|
|
if [ "$1" == "o" -o "$1" == "opcode" -o "$1" == "opcodes" -o "$1" == "op" ]; then
|
|
tag="$opcode"
|
|
cmd="$opcode_cmd"
|
|
elif [ "$1" == "d" -o "$1" == "default" -o "$1" == "b" -o "$1" == "basic" ]; then
|
|
tag="$basic"
|
|
cmd="$basic_cmd"
|
|
elif [ "$1" == "be" -o "$1" == "basicextract" -o "$1" == "eb" -o "$1" == "extractbasic" ]; then
|
|
tag="$basicextract"
|
|
cmd="$basicextract_cmd"
|
|
elif [ "$1" == "ce" -o "$1" == "compressionextract" -o "$1" == "ec" -o "$1" == "extractcompression" ]; then
|
|
tag="$compressionextract"
|
|
cmd="$compressionextract_cmd"
|
|
elif [ "$1" == "oce" -o "$1" == "opcodecompressionextract" -o "$1" == "eoc" -o "$1" == "oec" ]; then
|
|
tag="$opcodecompressextract"
|
|
cmd="$opcodecompressextract_cmd"
|
|
elif [ "$1" == "oe" -o "$1" == "opcodeextract" -o "$1" == "eo" -o "$1" == "extractopcode" ]; then
|
|
tag="$opcodeextract_cmd"
|
|
cmd="$opcodeextract_cmd"
|
|
else
|
|
echo -e "$usage_string"
|
|
exit
|
|
fi
|
|
|
|
echo -e $cmd
|
|
|
|
if [ -z $2 ]; then
|
|
echo -e "$usage_string"
|
|
exit
|
|
fi
|
|
|
|
to_run="binwalk $cmd --log=$log"
|
|
eval($to_run) |