Recaf icon indicating copy to clipboard operation
Recaf copied to clipboard

Complete and provide UI for correlation mapping utilities

Open Col-E opened this issue 5 years ago • 0 comments

Correlation mapping

It would be a useful utility feature to automatically map classes that are a direct 1-to-1 match in terms of their architecture where the only difference is names used. Combined with #281 (mapping tracking) this will allow mappings to be migrated from one version of a file, to another, assuming there are not significant architecture changes between the two versions.

Consider the following example:

class Apple {
    int stamina;
    void eat(Person consumer) { consumer.heal(stamina); }
}

vs

class a {
    int a;
    void a(b a) { a.a(this.a); }
}

The output mapping should be something like (format can vary, and ideally be translated into other formats) from obfuscated to clear-text:

// <OBF-TYPE> <CLEAN-TYPE>
a Apple
b Person
// <OBF-TYPE>.<OBF-NAME>:<OBF-DESCRIPTOR> <CLEAN-NAME>
a.a:I stamina
a.a:(Lb;)V eat
b.b:(I)V heal

Col-E avatar Sep 17 '20 03:09 Col-E