According to my knowledge, several obfuscation strategies are widely used(or at least described in academic) like:
complicating control flow
- inserting bogus control-flow
- control-flow flattening
- jump through branch functions
- opaque values from array aliasing
- opaque predicates from pointer aliasing
- self-modifying state machine
- code as key material
From the examples they give when introducing these obfuscation ways, multi-thread program has not been talked.
So I am wondering whether these strategies are feasible(or even feasible, but not very practical) in multi-thread programs?