Call function to trigger assembly code.

Anything Cheat Engine related, bugs, suggestions, helping others, etc..
Post Reply
polis27
Novice Cheater
Novice Cheater
Posts: 18
Joined: Tue Feb 13, 2018 11:49 am
Reputation: 0

Call function to trigger assembly code.

Post by polis27 » Mon Jul 09, 2018 1:16 am

I need advise or tips. Right now, i have this script. It add 20 of whenever the quest monster/item obtained.

[code]

[ENABLE]



aobscanmodule(quest,Yumina.exe,83 86 00 01 00 00 01 5E) // should be unique

alloc(newmem,$1000)



label(code)

label(return)



newmem:



code:

add dword ptr [esi+00000100],20

jmp return



quest:

jmp newmem

nop

nop

return:

registersymbol(quest)



[DISABLE]



quest:

db 83 86 00 01 00 00 01



unregistersymbol(quest)

dealloc(newmem)

[/code]



What I want to do is to trigger " add dword ptr [esi+00000100],20". So that I can instantly finish quest the moment I take them. Any idea where should I start?
Last edited by polis27 on Thu Jan 01, 1970 12:00 am, edited 1 time in total.

User avatar
koderkrazy
Fearless Donors
Fearless Donors
Posts: 248
Joined: Sun Jun 17, 2018 2:14 pm
Reputation: 157

Call function to trigger assembly code.

Post by koderkrazy » Mon Jul 09, 2018 3:45 am

Do 'Dissect DataStructure' on pointer in esi first.

And determine:

1. if it is hero object or quest object

2. Play same quest over and over and try to see if remains same

2. does it remain same for different quests.



If it remains same across samemultiple quests:

1. Get the object pointer(in esi) in CE main window.

2. Exit current quest.

3. Do what accesses this address on the pointer.

4. Start quest again.

4. See what code accesses it and set value directly there. I'll complete the quest at start.



If it doesn't remain same across sameother quests:

1. Try to get unique and constant pattern of values in the dissected object. Mostly around offset 100.

2. The pattern should remain same for different quests. Like color settings etc.

3. Do aobscan on the data pattern and set value at offset 100 using dbdwdddq instructions.

4. Add above aobscan to the table and set hot key.

5. Now when you start quest press the hot key to finish it. :P



Last option is to find code that starts the quest. If the game uses Unity engine do mono dissection. otherwise do 'Enumerate DLLsand symbols'.

polis27
Novice Cheater
Novice Cheater
Posts: 18
Joined: Tue Feb 13, 2018 11:49 am
Reputation: 0

Call function to trigger assembly code.

Post by polis27 » Mon Jul 09, 2018 6:02 am

"Do 'Dissect DataStructure' on pointer in esi first."

Do you mean at the address that I found for quest?



btw, the address changes for same quest and different quest.

User avatar
koderkrazy
Fearless Donors
Fearless Donors
Posts: 248
Joined: Sun Jun 17, 2018 2:14 pm
Reputation: 157

Call function to trigger assembly code.

Post by koderkrazy » Mon Jul 09, 2018 6:28 am

[QUOTE="polis27, post: 51365, member: 12857"]Do you mean at the address that I found for quest?[/QUOTE]

No. I mean the address in ESI register when following instruction executes: [ICODE]add dword ptr [esi+00000100],20[/ICODE]

here address in esi is the object which contains the variable(at offset 100) which you are setting in your cheat.

Post Reply

Who is online

Users browsing this forum: No registered users