Coder Social home page Coder Social logo

Comments (4)

Mgamerz avatar Mgamerz commented on May 26, 2024

Can you revisit this and let me know what's been done so far in Binary Editor for this, it's been there for some time, however I am not sure if i have implemented 100% of it. I think I've done the function table.

from legendaryexplorer.

Mgamerz avatar Mgamerz commented on May 26, 2024

I know this would be a pain, but if you could annotate an image and highlight the blocks of a simple class, it would be greatly appreciated, as I plan to add this to binary interpreter and hopefully binary relinker.

Right now binary interpreter reads Class backwards. so we can see the list of functions, the count, etc. However I need a more detailed document describing the layout of Class.

from legendaryexplorer.

Kinkojiro avatar Kinkojiro commented on May 26, 2024

On EGM chat

from legendaryexplorer.

Mgamerz avatar Mgamerz commented on May 26, 2024

This is the format for classes in Mass Effect, Mass Effect 2, and Mass Effect 3 for technical documentation purposes.

Mass Effect, Mass Effect 2

These are 100% identical to each other in both games.

Unreal Unique Index (Int32)
SuperClass Index (Int32 ObjectReference)
Unknown1 (Int32)
CompilingChainNextItem (Int32 ObjectReference)
IgnoreMask (UInt64)
LabelOffset (Int16)
[UnrealScript Block. Ends with 10 consecutive FF's. It seems there is always at least 0x6 bytes before the FF's can start. ]
StateMask (Int32)
Local Functions Table Size (Int32)

  • The following repeats LocalFunctionsTableSize amount.
    • Function NameReference (Int32, Int32)
    • Function ObjectReference (Int32 ObjectReference)

Class Mask (Int32)
00 (Byte) - Seems to be a spacer or alignment, however during all my scans this is always present
Outerclass (Int32 ObjectReference)
Implemented Interfaces Table

  • InterfaceTable Name (Int32, Int32)
  • InterfaceTable Count (Int32)
  • The following repeats ImplementedInterfacesTableSize amount.
    • Interface NameReference(Int32,Int32)

Components Table Count (Int32)
- The following repeats ComponentsTable amount.
- Component NameReference (Int32, Int32)
- Component ObjectReference (Int32 ObjectReference)

Unknown2 (Int32)
Unknown3 (Int32)
Class Defaults Reference (Int32 ObjectReference)

Mass Effect 3

This is similar but not identical to the previous 2 games.

Unreal Unique Index (Int32)
SuperClass Index (Int32 ObjectReference)
Unknown1 (Int32)
CompilingChainNextItem (Int32 ObjectReference)
IgnoreMask (UInt64)
LabelOffset (Int16)
[UnrealScript Block. Ends with 10 consecutive FF's. It seems there is always at least 0x6 bytes before the FF's can start. ]
StateMask (Int32)
Local Functions Table Size (Int32)

  • The following repeats LocalFunctionsTableSize amount.
    • Function NameReference (Int32, Int32)
    • Function ObjectReference (Int32 ObjectReference)

Class Mask (Int32)
Outerclass (Int32 ObjectReference)
Components Table

  • ComponentsTable Name (Int32, Int32)
  • ComponentsTable Count (Int32)
    • The following repeats ComponentsTable amount.
      • Component NameReference (Int32, Inte32)
      • Component ObjectReference (Int32 ObjectReference)

Implemented Interfaces Table Size (Int32)

  • The following repeats ImplementedInterfacesTableSize amount.
    • Interface ObjectReference (Int32 ObjectReference)
    • Interface Property ObjectReference (Int32 ObjectReference)

None NameReference (Int32, Int32)
Unknown2 (Int32)
Class Defaults Reference (Int32 ObjectReference)
Full Functions Table Size (Int32)

  • The following is repeated until FullFunctionsTableSize amount.
    • Function Reference (Int32 ObjectReference)

There appears to be 8 bytes at the bottom after this that are also functions, like the size is -2 or something. I will need to look into this.

from legendaryexplorer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.