Advertisement
spidey_v6

Untitled

Nov 19th, 2020
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.78 KB | None | 0 0
  1.  
  2. #define ASLR(x)(x - 0x400000 + (DWORD)GetModuleHandleA(0))
  3.  
  4. #define Declare(address, returnValue, callingConvention, ...) (returnValue(callingConvention*)(__VA_ARGS__))(retcheckBypass(x(address)))
  5. #define r_lua_tostring(rL,i) r_lua_tolstring(rL, (i), NULL)
  6. #define r_lua_pop(rL,n) r_lua_settop(rL, -(n)-1)
  7. #define r_lua_getglobal(rL,s) r_lua_getfield(rL, LUA_GLOBALSINDEX, (s))
  8. #define r_lua_newtable(rL) r_lua_createtable(rL, 0, 0)
  9. #define x(x) (x - 0x400000 + (DWORD)GetModuleHandleA(0))
  10.  
  11. int R_LUA_TUSERDATA = 0;
  12. int R_LUA_TFUNCTION = 0;
  13. int R_LUA_TSTRING = 0;
  14. int R_LUA_TBOOLEAN = 0;
  15. int R_LUA_TNUMBER = 0;
  16. int R_LUA_TTABLE = 0;
  17. int R_LUA_TNIL = 0;
  18. int R_LUA_TTHREAD = 0;
  19. int R_LUA_TLIGHTUSERDATA = 0;
  20. int GDM;
  21.  
  22. typedef DWORD(getdatamodel2_CCV* gdm2)();
  23. gdm2 getdatamodel2 = (gdm2)(x(Adresses::getdatamodel2_addr));
  24.  
  25. typedef DWORD(__thiscall* getdatamodel)(DWORD, DWORD);
  26. getdatamodel r_getdatamodel = (getdatamodel)(x(Adresses::getdatamodel_addr));
  27.  
  28. typedef int(lual_error_CCV* ee)(int e, const char* n, ...);
  29. static ee r_luaL_error = (ee)x(Adresses::lual_error_addr); // 22
  30.  
  31. typedef void(lua_getfield_CCV* rgetfield)(DWORD rL, int idx, const char* k);
  32. rgetfield r_lua_getfield = (rgetfield)retcheckBypass(x(Adresses::lua_getfield_addr));
  33.  
  34. typedef int(lua_pushboolean_CCV* rboolean)(unsigned int, int);
  35. rboolean r_lua_pushboolean = (rboolean)(retcheckBypass(x(Adresses::lua_pushboolean_addr)));
  36.  
  37. typedef char* (lua_tolstring_CCV* rtolstring)(DWORD rL, int idx, size_t* size);
  38. rtolstring r_lua_tolstring = (rtolstring)(retcheckBypass(x(Adresses::lua_tolstring_addr)));
  39.  
  40. typedef bool(lua_toboolean_CCV* toboolean)(DWORD rL, bool idx);
  41. toboolean r_lua_toboolean = (toboolean)(x(Adresses::lua_toboolean_addr));
  42.  
  43. typedef void(lua_pushvalue_CCV* pushvalue)(DWORD rL, DWORD idx);
  44. pushvalue r_lua_pushvalue = (pushvalue)(retcheckBypass(x(Adresses::lua_pushvalue_addr)));
  45.  
  46. typedef double(lua_pushnumber_CCV* pushnumber)(DWORD rL, double idx);
  47. pushnumber r_lua_pushnumber = (pushnumber)(retcheckBypass(x(Adresses::lua_pushnumber_addr)));
  48.  
  49. typedef void(lua_pushstring_CCV* rpushstring)(DWORD rL, const char*);
  50. rpushstring r_lua_pushstring = (rpushstring)(retcheckBypass(x(Adresses::lua_pushstring_addr)));
  51.  
  52. typedef int(lua_pcall_CCV* rLua_pcall)(DWORD lst, int nargs, int nresults, int errfunc);
  53. rLua_pcall r_lua_pcall = (rLua_pcall)retcheckBypass(x(Adresses::lua_pcall_addr));
  54.  
  55. typedef DWORD(lua_next_CCV* next2)(DWORD rL, int idx);
  56. next2 r_lua_next = (next2)(retcheckBypass(x(Adresses::lua_next_addr)));
  57.  
  58. typedef double(lua_tonumber_CCV* rtonumber)(DWORD, int, int);
  59. rtonumber r_lua_tonumber = (rtonumber)(x(Adresses::lua_tonumber_addr));
  60.  
  61. typedef void(lua_pushcclosure_CCV* rpushcclosure)(DWORD rL, int fn, int non, int a1, int xd);
  62. rpushcclosure r_lua_pushcclosure = (rpushcclosure)(retcheckBypass(x(Adresses::lua_pushcclosure_addr))); //r_Lua_PushCCloser_Type
  63.  
  64. typedef void(lua_createtable_CCV* rcreatetable)(DWORD rL, int num, int fix);
  65. rcreatetable r_lua_createtable = (rcreatetable)(retcheckBypass(x(Adresses::lua_createtable_addr)));
  66.  
  67. typedef DWORD(lua_newthread_CCV* rnewthread)(DWORD);
  68. rnewthread r_lua_newthread = (rnewthread)retcheckBypass(x(Adresses::lua_newthread_addr));
  69.  
  70. typedef void* (lua_newuserdata_CCV* rnewuserdata)(DWORD, size_t, int);
  71. rnewuserdata r_lua_newuserdata = (rnewuserdata)(retcheckBypass(x(Adresses::lua_newuserdata_addr)));
  72.  
  73. typedef void(lua_rawgeti_CCV* rrawgeti)(DWORD, DWORD, DWORD);
  74. rrawgeti r_lua_rawgeti = (rrawgeti)retcheckBypass(x(Adresses::lua_rawgeti_addr));
  75.  
  76. typedef void(lua_rawseti_CCV* rrawgeti)(DWORD, DWORD, DWORD);
  77. rrawgeti r_lua_rawseti = (rrawgeti)retcheckBypass(x(Adresses::lua_rawseti_addr));
  78.  
  79. typedef void* (lua_getmettable_CCV* rgetmetatable)(DWORD rL, int idx);
  80. rgetmetatable r_lua_getmetatable = (rgetmetatable)(retcheckBypass(x(Adresses::lua_getmettable_addr)));
  81.  
  82. typedef int (lua_setmetatable_CCV* rsetmetatable)(DWORD rL, int idx);
  83. rsetmetatable r_lua_setmetatable = (rsetmetatable)(retcheckBypass(x(Adresses::lua_setmetatable_addr)));
  84.  
  85. typedef int(lua_touserdata_CCV* rtouserdata)(DWORD, int);
  86. rtouserdata r_lua_touserdata = (rtouserdata)(retcheckBypass(x(Adresses::lua_touserdata_addr)));
  87.  
  88. typedef void(fireclickdetector_CCV* fireclick)(DWORD, float, DWORD);
  89. fireclick FireClick = (fireclick)x(Adresses::fireclickdetector_addr);
  90.  
  91. typedef void(lua_setreadonly_CCV* readonl)(int, int, int);
  92. readonl r_lua_setreadonly = (readonl)(x(Adresses::lua_setreadonly_addr));
  93.  
  94. typedef DWORD(lua_type_CCV* rtype)(DWORD, int);
  95. rtype r_lua_type = (rtype)(x(Adresses::lua_type_addr));
  96.  
  97. typedef void* (lua_settable_CCV* rsettable)(DWORD rL, int);
  98. rsettable r_lua_settable = (rsettable)(retcheckBypass(x(Adresses::lua_settable_addr)));
  99.  
  100. typedef DWORD(lual_ref_CCV* rref)(DWORD, DWORD);
  101. rref r_luaL_ref = (rref)(retcheckBypass(x(Adresses::lual_ref_addr)));
  102.  
  103. int r_lua_gettop(int rL)
  104. {
  105. return *(DWORD*)(rL + Adresses::top) - *(DWORD*)(rL + Adresses::base) >> 4;
  106. }
  107.  
  108. typedef void(lua_settop_CCV* rsettop)(DWORD rL, int idx);
  109. rsettop r_lua_settop = (rsettop)(retcheckBypass(x(Adresses::lua_settop_addr)));
  110.  
  111. typedef void(lua_pushnil_CCV* pushnil)(DWORD);
  112. pushnil r_lua_pushnil = (pushnil)(retcheckBypass(x(Adresses::lua_pushnil_addr)));
  113.  
  114. typedef void(lua_pushlightuserdata_CCV* rpushlight)(DWORD, void*);
  115. rpushlight r_lua_pushlightuserdata = (rpushlight)(retcheckBypass(x(Adresses::lua_pushlightuserdata_addr)));
  116.  
  117. typedef bool(flog_getvalue_CCV* FLog)(const std::string& name, std::string& value, bool alsoCheckUnknown);
  118. FLog GetValue = reinterpret_cast<FLog>(x(Adresses::flog_getvalue_addr));
  119.  
  120. typedef bool(flog_setvalue_CCV* SLog)(const std::string& name, const std::string& value, int Type, bool loadedFromServer);
  121. SLog SetValue = reinterpret_cast<SLog>(x(Adresses::flog_setvalue_addr));
  122.  
  123. typedef uint32_t(index2adr_CCV* T_index2adr)(uint32_t, uint32_t); // Auto updating convention
  124. T_index2adr r_index2adr;
  125.  
  126.  
  127. static TValue* lua_index2adr(lua_State* L, int idx) {
  128. if (idx > 0) {
  129. TValue* o = L->base + (idx - 1);
  130. api_check(L, idx <= L->ci->top - L->base);
  131. if (o >= L->top) return cast(TValue*, luaO_nilobject);
  132. else return o;
  133. }
  134. else if (idx > LUA_REGISTRYINDEX) {
  135. api_check(L, idx != 0 && -idx <= L->top - L->base);
  136. return L->top + idx;
  137. }
  138. else switch (idx) {
  139. case LUA_REGISTRYINDEX: return registry(L);
  140. case LUA_ENVIRONINDEX: {
  141. Closure* func = curr_func(L);
  142. sethvalue(L, &L->env, func->c.env);
  143. return &L->env;
  144. }
  145. case LUA_GLOBALSINDEX: return gt(L);
  146. default: {
  147. Closure* func = curr_func(L);
  148. idx = LUA_GLOBALSINDEX - idx;
  149. return (idx <= func->c.nupvalues)
  150. ? &func->c.upvalue[idx - 1]
  151. : cast(TValue*, luaO_nilobject);
  152. }
  153. }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement