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 


need help with a extremely grindy game

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Discussions
View previous topic :: View next topic  
Author Message
PearlGambler
Newbie cheater
Reputation: 1

Joined: 12 Jul 2011
Posts: 14

PostPosted: Wed Mar 20, 2013 11:49 am    Post subject: need help with a extremely grindy game Reply with quote

Hi

is there a way to hack the rate at which exp is gained

for eg a monster normally gives 10exp now with a hack it gives 4 times the exp instead i.e 40 (this should apply for all monsters)

i am asking this cuz the game i play has lot of characters and it becomes very annoying to keep changing exp value for every one

in this game you party consists of not 4 but 16 chars

the name of game is labyrinth of touhou if you want to know and this game has stupid amounts of grinding
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Wed Mar 20, 2013 12:44 pm    Post subject: Reply with quote

Yes. Find the address that writes to the experience and change the instruction that introduces the newly added experience. Once you have found that instruction, inject some code that will multiply the value.
Back to top
View user's profile Send private message
PearlGambler
Newbie cheater
Reputation: 1

Joined: 12 Jul 2011
Posts: 14

PostPosted: Thu Mar 21, 2013 6:44 am    Post subject: Reply with quote

can you explain it in a little easier way

also can you find that address purely with cheat engine?


or can you link me a good tutorial for this that basically helps you find address like exp multiplier and something that influences the item drop rates etc

i am pretty poor with these things
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Thu Mar 21, 2013 9:28 am    Post subject: Reply with quote

Check out the Cheat Engine tutorial that comes with cheat engine. Once you have completed the tutorial and understand it, you should be able to answer most of your questions. If you still need help at that point, I will be glad to help.

However, if you don't care about learning and only want the answer, I would recommend starting a thread in the request sub-forum.
Back to top
View user's profile Send private message
PearlGambler
Newbie cheater
Reputation: 1

Joined: 12 Jul 2011
Posts: 14

PostPosted: Thu Mar 21, 2013 3:19 pm    Post subject: Reply with quote

hello

yes i have completed the tutorial but i got very confused at the 8th one

my problem here is where do you even start?

this address which assigns how exp is handled out never changes so how can i find a value like that to multiply it

or can you tell me which tutorial tells you how to find addresses without knowing what the intial value even

if i am not wrong you are given a value in the c.e tutorial and asked to make modifications from it

i am pretty sure it would be after the 8th ones ...sigh problem is i dont even know what to search for these kind of codes

thanks for your time
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Thu Mar 21, 2013 3:35 pm    Post subject: Reply with quote

Quote:
this address which assigns how exp is handled out never changes so how can i find a value like that to multiply it
You don't. You find the address that holds the value for your experience. Make your initial search by searching for an unknown value (of all types, if necessary). Once your experience increases, scan for an increased value (or scan for the exact value of your experience, if you can). Keep doing that until you narrow down on your address. Once you have found the address, add it to your cheat list. Once added, right-click the address to find what writes to that address. The debugger window will open and when your experience changes again, the debugger window will populate with instructions. Click stop on the debugger window. Left-click on the instruction and click the 'show in disassembler' button. From here you can find the instruction that actually introduces the newly added experience and modify it to do what you want.

If you need help with the tutorial, you can refer to youtube and/or post your questions here, on the forum.

Edit: if you can't find the instruction that introduces the newly added experience, you can do something easier, such as adding a specific value in to the register that is being moved in to your experience. For example:

Let's say that the instruction that actually writes to your experience address is this:

mov [ebx+000000b0],edx

edx is the value that is being moved in to the address that stores your experience.

Just change it to this:

add edx,9
mov [ebx+000000b0],edx

Now, every time you gain experience, you will also get +9 experience on top of that.

This is just one example.
Back to top
View user's profile Send private message
PearlGambler
Newbie cheater
Reputation: 1

Joined: 12 Jul 2011
Posts: 14

PostPosted: Thu Mar 21, 2013 6:26 pm    Post subject: Reply with quote

allright i found out what dictates the exp give whew

now in the menu where you do the show dissemblemer i get three counts? or address like this

[edx+00000674],ecx
mov[edx+00000674],00000000
and one more which is quite similar to the second one

i guess i have to edit one of these to gain exp changing theme causes my game to freeze when a battle finishes and the exp is handed out but i am so close now
edit:
ok i finally got the code working now the way i wanted it to but still damn happy instead of multiplying it i just receive more exp i am happy with that

i guess the item modifier would be more hard to find tho since it depends on the monsters prolly but that k Razz


Last edited by PearlGambler on Thu Mar 21, 2013 6:57 pm; edited 1 time in total
Back to top
View user's profile Send private message
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Thu Mar 21, 2013 6:45 pm    Post subject: Reply with quote

PearlGambler wrote:
allright i found out what dictates the exp give whew

now in the menu where you do the show dissemblemer i get three counts? or address like this

[edx+00000674],ecx
mov[edx+00000674],00000000
and one more which is quite similar to the second one

i guess i have to edit one of these to gain exp changing theme causes my game to freeze when a battle finishes and the exp is handed out but i am so close now


Well the second one doesn't look like it, that looks more like when it's resetting xp to zero or whatever that's doing...

the first one seems more like it!

If it's crashing you're probably doing something wrong, how did you 'change' them? Just nop / replace with code that does nothing? I don't think that's what you'd want as then you probably wont get any xp! lol


Have that address selected in memory viewer, then from the tools menu select 'Auto Assemble' (at the bottom, or press CTRL + ALT + A) It will open up a Auto Assembler window...

Then select two things in this order from the 'Template' menu... 'Cheat Table Framework Code', then 'Code Injection'

as shown in this image:



It will automatically make a code injection script for you and figure out everything needed... This instruction is 6 bytes in length so it will hook it and have one nop and will look something like this:

Code:

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
add ecx,#99 //I added this as what you might add as suggested by GNIREENIGNE
mov [edx+00000674],ecx

exit:
jmp returnhere

027A0000: //except this address will be the address of that instruction
jmp newmem
nop
returnhere:
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
027A0000: //and same for here
mov [edx+00000674],ecx
//Alt: db 89 8A 74 06 00 00



See how I added and where I added the 'add ecx,#99'?

a '#' before the number means read it as decimal, the equivalent would be 'add ecx,63' //0x63 == 99 decimal

I just thought it might be easier for you to understand in decimal (Leave the edx+674 offset though as hex don't change that, because that's the proper offset and its hex)

Then goto File->Assign to current cheat table, it will add it to your CT at the bottom of the list... Tick it to enable it and test it... See if you get any extra XP Wink

If that still crashes (I don't think it will, however it may not have the result you want) then try it again without the 'add ecx,#99' and it should not crash, but not do anything... look at what the value is in ECX with how you found that instruction and see whats in there... See if the value makes any sense to you... (it could possibly be encoded or something...)

_________________
Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Thu Mar 21, 2013 7:06 pm    Post subject: Reply with quote

@PearlGambler: Do what SteveAndrew said, but since doing the "multyply xp income" part might be a little though on you for a first attempt, here is one way of doing it. There are much better ways of doing that hack, but that's for later (unless I misjudged you and you're at ease with assembly & tracing).

So here goes, after adjusting SteveAndrew's script so that it works on your end, replace the lines between newmem: and exit with:
Code:
newmem:
push eax                          //save "eax" so we can use it like as we want
mov eax, dword [edx+674]          //put you current xp in eax
sub ecx,eax                       //ecx=new xp - old xp = xp gain
shl ecx,3                         //multiply ecx by 2 power 3=8
add dword [edx+674], ecx          //add ecx=(xp gain)*8 to your current xp
pop eax                           //we saved eax earlier, now we restore it
originalcode:
  //replaced by something else
exit:
Back to top
View user's profile Send private message
PearlGambler
Newbie cheater
Reputation: 1

Joined: 12 Jul 2011
Posts: 14

PostPosted: Thu Mar 21, 2013 10:41 pm    Post subject: Reply with quote

@Steveandrew
actually i just directly changed the address
mov[edx+00000674],00000000 to mov[edx+00000674],00004444 after doing that i can see a comment 17476 and now no matter who i fight orhow many i fight i get 17476 exp per the end of battle i am fine with that tbh i guess if i change 00000674 part it will freeze technically

but i will try to do it

@Gniarf
Actually no i am terrible with these kind of things idk i am usually the kind who usually gets the results in 2 scans i will try code injection it looks difficult though

and finally how do make something that would influence item drop rate unlike exp i can't even see it so idk what to scan (usually not gonna bother with this one tho)
Back to top
View user's profile Send private message
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Fri Mar 22, 2013 12:02 am    Post subject: Reply with quote

mov[edx+00000674],00004444 after doing that i can see a comment 17476


you can't change the 674 part, I said not to change that!! lol that's the offset you change that, of course it will freeze!!

0x4444 (4,444 hex) equals 17,476 decimal

use a decimal to hex converter and you can make it equal to whatever xp you want...

another example... say you wanted 100,000 xp, change mov [edx+674],00004444 into mov [edx+674],000186A0 and you'll get 100,000 xp instead Wink

As for code injection, by changing even that single line you did a simple form of code injection Wink and that's why CE has a template in the first place, to make it easy to do code injection! (I write all my scripts by hand, but sometimes when testing things out even I use the template just because it's so quick and it automatically sets up your script for you, you can't mess it up! lol because CE always gets it right Wink)

xD Glad you got it working how you wanted though!

_________________
Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Fri Mar 22, 2013 2:41 am    Post subject: Reply with quote

PearlGambler wrote:
actually i just directly changed the address
mov[edx+00000674],00000000 to mov[edx+00000674],00004444 after doing that i [...]get 17476 exp per the end of battle
If you gain 17476 xp per battle with that modification, ignore my previous post.
If your xp is set to 17476 at the end of a battle, then my previous post is still valid.
Back to top
View user's profile Send private message
ksanjay
How do I cheat?
Reputation: 0

Joined: 22 Mar 2013
Posts: 6

PostPosted: Fri Mar 22, 2013 11:11 pm    Post subject: Reply with quote

thanks for the information
Back to top
View user's profile Send private message
PearlGambler
Newbie cheater
Reputation: 1

Joined: 12 Jul 2011
Posts: 14

PostPosted: Mon Mar 25, 2013 11:35 am    Post subject: Reply with quote

alright i will ask the next question now

how do you hack items

1) you can either hack the the item drop rate (i want this one tbh)

2) or you can make all the items available (kills the fun kinda but i don't mind)

3) or you can sell the item can change value but you can only do that with a dropped item so it kinda sucks

but again a new problem here i don't know where to even start with the first one and same with the second one

any idea's what to scan etc?

edit:
ok now i even have monster drop rates for example
i know that a random monster let's say
Face Demon has a 4.0% chance to drop a item called Power Belt
so how do i influence/edit it with cheat engine
Back to top
View user's profile Send private message
remilia111
How do I cheat?
Reputation: 0

Joined: 20 Oct 2014
Posts: 1

PostPosted: Mon Oct 20, 2014 1:04 pm    Post subject: Reply with quote

hello can you explain how it's working because it's didn't work with me (and it's hard to understande all in english ^^) can i send you a screen in message ? (because i can't post it yet ^^)

thank's
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Discussions 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