From 7104e187cca77e69fc503114dc7c4f62c3dcb4c3 Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Mon, 30 Jun 2008 02:03:56 +0000 Subject: [PATCH] Import of Vtable scanner --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402301 --- tools/Vtable scanner/Makefile | 76 ++++++++++++ tools/Vtable scanner/libiberty.a | Bin 0 -> 261460 bytes tools/Vtable scanner/main.cpp | 192 +++++++++++++++++++++++++++++++ tools/Vtable scanner/tfscan.sh | 17 +++ 4 files changed, 285 insertions(+) create mode 100644 tools/Vtable scanner/Makefile create mode 100644 tools/Vtable scanner/libiberty.a create mode 100644 tools/Vtable scanner/main.cpp create mode 100644 tools/Vtable scanner/tfscan.sh diff --git a/tools/Vtable scanner/Makefile b/tools/Vtable scanner/Makefile new file mode 100644 index 00000000..de2d7323 --- /dev/null +++ b/tools/Vtable scanner/Makefile @@ -0,0 +1,76 @@ +# (C)2004-2008 SourceMod Development Team +# Makefile written by David "BAILOPAN" Anderson + + +##################################### +### EDIT BELOW FOR OTHER PROJECTS ### +##################################### + +OBJECTS = main.cpp + +############################################## +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ### +############################################## + +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -pipe -fno-strict-aliasing +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3 +C_GCC4_FLAGS = -fvisibility=hidden +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden +CPP = gcc-4.1 + +BINARY = vtablecheck + +LINK += -L. -liberty -ldl + +INCLUDE += -I. + +CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \ + -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror \ + -Wno-uninitialized -mfpmath=sse -msse -DHAVE_STDINT_H -DSM_DEFAULT_THREADER -m32 +CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti + +################################################ +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### +################################################ + +ifeq "$(DEBUG)" "true" + BIN_DIR = Debug + CFLAGS += $(C_DEBUG_FLAGS) +else + BIN_DIR = Release + CFLAGS += $(C_OPT_FLAGS) +endif + +GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) +ifeq "$(GCC_VERSION)" "4" + CFLAGS += $(C_GCC4_FLAGS) + CPPFLAGS += $(CPP_GCC4_FLAGS) +endif + +OBJ_LINUX := $(OBJECTS:%vm_engine.cpp=$(BIN_DIR)/%vm_engine.o) +OBJ_LINUX := $(OBJ_LINUX:%.cpp=$(BIN_DIR)/%.o) +OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o) + +$(BIN_DIR)/%vm_engine.o: %vm_engine.cpp + $(CPP) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + +$(BIN_DIR)/%.o: %.cpp + $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< + +$(BIN_DIR)/%.o: %.c + $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< + +all: + mkdir -p $(BIN_DIR) + $(MAKE) -f Makefile sourcemod + +sourcemod: $(OBJ_LINUX) + $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -o$(BIN_DIR)/$(BINARY) + +debug: + $(MAKE) -f Makefile all DEBUG=true + +default: all + +clean: + rm -rf $(BIN_DIR)/$(BINARY) diff --git a/tools/Vtable scanner/libiberty.a b/tools/Vtable scanner/libiberty.a new file mode 100644 index 0000000000000000000000000000000000000000..00a38036404d3ce6b34c073759f9d322e053ed46 GIT binary patch literal 261460 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 W;LuOj!+a*^ixIzSgAE2-4E}##as=1_ literal 0 HcmV?d00001 diff --git a/tools/Vtable scanner/main.cpp b/tools/Vtable scanner/main.cpp new file mode 100644 index 00000000..c3e96a50 --- /dev/null +++ b/tools/Vtable scanner/main.cpp @@ -0,0 +1,192 @@ +#include +#include +#include "string.h" +#include "malloc.h" + +extern "C" char * cplus_demangle(const char *, int); +#define DMGL_PARAMS (1 << 0) + +struct VOffset +{ + int linux_offset; + int windows_offset; +}; + +static bool FindVFunc(void *handle, void **vtable, const char* vtable_end, const char *class_function, const char *params, VOffset *offsets); + +int main(int argc, char **argv) +{ + void *handle; + void **pVtable; + handle = dlopen(argv[1], RTLD_NOW); + + VOffset offsets; + char *params = NULL; + bool ret; + + if (argc < 4) + { + fprintf(stderr, "Usage: \n"); + return -1; + } + + if (handle == NULL) + { + printf("Failed to open server image, error [%s]\n", dlerror()); + return -1; + } + + pVtable = (void **)dlsym(handle, argv[2]); + + if (argc >= 5) + { + params = argv[4]; + + if (params[0] == '"') + { + params++; + } + + int len = strlen(params)-1; + + if (params[len] == '"') + { + params[len] = '\0'; + } + + if (params[0] == 0) + { + params = NULL; + } + } + + if (argc == 6) + { + ret = FindVFunc(handle, pVtable, argv[5], argv[3], params, &offsets); + } + else + { + ret = FindVFunc(handle, pVtable, "_ZTI", argv[3], params, &offsets); + } + + if (ret) + { + printf("%s - Win: %i Linux : %i\n", argv[3], offsets.windows_offset, offsets.linux_offset); + return 0; + } + + fprintf(stderr, "Failed to find function!"); + return -1; + +#if 0 + if (FindVFunc(handle, pVtable, "CommitSuicide", "(bool, bool)", &offsets)) + printf("Commit Suicide - Win: %i Linux : %i\n", offsets.windows_offset, offsets.linux_offset); + + if (FindVFunc(handle, pVtable, "KeyValue", "(char const*, char const*)", &offsets)) + printf("KeyValue - Win: %i Linux : %i\n", offsets.windows_offset, offsets.linux_offset); + + if (FindVFunc(handle, pVtable, "KeyValue", "(char const*, float)", &offsets)) + printf("KeyValue Float - Win: %i Linux : %i\n", offsets.windows_offset, offsets.linux_offset); + + if (FindVFunc(handle, handle, pVtable, "KeyValue", "(char const*, Vector const&)", &offsets)) + printf("KeyValue Vector - Win: %i Linux : %i\n", offsets.windows_offset, offsets.linux_offset); + + if (FindVFunc(handle, pVtable, "Ignite", NULL, &offsets)) + printf("Ignite - Win: %i Linux : %i\n", offsets.windows_offset, offsets.linux_offset); + + if (FindVFunc(handle, pVtable, "Extinguish", NULL, &offsets)) + printf("Extinguish - Win: %i Linux : %i\n", offsets.windows_offset, offsets.linux_offset); + + return 0; +#endif +} + +static bool FindVFunc(void *handle, void **vtable, const char* vtable_end, const char *class_function, const char *params, VOffset *offsets) +{ + Dl_info d; + + int linux_offset = -1; + int windows_offset = -1; + + int overloads = 0; + int location = 0; + int start_offset = -1; + + for (int i=0; i< 1000; i++) + { + void *FuncPtr = vtable[i]; + + int status = dladdr(FuncPtr, &d); + + if (!status) + { + continue; + } + + if (i > 1 && strncmp(d.dli_sname, vtable_end, strlen(vtable_end)) == 0) + { + break; + } + + char *name = cplus_demangle(d.dli_sname, DMGL_PARAMS); + + if (name == NULL) + { + printf("Demangling failed\n"); + continue; + } + + char *foundfunction = strpbrk(name, ":"); + + if (foundfunction == NULL) + { + //printf("Couldnt split function\n"); + free(name); + continue; + } + + //Skip both ':' chars + foundfunction += 2; + + + if (strncmp(foundfunction, class_function, strlen(class_function)) == 0 && foundfunction[strlen(class_function)] == '(') + { + //printf("Symbol: %s Demangled: %s Offset: %i\n", d.dli_sname, name, i); + + //We have a pointer to a function, but it may be overloaded. + overloads++; + + if (start_offset == -1) + { + start_offset = i-1; + } + + char *foundparams = strpbrk(foundfunction, "("); + + if (foundparams == NULL) + { + printf("ARGH\n"); + free(name); + continue; + } + + if(params == NULL || strcmp(foundparams, params) == 0) + { + //This is actually our function - So this is the linux offset + linux_offset = i; + location = overloads; + } + } + + free(name); + } + + windows_offset = (overloads-location) + start_offset; + + dlclose(handle); + + offsets->linux_offset = linux_offset - 2; + offsets->windows_offset = windows_offset - 2; + + return true; +} diff --git a/tools/Vtable scanner/tfscan.sh b/tools/Vtable scanner/tfscan.sh new file mode 100644 index 00000000..cbe22b25 --- /dev/null +++ b/tools/Vtable scanner/tfscan.sh @@ -0,0 +1,17 @@ +echo "sdktools.games.ep2.txt +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer RemovePlayerItem +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer Weapon_GetSlot +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer Ignite +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer Extinguish +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer Teleport +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer CommitSuicide "(bool, bool)" +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer GetVelocity +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer EyeAngles +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer KeyValue "(char const*, char const*)" +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer KeyValue "(char const*, float)" +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer KeyValue "(char const*, Vector const&)" +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer SetModel +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer AcceptInput +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer Activate +echo "sm-tf2.games.txt" +./vtablecheck ~/srcds/orangebox/tf/bin/server_i486.so _ZTV9CTFPlayer ForceRespawn