#!/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"