Categories > Exploiting > Roblox >

Help with creating an internal executor

New Reply

Posts: 6

Threads: 3

Joined: Nov, 2024

Reputation: 0

Posted

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

  • 0

  • Comment

RealNickk

nick / reversed-coffee

patron

Posts: 31

Threads: 3

Joined: Mar, 2023

Reputation: 10

Replied

Whatever "updated" offsets you have probably aren't valid. The crash is likely an access violation. You'll need to reconstruct the scheduler manually to get the correct offsets.

 

A good place to start is to learn how to reverse engineer. You won't get far without that. You can simply use a tool like ReClass.NET to reconstruct the class from scratch using hints from RTTI, then you'll be able to find out why you're crashing.

 

Additionally, Roblox uses many methods to protect its internal integrity, so there may be a chance that it's detecting something.

  • 0

  • Comment

Used to be involved with game hacking, now I'm involved in cybersecurity. https://reversed.coffee/blog

Posts: 6

Threads: 3

Joined: Nov, 2024

Reputation: 0

Replied

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

Comments

RealNickk 10 Reputation

Commented

Yup, no problem. I would advise against using "address dumper" tools that give you offsets to functions and static pointers because they tend to provide inaccurate information and if they break, you won't know enough internal information about the game to find the correct offsets.

 

Definitely look into tools like Scylla, PETools, and ReClass.NET. Could also dump the process memory and suspend the game using Process Hacker and open the memory dump open in Cheat Engine for an uninterrupted (but static) reverse engineering experience, although I don't know if virtual addresses will be retained properly or not - which will be required for pointer reference scanning.

  • 0

boui 0 Reputation

Commented

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.

  • 0

  • 0

  • Comment

Added

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.

  • 0

  • Comment

Entity

Usability >> modern

vip

Posts: 417

Threads: 41

Joined: May, 2022

Reputation: 46

Replied

May you try 0x2D91830?

  • 0

  • Comment

Posts: 1

Threads: 0

Joined: Nov, 2024

Reputation: 0

Replied

Thank you so much for the help.

  • 0

  • Comment

Login to unlock the reply editor

Add your reply

Users viewing this thread:

( Members: 0, Guests: 1, Total: 1 )