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 


[asm help] not enough bytes for instruction

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

Joined: 05 Jun 2011
Posts: 12
Location: Russia

PostPosted: Fri Nov 04, 2016 2:06 pm    Post subject: [asm help] not enough bytes for instruction Reply with quote

hi! trying to make script that check memory adress, and if equal no damage. im bad in assembler. Please help


Code:

[ENABLE]

aobscanmodule(INJECT,OwarOGL.exe,29 42 1C 8B 45 E4) // should be unique
alloc(newmem,$1000)

label(cheat)
label(code)
label(return)

newmem:
cheat:
  push eax
  mov eax, [006C3288]
  cmp eax,(int)1
  pop eax
  jne code
  sub [edx+1C],(int)0
  mov eax,[ebp-1C]
  jmp return
code:
  sub [edx+1C],eax
  mov eax,[ebp-1C]
  jmp return

INJECT:
  jmp cheat
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 29 42 1C 8B 45 E4

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "OwarOGL.exe"+21DBED

"OwarOGL.exe"+21DBCB: 6B C0 23              -  imul eax,eax,23
"OwarOGL.exe"+21DBCE: 8B 55 FC              -  mov edx,[ebp-04]
"OwarOGL.exe"+21DBD1: 89 82 E0 02 00 00     -  mov [edx+000002E0],eax
"OwarOGL.exe"+21DBD7: A1 E4 92 6E 00        -  mov eax,[OwarOGL.exe+2E92E4]
"OwarOGL.exe"+21DBDC: 80 38 00              -  cmp byte ptr [eax],00
"OwarOGL.exe"+21DBDF: 75 0F                 -  jne OwarOGL.exe+21DBF0
"OwarOGL.exe"+21DBE1: 80 7D 08 00           -  cmp byte ptr [ebp+08],00
"OwarOGL.exe"+21DBE5: 75 09                 -  jne OwarOGL.exe+21DBF0
"OwarOGL.exe"+21DBE7: 8B 45 F8              -  mov eax,[ebp-08]
"OwarOGL.exe"+21DBEA: 8B 55 E4              -  mov edx,[ebp-1C]
// ---------- INJECTING HERE ----------
"OwarOGL.exe"+21DBED: 29 42 1C              -  sub [edx+1C],eax
"OwarOGL.exe"+21DBF0: 8B 45 E4              -  mov eax,[ebp-1C]
// ---------- DONE INJECTING  ----------
"OwarOGL.exe"+21DBF3: 83 78 1C 00           -  cmp dword ptr [eax+1C],00
"OwarOGL.exe"+21DBF7: 7D 08                 -  jnl OwarOGL.exe+21DC01
"OwarOGL.exe"+21DBF9: 8B 45 E4              -  mov eax,[ebp-1C]
"OwarOGL.exe"+21DBFC: 33 D2                 -  xor edx,edx
"OwarOGL.exe"+21DBFE: 89 50 1C              -  mov [eax+1C],edx
"OwarOGL.exe"+21DC01: A1 44 86 6E 00        -  mov eax,[OwarOGL.exe+2E8644]
"OwarOGL.exe"+21DC06: C6 00 01              -  mov byte ptr [eax],01
"OwarOGL.exe"+21DC09: 8B 45 E4              -  mov eax,[ebp-1C]
"OwarOGL.exe"+21DC0C: 81 78 1C F4 01 00 00  -  cmp [eax+1C],000001F4
"OwarOGL.exe"+21DC13: 0F 8F 84 00 00 00     -  jg OwarOGL.exe+21DC9D
}

_________________
Very Happy ?


Last edited by _Gonzo_ on Fri Nov 11, 2016 2:28 am; edited 2 times in total
Back to top
View user's profile Send private message
M-Z
Advanced Cheater
Reputation: 1

Joined: 08 Nov 2014
Posts: 77
Location: Poland

PostPosted: Fri Nov 04, 2016 3:09 pm    Post subject: Reply with quote

Why do you subtract zero?
Code:
sub [edx+1C],(int)0

Maybe your aobscan is not unique?
Why do you use "numeric" address: 006C3288 rather than some variable? Are you sure it contains proper value?
Why don't you try setting a breakpoint there to determine why it is not working yourself? Wink
Back to top
View user's profile Send private message Send e-mail
_Gonzo_
Newbie cheater
Reputation: 0

Joined: 05 Jun 2011
Posts: 12
Location: Russia

