MIT IEEE URTC 2024. GSET 2024. Repository for the "MBASED: Practical Simplifications of Mixed Boolean-Arithmetic Obfuscation". A Binary Ninja decompiler plugin taking ideas from compiler construction to simplify obfuscated boolean expressions.
The following are a few potential ideas we could tackle if there is enough time. Some of these ideas will be fleshed out more as we progress.
Applying machine learning to determine how to rearrange boolean statements
Applying common boolean identities to improve simplifications. Similar to msynth. Can use pickles for serialization and involves implementing the subtree of another tree problem when performing the analysis on the AST. https://leetcode.com/problems/subtree-of-another-tree/
Analyze relationship with opaque predicates. MBA obfuscation can potentially
Analyze impact of arithmetic. For project simplification, we are tackling pure boolean statements. Adding arithmetic can add some complexity.
Direct translation. Can potentially write some formal semantics for rules which can translate these expressions.
The following are a few potential ideas we could tackle if there is enough time. Some of these ideas will be fleshed out more as we progress.
doc/
.