#!/bin/bash if [[ ! -f $1 ]] then echo "File not found: $1" exit fi readelf -S $1 | grep -q "\.meta\.note" > /dev/null if [ $? -ne 0 ] then echo "No metadata in ELF; '.meta.note' non-existent" exit fi meta=$(objcopy $1 /dev/null --dump-section .meta.note=/dev/stdout | cat | tr -d '\0') # Remove the leading and trailing '$' characters meta=${meta#'$'} meta=${meta%'$'} # Use regular expression to extract the cookie, filename, author, and description if [[ $meta =~ ^([^:]+):\s*([^,]+),\s*([^,]+),\s*(.*)$ ]]; then cookie=${BASH_REMATCH[1]} filename=${BASH_REMATCH[2]} author=${BASH_REMATCH[3]} description=${BASH_REMATCH[4]} cookie=${cookie%?} # Remove the last character fi if [[ $cookie != "Hyra" ]] then echo "Invalid cookie found!" exit fi # Trim leading spaces cookie=$(echo "$cookie" | sed -e 's/^[[:space:]]*//') filename=$(echo "$filename" | sed -e 's/^[[:space:]]*//') author=$(echo "$author" | sed -e 's/^[[:space:]]*//') description=$(echo "$description" | sed -e 's/^[[:space:]]*//') echo "Cookie: $cookie" echo "Filename: $filename" echo "Author: $author" echo "Description: $description"