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 


Any easy way to transfer (mono)dissected struct to ADDRtable

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Discussions
View previous topic :: View next topic  
Author Message
peddroelm
Advanced Cheater
Reputation: 0

Joined: 03 Oct 2014
Posts: 55

PostPosted: Fri Jan 05, 2018 3:45 am    Post subject: Any easy way to transfer (mono)dissected struct to ADDRtable Reply with quote

Mono dissect.

Data Structure: Dissect Structure

(find instances of this class) and validated - only need one for template

In structure dissector the structure is 'alive' baseAddress , offsets and multi-depth pointers ..

Is there a simple way I'm missing of transferring all that to the cheat table (addresses) ?

Add it 6 times for the 6 playing characters maybe one more for enemy test subject ..

then by updating (manually or via AOB injection) the base address symbol for each character their structure should become 'alive' ...

looking at the .CT file in an editor the code for address and structure doesn't seem immediately compatible ..


Code:
 <CheatEntry>
      <ID>112906</ID>
      <Description>"Gully"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Value="" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>112907</ID>
          <Description>"IsHero"</Description>
          <LastState Value="0" RealAddress="4668A768"/>
          <VariableType>Byte</VariableType>
          <Address>GullyBaseADDR + 68</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>112908</ID>
          <Description>"IsUnlocked"</Description>
          <LastState Value="0" RealAddress="4668A769"/>
          <VariableType>Byte</VariableType>
          <Address>GullyBaseADDR + 69</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>112909</ID>
          <Description>"IsInParty"</Description>
          <LastState Value="0" RealAddress="4668A76A"/>
          <VariableType>Byte</VariableType>
          <Address>GullyBaseADDR + 6A</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>112910</ID>
          <Description>"m_level"</Description>
          <LastState Value="0" RealAddress="4668A76C"/>
          <VariableType>4 Bytes</VariableType>
          <Address>GullyBaseADDR + 6C</Address>
        </CheatEntry>


<CheatEntry>
      <ID>9</ID>
      <Description>"Red Monika Name"</Description>
      <LastState RealAddress="11F72584"/>
      <VariableType>String</VariableType>
      <Length>10</Length>
      <Unicode>1</Unicode>
      <CodePage>0</CodePage>
      <ZeroTerminate>1</ZeroTerminate>
      <Address>RedMonikaBaseADDR</Address>
      <Offsets>
        <Offset>14</Offset>
        <Offset>10</Offset>
        <Offset>28</Offset>
      </Offsets>
    </CheatEntry>


...


with
Code:

 <Element Offset="312" Vartype="Pointer" Bytesize="8" Description="combatDialoguePrefab" DisplayMethod="Unsigned Integer"/>
              <Element Offset="320" Vartype="Pointer" Bytesize="8" Description="cards" DisplayMethod="Unsigned Integer"/>
              <Element Offset="328" Vartype="Pointer" Bytesize="8" Description="skills" DisplayMethod="Unsigned Integer">
                <Structure Name="List`1" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
                  <Elements>
                    <Element Offset="16" Vartype="Pointer" Bytesize="8" Description="_items" DisplayMethod="Unsigned Integer">
                      <Structure Name="SkillRecord[]" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
                        <Elements>
                          <Element Offset="12" Vartype="4 Bytes" Bytesize="4" Description="Count" DisplayMethod="Unsigned Integer"/>
                          <Element Offset="16" Vartype="Pointer" Bytesize="8" Description="Item[0]" DisplayMethod="Unsigned Integer">
                            <Structure Name="SkillRecord" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
                              <Elements>
                                <Element Offset="40" Vartype="Pointer" Bytesize="8" Description="name" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="48" Vartype="Pointer" Bytesize="8" Description="flavorText" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="56" Vartype="Pointer" Bytesize="8" Description="icon" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="64" Vartype="Pointer" Bytesize="8" Description="dungeonEffect" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="72" Vartype="Pointer" Bytesize="8" Description="dungeonEffect02" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="80" Vartype="4 Bytes" Bytesize="4" Description="requiredLevel" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="84" Vartype="4 Bytes" Bytesize="4" Description="targetType" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="88" Vartype="4 Bytes" Bytesize="4" Description="type" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="92" Vartype="4 Bytes" Bytesize="4" Description="animTrigger" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="96" Vartype="4 Bytes" Bytesize="4" Description="skillCharges" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="100" Vartype="4 Bytes" Bytesize="4" Description="extraChargesPerDungeonSkillMastery" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="104" Vartype="Float" Bytesize="4" Description="stealthMoveSpeedScaling" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="108" Vartype="Float" Bytesize="4" Description="stealthAggroRangeScaling" DisplayMethod="Unsigned Integer"/>
                              </Elements>
                            </Structure>
                          </Element>
                          <Element Offset="24" Vartype="Pointer" Bytesize="8" Description="Item[1]" DisplayMethod="Unsigned Integer">
                            <Structure Name="SkillRecord" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
                              <Elements>
                                <Element Offset="40" Vartype="Pointer" Bytesize="8" Description="name" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="48" Vartype="Pointer" Bytesize="8" Description="flavorText" DisplayMethod="Unsigned Integer"/>
                                <Element Offset="56" Vartype="Pointer" Bytesize="8" Description="icon" DisplayMethod="Unsigned Integer"/>




EDIT:

I sort of understand why there isn't a button to dump all the expanded pointers into the address table - there can be A LOT of them.

Will try doing it by hand with the things that interest me the most this time.
Back to top
View user's profile Send private message
TheyCallMeTim13
Wiki Contributor
Reputation: 14

Joined: 24 Feb 2017
Posts: 441
Location: 'Merica

PostPosted: Fri Jan 05, 2018 4:29 am    Post subject: Reply with quote

FreeER has a Lua extention, I have it installed but have not used it yet.

Generate Memory Records From Structure

_________________
Back to top
View user's profile Send private message
peddroelm
Advanced Cheater
Reputation: 0

Joined: 03 Oct 2014
Posts: 55

PostPosted: Fri Jan 05, 2018 5:24 am    Post subject: Reply with quote

sounds very useful for the future. This time I did it manually ..
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