main commit

This commit is contained in:
2025-10-06 09:40:51 +09:00
parent b1de55d253
commit 79256cd9fc
2375 changed files with 370050 additions and 4033 deletions

219
monitor_network.sh Executable file
View File

@@ -0,0 +1,219 @@
#!/bin/bash
# GodEye Network Traffic Monitor
# Скрипт для отслеживания сетевого трафика Android приложения
echo "🔍 GodEye Network Traffic Monitor"
echo "=================================="
# Исправленная проверка подключения устройства
# Проверяем все подключенные устройства
echo "📱 Поиск устройств Android..."
DEVICES=($(adb devices | grep -w "device" | awk '{print $1}'))
if [ ${#DEVICES[@]} -eq 0 ]; then
echo "❌ Устройства Android не найдены!"
echo "Убедитесь что:"
echo "1. Устройство подключено по USB"
echo "2. Включена отладка по USB"
echo "3. Разрешена отладка для этого компьютера"
exit 1
elif [ ${#DEVICES[@]} -eq 1 ]; then
DEVICE=${DEVICES[0]}
echo "📱 Найдено устройство: $DEVICE"
else
echo "📱 Найдено несколько устройств:"
for i in "${!DEVICES[@]}"; do
echo "$((i+1))) ${DEVICES[$i]}"
done
# Проверяем есть ли LG G6
LG_G6="LGMG600S9b4da66b"
if [[ " ${DEVICES[@]} " =~ " ${LG_G6} " ]]; then
DEVICE=$LG_G6
echo "🎯 Автоматически выбран LG G6: $DEVICE"
else
read -p "Выберите устройство (1-${#DEVICES[@]}): " choice
if [[ $choice -ge 1 && $choice -le ${#DEVICES[@]} ]]; then
DEVICE=${DEVICES[$((choice-1))]}
echo "✅ Выбрано устройство: $DEVICE"
else
echo "❌ Неверный выбор!"
exit 1
fi
fi
fi
# Функция для выполнения adb команд с указанием конкретного устройства
adb_cmd() {
adb -s "$DEVICE" "$@"
}
# Функция для отслеживания логов приложения
monitor_app_logs() {
echo ""
echo "📋 Мониторинг логов приложения GodEye..."
echo "Фильтр: WebRTC, Network, Connection"
echo "Нажмите Ctrl+C для остановки"
echo "----------------------------------------"
adb_cmd logcat -c # Очищаем логи
adb_cmd logcat | grep -E "(WEBRTC|WebRTC|GodEye|Network|Connection)" --color=always
}
# Функция для отслеживания сетевых соединений
monitor_network_connections() {
echo ""
echo "🌐 Мониторинг сетевых соединений..."
echo "Поиск активных UDP/TCP соединений от GodEye"
echo "----------------------------------------"
# Получаем PID приложения GodEye
APP_PID=$(adb_cmd shell ps | grep com.example.godeye | awk '{print $2}' | head -1)
if [ -z "$APP_PID" ]; then
echo "❌ Приложение GodEye не запущено!"
return 1
fi
echo "🎯 PID приложения GodEye: $APP_PID"
echo ""
while true; do
echo "$(date '+%H:%M:%S') - Активные соединения:"
adb_cmd shell netstat | grep $APP_PID | while read line; do
echo " 📡 $line"
done
echo ""
sleep 5
done
}
# Функция для анализа трафика через tcpdump (требует root)
monitor_packet_capture() {
echo ""
echo "📦 Захват пакетов (требует root)..."
echo "Попытка захвата UDP трафика на порты WebRTC"
echo "----------------------------------------"
# Проверяем root доступ
ROOT_CHECK=$(adb_cmd shell su -c "echo test" 2>/dev/null)
if [ "$ROOT_CHECK" != "test" ]; then
echo "❌ Root доступ недоступен. Пропускаем захват пакетов."
return 1
fi
echo "✅ Root доступ получен"
echo "Захватываем UDP трафик (порты 1024-65535)..."
# Захватываем UDP пакеты
adb_cmd shell su -c "tcpdump -i any -n udp and portrange 1024-65535" | \
while read line; do
# Фильтруем только интересные пакеты
if echo "$line" | grep -E "(STUN|RTP|DTLS)" > /dev/null; then
echo "🚀 WebRTC: $line"
elif echo "$line" | grep -E "([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)" > /dev/null; then
echo "📡 UDP: $line"
fi
done
}
# Функция для мониторинга использования сети приложением
monitor_data_usage() {
echo ""
echo "📊 Мониторинг использования данных..."
echo "Отслеживание трафика приложения GodEye"
echo "----------------------------------------"
# Получаем UID приложения (исправленная переменная)
local APP_UID=$(adb_cmd shell dumpsys package com.example.godeye | grep "userId=" | head -1 | sed 's/.*userId=\([0-9]*\).*/\1/')
if [ -z "$APP_UID" ]; then
echo "❌ Не удалось получить UID приложения!"
echo "Проверяем установленные пакеты..."
adb_cmd shell pm list packages | grep godeye
return 1
fi
echo "🆔 UID приложения: $APP_UID"
echo ""
# Мониторим использование сети
while true; do
echo "$(date '+%H:%M:%S') - Статистика сети:"
# Получаем статистику из /proc/net/xt_qtaguid/stats
STATS=$(adb_cmd shell cat /proc/net/xt_qtaguid/stats 2>/dev/null | grep " $APP_UID ")
if [ ! -z "$STATS" ]; then
echo "$STATS" | while read line; do
# Парсим статистику
RX_BYTES=$(echo $line | awk '{print $6}')
TX_BYTES=$(echo $line | awk '{print $8}')
if [ "$RX_BYTES" -gt 0 ] || [ "$TX_BYTES" -gt 0 ]; then
echo " 📥 Получено: $(format_bytes $RX_BYTES)"
echo " 📤 Отправлено: $(format_bytes $TX_BYTES)"
fi
done
else
echo " Сетевая активность не обнаружена"
fi
echo ""
sleep 3
done
}
# Функция форматирования байтов
format_bytes() {
local bytes=$1
if [ $bytes -lt 1024 ]; then
echo "${bytes} B"
elif [ $bytes -lt $((1024*1024)) ]; then
echo "$((bytes/1024)) KB"
elif [ $bytes -lt $((1024*1024*1024)) ]; then
echo "$((bytes/1024/1024)) MB"
else
echo "$((bytes/1024/1024/1024)) GB"
fi
}
# Главное меню
echo ""
echo "Выберите режим мониторинга:"
echo "1) 📋 Логи приложения (WebRTC/Network)"
echo "2) 🌐 Сетевые соединения"
echo "3) 📦 Захват пакетов (root)"
echo "4) 📊 Использование данных"
echo "5) 🔄 Все режимы одновременно"
echo ""
read -p "Введите номер (1-5): " choice
case $choice in
1)
monitor_app_logs
;;
2)
monitor_network_connections
;;
3)
monitor_packet_capture
;;
4)
monitor_data_usage
;;
5)
echo "🚀 Запуск всех мониторов..."
echo "Откройте дополнительные терминалы для других режимов"
monitor_app_logs &
monitor_network_connections &
monitor_data_usage &
wait
;;
*)
echo "❌ Неверный выбор!"
exit 1
;;
esac