Bug 7.1 CE version

E

Eric

Administrator
Staff member
Administrator
Joined
Mar 2, 2017
Messages
123
Try installing to a different folder like c:\ce. and try mov [rax+70],(float)1 on the tutorial instead if the game you're usually attaching to
 
kantoboy69

kantoboy69

Expert Cheater
Table Maker
Joined
Aug 30, 2019
Messages
90
xorps said:
Hi guys! Why doesn't it write zero normally :? On CE version 7.0 everything is normal writes
Picture! https://ibb.co/gz4st8P https://cdn1.savepice.ru/uploads/2020/5/11/66de7974af3c9ddd3a7bfc4967a75584-full.jpg
That's weird @xorps

Tried it on mine and it looks just fine. Using AMD2500u
https://imgur.com/a/X0a5zYOhttps://imgur.com/a/X0a5zYO
 
xorps

xorps

Expert Cheater
Table Maker
Joined
Nov 5, 2017
Messages
77
Eric said:
Try installing to a different folder like c:\ce. and try mov [rax+70],(float)1 on the tutorial instead if the game you're usually attaching to
Everything works as it should on the tutorial. Works just as well on games x32 But 3 games tried x64 and alas, the data is not written correctly. :(
I have an old i7 4790k processor! :mellow:
 
kantoboy69

kantoboy69

Expert Cheater
Table Maker
Joined
Aug 30, 2019
Messages
90
xorps said:
Eric said:
Try installing to a different folder like c:\ce. and try mov [rax+70],(float)1 on the tutorial instead if the game you're usually attaching to
Everything works as it should on the tutorial. Works just as well on games x32 But 3 games tried x64 and alas, the data is not written correctly. :(
Check if they are dotnet.
Dotnet can be compiled using any architecture
Which I think gonna mess it up like that

Better create a profile of those programs, .net /vc++ or engine name
Also the machine you use like intel or amd, then the installed os, 64-bit or 32-bit

e.g. using 64bit intel machine using windows 32-bit
I remember that acer atom capable of 64-bit windows but limited to 32-bit of windows.
 
E

Eric

Administrator
Staff member
Administrator
Joined
Mar 2, 2017
Messages
123
does the game have a symbol named "float" ?
 
mgr.inz.Player

mgr.inz.Player

RCE Fanatics
Talents
Joined
Mar 3, 2017
Messages
47
float conversion to hex is made in this simple piece of code (ConvertHexStrToRealStr function inside parsers.pas):
Code:
        if copy(s,1,7)='(FLOAT)' then
        begin
          t:=copy(s,8);
          val(t, f,j);
          if j=0 then
          begin
            result:='$'+inttohex(pdword(@f)^,8);

            if s[1]='-' then
              result:='-'+result;

            if s[1]='+' then
              result:='+'+result;

            exit;
          end;
        end;
It sets f (type single) variable with value right after "(float)" string. @f gets address, pdword casts it to dword pointer, then dereferenced with ^, then converted to hex string with minimum 8 chars (prefixed with 0s).

Can you test this:


and this (note: must be upper case):


while you have CE attached to: nothing, tutorial, those three games.
 
xorps

xorps

Expert Cheater
Table Maker
Joined
Nov 5, 2017
Messages
77
https://www.youtube.com/watch?v=Cx322UJOiBY&feature=youtu.be
here are the guys I made a video :roll:
 
mgr.inz.Player

mgr.inz.Player

RCE Fanatics
Talents
Joined
Mar 3, 2017
Messages
47
Too bad you didn't check the "dd (float)1" with single-line assembler and "(FLOAT)1" used as pointer offset. That would give us much more info.

e.g.
"dd (float)1" is one of few things processed at the very beginning of TSingleLineAssembler.Assemble function.

"(FLOAT)1" used as pointer offset would tell about how ConvertHexStrToRealStr and HexStrToInt work for you when CE is attached to those games.
 
kantoboy69

kantoboy69

Expert Cheater
Table Maker
Joined
Aug 30, 2019
Messages
90
xorps said:
https://www.youtube.com/watch?v=Cx322UJOiBY&feature=youtu.be
here are the guys I made a video :roll:
It was fun watching it.

1) anti-cheat that watches code changes
try to add the address in the table (the code part), make it array of bytes and include the whole opcode size
then add it to what access this address to see if there's another thread watching code changes and modifies it
2) Virtualization environment either on game or your computer (sandbox)
I'm not sure how to check for this though
 
E

Eric

Administrator
Staff member
Administrator
Joined
Mar 2, 2017
Messages
123
Does your table have a memory record named "float" ? Try renaming it to floating
 
mgr.inz.Player

mgr.inz.Player

RCE Fanatics
Talents
Joined
Mar 3, 2017
Messages
47
Probably this is the cause. In his last last video ( 5:47 ), hex value is +1 and then +100 to some other value.
"(float)1" got converted to "somevalue+1" and "somevalue+100"
 
xorps

xorps

Expert Cheater
Table Maker
Joined
Nov 5, 2017
Messages
77
I've figured out what is the reaosn of this bug. Cheat tables created in older version fo CE are parsed inccorrectly in 7.1 version in my case. If I create the script from scratch all works ok. Can anyone test that case too?
The problem is with numbers with a dot. Integers are written normally :)
 
GreenHouse

GreenHouse

Expert Cheater
Table Maker
Joined
Oct 12, 2018
Messages
454
xorps said:
Cheat tables created in older version fo CE are parsed inccorrectly in 7.1 version in my case. If I create the script from scratch all works ok. Can anyone test that case too?
That's not the reason. At least it wasn't in my case. I had a table that had that problem when using 7.1 RC 2.3, and when using it on the official release and older versions, the script did work perfectly, with no changes on the scripts.
 
xorps

xorps

Expert Cheater
Table Maker
Joined
Nov 5, 2017
Messages
77
How do explain this ? :roll:
https://www.youtube.com/watch?v=j2P31cFq6V8&feature=youtu.be
 
mgr.inz.Player

mgr.inz.Player

RCE Fanatics
Talents
Joined
Mar 3, 2017
Messages
47
As mentioned previously you have a memory record with description "float". Just open your CT file with notepad++ or other decent text editor and search for
Code:
<Description>"float"</Description>
and change that to
Code:
<Description>"float value"</Description>
Then save the changes.


Or load your CT file and execute this Lua script:
Code:
-- "rename" some memory records
for i=0,AddressList.Count-1 do
  if string.lower(AddressList[i].Description) == "float" or
     string.lower(AddressList[i].Description) == "double" then
    AddressList[i].Description = AddressList[i].Description.." value"
  end
end
MainForm.miSave.doClick() -- save changes
 
Top