Profile Picture

boui

Reputation: 0 [rate]

Joined: Nov, 2024

Last online:

Etc

Send Message

Threads List
Possible Alts

Activity Feed

Replied to thread : LOOKING FOR DEVELOPER WHO CAN MAKE A DLL AND CODE IN C++ **PAYING**


100% unc and sunc for 30$? and add a keysystem? thanks, nobody will take that

Created a new thread : Help with pasting a new injection methods


So hyperion v4.4.1 released and WinVerifyTrust injection doesn't work anymore... CreateRemoteThread is blocked, allocated memory is watched... any free methods for the skids?... I just don't wanna start making an external executor based on drivers and more things..

Created a new thread : Need help with recreating lua_pushvalue/setobj2s


So, my code crashes. I have decided I won't use shuffles (nihon did this back in the day).
I have recreated index2addr, I have luaO_nilobject & pseudo2addr addresses correct.

inline TValue* index2addr(lua_State* L, int idx)
{
	StkId top = gettop(L); // L->top
	StkId base = getbase(L); // L->base
	if (idx > 0)
	{
		TValue* o = base + (idx - 1);
		if (o > top)
			return *reinterpret_cast<TValue**>(base + offsets::lua_nilobject);
		else
			return o;
	}
	else if (idx > LUA_REGISTRYINDEX)
	{
		return top + idx;
	}
	else
	{
		return pseudo2addr(L, idx);
	}
}

This is index2addr.

inline void r_setobj2s(TValue* obj1, TValue* obj2) // thanks to immune
{
	TValue* o1 = (TValue*)obj1, * o2 = (TValue*)obj2;
	o1->tt = o2->tt;
	o1->value = o2->value;
}

This is setobj2s.

inline void lua_pushvalue(lua_State* L, int idx)
{
	TValue* o = index2addr(L, idx);

	r_setobj2s(*reinterpret_cast<TValue**>(L + offsets::top), o);
	*reinterpret_cast<uintptr_t*>(L + offsets::top) += 0x10;
}

And this is pushvalue.

Idk why, but setobj2s crashes... Any guesses?

Created a new thread : need help with lua vm shuffles


First, a better explanation (since I think that roblox 2016 source shuffles are very outdated)
Second, how do I even implement them into my lua so i can use basic functions such as lua_pushstring

Replied to thread : Help with creating an internal executor


For someone who wants to help:
I have got a new error (crash). My decrypt state function just crashes.

v37 = sub_D35D80(v36 + 0x118, &v301, &v312);  //GLOBAL STATE
v38 = sub_AEEE8F0(v37 + 0x88);                  //DECRYPT STATE

As you can see, i think i have valid offsets and everything.

But this code (decrypt state) errors.

const uint32_t identity = 0;
const uintptr_t script = 0;

/*
    v37 = sub_1135D80(v36 + 0x118, &v301, &v312);  GLOBAL STATE
    v38 = sub_EEE8F0(v37 + 0x88);                  DECRYPT STATE

*/

uintptr_t state = getGlobalState(scriptContext+0x118, &identity, &script);
r_print(1, std::format("Global state: {:#x}", state).c_str());

lua_State* rL = decryptState(state+0x88);
r_print(1, std::format("Lua state: {:#x}", reinterpret_cast<uintptr_t>(rL)).c_str());

(offsets are shifted since i rebased it, i have them normal)
I'd like to have some help on that.

Commented to thread : Help with creating an internal executor


Bad thing that PETools, my beloved, doesn't work (the github version) with x64.
I think I have some community-built dumpers so I can get roblox dumped and check it around. Thanks for giving me plenty more of dumpers and information.

Replied to thread : Help with creating an internal executor


thanks, I'm starting to learn more reverse engineering (on C++) from Roblox
then, I'll have to ge tthe offsets myself, using IDA Pro & dumpers for exe's

Created a new thread : Help with creating an internal executor


I can't get the Task Scheduler since the function itself (getTashScheduler with UPDATED offsets crashes itself?)

typedef uintptr_t(__cdecl* rbx_gettaskscheduler)();
uint64_t getTaskSchedulerAddress = startAddress + offsets::getTaskScheduler;
rbx_gettaskscheduler getTaskScheduler = reinterpret_cast<rbx_gettaskscheduler>(getTaskSchedulerAddress);
inline uintptr_t getTaskScheduler = 0x2d91d65;

like why?

uintptr_t get_job(const char* job_name) noexcept {
    auto scheduler = getTaskScheduler();

    auto jobs_start = *reinterpret_cast<uintptr_t*>(scheduler + 0x198);
    const auto jobs_end = *reinterpret_cast<uintptr_t*>(scheduler + 0x1a0);

    auto result = uintptr_t();
    for (; jobs_start < jobs_end; jobs_start += 8u) {
        const auto job = *reinterpret_cast<uintptr_t*>(jobs_start);
        r_print(0, std::to_string(job).c_str());

        if (*reinterpret_cast<std::string*>(job + 0x90) == job_name)
            result = job;
    }
    
    return result;
}

i mean, it just crashes
i need some help since all of people that could've helped are retarded and they wont help me