PostPosted: Fri Nov 04, 2016 3:22 pm    Post subject: Reply with quote

1. im substract zero because this game crash, if unit health greater than 1000
2. aob scan uniq
3. numeric memory adress because it's static. it's contain proper value(0 or 1.. killed for this one week)

4. i can't, because script not activating.(sorry my bad. idk script work or not. it's jus not activating)

_________________
Very Happy ?
Back to top
View user's profile Send private message
Betcha
Expert Cheater
Reputation: 4

Joined: 13 Aug 2015
Posts: 232
Location: Somewhere In Space

PostPosted: Fri Nov 04, 2016 3:29 pm    Post subject: Re: [asm help] script won't work Reply with quote

Code:
[ENABLE]

aobscanmodule(Health,OwarOGL.exe,29 42 1C 8B 45 E4)
alloc(newmem,$100)
label(code)
label(return)

newmem:

code:
  //sub [edx+1C],eax
  mov [edx+1C],#999
  mov eax,[ebp-1C]
  jmp return

Health:
  jmp newmem
  nop
return:
registersymbol(Health)

[DISABLE]

Health:
  db 29 42 1C 8B 45 E4

unregistersymbol(Health)
dealloc(newmem)


This should make your health 999.
If enemies get 999 health too then google this:
''Cheat Engine Step 9 Tutorial''
Back to top
View user's profile Send private message
_Gonzo_
Newbie cheater
Reputation: 0

Joined: 05 Jun 2011
Posts: 12
Location: Russia

PostPosted: Fri Nov 04, 2016 3:37 pm    Post subject: Reply with quote

Thank You Betcha, but this is shared instruction, and in this memory address '006C3288" i have "1" if player controlled units, and "0" if computer control units.

also just for test You script won't activate too. but AOB scan is unic..

_________________
Very Happy ?
Back to top
View user's profile Send private message
M-Z
Advanced Cheater
Reputation: 1

Joined: 08 Nov 2014
Posts: 77
Location: Poland

PostPosted: Fri Nov 04, 2016 3:40 pm    Post subject: Reply with quote

_Gonzo_ wrote:
1. im substract zero because this game crash, if unit health greater than 1000

Subtracting zero, as far as I know, doesn't prevent value from rising.
Quote:

2. aob scan uniq

I must say I have no experience with AOBscan...
Quote:
3. numeric memory adress because it's static. it's contain proper value(0 or 1.. killed for this one week)

If things are "that static", maybe you should try "Code Injection" template.
Quote:
4. i can't, because script not activating.(sorry my bad. idk script work or not. it's jus not activating)

This happens (to me) only when the script is modifying addresses which are invalid. Are you sure that 006C3288 is OK? It bothers me. Wink
If it was OwarOGL.exe+6C3288 it wouldn't bother me... Smile
Although with Rome Total War I think addresses were also this much static...
Back to top
View user's profile Send private message Send e-mail
Betcha
Expert Cheater
Reputation: 4

Joined: 13 Aug 2015
Posts: 232
Location: Somewhere In Space

PostPosted: Fri Nov 04, 2016 3:56 pm    Post subject: Reply with quote

Restarted game ?

Find difference between you and enemy in dissect data structure.
Then do CMP should look something like this.

Code:
[ENABLE]

aobscanmodule(Health,OwarOGL.exe,29 42 1C 8B 45 E4)
alloc(newmem,$100)
label(code)
label(return)

newmem:
  cmp [edx+offset],1 // or any other value you found different from enemy
  jne code
  mov [edx+1C],#999
  mov eax,[ebp-1C]
  jmp return

code:
  sub [edx+1C],eax
  mov eax,[ebp-1C]
  jmp return

Health:
  jmp newmem
  nop
return:
registersymbol(Health)

[DISABLE]

Health:
  db 29 42 1C 8B 45 E4

unregistersymbol(Health)
dealloc(newmem)


If you play it in multiplayer then it wont work.
Back to top
View user's profile Send private message
_Gonzo_
Newbie cheater
Reputation: 0

Joined: 05 Jun 2011
Posts: 12
Location: Russia

PostPosted: Fri Nov 04, 2016 4:10 pm    Post subject: Reply with quote

Betcha im not cheating in multiplayer.

"Find difference between you and enemy in dissect data structure."

this is not possible.

also do "full injection" and my memory address is wrong lol.. (it show selected or not selected)

Thank You guys for help. im go to find another memory address....

this script work (if select anything on screen, all have god mode)

