选择器仍然是纯文本 - otool -o将转储所有对象及其定义的方法.您还可以使用后面的单行转储在代码中访问的所有内部和外部选择器.源级别的混淆方法和参数名称可能是最简单的,但在对象级别执行此操作也会以与语言无关的方式进行混淆,但会牺牲一些链接器表操作.
otool -s __TEXT __objc_methname yourapp.app/executable_file |expand -8 | cut -c17- | sed -n '3,$p' | perl -n -e 'print join("\n",split(/\x00/,scalar reverse (reverse unpack("(a4)*",pack("(H8)*",split(/\s/,$_))))))'|less
Run Code Online (Sandbox Code Playgroud)
Objective c 是 C 的直接超集,因此所有正常的 C 混淆技术都有效。然而,如果您想使用 cocoa,您将会遇到一些障碍,因为方法名称是相当自我记录的。
对于您自己的方法,您只需错误地自我记录方法即可。例如
-(void) doSomethingInnocent:(BOOL)animated withObject:passwords;
Run Code Online (Sandbox Code Playgroud)
当你通常会写:
-(void) sendObjectToMyServer:(BOOL)coverupAnimation;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7712 次 |
| 最近记录: |