线性MBA杂谈
2023-3-27 18:0:55 Author: 看雪学苑(查看原文) 阅读量:13 收藏


本文为看雪论坛优秀文章

看雪论坛作者ID:R1mao

背景:线性MBA混淆

1. 定义

  • 什么是BA(Boolean-Arithmetic)
    n 为一个正整数,且B={0,1},那么下面这个代数系统可以成为BA

    其中<<,>>代表着左右移位,·代表着乘法,s代表着有符号数的运算。

2. 应用方式举例

例子:
如果存在

那么可以移项

则运算x-y即可由右边的运算混淆代替。
更多的例子:

3. 线性MBA的生成方式

4. 给出混淆过程定义

5. 关键定理的证明

现有工作:mba-blast or 化简引擎

1. 化简思路:

  • 1.使用z3等约束求解器进行化简,时间非常长且效果不尽人意
  • 2.mba-blast工具(最新论文 MBA-Blast: Unveiling and Simplifying Mixed
    Boolean-Arithmetic Obfuscation)

2. mba-blast数学原理


3. 进一步的

4. 总结

在MBA-Blast工具中化简线性mba混淆采用的是迭代化简的过程,它证明了任何mba都可以不断迭代化简,最后化简为简单的形式,因此其算法需要迭代公式库,且变量数目越多需要的化简公式也越多。

而进一步的可以发现,本质上是一个线性代数问题,通过构造几个真值向量能够作为极大线性无关组的位运算组合,就能够通过矩阵求逆的方式将任何MBA化简至该位运算组合的表示下。因此只要选取简单的位运算组合,例如x,y,x^y,-1等,即可实现化简。

看雪ID:R1mao

https://bbs.kanxue.com/user-home-948449.htm

*本文由看雪论坛 R1mao 原创,转载请注明来自看雪社区

# 往期推荐

1、CVE-2014-1767 分析报告

2、Realworld CTF 2023 ChatUWU 详解

3、安卓协议逆向 cxdx 分析与实现

4、Kernel PWN从入门到提升

5、Kernel PWN-开启smap保护的babydrive

6、【详解】CTFHUB-FastBin Attack

球分享

球点赞

球在看

点击“阅读原文”,了解更多!


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458499980&idx=2&sn=4fbcea70f67def142a581450ada06925&chksm=b18e8b0686f90210708fe862cec36dd253b5f1fa90251bb0170a0d51cddbf1575259b33c205e#rd
如有侵权请联系:admin#unsafe.sh