混淆多线程程序的困难/优势是什么?

逆向工程 混淆 去混淆 多进程
2021-07-07 18:18:18

据我所知,有几种混淆策略被广泛使用(或至少在学术上有描述),例如:

  • 复杂的控制流程

    1. 插入虚假控制流
    2. 控制流扁平化
    3. 跳转到分支函数
    4. 来自数组别名的不透明值
  • 不透明谓词

    1. 来自指针别名的不透明谓词
  • 动态混淆

    1. 自修改状态机
    2. 代码作为关键材料

从他们介绍这些混淆方式时给出的例子来看,多线程程序并没有被提及。

所以我想知道这些策略在多线程程序中是否可行(甚至可行,但不是很实用)?

1个回答

所有这些都是可行的。根据定义,混淆代码转换是保留混淆程序的功能等效性的转换,因此从这个角度来看,多线程和单线程程序没有任何区别。