Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Rimworld: mono address not stable?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
zhaihouxi
Newbie cheater
Reputation: 0

Joined: 27 Jul 2020
Posts: 17

PostPosted: Mon Aug 09, 2021 12:42 am    Post subject: Rimworld: mono address not stable? Reply with quote

[enable]
{$lua}
mono_initialize()
LaunchMonoDataCollector()
--local mId = mono_findMethod('Assembly-CSharp', 'RimWorld', 'Pawn_SkillTracker', 'SkillsTick')
--mono_compile_method(mId)
--local mId = mono_findMethod('Assembly-CSharp', 'RimWorld', 'SkillRecord', 'Learn')
--mono_compile_method(mId)
{$asm}

// disable decay
// call Interval()
//RimWorld:Pawn_SkillTracker:SkillsTick+15e:
//db eb 0b 90 90 90 90 90 90 90 90 90 90 90

// disable lvl up to 20 so skill can be 50
// levelInt = 20 => levelInt--
RimWorld:SkillRecord:Learn+348:
//dec eax
//mov [rdi+20],eax
db ff c8 89 47 20 90 90

// bill skill range check > max20
// jng ...
// 0f 8e 4a010000
// jmp ...
//
//RimWorld:Bill:PawnAllowedToStartAnew+22a:
//db e9 4a 01 00 00 90

// fast time scale
Verse:TickManager:get_TickRateMultiplier+200:
db 00 00 c0 41

Verse:TickManager:get_TickRateMultiplier+1f0:
//float 24.0
db 00 00 c0 41

[disable]

I made these change in ct. It works some times, but it could fail.
I find out that the effect code could be a dozen lines up or down, why?

Verse:TickManager:get_TickRateMultiplier+107 - F3 0F10 05 E1000000 - movss xmm0,[Verse:TickManager:get_TickRateMultiplier+1f0]

i changed the Verse:TickManager:get_TickRateMultiplier+1f0, the field could change every time. Shocked

how do i make the change stable?
Back to top
View user's profile Send private message
LeFiXER
Grandmaster Cheater Supreme
Reputation: 20

Joined: 02 Sep 2011
Posts: 1069
Location: 0x90

PostPosted: Mon Aug 09, 2021 2:13 am    Post subject: Reply with quote

Please use code tags

Code:

[enable]
{$lua}
mono_initialize()
LaunchMonoDataCollector()
--local mId = mono_findMethod('Assembly-CSharp', 'RimWorld', 'Pawn_SkillTracker', 'SkillsTick')
--mono_compile_method(mId)
--local mId = mono_findMethod('Assembly-CSharp', 'RimWorld', 'SkillRecord', 'Learn')
--mono_compile_method(mId)
{$asm}

// disable decay
// call Interval()
//RimWorld:Pawn_SkillTracker:SkillsTick+15e:
//db eb 0b 90 90 90 90 90 90 90 90 90 90 90

// disable lvl up to 20 so skill can be 50
// levelInt = 20 => levelInt--
RimWorld:SkillRecord:Learn+348:
//dec eax
//mov [rdi+20],eax
db ff c8 89 47 20 90 90

// bill skill range check > max20
// jng ...
// 0f 8e 4a010000
// jmp ...
//
//RimWorld:Bill:PawnAllowedToStartAnew+22a:
//db e9 4a 01 00 00 90

// fast time scale
Verse:TickManager:get_TickRateMultiplier+200:
db 00 00 c0 41

Verse:TickManager:get_TickRateMultiplier+1f0:
//float 24.0
db 00 00 c0 41

[disable]


Uncommenting these lines would appear to resolve your issue.

Code:

--local mId = mono_findMethod('Assembly-CSharp', 'RimWorld', 'Pawn_SkillTracker', 'SkillsTick')
--mono_compile_method(mId)
--local mId = mono_findMethod('Assembly-CSharp', 'RimWorld', 'SkillRecord', 'Learn')
--mono_compile_method(mId)
Back to top
View user's profile Send private message
zhaihouxi
Newbie cheater
Reputation: 0

