some bugfixes

exclude mawk, fix for empty desc in mmls, fixed some bash calculations (base of 10 inseead of 8)
This commit is contained in:
Patrick Neumann 2019-09-16 12:08:56 +02:00
parent d83bcfa5bc
commit 67c584a2b2

29
tsk2html Normal file → Executable file
View File

@ -29,6 +29,7 @@
# EXIT STATES: # EXIT STATES:
# 0 = success # 0 = success
# 1 = (t)csh is not supported # 1 = (t)csh is not supported
# 16 = mawk is not supported
# 2 = base64 is not installed # 2 = base64 is not installed
# 3 = openssl is not installed # 3 = openssl is not installed
# 4 = sleuthkit is not installed # 4 = sleuthkit is not installed
@ -49,9 +50,9 @@
# istat and icat (The Sleuth Kit) out of a supplied image. # istat and icat (The Sleuth Kit) out of a supplied image.
# #
# REQUIREMENTS (Linux): # REQUIREMENTS (Linux):
# awk, base64, basename, cat, date, dirname, file, fls, fsstat, grep, icat, # (g)awk (mawk is not supported!), base64, basename, cat, date, dirname, file,
# img_stat, istat, ln, mkdir, mmls, openssl, printf, ps, sed, stat, tail # fls, fsstat, grep, icat, img_stat, istat, ln, mkdir, mmls, openssl,
# and uname # printf, ps, sed, stat, tail and uname
# #
# BUGS: # BUGS:
# --- # ---
@ -79,7 +80,7 @@
# (privately) # (privately)
# #
# VERSION: # VERSION:
# 1.0 # 1.1
# #
# LINK TO THE MOST CURRENT VERSION: # LINK TO THE MOST CURRENT VERSION:
# (Sorry, I bet, I'm not allowed to publish it over GitHub!) # (Sorry, I bet, I'm not allowed to publish it over GitHub!)
@ -87,8 +88,11 @@
# CREATED: # CREATED:
# 2016-11-11 # 2016-11-11
# #
# LAST MODIFIED:
# 2019-09-12
#
# COPYRIGHT (C): # COPYRIGHT (C):
# 2016 - Patrick Neumann # 2016-2019 - Patrick Neumann
# #
# LICENSE: # LICENSE:
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
@ -114,6 +118,9 @@
# #
# HISTORY: # HISTORY:
# 1.0 - Patrick Neumann - Initial (for the trainers eyes only) release # 1.0 - Patrick Neumann - Initial (for the trainers eyes only) release
# 1.1 - Patrick Neumann - added exit 16 if only mawk is available
# - fixed support for empty desc in mmls
# - fixed some calculation (base of 10 inseead of 8)
# #
#=============================================================================== #===============================================================================
@ -167,6 +174,12 @@ readonly BIN_UNAME="$( ${BIN_WHICH} "uname" )" # common
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Check(s) for the existence of additional mandatory software. # Check(s) for the existence of additional mandatory software.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# mawk is not supported!
if ${BIN_AWK} -W version 2>/dev/null | grep -E "^mawk" > /dev/null 2>&1 ; then
${BIN_PRINTF} "\n\033[01;31;40mERROR: please install gawk instead of mawk and retry... EXIT!!!\033[00m\n\n"
exit 16
fi
# uncommon on FreeBSD 11 # uncommon on FreeBSD 11
if [ -z "${BIN_BASE64}" ] ; then if [ -z "${BIN_BASE64}" ] ; then
${BIN_PRINTF} "\n\033[01;31;40mERROR: please install base64 and retry... EXIT!!!\033[00m\n\n" ${BIN_PRINTF} "\n\033[01;31;40mERROR: please install base64 and retry... EXIT!!!\033[00m\n\n"
@ -835,7 +848,7 @@ render_partition_table() {
if [ -f "${FOLDER}/PART_${cnt}/fsstat.html" ] ; then if [ -f "${FOLDER}/PART_${cnt}/fsstat.html" ] ; then
line="${line}|[<a href='PART_${cnt}/fsstat.html'>fsstat</a>]" line="${line}|[<a href='PART_${cnt}/fsstat.html'>fsstat</a>]"
line="${line} [<a href='PART_${cnt}/fls.html'>fls</a>]" line="${line} [<a href='PART_${cnt}/fls.html'>fls</a>]"
LC_ALL=C cnt="$( ${BIN_PRINTF} "%03d" "$(( cnt + 1 ))" )" LC_ALL=C cnt="$( ${BIN_PRINTF} "%03d" "$(( 10#$cnt + 1 ))" )"
else else
line="${line}|-----" line="${line}|-----"
fi fi
@ -1018,7 +1031,7 @@ if [ -n "${MMLS}" ] ; then
readonly UNITS="$( ${BIN_PRINTF} "%s" "${MMLS}" | ${BIN_SED} -n "3p" )" readonly UNITS="$( ${BIN_PRINTF} "%s" "${MMLS}" | ${BIN_SED} -n "3p" )"
readonly PARTITIONS_DATA="$( ${BIN_PRINTF} "%s" "${MMLS}" \ readonly PARTITIONS_DATA="$( ${BIN_PRINTF} "%s" "${MMLS}" \
| ${BIN_GREP} --extended-regexp "^[[:digit:]]" \ | ${BIN_GREP} --extended-regexp "^[[:digit:]]" \
| ${BIN_AWK} 'BEGIN{ OFS="|"; CNT=1; } { description = substr( $0, index( $0, $6 ) ); gsub( /\|/, " ", description ); print CNT++, $2, $3, $4, $5, description }' )" | ${BIN_AWK} 'BEGIN{ OFS="|"; CNT=1; } { if ($6) description = substr( $0, index( $0, $6 ) ); else description = "-"; gsub( /\|/, " ", description ); print CNT++, $2, $3, $4, $5, description }' )"
# Filesystem (or whatever) without a partition # Filesystem (or whatever) without a partition
else else
readonly SCHEME="No partition type found" readonly SCHEME="No partition type found"
@ -1084,7 +1097,7 @@ EOF
render_template "${FLS}" >> "${FOLDER}/PART_${cnt}/fls.html" render_template "${FLS}" >> "${FOLDER}/PART_${cnt}/fls.html"
render_template "${FOOTER}" >> "${FOLDER}/PART_${cnt}/fls.html" render_template "${FOOTER}" >> "${FOLDER}/PART_${cnt}/fls.html"
fi fi
LC_ALL=C cnt="$( ${BIN_PRINTF} "%03d" "$(( cnt + 1 ))" )" LC_ALL=C cnt="$( ${BIN_PRINTF} "%03d" "$(( 10#$cnt + 1 ))" )"
done done
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------