我目前正在阅读一篇关于模糊处理的研究论文。这是与我的问题相关的论文部分。
虽然当前的混淆方案提升了一些静态分析的孤岛,如更改源代码的布局、更改控制流和修改数据,但由于缺乏API隐蔽性,它们很容易受到反向工程分析的影响。因此,需要一种定量评估方案来确保将混淆应用于具有足够抵抗力的适当API。
发布于 2018-09-18 14:01:30
“混淆API”可能意味着将标识符的名称,如类名、方法名、字段名等更改为非常不具描述性的名称。这样代码的读者就不会知道代码在做什么。
Proguard就是这样一个工具。Here是我找到的一篇文章,它涉及到在一个简单的类中使用Proguard来混淆私有方法。您可以看到privateStaticMethod
如何转变为a
,以及参数名称如何转变为paramString1
和paramString2
。
通过这样做,读者不会仅仅通过查看就知道a
做了什么,因为a
实际上并没有告诉他们该方法实际做了什么。a
调用的方法也可能被混淆为b
或c
,这使得了解您的代码正在做什么变得更加困难。
这里的逆向工程指的是试图弄清楚混淆后的代码最初是什么样子的。显然,与仅仅更改控制流和代码布局相比,更改方法和参数的名称会使反向工程变得更加困难。
https://stackoverflow.com/questions/52379499
复制相似问题