Initial commit

This commit is contained in:
2026-05-10 15:14:49 +03:00
commit db66b68a30
7 changed files with 438 additions and 0 deletions

52
load.sh Executable file
View File

@@ -0,0 +1,52 @@
#!/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