Objective-C Code Obfuscation

前端 未结 2 987
我寻月下人不归
我寻月下人不归 2020-12-05 06:06

Is there any way to obfuscate Objective-C Code ?

Thanks

相关标签:
2条回答
  • 2020-12-05 06:22

    Objective c is a straight superset of C, therefore all normal C obfuscation techniques work. If you want to work with cocoa, however, you're going to have a bit of an obstacle because the method names are fairly self-documenting.

    For your own methods, you just have to self-document the methods incorrectly. e.g.

    -(void) doSomethingInnocent:(BOOL)animated withObject:passwords;
    

    when you would normally have written:

    -(void) sendObjectToMyServer:(BOOL)coverupAnimation;
    
    0 讨论(0)
  • 2020-12-05 06:28

    The selectors are still plaintext - otool -o will dump out all your objects and the methods they define. You can also dump out all internal and external selectors accessed in the code with a one-liner that follows. Obfuscating method and parameter names at the source level would probably be easiest, though doing it at the object level will also obfuscate in a language-independent way at the expense of some linker table manipulation.

    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
    
    0 讨论(0)
提交回复
热议问题