Page 2 of 3

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 8:20 am
by Eric
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

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 10:00 am
by kantoboy69
xorps wrote:
Mon May 11, 2020 8:24 am
Hi guys! Why doesn't it write zero normally :? On CE version 7.0 everything is normal writes
Picture! [Link] [Link]
That's weird @xorps

Tried it on mine and it looks just fine. Using AMD2500u
Image[Link]

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 2:01 pm
by xorps
Eric wrote:
Tue May 12, 2020 8:20 am
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:

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 2:05 pm
by kantoboy69
xorps wrote:
Tue May 12, 2020 2:01 pm
Eric wrote:
Tue May 12, 2020 8:20 am
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.

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 3:33 pm
by mgr.inz.Player
float conversion to hex is made in this simple piece of code (ConvertHexStrToRealStr function inside parsers.pas):

Code: Select all

        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:
Image

and this (note: must be upper case):
Image

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

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 5:11 pm
by xorps
Spoiler
here are the guys I made a video :roll:

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 7:31 pm
by mgr.inz.Player
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.

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 8:24 pm
by kantoboy69
xorps wrote:
Tue May 12, 2020 5:11 pm
Spoiler
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

Re: Bug 7.1 CE version

Posted: Tue May 12, 2020 11:59 pm
by Eric
Does your table have a memory record named "float" ? Try renaming it to floating

Re: Bug 7.1 CE version

Posted: Wed May 13, 2020 1:00 am
by mgr.inz.Player
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"

Re: Bug 7.1 CE version

Posted: Wed May 13, 2020 10:13 am
by xorps
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 :)

Re: Bug 7.1 CE version

Posted: Wed May 13, 2020 10:16 am
by GreenHouse
xorps wrote:
Wed May 13, 2020 10:13 am
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.

Re: Bug 7.1 CE version

Posted: Wed May 13, 2020 10:55 am
by xorps
How do explain this ? :roll:
Spoiler

Re: Bug 7.1 CE version

Posted: Wed May 13, 2020 12:09 pm
by mgr.inz.Player
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: Select all

<Description>"float"</Description>
and change that to

Code: Select all

<Description>"float value"</Description>
Then save the changes.


Or load your CT file and execute this Lua script:

Code: Select all

-- "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

Re: Bug 7.1 CE version

Posted: Wed May 13, 2020 1:15 pm
by xorps
Guys thank you all - it's working :)
Do have to translate all the tables this way ?