blaannk / Redmatch2-Internal

A simple, poorly coded and functional cheat for the game RedMatch2.
5 stars 1 forks source link

Redmatch 2 #2

Closed fluffysnaff closed 6 months ago

fluffysnaff commented 7 months ago

Hey I made a simple cheat for this recently, but I stopped cuz the anti cheat is obfuscated and I don't have the older unobfuscated RM2 files.

NVIDIA_Share_yj8Zs024lb NVIDIA_Share_u6FkKJpouo https://streamable.com/hlf9b3

For rapid fire these values don't get you kicked 99% of time(on the ak47 you can use basically anything):

float useDelayRifle{ 0.05f };
float useDelayOther{ 0.3f };

For no spread there are more values you can modify which make the crosshair not flicker and the no spread is more accurate

    // Disables normal bulletSpread
    player->fields.bulletSpread = 0.f;

    for (int i = 0; i < static_cast<int>(player->fields.items->max_length); i++)
    {
        const Item_o* item = player->fields.items->m_Items[i];
        if (!item)
            continue;
        item->fields.info->fields.adsBulletSpread = 0.f;
        item->fields.info->fields.adsMovementSpreadMultiplier = 0.f;
        item->fields.info->fields.adsSpread = 0.f;
        item->fields.info->fields.bulletSpread = 0.f;
        item->fields.info->fields.normalSpread = 0.f;
        item->fields.info->fields.bulletSpreadDecrease = 0.f;
        item->fields.info->fields.maxBulletSpread = 0.f;
        item->fields.info->fields.movementSpreadMultiplier = 0.f;
    }

Anti shielded and fly hack are both running in the hook of the function PlayerController->Update

There is an anti-cheat they added to stop rapid fire cheats and potentionally other hacks. But from the older game dumps I saw, there is only a part of it that's not unobfuscated. This is what I disable(but it doesn't work 100%).

void HMHacks::ACBypass()
{
    // Anti-Anti cheat
    PlayerController_o* player = hmHelper->m_pSdk->GetLocalPlayer();
    if (!player)
        return;

    // Disable offenses and fireTimeDifference stuff
    player->fields.antiCheat_offenses = 0;
    player->fields.antiCheat_lastFireTime = -1;
    player->fields.fireTimeDifference->fields._average_k__BackingField = 999.f;
    player->fields.fireTimeDifference->fields.sampleAccumulator = 999.f;

    // Remove all samples from fireTimeDifference
    const System_Collections_Generic_Queue_float__o* samples = player->fields.fireTimeDifference->fields.samples;
    for (int i = 0; i < samples->fields._size; i++)
        samples->fields._array->m_Items[i] = 999.f;

    // QOL features
    if (!player->fields.items)
        return;
    for (int i = 0; i < static_cast<int>(player->fields.items->max_length); i++)
    {
        Item_o* item = player->fields.items->m_Items[i];
        if (!item)
            continue;

        if (hmHelper->m_pConfig->noSpread.enabled)
        {
            // On no spread -> force scope in kill log(less sus)
            item->fields.info->fields.noscope = false;

            // If OP shotgun enabled -> force sniper in kill logs(so so much less sus)
            if (item->fields.info->fields.damageData == static_cast<int32_t>(DamageDataEnum::shotgun))
                item->fields.info->fields.damageData = static_cast<int32_t>(DamageDataEnum::sniper);
        }
    }
}

On unknown cheats there was a really cool hack for this. It had full anti cheat bypass and DLC + seasonal cosmetics unlocker, chams, silent aim, force join. I reversed it, but it's useless because it hooks functions by names. But if you can reverse the anti cheat class in RM2 then you can hook the anti cheat functions and fully disable it. https://www.unknowncheats.me/forum/other-fps-games/584150-redmatch-2-internal-cheat.html

There is also this open source cheat that has the il2cpp dumped header with names, most of them still work. https://github.com/nerdie12/redmatch-cheat

blaannk commented 7 months ago

Thanks for all the advice, it's really interesting. Do you think my method of making the aimbot with the coordinates on the screen rather than the 3D coordinates is the right one?

fluffysnaff commented 7 months ago

I think it's fine, cuz you can have unlimited fov

wa0101 commented 6 months ago

Thanks it's really useful