Inf. Health: How to deal with obscan that requires you to get damaged first before being able to sca

Jan 22, 2018
5
0
1
#1
So I already done found the function that decreases the health value after you get damaged.

Unfortunately, the cheat table won't activate at fresh boot of the game because the function that decreases health can only be aobscanned once you get damaged.

How do you deal with this?
 

FreeER

RCE Fanatics
Talents
Mar 10, 2017
92
4
8
#2
if it's mono you might be able to get CE to jit it for you just by referencing the function (generally seen that done by enabling mono and using assert), though in that case you don't really need an AOBscan.

There's also a program called ngen that someone in Cheat The Game shared some info on, it allows you to pre-JIT the executable: https://www.onenote.com/webapp/pages?token=xNb-WUzBR7M1wG4qnqEz0p09hi3-wAGi1TEmgG8nNYbNng1niH7OKQNgPza3HZiYh6mU-3KGGThE0KdmQEPf9pGXF0t8c47v0&id=636555406275934909

It may or may not be very useful with tables/trainers since you'd have to distribute the binary and hope it worked for everyone or distribute ngen and run it on their executable and hope the same asm code is generated.

I'm not currently aware of anything else...
 

SunBeam

RCE Fanatics
Talents
Fearless Donors
Feb 4, 2018
687
357
63
#3
It's either Unity or a .NET game. It's like the only scenario for games to hit functions on conditions.
 

squall0833

Expert Cheater
Mar 4, 2017
60
3
8
#4
Recently there's a game I made the cheats is like that, opcode only can be aobscanned when u need to do or reach at some point in game for that opcode available to be scanned

In the end, i can only put notes on the cheat options to tell users what to do before activating the cheats

It would be great if there's a way for this kind of game.
 

DrummerIX

RCE Fanatics
Talents
Fearless Donors
Mar 22, 2017
741
123
43
#5
You can use a lua command to compile. Example from Pillars of Eternity 2 I've used:

{$lua}
LaunchMonoDataCollector()

mono_compile_method(mono_getJitInfo(getAddress('Game.UI:UICurrencyLabel:Update')).method)
mono_compile_method(mono_getJitInfo(getAddress('Game.UI:UICharacterCreationManager:GetRemainingAttributePoints')).method)
mono_compile_method(mono_getJitInfo(getAddress('Game.UI:UICharacterExperienceSliderGetter:NotifySelectionChanged')).method)
mono_compile_method(mono_getJitInfo(getAddress('Game:GlobalAchievementTracker:GetTotalNewGameBonusPoints')).method)
mono_compile_method(mono_getJitInfo(getAddress('Game:CharacterStats:CalculateAttribute')).method)
{$asm}

Just change the name of the function you want to compile.
 

TheyCallMeTim13

Wiki Monster
Talents
Fearless Donors
Mar 3, 2017
418
46
28
#6
Top Bottom