Results 1 to 3 of 3
  1. #1
    xbyte3's Avatar
    Join Date
    Feb 2021
    Gender
    male
    Posts
    2
    Reputation
    10
    Thanks
    0

    Crashing after injecting

    When im trying injecting my dll, the gmod crashes after ~1 second.
    Code:
     

    #include <stdio.h>
    #include <windows.h>
    #include "GLua.h"

    using namespace std;

    BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){
    if (fdwReason == DLL_PROCESS_ATTACH)
    //CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)init, NULL, 0, NULL);
    AllocConsole();
    SetConsoleTitleA("Lua Loader v1488");
    freopen("CONOUT$", "w", stdout);
    freopen("CONIN$", "r", stdin);

    while (1) {
    char usrInput[2048] = { 0 };
    fgets(usrInput, 2047, stdin);

    HMODULE LuaShared_modhandle = GetModuleHandle("lua_shared.dll");
    if (LuaShared_modhandle != NULL)
    {
    typedef void* (*CreateInterfaceFn)(const char* name, int* returncode);
    CreateInterfaceFn LuaShared_createinter = (CreateInterfaceFn)GetProcAddress(LuaShared_modhan dle, "CreateInterface");
    CLuaShared* LuaShared = (CLuaShared*)LuaShared_createinter("LUASHARED003", NULL);
    if (LuaShared != NULL)
    {
    ILuaInterface* ClientLua = LuaShared->GetLuaInterface(LUA_CLIENT);
    if (ClientLua != NULL)
    {
    lua_State* state = ClientLua->GetLuaState();
    /*
    char* cmd = strtok(usrInput, " ");
    if (strcmp(cmd, "-run")) {
    printf("Unknown command: %s\n", cmd);
    continue;
    }
    char* scrDir = strtok(NULL, "\0");
    scrDir[strlen(scrDir) - 1] = '\0';
    */
    }
    }
    }
    }
    return(1);
    };

     

    #ifndef __GLua_H__
    #define __GLua_H__

    #define LUA_FUNCTION(_func_) int _func_(lua_State* state)
    #define LUA state->luabase
    #define _G -10002

    #ifdef GMMODULE
    #ifdef _WIN32
    #define DLL_EXPORT extern "C" __declspec( dllexport )
    #else
    #define DLL_EXPORT extern "C" __attribute__((visibility("default")))
    #endif
    #define GMOD_MODULE_OPEN() DLL_EXPORT int gmod13_open(lua_State* state)
    #define GMOD_MODULE_CLOSE() DLL_EXPORT int gmod13_close(lua_State* state)
    #endif

    #include <string>

    class ILuaInterface;
    class ILuaObject;
    class ILuaBase;

    class lua_State
    {
    public:
    char header[69];
    ILuaBase* luabase;
    };

    class UserData
    {
    public:
    void* data;
    unsigned char type;
    };

    enum
    {
    LUA_CLIENT = 0,
    LUA_SERVER = 1,
    LUA_MENU = 2
    };

    enum
    {
    SPECIAL_GLOB,
    SPECIAL_ENV,
    SPECIAL_REG,
    };

    enum
    {
    TYPE_INVALID = -1,
    TYPE_NIL,
    TYPE_BOOL,
    TYPE_LIGHTUSERDATA,
    TYPE_NUMBER,
    TYPE_STRING,
    TYPE_TABLE,
    TYPE_FUNCTION,
    TYPE_USERDATA,
    TYPE_THREAD,

    TYPE_ENTITY,
    TYPE_VECTOR,
    TYPE_ANGLE,
    TYPE_PHYSOBJ,
    TYPE_SAVE,
    TYPE_RESTORE,
    TYPE_DAMAGEINFO,
    TYPE_EFFECTDATA,
    TYPE_MOVEDATA,
    TYPE_RECIPIENTFILTER,
    TYPE_USERCMD,
    TYPE_SCRIPTEDVEHICLE,

    TYPE_MATERIAL,
    TYPE_PANEL,
    TYPE_PARTICLE,
    TYPE_PARTICLEEMITTER,
    TYPE_TEXTURE,
    TYPE_USERMSG,

    TYPE_CONVAR,
    TYPE_IMESH,
    TYPE_MATRIX,
    TYPE_SOUND,
    TYPE_PIXELVISHANDLE,
    TYPE_DLIGHT,
    TYPE_VIDEO,
    TYPE_FILE,

    TYPE_PLAYER = TYPE_ENTITY,
    };

    static char* lua_typename[] =
    {
    "nil",
    "bool",
    "lightuserdata",
    "number",
    "string",
    "table",
    "function",
    "userdata",
    "thread",
    "entity",
    "vector",
    "angle",
    "physobj",
    "save",
    "restore",
    "damageinfo",
    "effectdata",
    "movedata",
    "recipientfilter",
    "usercmd",
    "vehicle",
    "material",
    "panel",
    "particle",
    "particleemitter",
    "texture",
    "usermsg",
    "convar",
    "mesh",
    "matrix",
    "sound",
    "pixelvishandle",
    "dlight",
    "video",
    "file"
    };

    typedef int(*CFunc) (lua_State* state);

    class HLuaError;
    class CLuaGameCallback
    {
    private:
    virtual ILuaObject* CLuaGameCallback::CreateLuaObject(void) = 0;
    virtual void CLuaGameCallback:estroyLuaObject(ILuaObject*) = 0;
    virtual void CLuaGameCallback::ErrorPrint(char const*, bool) = 0;
    virtual void CLuaGameCallback::Msg(char const*, bool) = 0;
    //virtual void CLuaGameCallback::MsgColour(char const*, Color const&) = 0;
    virtual void CLuaGameCallback::LuaError(HLuaError*) = 0;
    virtual void CLuaGameCallback::InterfaceCreated(ILuaInterface*) = 0;
    };

    class ILuaInterface
    {
    public:
    virtual void* Top(void) = 0; // 0
    virtual void* Push(int) = 0; // 1
    virtual void* Pop(int stackpos = 1) = 0; // 2
    virtual void* GetTable(int) = 0; // 3
    virtual void* GetField(int, char const*) = 0; // 4
    virtual void* SetField(int, char const*) = 0; // 5
    virtual void* CreateTable(void) = 0; // 6
    virtual void* SetTable(int) = 0; // 7
    virtual void* SetMetaTable(int) = 0; // 8
    virtual ILuaObject* GetMetaTable(int) = 0; // 9
    virtual void* Call(int, int) = 0; // 10
    virtual void* PCall(int, int, int) = 0; // 11
    virtual void* Equal(int, int) = 0; // 12
    virtual void* RawEqual(int, int) = 0; // 13
    virtual void* Insert(int) = 0; // 14
    virtual void* Remove(int) = 0; // 15
    virtual void* Next(int) = 0; // 16
    virtual void* NewUserdata(unsigned int) = 0; // 17
    virtual void* ThrowError(char const*) = 0; // 18
    virtual void* CheckType(int, int) = 0; // 19
    virtual void* ArgError(int, char const*) = 0; // 20
    virtual void* RawGet(int) = 0; // 21
    virtual void* RawSet(int) = 0; // 22
    virtual const char* GetString(int, unsigned int*) = 0; // 23
    virtual double GetNumber(int) = 0; // 24
    virtual bool GetBool(int) = 0; // 25
    virtual CFunc GetCFunction(int) = 0; // 26
    virtual void* GetUserdata(int) = 0; // 27
    virtual void PushNil(void) = 0; // 28
    virtual void PushString(char const*, unsigned int iLen = 0) = 0; // 29
    virtual void PushNumber(double) = 0; // 30
    virtual void PushBool(bool) = 0; // 31
    virtual void PushCFunction(CFunc) = 0; // 32
    virtual void PushCClosure(CFunc, int) = 0; // 33
    virtual void PushUserdata(void*) = 0; // 34
    virtual void* ReferenceCreate(void) = 0; // 35
    virtual void* ReferenceFree(int) = 0; // 36
    virtual void* ReferencePush(int) = 0; // 37
    virtual void* PushSpecial(int) = 0; // 38
    virtual void* IsType(int, int) = 0; // 39
    virtual void* GetType(int) = 0; // 40
    virtual void* GetTypeName(int) = 0; // 41
    virtual void* CreateMetaTableType(char const*, int) = 0; // 42
    virtual void* CheckString(int) = 0; // 43
    virtual void* CheckNumber(int) = 0; // 44
    virtual void* ObjLen(int) = 0; // 45
    virtual void* AddThreadedCall(void*) = 0; // 46
    virtual void* Init(void*, bool) = 0; // 47
    virtual void* Shutdown(void) = 0; // 48
    virtual void* Cycle(void) = 0; // 49
    virtual lua_State* GetLuaState(void); // 50
    virtual void* Global(void) = 0; // 51
    virtual ILuaObject* GetObject(int) = 0; // 52
    virtual void* DELETE_ME_5437(int) = 0; // 53
    virtual void* _DELETE_ME2466(int) = 0; // 54
    virtual void* PushLuaObject(ILuaObject*) = 0; // 55
    virtual void* PushLuaFunction(CFunc) = 0; // 56
    virtual void* LuaError(char const*, int) = 0; // 57
    virtual void* TypeError(char const*, int) = 0; // 58
    virtual void* CallInternal(int, int) = 0; // 59
    virtual void* CallInternalNoReturns(int) = 0; // 60
    virtual void* CallInternalGetBool(int) = 0; // 61
    virtual void* CallInternalGetString(int) = 0; // 62
    virtual void* CallInternalGet(int, ILuaObject*) = 0; // 63
    virtual void* _DELETE_ME(ILuaObject*, void*) = 0; // 64
    virtual void* NewGlobalTable(char const*) = 0; // 65
    virtual void* NewTemporaryObject(void) = 0; // 66
    virtual void* isUserData(int) = 0; // 67
    virtual void* GetMetaTableObject(char const*, int) = 0; // 68
    virtual void* GetMetaTableObject(int) = 0; // 69
    virtual void* GetReturn(int) = 0; // 70
    virtual void* IsServer(void) = 0; // 71
    virtual void* IsClient(void) = 0; // 72
    virtual void* IsDedicatedServer(void) = 0; // 73
    virtual void* DestroyObject(ILuaObject*) = 0; // 74
    virtual void* CreateObject(void) = 0; // 75
    virtual void* SetMember(ILuaObject*, ILuaObject*, ILuaObject*) = 0; // 76
    virtual void* GetNewTable(void) = 0; // 77
    virtual void* SetMember(ILuaObject*, float) = 0; // 78
    virtual void* SetMember(ILuaObject*, float, ILuaObject*) = 0; // 79
    virtual void* SetMember(ILuaObject*, char const*) = 0; // 80
    virtual void* SetMember(ILuaObject*, char const*, ILuaObject*) = 0; // 81
    virtual void* SetIsServer(bool) = 0; // 82
    virtual void* PushLong(long) = 0; // 83
    virtual void* GetFlags(int) = 0; // 84
    virtual void* FindOnObjectsMetaTable(int, int) = 0; // 85
    virtual void* FindObjectOnTable(int, int) = 0; // 86
    virtual void* SetMemberFast(ILuaObject*, int, int) = 0; // 87
    virtual void* RunString(char const*, char const*, char const*, bool, bool) = 0; // 88
    virtual void* IsEqual(ILuaObject*, ILuaObject*) = 0; // 89
    virtual void* Error(char const*) = 0; // 90
    virtual void* GetStringOrError(int) = 0; // 91
    virtual void* RunLuaModule(char const*) = 0; // 92
    virtual void* FindAndRunScript(char const*, bool, bool, char const*) = 0; // 93
    virtual void* SetPathID(char const*) = 0; // 94
    virtual void* GetPathID(void) = 0; // 95
    virtual void* ErrorNoHalt(char const*, ...) = 0; // 96
    virtual void* Msg(char const*, ...) = 0; // 97
    virtual void* PushPath(char const*) = 0; // 98
    virtual void* PopPath(void) = 0; // 99
    virtual void* GetPath(void) = 0; // 100
    virtual void* GetColor(int) = 0; // 101
    virtual void* PushColor(int, int, int, int) = 0; // 102
    virtual void* GetStack(int, void*) = 0; // 103
    virtual void* GetInfo(char const*, void*) = 0; // 104
    virtual void* GetLocal(void*, int) = 0; // 105
    virtual void* GetUpvalue(int, int) = 0; // 106
    virtual void* RunStringEx(char const*, char const*, char const*, bool, bool, bool) = 0; // 107
    virtual void* DELETE_ME1(char const*, int) = 0; // 108
    virtual void* GetDataString(int, void**) = 0; // 109
    virtual void* ErrorFromLua(char const*, ...) = 0; // 110
    virtual void* GetCurrentLocation(void) = 0; // 111
    virtual void* MsgColour(void*, char const*, ...) = 0; // 112
    virtual void* SetState(lua_State*) = 0; // 113
    virtual void* DELETE_ME2(void) = 0; // 114
    virtual void* GetCurrentFile(char&) = 0; // 115
    virtual void* CompileString(void*, char const&) = 0; // 116
    virtual void* ThreadLock(void) = 0; // 117
    virtual void* ThreadUnlock(void) = 0; // 118
    virtual void* CallFunctionProtected(int, int, bool) = 0; // 119
    virtual void* Require(char const*) = 0; // 120
    virtual void* GetActualTypeName(int) = 0; // 121
    virtual void* SetupInfiniteLoopProtection(void) = 0; // 122

    CLuaGameCallback* m_pCallback;
    };

    class CLuaShared
    {
    public:
    virtual void* CLuaShared::Init(void* (*)(char const*, int*), bool, void*, void*); // 0
    virtual void* CLuaShared::Shutdown(void); // 1
    virtual void* CLuaShared:umpStats(void); // 2
    virtual void* CLuaShared::CreateLuaInterface(unsigned char, bool); // 3
    virtual void* CLuaShared::CloseLuaInterface(ILuaInterface*);
    virtual void padding00() = 0;
    virtual ILuaInterface* CLuaShared::GetLuaInterface(unsigned char);
    virtual void* CLuaShared::LoadFile(std::string const&, std::string const&, bool, bool);
    virtual void* CLuaShared::GetCache(std::string const&);
    virtual void* CLuaShared::MountLua(char const*);
    virtual void* CLuaShared::MountLuaAdd(char const*, char const*);
    virtual void* CLuaShared::UnMountLua(char const*);
    virtual void* CLuaShared::SetFileContents(char const*, char const*);
    virtual void* CLuaShared::SetLuaFindHook(void*);
    virtual void padding01() = 0;
    };

    class ILuaBase
    {
    public:
    virtual int Top(void) = 0;
    virtual void Push(int iStackPos) = 0;
    virtual void Pop(int iAmt = 1) = 0;
    virtual void* GetTable(int iStackPos) = 0;
    virtual void GetField(int iStackPos, const char* strName) = 0;
    virtual void SetField(int iStackPos, const char* strName) = 0;
    virtual void CreateTable() = 0;
    virtual void SetTable(int i) = 0;
    virtual void SetMetaTable(int i) = 0;
    virtual bool GetMetaTable(int i) = 0;
    virtual void Call(int iArgs, int iResults) = 0;
    virtual int PCall(int iArgs, int iResults, int iErrorFunc) = 0;
    virtual int Equal(int iA, int iB) = 0;
    virtual int RawEqual(int iA, int iB) = 0;
    virtual void Insert(int iStackPos) = 0;
    virtual void Remove(int iStackPos) = 0;
    virtual int Next(int iStackPos) = 0;
    virtual void* NewUserdata(unsigned int iSize) = 0;
    virtual void ThrowError(const char* strError) = 0;
    virtual void CheckType(int iStackPos, int iType) = 0;
    virtual void ArgError(int iArgNum, const char* strMessage) = 0;
    virtual void RawGet(int iStackPos) = 0;
    virtual void RawSet(int iStackPos) = 0;
    virtual const char* GetString(int iStackPos = -1, unsigned int* iOutLen = NULL) = 0;
    virtual double GetNumber(int iStackPos = -1) = 0;
    virtual bool GetBool(int iStackPos = -1) = 0;
    virtual CFunc GetCFunction(int iStackPos = -1) = 0;
    virtual void* GetUserdata(int iStackPos = -1) = 0;
    virtual void PushNil() = 0;
    virtual void PushString(const char* val, unsigned int iLen = 0) = 0;
    virtual void PushNumber(double val) = 0;
    virtual void PushBool(bool val) = 0;
    virtual void PushCFunction(CFunc val) = 0;
    virtual void PushCClosure(CFunc val, int iVars) = 0;
    virtual void PushUserdata(void*) = 0;
    virtual int ReferenceCreate() = 0;
    virtual void ReferenceFree(int i) = 0;
    virtual void ReferencePush(int i) = 0;
    virtual void PushSpecial(int iType) = 0;
    virtual bool IsType(int iStackPos, int iType) = 0;
    virtual int GetType(int iStackPos) = 0;
    virtual const char* GetTypeName(int iType) = 0;
    virtual void CreateMetaTableType(const char* strName, int iType) = 0;
    virtual const char* CheckString(int iStackPos = -1) = 0;
    virtual double CheckNumber(int iStackPos = -1) = 0; //44
    virtual void unk45(void) = 0;
    virtual void unk46(void) = 0;
    virtual void unk47(void) = 0;
    virtual void unk48(void) = 0;
    virtual void unk49(void) = 0;
    virtual void unk50(void) = 0;
    virtual void unk51(void) = 0;
    virtual void unk52(void) = 0;
    virtual void unk53(void) = 0;
    virtual void unk54(void) = 0;
    virtual void unk55(void) = 0;
    virtual void unk56(void) = 0;
    virtual void unk57(void) = 0;
    virtual void unk58(void) = 0;
    virtual void unk59(void) = 0;
    virtual void unk60(void) = 0;
    virtual void unk61(void) = 0;
    virtual void unk62(void) = 0;
    virtual void unk63(void) = 0;
    virtual void unk64(void) = 0;
    virtual void unk65(void) = 0;
    virtual void unk66(void) = 0;
    virtual void unk67(void) = 0;
    virtual void unk68(void) = 0;
    virtual void unk69(void) = 0;
    virtual void unk70(void) = 0;
    virtual void unk71(void) = 0;
    virtual void unk72(void) = 0;
    virtual void unk73(void) = 0;
    virtual void unk74(void) = 0;
    virtual void unk75(void) = 0;
    virtual void unk76(void) = 0;
    virtual void unk77(void) = 0;
    virtual void unk78(void) = 0;
    virtual void unk79(void) = 0;
    virtual void unk80(void) = 0;
    virtual void unk81(void) = 0;
    virtual void unk82(void) = 0;
    virtual void unk83(void) = 0;
    virtual void unk84(void) = 0;
    virtual void unk85(void) = 0;
    virtual void unk86(void) = 0;
    virtual void unk87(void) = 0;
    virtual bool RunString(const char* pszFilename, const char* pszPath, const char* pszStringToRun, bool bRun = true, bool bShowErrors = true) = 0;
    virtual void unk89(void) = 0;
    virtual void unk90(void) = 0;
    virtual void unk91(void) = 0;
    virtual void unk92(void) = 0;
    virtual bool FindAndRunScript(const char* path, bool bRun = true, bool bShowErrors = true, const char* pszType = "!CLIENT") = 0;
    CLuaGameCallback* m_pCallback;
    };

    #endif

    I will be glad for any help!

  2. #2
    Itz Azap's Avatar
    Join Date
    Sep 2020
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0

    Dont worry

    Don't worry your not the only one, from what I have read its due to recent updates

  3. #3
    gefunkel's Avatar
    Join Date
    May 2012
    Gender
    male
    Location
    UK
    Posts
    12
    Reputation
    10
    Thanks
    1
    My Mood
    Breezy
    There was an update in 2019 that broke a lot of hacks. Haven't seen any updates for free hacks on MPGH since then. No idea about private hacks though.

Similar Threads

  1. [Help] Game Crashes After Injection Zeas Hack
    By MidoFox in forum Battlefield Play4Free Hacks
    Replies: 8
    Last Post: 07-02-2012, 01:36 PM
  2. CRASH AFTER INJECTION
    By danteeeee in forum Piercing Blow Discussions
    Replies: 3
    Last Post: 10-26-2011, 03:22 AM
  3. [Help] hl2.exe crashes after injecting hacks
    By albo33 in forum CounterStrike (CS) 1.6 Hacks / Counter Strike: Source (CSS) Hacks
    Replies: 3
    Last Post: 07-19-2011, 12:07 PM
  4. [Help] MAT Crash After Injection For CIB
    By Proyiehong in forum Mission Against Terror Discussions
    Replies: 6
    Last Post: 04-10-2011, 03:14 PM
  5. CA Crashing After Inject
    By zeoed in forum Combat Arms Help
    Replies: 7
    Last Post: 08-10-2010, 12:29 PM