SiMBA:线性混合布尔-算术表达式简化工具

SiMBA:线性混合布尔-算术表达式简化工具

SiMBA Efficient Deobfuscation of Linear Mixed Boolean-Arithmetic Expressions SiMBA 项目地址: https://gitcode.com/gh_mirrors/simba2/SiMBA

项目介绍

SiMBA(Simplification of Mixed Boolean-Arithmetic expressions)是一款用于简化线性混合布尔-算术表达式(MBAs)的工具。与MBA-BlastMBA-Solver类似,SiMBA采用了一种基于代数的全局方法,利用了线性MBA完全由其在零和一集合上的值确定的特性。SiMBA的创新之处在于,它不需要将表达式转换到1-bit空间,从而提高了效率。

该项目基于以下论文开发:

@inproceedings{simba2022,
    author = {Reichenwallner, Benjamin and Meerwald-Stadler, Peter},
    title = {Efficient deobfuscation of linear mixed Boolean-arithmetic expressions},
    year = {2022},
    month = nov,
    address = {Los Angeles, CA, USA},
    date = {November 7 - 11, 2022},
    booktitle = {Proceedings of the CheckMATE 2022 workshop, co-located with the ACM Conference on Computer and Communication Security, CCS'22},
    pages = {19--28},
    doi = {10.1145/3560831.3564256},
    publisher = {ACM},
    howpublished = {\url{https://arxiv.org/abs/2209.06335}}
}

您还可以通过幻灯片视频录制了解更多关于SiMBA的详细信息。

项目技术分析

SiMBA的核心功能是通过代数方法简化复杂的线性混合布尔-算术表达式。它提供了两个主要程序:

  • simplify.py:用于简化单个线性MBA表达式。
  • simplify_dataset.py:用于简化文件中包含的一组线性MBA表达式,并通过与文件中对应的简化表达式进行比较来验证结果。

此外,check_linear_mba.py程序可以用于检查表达式是否为线性MBA。

技术细节

  1. 简化单个表达式

    • 使用python3 src/simplify.py "expr"命令简化单个表达式。
    • 可以通过-l选项启用线性检查,通过-z选项启用Z3验证。
    • 使用-b选项设置常量和变量的位数。
  2. 简化并验证文件中的表达式

    • 使用python3 src/simplify_dataset.py -f path_to_file命令简化文件中的表达式。
    • 可以通过-l-z-b选项分别启用线性检查、Z3验证和设置位数。
    • 使用-r选项限制处理的表达式数量。
    • 使用-v选项打印简化结果。
    • 使用-e选项对输出进行仿射函数编码。

项目及技术应用场景

SiMBA在以下场景中具有广泛的应用:

  1. 代码混淆与反混淆:在软件保护和逆向工程中,复杂的布尔-算术表达式常用于代码混淆。SiMBA可以帮助简化这些表达式,从而提高代码的可读性和分析效率。

  2. 自动化测试与验证:在自动化测试和验证过程中,SiMBA可以用于简化复杂的测试用例,减少测试时间和资源消耗。

  3. 学术研究:在计算机科学和数学研究中,SiMBA可以用于验证和简化复杂的代数表达式,帮助研究人员更快地得出结论。

项目特点

  1. 高效性:SiMBA采用了一种无需转换到1-bit空间的全局代数方法,显著提高了简化效率。

  2. 灵活性:支持多种选项,如线性检查、Z3验证、位数设置等,用户可以根据需求灵活配置。

  3. 易用性:提供了详细的命令行接口和示例,用户可以轻松上手并快速应用到实际项目中。

  4. 可扩展性:支持多种变量和操作符,理论上变量数量无限制,适用于各种复杂的表达式。

  5. 可验证性:通过Z3验证简化结果的正确性,确保简化后的表达式与原始表达式等价。

结语

SiMBA作为一款强大的线性混合布尔-算术表达式简化工具,不仅在技术上具有创新性,而且在实际应用中展现了极高的效率和灵活性。无论您是从事软件保护、逆向工程,还是进行学术研究,SiMBA都能为您提供强有力的支持。立即尝试SiMBA,体验其带来的便捷与高效!

SiMBA Efficient Deobfuscation of Linear Mixed Boolean-Arithmetic Expressions SiMBA 项目地址: https://gitcode.com/gh_mirrors/simba2/SiMBA

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霍曙柏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值