feat: Add deobfuscator feature with UI integration, preview, and undo #557
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Add Deobfuscator Feature with UI Integration, Preview, and Undo
This PR implements a new deobfuscator feature for Bytecode Viewer:
Closes #537
Renames obfuscated class names (e.g., Aa, aa, a, A) to unique, semantic names (C001, AC002, I003, etc.) using a type-based prefix scheme.
Handles inner and anonymous classes, preserving package structure.
Integrates the deobfuscator into the Plugins menu with options to run, preview, and undo the renaming.
Provides a preview dialog for the renaming mapping before applying changes.
Adds an undo option to revert the renaming if needed.
Updates dependencies and code structure to support the new feature.
Unit tests confirm the renaming logic works for various class types.
End-to-end validation and cross-platform tests are recommended for production use.
Is there any feedback or additional functionality you’d like to see before merging?
Note:
"Why would a reverse-engineering suite need to be able to obfuscate files? I believe this is a useless functionality."
I noticed someone else made a PR regarding this feature. Is there any reason to keep or expand obfuscation capabilities in Bytecode Viewer, or should the focus remain strictly on deobfuscation and analysis?