本文为看雪论坛优秀文章
看雪论坛作者ID:R1mao
线性MBA反混淆
背景:线性MBA混淆
1. 定义
-
什么是BA(Boolean-Arithmetic)
n 为一个正整数,且B={0,1},那么下面这个代数系统可以成为BA
其中<<,>>代表着左右移位,·代表着乘法,s代表着有符号数的运算。
-
什么是线性MBA Expression
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
点击“阅读原文”,了解更多!
原文始发于微信公众号(看雪学苑):线性MBA杂谈
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论