diff --git a/attach-libnamed.sh b/attach-libnamed.sh new file mode 100644 index 00000000..369b7b2a --- /dev/null +++ b/attach-libnamed.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +# Thank you LWSS +# https://github.com/LWSS/Fuzion/commit/a53b6c634cde0ed47b08dd587ba40a3806adf3fe + +line=$(pidof hl2_linux) +arr=($line) +inst=$1 +if [ $# == 0 ]; then + inst=0 +fi + +if [ ${#arr[@]} == 0 ]; then + echo TF2 isn\'t running! + exit +fi + +if [ $inst -gt ${#arr[@]} ] || [ $inst == ${#arr[@]} ]; then + echo wrong index! + exit +fi + +proc=${arr[$inst]} + +echo Running instances: "${arr[@]}" +echo Attaching to "$proc" + +# pBypass for crash dumps being sent +# You may also want to consider using -nobreakpad in your launch options. +sudo rm -rf /tmp/dumps # Remove if it exists +sudo mkdir /tmp/dumps # Make it as root +sudo chmod 000 /tmp/dumps # No permissions + +# Get a Random name from the build_names file. +FILENAME=$(shuf -n 1 build_names) + +# Create directory if it doesn't exist +if [ ! -d "/usr/lib64" ]; then + sudo mkdir /usr/lib64 +fi + +# In case this file exists, get another one. ( checked it works ) +while [ -f "/usr/lib64/${FILENAME}" ]; do + FILENAME=$(shuf -n 1 build_names) +done + +# echo $FILENAME > build_id # For detaching + +cp "bin/libcathook.so" "/usr/lib64/${FILENAME}" + +echo loading "$FILENAME" to "$proc" + +sudo killall -19 steam +sudo killall -19 steamwebhelper + +gdb -n -q -batch \ + -ex "attach $proc" \ + -ex "set \$dlopen = (void*(*)(char*, int)) dlopen" \ + -ex "call \$dlopen(\"/usr/lib64/$FILENAME\", 1)" \ + -ex "call dlerror()" \ + -ex 'print (char *) $2' \ + -ex "catch syscall exit exit_group" \ + -ex "detach" \ + -ex "quit" + +sudo rm "/usr/lib64/${FILENAME}" + +sudo killall -18 steamwebhelper +sudo killall -18 steam diff --git a/build_names b/build_names new file mode 100644 index 00000000..db1f4449 --- /dev/null +++ b/build_names @@ -0,0 +1,234 @@ +ld-2.24.so +ld-linux-x86-64.so +ld-lsb-x86-64.so +libanl-2.24.so +libasm-0.169.so +libasm.so +libatksharpglue-2.so +libbfd-2.26.1-1.fc25.so +libbfd.so +libBrokenLocale-2.24.so +libbuffer.so +libc-2.24.so +libcidn-2.24.so +libclangAnalysis.so +libclangARCMigrate.so +libclangASTMatchers.so +libclangAST.so +libclangBasic.so +libclangCodeGen.so +libclangDriver.so +libclangDynamicASTMatchers.so +libclangEdit.so +libclangFormat.so +libclangFrontend.so +libclangFrontendTool.so +libclangIndex.so +libclangLex.so +libclangParse.so +libclangRewriteFrontend.so +libclangRewrite.so +libclangSema.so +libclangSerialization.so +libclangStaticAnalyzerCheckers.so +libclangStaticAnalyzerCore.so +libclangStaticAnalyzerFrontend.so +libclangToolingCore.so +libclangTooling.so +libclutter-glx-1.0.so +libcmark.so +libcolordcompat.so +libcomps.so +libcppunit.so +libcrypt-nss-2.24.so +libcupscgi.so +libcupsimage.so +libcupsmime.so +libcupsppdc.so +libcups.so +libcurses.so +libcursesw.so +libdb-5.3.so +libdb-5.so +libdb.so +libdevmapper-event-lvm2mirror.so +libdevmapper-event-lvm2raid.so +libdevmapper-event-lvm2snapshot.so +libdevmapper-event-lvm2.so +libdevmapper-event-lvm2thin.so +libdevmapper-event.so +libdevmapper.so +libdl-2.24.so +libdw-0.169.so +libdw.so +libebtc.so +libelf-0.169.so +libelf.so +libevent_core.so +libevent_extra.so +libevent_openssl.so +libevent_pthreads.so +libevent.so +libfdt-1.4.2.so +libfdt.so +libfreebl3.so +libfreeblpriv3.so +libftoa.so +libgcc_s-6.4.1-20170727.so +libgcc_s.so +libgdksharpglue-2.so +libGeneratedSaxParser.so +libgettextlib-0.19.8.1.so +libgettextsrc-0.19.8.1.so +libgladesharpglue-2.so +libglibsharpglue-2.so +libGLX_indirect.so +libgnarl-6.so +libgnat-6.so +libgtksharpglue-2.so +libhawkey.so +libijs-0.35.so +libikvm-native.so +libiscsi.so +libiw.so +libjbig85.so +libjbig.so +libjim.so +libjs.so +libkadm5clnt.so +libkadm5srv.so +liblber.so +libldap_r.so +libldap.so +liblibreofficekitgtk.so +libLLVM-3.9.1.so +libLLVM-3.9.so +liblpsolve55.so +libLTO.so +liblua-5.1.so +liblua-5.3.so +liblua.so +liblvm2app.so +liblvm2cmd.so +libm-2.24.so +libMathMLSolver.so +libmemusage.so +libminilzo.so +libMonoPosixHelper.so +libmozjs-17.0.so +libmozjs-24.so +libmozjs-38.so +libmozjs.so +libmvec-2.24.so +libnetapi.so +libnsl-2.24.so +libnspr4.so +libnss3.so +libnssckbi.so +libnssdbm3.so +libnss_dns-2.24.so +libnss_dns.so +libnss_files-2.24.so +libnss_files.so +libnss_mdns4_minimal.so +libnss_mdns4.so +libnss_mdns6_minimal.so +libnss_mdns6.so +libnss_mdns_minimal.so +libnss_mdns.so +libnss_myhostname.so +libnss_mymachines.so +libnsspem.so +libnss_resolve.so +libnss_sss.so +libnsssysinit.so +libnssutil3.so +libnvidia-compiler.so +libnvidia-eglcore.so +libnvidia-fatbinaryloader.so +libnvidia-glcore.so +libnvidia-glsi.so +libnvidia-gtk2.so +libnvidia-gtk3.so +libnvidia-tls.so +libopcodes-2.26.1-1.fc25.so +libopcodes.so +libOpenCOLLADABaseUtils.so +libOpenCOLLADAFramework.so +libOpenCOLLADASaxFrameworkLoader.so +libOpenCOLLADAStreamWriter.so +libpangosharpglue-2.so +libpasswdqc.so +libpcprofile.so +libplc4.so +libplds4.so +libpng.so +libpthread-2.24.so +libpython3.so +libQt3Support_debug.so +libQtCLucene_debug.so +libqtconfiguration.so +libQtCore_debug.so +libQtDBus_debug.so +libQtDeclarative_debug.so +libQtDesignerComponents_debug.so +libQtDesigner_debug.so +libQtGui_debug.so +libQtHelp_debug.so +libQtMultimedia_debug.so +libQtNetwork_debug.so +libQtOpenGL_debug.so +libQtScript_debug.so +libQtScriptTools_debug.so +libQtSql_debug.so +libQtSvg_debug.so +libQtTest_debug.so +libQtXml_debug.so +libQtXmlPatterns_debug.so +libquvi-0.9-0.9.4.so +libqwt5-qt4.so +libreg.so +librepo.so +libresolv-2.24.so +librhash.so +librt-2.24.so +libsamba-errors.so +libSDL2_image.so +libSDL2.so +libSDL.so +libSegFault.so +libsemanage.so +libslapi.so +libsmbconf.so +libsmbldap.so +libsmime3.so +libsoftokn3.chk +libsoftokn3.so +libsolvext.so +libsolv.so +libssl3.so +libsss_sudo.so +libtcl8.6.so +libtermcap.so +libthread_db-1.0.so +libthrift-0.9.1.so +libthriftqt.so +libthrift.so +libthriftz-0.9.1.so +libthriftz.so +libtk8.6.so +libtxc_dxtn.so +libuniconf.so +libUTF.so +libutil-2.24.so +libvdpau_nvidia.so +libwvbase.so +libwvdbus.so +libwvstreams.so +libwvutils.so +libXaw.so +libxerces-c-3.1.so +LLVMgold.so +LLVMHello.so +p11-kit-proxy.so +p11-kit-trust.so