According to my knowledge, several obfuscation strategies are widely used(or at least described in academic) like:

  • complicating control flow

    1. inserting bogus control-flow
    2. control-flow flattening
    3. jump through branch functions
    4. opaque values from array aliasing
  • Opaque Predicates

    1. opaque predicates from pointer aliasing
  • dynamic obfuscation

    1. self-modifying state machine
    2. 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?


All of them are feasible. By definition obfuscating code transformation is transformation that preserves functional equivalency of obfuscated program, so there is no any difference between multi-thread and single-thread programs from this point of view.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.