首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混淆多线程程序的困难/优点是什么?

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

Stack Overflow用户
提问于 2014-01-18 21:07:40
回答 1查看 195关注 0票数 1

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

  • 复杂控制流

代码语言:javascript
复制
1. inserting bogus control-flow
2. control-flow flattening
3. jump through branch functions
4. opaque values from array aliasing

  • 不透明谓词

代码语言:javascript
复制
1. opaque predicates from pointer aliasing

  • 动态混淆

代码语言:javascript
复制
1. self-modifying state machine
2. code as key material

从他们在介绍这些混淆方式时给出的例子来看,多线程程序还没有被讨论过。

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

EN

回答 1

Stack Overflow用户

发布于 2014-01-18 22:46:26

为何不适用呢?

混淆基本上是试图使分析变得困难。我可以想象,您可以添加一些基于多线程的更多技术,以利用本来就很难理解的特性:

代码语言:javascript
复制
*  obfuscated synchronization, esp. conditional or multiple waits
*  bogus fork/joins
*  things that look like data races

就难度而言:一旦你知道你想做什么,混淆就相对容易了,而且你有很好的机制来操纵源代码。(后者是困难的部分,而不是前者)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21209861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档