// Token: 0x1700015B RID: 347
// (get) Token: 0x060018EF RID: 6383 RVA: 0x00005940 File Offset: 0x00003B40
// (set) Token: 0x060018F0 RID: 6384 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x17000109")]
public ObscuredLong CurrentEnergy
{
[Token(Token = "0x60015D5")]
[Address(RVA = "0x893FD8", Offset = "0x893FD8", VA = "0x893FD8")]
get
{
return default(ObscuredLong);
}
[Token(Token = "0x60015D6")]
[Address(RVA = "0x893FF8", Offset = "0x893FF8", VA = "0x893FF8")]
set
{
}
}
Yes@Yaskashije i believe you said to reverse the function in ida?
Never tried that game myself, but good chances your assumption is correct.I've tried decompiling and then recompiling the apk, but it got stuck on a white screen (without changing any files)
Would there be some kind of function in anti cheat that is causing this?
After some more trial and error i found out that the white screen was caused because a certificate was lost during decompiling and recompiling/signing the apk. I finally got it to work by extracting and zipping the apk instead.Never tried that game myself, but good chances your assumption is correct.
Codestage Anticheat is a joke and I'd not be surprised if that were to work.So, for example if i would find a method that RemovesEnergy from the player object; I would only need to get the offset, hex search it in hxeditor and change it to false?
(Would it be unlikely that the anti cheat system compares values afterwards?)
Parameters:
- location: the location of the ObscuredInt
- value: the value we're setting the ObscuredInt to
*/
void SetObscuredIntValue(uint64_t location, int value){
int cryptoKey = *(int *)location;
*(int *)(location + 0x4) = value ^ cryptoKey;
}
A long should be an integer but more longer, so you could try to use this function:
C++:Parameters: - location: the location of the ObscuredInt - value: the value we're setting the ObscuredInt to */ void SetObscuredIntValue(uint64_t location, int value){ int cryptoKey = *(int *)location; *(int *)(location + 0x4) = value ^ cryptoKey; }
This should work fine and you will get the value that you want.
try to use this function instead:I actually tested this method to get the GET or to do a SET, but each time the game crashes when I activate the toogle in my menu, there are functions specific to NOP?
/*
Set the real value of an ObscuredFloat.
Parameters:
- location: the location of the ObscuredFloat
- value: the value we're setting the ObscuredFloat to
*/
void SetObscuredFloatValue(uint64_t location, float value){
int cryptoKey = *(int *)location;
/* use this intfloat to get the integer representation of our parameter value */
intfloat IF;
IF.f = value;
/* use this intfloat to generate our hacked ObscuredFloat */
intfloat IF2;
IF2.i = IF.i ^ cryptoKey;
*(float *)(location + 0x4) = IF2.f;
}
We use cookies to personalize content and ads, to provide social media features and to analyse our traffic. We also share necessary information with our advertising and analytics partners to optimize your experience on our site.
Learn more about cookies
We use cookies to personalize content and ads, to provide social media features and to analyse our traffic. We also share necessary information with our advertising and analytics partners to optimize your experience on our site.
Learn more about cookies