- 反编译领域,除了CFG生成之外,其他两大主要方向是(控制)结构还原,和变量恢复(包括类型推导)。
- 《Ahoy SAILR! There is No Need to DREAM of C: A Compiler-Aware Structuring Algorithm for Binary Decompilation》(usenix sec23winter)中介绍了一种新的控制结构还原方法。
- 绝大部分goto是由编译器优化产生的。
- 还原编译优化产生的goto的方法。
- 剩下的与经典算法Phoenix类似 https://github.com/mahaloz/sailr-eval https://github.com/mahaloz/angr-sailr/
- 《Augmenting Decompiler Output with Learned Variable Names and Types》(usenix sec22)机器学习恢复变量类型和名称。 https://github.com/CMUSTRUDEL/DIRTY
- angr支持的两种IR:VEX和AIL,取代汇编。
Because VEX IR cannot represent C-style expressions, we designed a more abstractable intermediate language called the ANGR INTERMEDIATE LANGUAGE (AIL).