Joined: 27 Jul 2020
Posts: 17

PostPosted: Mon Aug 09, 2021 2:47 am    Post subject: Reply with quote

LeFiXER wrote:
Please use code tags

...


i found out that every time i get into the menu these codes are already compiled.

i think the problem is
Verse:TickManager:get_TickRateMultiplier+107 - F3 0F10 05 E1000000 - movss xmm0,[Verse:TickManager:get_TickRateMultiplier+1f0]

i can
allocate memory
mov eax,num
movq xmm0,eax

is there a way not allocating memory?
Back to top
View user's profile Send private message
LeFiXER
Grandmaster Cheater Supreme
Reputation: 20

Joined: 02 Sep 2011
Posts: 1069
Location: 0x90

PostPosted: Mon Aug 09, 2021 3:10 am    Post subject: Reply with quote

zhaihouxi wrote:

i found out that every time i get into the menu these codes are already compiled.


I mean in the forum:
Quote:

[code ]
... Your code here
[/ code] (without spaces)


zhaihouxi wrote:

i think the problem is

Code:

Verse:TickManager:get_TickRateMultiplier+107 - F3 0F10 05 E1000000 - movss xmm0,[Verse:TickManager:get_TickRateMultiplier+1f0]



i can
allocate memory
mov eax,num
movq xmm0,eax

is there a way not allocating memory?


You mean removing previously allocated memory? If so then yes

Code:

dealloc([allocated_memory_tag_name])


Note: square brackets not requried.
Back to top
View user's profile Send private message
zhaihouxi
Newbie cheater
Reputation: 0

Joined: 27 Jul 2020
Posts: 17

PostPosted: Mon Aug 09, 2021 5:00 am    Post subject: Reply with quote

LeFiXER wrote:
zhaihouxi wrote:

i found out that every time i get into the menu these codes are already compiled.


I mean in the forum:
Quote:

[code ]
... Your code here
[/ code] (without spaces)


zhaihouxi wrote:

i think the problem is

Code:

Verse:TickManager:get_TickRateMultiplier+107 - F3 0F10 05 E1000000 - movss xmm0,[Verse:TickManager:get_TickRateMultiplier+1f0]



i can
allocate memory
mov eax,num
movq xmm0,eax

is there a way not allocating memory?


You mean removing previously allocated memory? If so then yes

Code:

dealloc([allocated_memory_tag_name])


Note: square brackets not requried.


Thank you.
The problem is the c# program is so dynamic, that a constant field can change its offset every time. Some time the constant is Verse:TickManager:get_TickRateMultiplier+107 - movss xmm0,[Verse:TickManager:get_TickRateMultiplier+1f0]
some time it becomes +1e0 +200... etc. Is there a way to edit this constant?
Back to top
View user's profile Send private message
LeFiXER
Grandmaster Cheater Supreme
Reputation: 20

Joined: 02 Sep 2011
Posts: 1069
Location: 0x90

PostPosted: Mon Aug 09, 2021 5:28 am    Post subject: Reply with quote

Use AOB injection. You can scan for the array of bytes within a specific region.

Code:

aobscanregion(symbol_name, address_from, address_to, aob_here)
Back to top
View user's profile Send private message
zhaihouxi
Newbie cheater
Reputation: 0

Joined: 27 Jul 2020
Posts: 17

PostPosted: Mon Aug 09, 2021 6:16 am    Post subject: Reply with quote

LeFiXER wrote:
Use AOB injection. You can scan for the array of bytes within a specific region.

Code:

aobscanregion(symbol_name, address_from, address_to, aob_here)


Perfectly solved. Thank you.
Back to top
View user's profile Send private message
LeFiXER
Grandmaster Cheater Supreme
Reputation: 20

Joined: 02 Sep 2011
Posts: 1069
Location: 0x90

PostPosted: Mon Aug 09, 2021 6:28 am    Post subject: Reply with quote

No problem Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites