|
|
@@ -1,14 +1,11 @@
|
|
|
#!/bin/bash
|
|
|
# File: android-interact.sh
|
|
|
# Date: Wed Nov 29 02:19:00 2017 -0800
|
|
|
-# Author: Yuxin Wu
|
|
|
|
|
|
PROG_NAME=`python -c "import os, sys; print(os.path.realpath(sys.argv[1]))" "$0"`
|
|
|
PROG_DIR=`dirname "$PROG_NAME"`
|
|
|
cd "$PROG_DIR"
|
|
|
|
|
|
-source compatibility.sh
|
|
|
-
|
|
|
# Please check that your path is the same, since this might be different among devices
|
|
|
RES_DIR="/mnt/sdcard/tencent/MicroMsg"
|
|
|
MM_DIR="/data/data/com.tencent.mm"
|
|
|
@@ -16,26 +13,7 @@ MM_DIR="/data/data/com.tencent.mm"
|
|
|
echo "Starting rooted adb server..."
|
|
|
adb root
|
|
|
|
|
|
-if [[ $1 == "uin" ]]; then
|
|
|
- adb pull $MM_DIR/shared_prefs/system_config_prefs.xml 2>/dev/null
|
|
|
- uin=$($GREP 'default_uin' system_config_prefs.xml | $GREP -o 'value=\"\-?[0-9]*' | cut -c 8-)
|
|
|
- [[ -n $uin ]] || {
|
|
|
- >&2 echo "Failed to get wechat uin. You can try other methods, or report a bug."
|
|
|
- exit 1
|
|
|
- }
|
|
|
- rm system_config_prefs.xml
|
|
|
- echo "Got wechat uin: $uin"
|
|
|
-elif [[ $1 == "imei" ]]; then
|
|
|
- imei=$(adb shell dumpsys iphonesubinfo | $GREP 'Device ID' | $GREP -o '[0-9]+')
|
|
|
- [[ -n $imei ]] || {
|
|
|
- imei=$(adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed 's/[^0-9A-F]*//g' | tr -d '\n')
|
|
|
- }
|
|
|
- [[ -n $imei ]] || {
|
|
|
- >&2 echo "Failed to get imei. You can try other methods mentioned in README, or report a bug."
|
|
|
- exit 1
|
|
|
- }
|
|
|
- echo "Got imei: $imei"
|
|
|
-elif [[ $1 == "db" || $1 == "res" ]]; then
|
|
|
+if [[ $1 == "db" || $1 == "res" ]]; then
|
|
|
echo "Looking for user dir name..."
|
|
|
sleep 1 # sometimes adb complains: device not found
|
|
|
# look for dirname which looks like md5 (32 alpha-numeric chars)
|
|
|
@@ -85,26 +63,8 @@ elif [[ $1 == "db" || $1 == "res" ]]; then
|
|
|
exit 1
|
|
|
}
|
|
|
fi
|
|
|
-elif [[ $1 == "db-decrypt" ]]; then
|
|
|
- set -e
|
|
|
- echo "Getting uin..."
|
|
|
- $0 uin | tail -n1 | $GREP -o '\-?[0-9]*' | tee /tmp/uin
|
|
|
- echo "Getting imei..."
|
|
|
- $0 imei | tail -n1 | $GREP -o '[0-9]*' | tee /tmp/imei
|
|
|
- echo "Getting db..."
|
|
|
- $0 db
|
|
|
- echo "Decrypting db..."
|
|
|
- imei=$(cat /tmp/imei)
|
|
|
- uin=$(cat /tmp/uin)
|
|
|
- if [[ -z $imei || -z $uin ]]; then
|
|
|
- >&2 echo "Failed to get imei or uin. See README for manual methods."
|
|
|
- exit 1
|
|
|
- fi
|
|
|
- ./decrypt-db.py EnMicroMsg.db $imei $uin
|
|
|
- rm /tmp/{uin,imei}
|
|
|
- echo "Done. See decoded.db"
|
|
|
else
|
|
|
- echo "Usage: $0 <res|db-decrypt>"
|
|
|
+ echo "Usage: $0 <res|db>"
|
|
|
exit 1
|
|
|
fi
|
|
|
|