iOS逆向安防从入门到秃头--混淆与加固

小谷秃头合集html

  • 今天小谷简单阐述混淆与加固,具体怎么用仍是看兄弟们怎么作(小谷公司的项目其实已经写成脚本了,关键的也是这几个方法)

1. 函数名混淆

  • 咱们日常分析代码的时候,用class-dump会把header文件生成出来。并且这些类和函数名,好多都是见名知意的。markdown

  • 这个时候对分析你应用的boy(逆向工程师)太舒服了函数

1.1.png

这个是咱们demo里面的函数名工具

  • 咱们所以就想到了一个办法: 混淆函数名

咱们简单的方法就是#defineoop

#define ConfuseTest xgsufehdfdakldfgs
#define test sdsdsdsdsjhhfbsgh
复制代码

2.png

这样就能够达到混淆函数名的目的了post

注:一些分析你应用的逆向工程师都不是软柿子,都有2把刷子的! 若是看到有混淆的函数名,他们就会很兴奋。而后断点,看函数调用栈!!或者看汇编静态分析!!加密

建议: 小谷这里有些建议:若是混淆函数名的话。小谷建议尽可能混淆那些不重要的!这样逆向工程师分析的时候--就是浪费他的时间。他们可能会吐血!(先跟逆向工程师说声对不起~)spa

2. 字符串加密

  • 兄弟们大多数都用过对称加密吧。咱们能够用这个把本身重要的字符串加密!小谷用的CCCrypt

这个其实没有啥好说的。加密解密code

3. Inline 内联

小谷可能也是给个思路。兄弟们也能够给小谷些建议orm

  • 写一个兄弟们常常用到的: 异或加密

3.1.png

  • 而后咱们看下汇编

4.png

  • 咱们用下Inline内联

static inline NSData * encodeData(NSData *sourceData) __attribute__ ((always_inline));

  • 而后在看下汇编

5.png

  • Inline 内联是防止咱们调用函数bl后,逆向工程师能够打断点看函数调用栈和参数

  • 使用Inline内联后。会把代码直接拷贝到调用的地方。这样!逆向大佬们就不是那么容易发现了

兄得们能够看下Inlinehook。不过这篇博客就不讲如何在__TEXT__ 段改东东了~

4. 混淆工具

小谷这里只推荐一波吧。

  • 原先混淆比较有名的是obfuscator-llvm,不过只支持到Xcode8,如今基本也用不了了

  • 如今用的多的通常是网易网盾ZFJObsLib

  • 不够如今大公司的混淆估计都是大佬们本身搞的

  • 咱们能够研究下ZFJObsLib是怎么作的,本身能够搞得简单点练练手~

ZFJObsLib详细网址

5. 总结

  • 小谷如今也没有太多的时间研究混淆和加固了。最近工做实在是太忙了~

  • 混淆和加固,小谷感受只有用在项目中才有参考性!!

  • 但愿有朝一日兄弟们能够写出本身满意的混淆工具

  • 但愿这篇博客对兄弟们有些帮助吧。😆

相关文章
相关标签/搜索