通过Clang对Objective-C方法重命名

通过Clang的libtooling对Objective-C的方法重命名,具体的代码和可执行工具地址:https://github.com/tom555cat/obfuscator-clang.git
详细说明地址:https://www.jianshu.com/p/3a8fb6f7c55f

6 个赞

大致掸了一眼,应该是目前我见过的最好的同类开源项目了。
不过既然上Clang了,那么完全就没有必要把思路局限于方法重命名上了,有其他效果更好但只能在AST里做的方式 : )

1 个赞

在IR层能做的东西放前端做就复杂多了,万不得已还是IR层弄吧。

你理解反了,我的意思是很多混淆方式只能在前端做

有哪些呢?我照着c++ control flow flatten那篇论文在前端做,然后发现炸了。

倒不是控制流混淆了,那种确实只适合在IR做,我的意思是利用ast里相比ir多出来的信息可以玩很多语言特定的小trick,具体由于这类产品本身特性限制就不能说得太细了