DGA-MI-SSI / YaCo

YaCo is an Hex-Rays IDA plugin. When enabled, multiple users can work simultaneously on the same binary. Any modification done by any user is synchronized through git version control.
GNU General Public License v3.0
313 stars 36 forks source link

Changing the size of a structure embedded in an other structure is not supported #35

Closed cbayet closed 6 years ago

cbayet commented 6 years ago

Hi,

When a structure StructB is included in a StructA such as:


struct StructA {
    uint64_t    field_0;
    StructB     strb;
    uint64_t    field_x;
    uint64_t    field_y;
};

If the size of the StructB is increased by 8 bytes, the default behavior of IDA is to override the next field in the including structure: field_x in StructA in our example. However when doing this in YaCo it appears to undefine the strb field in the StructA breaking a lot of references.

We did not investigate where this problem come from.

bamiaux commented 6 years ago

I cannot reproduce it, changing StructB size delete the association in StructA with IDA 7.1 with & without YaCo installed ?

cbayet commented 6 years ago

Hi,

It's an error from our tests, the result in IDA is effectively undefined and we didn't test properly our case (IDA doesn't behave the same way if the next field in defined or not).

Sorry for the fail !