Code:
{ Game   : OwarOGL_DEBUG.exe
  Version:
  Date   : 2016-11-05
  Author : Gonzo

  This script does blah blah blah
}

define(address,"OwarOGL_DEBUG.exe"+215159)
define(bytes,29 42 1C 8B 45 E4)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000)
label(cheat)
label(code)
label(return)

newmem:
cheat:
  push eax
  mov eax,[006C3288]
  cmp eax,1
  jne code
  pop eax
  sub [edx+1C],0
  mov eax,[ebp-1C]
  jmp return
code:
  pop eax
  sub [edx+1C],eax
  mov eax,[ebp-1C]
  jmp return

address:
  jmp cheat
  nop
return:

[DISABLE]

address:
  db bytes
  // sub [edx+1C],eax
  // mov eax,[ebp-1C]

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "OwarOGL_DEBUG.exe"+215159

"OwarOGL_DEBUG.exe"+215137: 6B C0 23              -  imul eax,eax,23
"OwarOGL_DEBUG.exe"+21513A: 8B 55 FC              -  mov edx,[ebp-04]
"OwarOGL_DEBUG.exe"+21513D: 89 82 E0 02 00 00     -  mov [edx+000002E0],eax
"OwarOGL_DEBUG.exe"+215143: A1 38 3A 6D 00        -  mov eax,[OwarOGL_DEBUG.exe+2D3A38]
"OwarOGL_DEBUG.exe"+215148: 80 38 00              -  cmp byte ptr [eax],00
"OwarOGL_DEBUG.exe"+21514B: 75 0F                 -  jne OwarOGL_DEBUG.exe+21515C
"OwarOGL_DEBUG.exe"+21514D: 80 7D 08 00           -  cmp byte ptr [ebp+08],00
"OwarOGL_DEBUG.exe"+215151: 75 09                 -  jne OwarOGL_DEBUG.exe+21515C
"OwarOGL_DEBUG.exe"+215153: 8B 45 F8              -  mov eax,[ebp-08]
"OwarOGL_DEBUG.exe"+215156: 8B 55 E4              -  mov edx,[ebp-1C]
// ---------- INJECTING HERE ----------
"OwarOGL_DEBUG.exe"+215159: 29 42 1C              -  sub [edx+1C],eax
"OwarOGL_DEBUG.exe"+21515C: 8B 45 E4              -  mov eax,[ebp-1C]
// ---------- DONE INJECTING  ----------
"OwarOGL_DEBUG.exe"+21515F: 83 78 1C 00           -  cmp dword ptr [eax+1C],00
"OwarOGL_DEBUG.exe"+215163: 7D 08                 -  jnl OwarOGL_DEBUG.exe+21516D
"OwarOGL_DEBUG.exe"+215165: 8B 45 E4              -  mov eax,[ebp-1C]
"OwarOGL_DEBUG.exe"+215168: 33 D2                 -  xor edx,edx
"OwarOGL_DEBUG.exe"+21516A: 89 50 1C              -  mov [eax+1C],edx
"OwarOGL_DEBUG.exe"+21516D: A1 EC 2D 6D 00        -  mov eax,[OwarOGL_DEBUG.exe+2D2DEC]
"OwarOGL_DEBUG.exe"+215172: C6 00 01              -  mov byte ptr [eax],01
"OwarOGL_DEBUG.exe"+215175: 8B 45 E4              -  mov eax,[ebp-1C]
"OwarOGL_DEBUG.exe"+215178: 81 78 1C F4 01 00 00  -  cmp [eax+1C],000001F4
"OwarOGL_DEBUG.exe"+21517F: 0F 8F 84 00 00 00     -  jg OwarOGL_DEBUG.exe+215209
}

_________________
Very Happy ?
Back to top
View user's profile Send private message
Betcha
Expert Cheater
Reputation: 4

Joined: 13 Aug 2015
Posts: 232
Location: Somewhere In Space

PostPosted: Fri Nov 04, 2016 4:30 pm    Post subject: Reply with quote

Edit:
This will activate and make you and enemy god mod:
Code:
[ENABLE]

aobscan(Health,29 42 1C 8B 45 E4)
alloc(newmem,$100)
label(YourHealth)
label(code)
label(return)

newmem:


YourHealth:
  mov [edx+1C],#999
  mov eax,[ebp-1C]
  jmp return

code:
  sub [edx+1C],eax
  mov eax,[ebp-1C]
  jmp return

