Files
basturma/load.sh
2026-05-10 15:14:49 +03:00

53 lines
2.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Путь к скомпилированной библиотеке
LIB_NAME="libahc_rs.so"
LIB_PATH="$(pwd)/target/i686-unknown-linux-gnu/release/$LIB_NAME"
if [ ! -f "$LIB_PATH" ]; then
echo "[-] Ошибка: Файл $LIB_PATH не найден."
echo "[!] Сначала скомпилируйте проект: cargo build --release --target i686-unknown-linux-gnu"
exit 1
fi
# Поиск процесса игры
GAME_PID=$(pidof hl_linux)
if [ -z "$GAME_PID" ]; then
echo "[+] Игра не запущена. Запуск через LD_PRELOAD..."
echo "[!] Убедитесь, что вы находитесь в папке с игрой или укажите полный путь."
# Пример запуска (путь может отличаться в зависимости от установки Steam)
# LD_PRELOAD="$LIB_PATH" ./hl.sh -game cstrike
echo "Введите команду для запуска CS 1.6 (например, ./hl.sh -game cstrike):"
read -r RUN_CMD
LD_PRELOAD="$LIB_PATH" eval "$RUN_CMD"
else
# Копируем библиотеку в /tmp с уникальным именем для форсированной перезагрузки
TIMESTAMP=$(date +%s)
TMP_LIB="/tmp/libahc_rs_$TIMESTAMP.so"
cp "$LIB_PATH" "$TMP_LIB"
chmod 777 "$TMP_LIB"
echo "[+] Инъекция: $TMP_LIB"
# Создаем временный файл команд для gdb
GDB_CMD=$(mktemp)
echo "attach $GAME_PID" > "$GDB_CMD"
echo "call (void*)dlopen(\"$TMP_LIB\", 2)" >> "$GDB_CMD"
echo "detach" >> "$GDB_CMD"
echo "quit" >> "$GDB_CMD"
# Запускаем gdb
sudo gdb -batch -x "$GDB_CMD"
rm "$GDB_CMD"
if [ $? -eq 0 ]; then
echo "[+] Sucsess injected"
else
echo "[-] Ошибка при инъекции. Проверьте, установлен ли gdb и есть ли права sudo."
fi
fi