Skip to content
This repository has been archived by the owner on Jun 21, 2024. It is now read-only.

Commit

Permalink
add back ltcg sig, update ci
Browse files Browse the repository at this point in the history
  • Loading branch information
axstin committed Nov 30, 2022
1 parent bb955b0 commit 7a1fc88
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ jobs:
name: rbxfpsunlocker (Release, x64)
path: x64
- name: Zip binaries
run: zip -9 rbxfpsunlocker-x64.zip x64/rbxfpsunlocker.exe
run: zip -9 ../rbxfpsunlocker-x64.zip rbxfpsunlocker.exe

This comment has been minimized.

Copy link
@Aniayh

Aniayh Dec 12, 2022

roblox

working-directory: ./x64
- name: Release
uses: softprops/action-gh-release@v1
with:
Expand Down
32 changes: 27 additions & 5 deletions Source/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ struct RobloxProcess
{
auto gts_fn = result + 14 + ProcUtil::Read<int32_t>(handle, result + 10);

printf("[%p] GetTaskScheduler (sig 0): %p\n", handle, gts_fn);
printf("[%p] GetTaskScheduler (sig studio): %p\n", handle, gts_fn);

uint8_t buffer[0x100];
if (ProcUtil::Read(handle, gts_fn, buffer, sizeof(buffer)))
Expand All @@ -209,13 +209,29 @@ struct RobloxProcess
}
} else
{
// old signature (LTCG): 55 8B EC 83 E4 F8 83 EC 08 E8 ?? ?? ?? ?? 8D 0C 24
// 55 8B EC 83 E4 F8 83 EC 08 E8 ?? ?? ?? ?? 8D 0C 24
if (auto result = (const uint8_t *)ProcUtil::ScanProcess(handle, "\x55\x8B\xEC\x83\xE4\xF8\x83\xEC\x08\xE8\xDE\xAD\xBE\xEF\x8D\x0C\x24", "xxxxxxxxxx????xxx", start, end))
{
auto gts_fn = result + 14 + ProcUtil::Read<int32_t>(handle, result + 10);

printf("[%p] GetTaskScheduler (sig ltcg): %p\n", handle, gts_fn);

uint8_t buffer[0x100];
if (ProcUtil::Read(handle, gts_fn, buffer, sizeof(buffer)))
{
if (auto inst = sigscan::scan("\xA1\x00\x00\x00\x00\x8B\x4D\xF4", "x????xxx", (uintptr_t)buffer, (uintptr_t)buffer + 0x100)) // mov eax, <TaskSchedulerPtr>; mov ecx, [ebp-0Ch])
{
//printf("[%p] Inst: %p\n", process, gts_fn + (inst - buffer));
return (const void *)(*(uint32_t *)(inst + 1));
}
}
}
// 55 8B EC 83 EC 10 56 E8 ?? ?? ?? ?? 8B F0 8D 45 F0
if (auto result = (const uint8_t *)ProcUtil::ScanProcess(handle, "\x55\x8B\xEC\x83\xEC\x10\x56\xE8\x00\x00\x00\x00\x8B\xF0\x8D\x45\xF0", "xxxxxxxx????xxxxx", start, end))
else if (auto result = (const uint8_t *)ProcUtil::ScanProcess(handle, "\x55\x8B\xEC\x83\xEC\x10\x56\xE8\x00\x00\x00\x00\x8B\xF0\x8D\x45\xF0", "xxxxxxxx????xxxxx", start, end))
{
auto gts_fn = result + 12 + ProcUtil::Read<int32_t>(handle, result + 8);

printf("[%p] GetTaskScheduler (sig 1): %p\n", handle, gts_fn);
printf("[%p] GetTaskScheduler (sig non-ltcg): %p\n", handle, gts_fn);

uint8_t buffer[0x100];
if (ProcUtil::Read(handle, gts_fn, buffer, sizeof(buffer)))
Expand All @@ -232,7 +248,7 @@ struct RobloxProcess
{
auto gts_fn = result + 15 + ProcUtil::Read<int32_t>(handle, result + 11);

printf("[%p] GetTaskScheduler (sig 2): %p\n", handle, gts_fn);
printf("[%p] GetTaskScheduler (sig uwp): %p\n", handle, gts_fn);

uint8_t buffer[0x100];
if (ProcUtil::Read(handle, gts_fn, buffer, sizeof(buffer)))
Expand Down Expand Up @@ -280,6 +296,7 @@ struct RobloxProcess

if (!ts_ptr)
{
const auto start_time = std::chrono::steady_clock::now();
ts_ptr = FindTaskScheduler();

if (!ts_ptr)
Expand All @@ -288,6 +305,11 @@ struct RobloxProcess
NotifyError("rbxfpsunlocker Error", "Unable to find TaskScheduler! This is probably due to a Roblox update-- watch the github for any patches or a fix.");
return;
}
else
{
const auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start_time).count();
printf("[%p] Found TaskScheduler address in %lldms\n", handle, elapsed);
}
}

if (ts_ptr && !fd_ptr)
Expand Down
2 changes: 1 addition & 1 deletion Source/rfu.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#define RFU_VERSION "4.4.3"
#define RFU_VERSION "4.4.4"
#define RFU_GITHUB_REPO "axstin/rbxfpsunlocker"

bool CheckForUpdates();
Expand Down

2 comments on commit 7a1fc88

@nonplussedflame

This comment was marked as off-topic.

@blackcreatoravon

This comment was marked as off-topic.

Please sign in to comment.