Health:
  jmp newmem
  nop
return:
registersymbol(Health)

[DISABLE]

Health:
  db 29 42 1C 8B 45 E4

unregistersymbol(Health)
dealloc(newmem)

So.
Do dissect data by watching this video
Then below Newmem add these lines:

Code:
cmp [edx+offset],value
jne code
Back to top
View user's profile Send private message
_Gonzo_
Newbie cheater
Reputation: 0

Joined: 05 Jun 2011
Posts: 12
Location: Russia

PostPosted: Sat Nov 05, 2016 6:20 am    Post subject: Reply with quote

Betcha, thank you for help.

but dissect data not work here...

every unit have an ID like a "FFFFFFD6", there is no id for enemy\allied(can't find this because i think it's called once when game scene creating) or computer controlled\human controlled(in this game this not needed. there no ai. you can understand this by digging some forum's.)..

original war(steam) really hard to cheat...

eh.. better to get ollydbg and see what call this function, and how this ID assigning to unit...

_________________
Very Happy ?
Back to top
View user's profile Send private message
_Gonzo_
Newbie cheater
Reputation: 0

Joined: 05 Jun 2011
Posts: 12
Location: Russia

PostPosted: Fri Nov 11, 2016 2:53 am    Post subject: Reply with quote

hi guys! new problem...
I finally make god mode for units, buildings, etc)

but have some problem, not enough bytes(sorry for stupid question's..)

script:

Code:
[ENABLE]

aobscan(Health,29 42 1C 8B 45 E4)
alloc(newmem,$400)
label(Compare)
label(Compare2)
label(YourHealth)
label(code)
label(return)

//0 = Neutral
//1 = Am
//2 = Ar
//3 = Ru




newmem:
  cmp [esp+74],#3   //if units get damage
  je YourHealth    //my units?
  jne Compare

Compare:
  cmp [esp+74],#0
  je YourHealth
  jne Compare2

Compare2:
  cmp [esp+74],#2
  jne code

YourHealth:
  mov [edx+1C],#999
  mov eax,[ebp-1C]
  jmp return

code:
  sub [edx+1C],eax
  mov eax,[ebp-1C]
  jmp return

Health:
  jmp newmem
  nop
return:
registersymbol(Health)

[DISABLE]

Health:
  db 29 42 1C 8B 45 E4

unregistersymbol(Health)
dealloc(newmem)



after.png
 Description:
 Filesize:  30.1 KB
 Viewed:  7742 Time(s)

after.png



before.png
 Description:
 Filesize:  30.49 KB
 Viewed:  7742 Time(s)

before.png



_________________
Very Happy ?
Back to top
View user's profile Send private message
Cake-san
Grandmaster Cheater
Reputation: 8

Joined: 18 Dec 2014
Posts: 541
Location: Semenanjung

PostPosted: Fri Nov 11, 2016 3:37 am    Post subject: Reply with quote

Code:

[ENABLE]
aobscanmodule(Health,OwarOGL.exe,8B 55 E4 29 42 1C 8B 45 E4)
alloc(newmem,$400)
label(code)
label(return)

//0 = Neutral
//1 = Am
//2 = Ar
//3 = Ru

newmem:
  mov edx,[ebp-1C]
  cmp [esp+74],#3   //if units get damage
  je short code
  cmp [esp+74],#0
  je short code
  cmp [esp+74],#2
  je short code
  sub [edx+1C],eax
  jmp return
code:
  mov [edx+1C],#999
  jmp return

Health:
  jmp newmem
  nop
return:
registersymbol(Health)

[DISABLE]
dealloc(newmem)
Health:
  db 8B 55 E4 29 42 1C
unregistersymbol(Health)

_________________
...
Back to top
View user's profile Send private message
_Gonzo_
Newbie cheater
Reputation: 0

Joined: 05 Jun 2011
Posts: 12
Location: Russia

PostPosted: Fri Nov 11, 2016 3:56 am    Post subject: Reply with quote

im so noobish...

Thank You!

_________________
Very Happy ?
Back to top
View user's profile Send private message
Cake-san
Grandmaster Cheater
Reputation: 8

Joined: 18 Dec 2014
Posts: 541
Location: Semenanjung

PostPosted: Fri Nov 11, 2016 4:00 am    Post subject: Reply with quote

_Gonzo_ wrote:
im so noobish...

Thank You!

Quote:
practice makes perfect

You're welcome... Rolling Eyes

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