Page 1 of 1

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

Posted: Tue Mar 13, 2018 5:17 pm
by mdnpascual
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?

Re: Inf. Health: How to deal with obscan that requires you to get damaged first before being able to scan it?

Posted: Wed Mar 14, 2018 2:54 pm
by FreeER
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: [Link]

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...

Re: Inf. Health: How to deal with obscan that requires you to get damaged first before being able to scan it?

Posted: Fri Mar 16, 2018 2:58 pm
by SunBeam
It's either Unity or a .NET game. It's like the only scenario for games to hit functions on conditions.

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

Posted: Mon May 14, 2018 9:32 pm
by squall0833
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.

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

Posted: Mon May 14, 2018 9:43 pm
by DrummerIX
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.

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

Posted: Mon May 14, 2018 10:11 pm
by TimFun13
[URL='https://wiki.cheatengine.org/index.php?title=Tutorial:Mono:Basic#Scripted_JITting'][U]https://wiki.cheatengine.org/index.php?title=Tutorial:Mono:Basic#Scripted_JITting[/U][/URL]



Some times the address won't exist yet, so use [U][URL='https://wiki.cheatengine.org/index.php?title=Mono:Lua:mono_findMethod']mono_findMethod[/URL],[/U] if need be.