Created
September 13, 2021 09:28
-
-
Save rahulsainani/84e8dc57a53ff44a64f75c8ad33f8d03 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
VERSION=0.1.0 | |
SUBJECT=sms-retriever-hash-generator | |
USAGE="Usage: sms_retriever_hash_v9.sh --package package_name --keystore keystore_file" | |
# --- Options processing ------------------------------------------- | |
if [ $# == 0 ] ; then | |
echo $USAGE | |
exit 1; | |
fi | |
# USE: apkblacklister.sh --source source.apk --target target.apk more files to scan | |
if [[ "$1" != "--package" ]]; then | |
echo "Error: expected --package as first parameter" | |
exit 1 | |
fi | |
pkg="$2" | |
shift 2 | |
if [[ "$1" != "--keystore" ]]; then | |
echo "Error: expected --keystore as third parameter" | |
exit 1 | |
fi | |
keystore="$2" | |
shift 2 | |
echo | |
echo "package name: $pkg" | |
echo "keystore file: $keystore" | |
echo | |
if [ -e "$keystore" ] | |
then | |
echo "File $keystore is found." | |
echo | |
else | |
echo "File $keystore is not found." | |
echo | |
exit 0; | |
fi | |
# Retrieve certificate from keystore file. Decoded with Base64 and converted to hex | |
cert=$(keytool -list -rfc -keystore $keystore | sed -e '1,/BEGIN/d' | sed -e '/END/,$d' | tr -d ' \n' | base64 --decode | xxd -p | tr -d ' \n') | |
echo | |
echo "certificate in hex: $cert" | |
# concatenate input | |
input="$pkg $cert" | |
# 256 bits = 32 bytes = 64 hex chars | |
output=$(printf "$input" | shasum -a 256 | cut -c1-64) | |
echo | |
echo "SHA-256 output in hex: $output" | |
# take the beginning 72 bits (= 9 bytes = 18 hex chars) | |
output=$(printf $output | cut -c1-18) | |
# encode sha256sum output by base64 (11 chars) | |
base64output=$(printf $output | xxd -r -p | base64 | cut -c1-11) | |
echo | |
echo "First 8 bytes encoded by base64: $base64output" | |
echo | |
echo "SMS Retriever hash code: $base64output" | |
echo |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment