efforg/rayhunter#980

View on GitHub →
#980 TP-Link M7350 v8 my additions .sh
atamankba3ap-wqatamankba3ap-wqOpenShow and tell

Hi everyone. My device is TP-Link M7350 8.0.2 Build 230911 Rel.33n Rayhunter v0.10.2

I decided to make some additions for myself. Maybe someone will find it useful. Implementation: wifi_toggle.sh is launched that monitors the menu button press. Hold the menu button for 4 seconds. Wi-Fi is turned off. send_alert.sh is launched that monitors the log file. If an error occurs, it sends an SMS with the error to a number. Wi-Fi is turned on in the same way (hold the menu button for 4 seconds). Telnet starts working after 4-5 minutes after booting.

1. Lines are added to the launch. sleep 120 ( /bin/sh /data/rayhunter/wifi_toggle.sh ) > /dev/null 2>&1 & and pkill -f /data/rayhunter/wifi_toggle.sh > /dev/null 2>&1 || true

/etc/init.d/rayhunter_daemon
start)
    echo -n "Starting rayhunter: "
    # Below line may be replaced by the installer with device-specific startup commands, such as mounting the SD card.
    (mount /dev/mmcblk0p1 /media/card || true) 2>&1 | tee /tmp/rayhunter-mount.log
    start-stop-daemon -S -b --make-pidfile --pidfile /tmp/rayhunter.pid \
    --startas /bin/sh -- -c "RUST_LOG=info exec /data/rayhunter/rayhunter-daemon /data/rayhunter/config.toml > /data/rayhunter/rayhunter.log 2>&1"

    sleep 120
    ( /bin/sh /data/rayhunter/wifi_toggle.sh ) > /dev/null 2>&1 &

    echo "done"
    ;;
  stop)
    echo -n "Stopping rayhunter: "
    start-stop-daemon -K -p /tmp/rayhunter.pid
    pkill -f /data/rayhunter/wifi_toggle.sh > /dev/null 2>&1 || true
    echo "done"

2. Create two files (in this case on a memory card)

wifi_toggle.sh
#!/bin/sh

DEV="/dev/input/event1"
T_START=0

echo "[$(date +%T)] СИСТЕМА УДЕРЖАНИЯ 3 СЕК (Raw Mode) ЗАПУЩЕНА"
echo "Использую устройство: $DEV"

# Бесконечный цикл чтения по 16 байт (размер одного события в Linux)
while true; do
    # Читаем ровно 16 байт и переводим в понятные цифры
    # Мы берем 5-ю колонку (тип), 6-ю (код) и 7-ю (значение)
    EVENT=$(dd if=$DEV bs=16 count=1 2>/dev/null | hexdump -e '8/2 "%04x "')
    
    # Извлекаем код кнопки и состояние (нажата/отпущена)
    # Формат вывода hexdump: ... TYPE CODE VAL ...
    TYPE=$(echo $EVENT | awk '{print $5}')
    CODE=$(echo $EVENT | awk '{print $6}')
    VAL=$(echo $EVENT | awk '{print $7}')

    # Нас интересует только кнопка Menu (код 0067)
    if [ "$CODE" = "0067" ] && [ "$TYPE" = "0001" ]; then
        
        # Нажатие (VAL=0001)
        if [ "$VAL" = "0001" ]; then
            T_START=$(date +%s)
            echo "--> Нажал..."
            
        # Отпускание (VAL=0000)
        elif [ "$VAL" = "0000" ] && [ "$T_START" -ne 0 ]; then
            NOW=$(date +%s)
            DUR=$((NOW - T_START))
            echo "--> Отпустил (держал $DUR сек.)"

            if [ "$DUR" -ge 3 ]; then
                echo "[!!!] ЦЕЛЬ ДОСТИГНУТА: Переключаю Wi-Fi"
                
                if ifconfig wlan0 | grep -q "UP"; then
                    echo "WIFI OFF"
                    ifconfig wlan0 down
					( /bin/sh /data/rayhunter/send_alert.sh ) > /dev/null 2>&1 &
                else
                    echo "WIFI ON"
                    ifconfig wlan0 up
					pkill -f /data/rayhunter/send_alert.sh > /dev/null 2>&1 || true
                fi
            fi
            T_START=0
        fi
    fi
done
send_alert.sh
#!/bin/sh

# === НАСТРОЙКИ ===
PHONE="+7123456789"
MODEM="/dev/smd7"
LOG_DIR="/media/card/qmdl"

echo "[$(date +%T)] СИСТЕМА СЛЕЖКИ ЗА ПРОЦЕССОМ ЗАПУЩЕНА"

while true; do
    # 1. Находим текущий PID Райхантера
    RPID=$(pidof rayhunter-daemon)
    
    if [ -z "$RPID" ]; then
        echo "[$(date +%T)] Жду запуска процесса rayhunter-daemon..."
        sleep 5
        continue
    fi

    # 2. Узнаем, какой именно файл .ndjson сейчас открыт процессом
    # Мы смотрим, куда указывает ссылка в файловой системе процесса
    ACTIVE_FILE=$(ls -l /proc/$RPID/fd/ 2>/dev/null | grep "\.ndjson" | head -1 | awk '{print $NF}')

    if [ -z "$ACTIVE_FILE" ]; then
        echo "[$(date +%T)] Процесс жив, но файл лога еще не открыт. Жду..."
        sleep 2
        continue
    fi

    echo "----------------------------------------------------"
    echo "[$(date +%T)] АКТИВНЫЙ ФАЙЛ ОБНАРУЖЕН: $ACTIVE_FILE"
    echo "----------------------------------------------------"

    # 3. Запускаем фоновый "сторож", который убьет tail, если файл сменится
    (
        while true; do
            sleep 3
            # Проверяем, какой файл активен сейчас
            NEW_ACTIVE=$(ls -l /proc/$RPID/fd/ 2>/dev/null | grep "\.ndjson" | head -1 | awk '{print $NF}')
            
            # Если файл сменился или процесс исчез
            if [ "$NEW_ACTIVE" != "$ACTIVE_FILE" ]; then
                echo ""
                echo "[SYSTEM] Внимание! Райхантер переключился на новый файл или перезапустился."
                # Убиваем tail, чтобы выйти из цикла чтения
                pkill -P $$ tail 2>/dev/null
                exit
            fi
        done
    ) &
    WATCHDOG_PID=$!

    # 4. Читаем активный файл
    tail -n 0 -f "$ACTIVE_FILE" 2>/dev/null | while read -r LINE
    do
        # Точка для визуального контроля
        printf "."

        case "$LINE" in 
            *event_type*|*level*|*Warning*|*High*|*Medium*)
                echo ""
                EV_TYPE=$(echo "$LINE" | sed -n 's/.*"\(event_type\|level\)":"\([^"]*\)".*/\2/p')
                MSG=$(echo "$LINE" | sed -n 's/.*"message":"\([^"]*\)".*/\1/p')

                [ -z "$EV_TYPE" ] && EV_TYPE="Alert"
                [ -z "$MSG" ] && MSG="Security Event"

                echo "[$(date +%T)] СОБЫТИЕ: [$EV_TYPE] $MSG"
                
                # Отправка СМС
                chat '' 'AT' 'OK' 'AT+CMGF=1' 'OK' 'AT+CMGS="'$PHONE'"' '>' "$EV_TYPE: $MSG $(printf '\x1a')" 'OK' < $MODEM > $MODEM
                
                sleep 10
                ;;
        esac
    done

    # Очистка после смены файла
    kill $WATCHDOG_PID 2>/dev/null
    echo "[$(date +%T)] Переподключение к новому активному дескриптору..."
    sleep 2
done
Screenshot

Screenshot_2026-04-12-08-13-01-443_com android mms-edit

IMG_20260412_081401

1