类名方法名自动加密脚本

重构完毕,留个链接给后人
https://github.com/ch4r04/MiaoDump

2 个赞

不需要。直接利用Clang的前端来做ast分析
一个很简单的例子可以参见我很久之前写的PoC: ClangObfuscator/ObjcObfuscator.cpp at master · Naville/ClangObfuscator · GitHub

个人现在的做法是编译之后直接修改MachO , 因为AST不可变所以通过直接修改AST来实现并不现实,理论上可以通过LLVM IR层的操作达到同样效果,未测试

EDIT: 这是个Clang Plugin,独立使用的话需要稍微改动下

2 个赞

膜两位大神。

我还是那句话。搞这行的知识面越广越好。
除非人生目标只有微信重签名

1 个赞

btw IR层没记错的话每个class/ref都是一个全局变量,没记错的话。我没折腾过这个,就是给你提供个思路

然后visitor里找到并且修改这个全局变量就行了

然后llvm ir层有些高级混淆是有局限的,因为ir的性能设计问题,所以不可避免的某个应用场景需要Clang Rewriter

1 个赞

然后Clang也有python binding来着

好。再膜。

抵挡这类混淆的方法也很简单,就是我很久之前提到过的利用Method Signature.
property/method的属性和参数类型返回值
类的方法数量

开源库还可以通过分析方法的xref来判断

tl;dr: 单纯的文本混淆毫无意义

3 个赞

膜,张总。

嗯试验了一下。
c/c++可以这么玩儿。
oc还没实验。不太清楚 oc 的ir层selector under the hood怎么实现的

继续膜

来一波 6666

地表最强,膜拜