重构完毕,留个链接给后人
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
地表最强,膜拜