据我所知,有几种混淆策略被广泛使用(或至少在学术上有描述),例如:
复杂的控制流程
- 插入虚假控制流
- 控制流扁平化
- 跳转到分支函数
- 来自数组别名的不透明值
不透明谓词
- 来自指针别名的不透明谓词
动态混淆
- 自修改状态机
- 代码作为关键材料
从他们介绍这些混淆方式时给出的例子来看,多线程程序并没有被提及。
所以我想知道这些策略在多线程程序中是否可行(甚至可行,但不是很实用)?
据我所知,有几种混淆策略被广泛使用(或至少在学术上有描述),例如:
复杂的控制流程
不透明谓词
动态混淆
从他们介绍这些混淆方式时给出的例子来看,多线程程序并没有被提及。
所以我想知道这些策略在多线程程序中是否可行(甚至可行,但不是很实用)?
所有这些都是可行的。根据定义,混淆代码转换是保留混淆程序的功能等效性的转换,因此从这个角度来看,多线程和单线程程序没有任何区别。