Add .gitignore and inject.sh

This commit is contained in:
Wizzard 2023-12-08 18:14:48 -05:00
parent 713c4b4627
commit 2de25ae24f
2 changed files with 100 additions and 0 deletions

35
.gitignore vendored Normal file
View File

@ -0,0 +1,35 @@
# Folders
build/
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app

65
inject.sh Executable file
View File

@ -0,0 +1,65 @@
#!/bin/bash
pid=$(pidof "hl2_linux")
libpath=$(realpath "libcstrike-basehook.so")
if [ "$pid" == "" ]; then
echo "inject.sh: process not running."
exit 1
fi
# Used to echo the command. For debugging.
#set -x
if [ "$1" == "unload" ]; then
sudo gdb -n -q -batch \
-ex "attach $pid" \
-ex "set \$dlopen = (void* (*)(char*, int))dlopen" \
-ex "set \$dlclose = (int (*)(void*))dlclose" \
-ex "set \$dlerror = (char* (*)(void))dlerror" \
\
-ex "set \$self = \$dlopen(\"$libpath\", 6)" \
-ex "call \$dlclose(\$self)" \
-ex "call \$dlclose(\$self)" \
\
-ex "call \$dlerror()" \
-ex "detach" \
-ex "quit"
exit 0
fi
if grep -q "$libpath" "/proc/$pid/maps"; then
echo -e "goldsource-cheat already loaded. Reloading...\n";
# 0x2 -> RTLD_NOW
# 0x6 -> RTLD_LAZY | RTLD_NOLOAD
# For more info on the 3 mid lines, see self_unload() in main.c
sudo gdb -n -q -batch \
-ex "attach $pid" \
-ex "set \$dlopen = (void* (*)(char*, int))dlopen" \
-ex "set \$dlclose = (int (*)(void*))dlclose" \
-ex "set \$dlerror = (char* (*)(void))dlerror" \
\
-ex "set \$self = \$dlopen(\"$libpath\", 6)" \
-ex "call \$dlclose(\$self)" \
-ex "call \$dlclose(\$self)" \
\
-ex "call \$dlopen(\"$libpath\", 2)" \
-ex "call \$dlerror()" \
-ex "detach" \
-ex "quit"
else
sudo gdb -n -q -batch \
-ex "attach $pid" \
-ex "set \$dlopen = (void* (*)(char*, int))dlopen" \
-ex "set \$dlclose = (int (*)(void*))dlclose" \
-ex "set \$dlerror = (char* (*)(void))dlerror" \
-ex "call \$dlopen(\"$libpath\", 2)" \
-ex "call \$dlerror()" \
-ex "detach" \
-ex "quit"
fi
set +x
echo -e "\nDone."