最新消息:本站技术交流 QQ 群:28124927

[iOS Hacker] 使用 inline 内联函数对抗逆向分析

iOS/MacOSX/移动安全 exchen 5574浏览

在 ARM 汇编里函数调用是使用 bl 指令跳转到函数地址,攻击者逆向分析很容易找到调用过程,分析参数和返回值。

可以将一些敏感的函数,比如将加密函数写成 inline 内联,无论代码里调用了多少次函数,编译器会将整个函数代码拷贝到需要调用的地方,而不会使用 bl 指令跳转,不能明显的看出函数参数传递和返回值,大大增加了分析的难度。
以下是一个简单的异或加密函数

反汇编的效果如下:

xor_encrypt 函数的反汇编代码如下:

将函数的声明修改成 static inline

编译后的反汇编的效果如下:

可以看出 xor_encrypt 在 viewDidLoad 里调用了三次,所以 xor_encrypt 的代码拷贝了三份,增强了分析的难度。

转载请注明:exchen's blog » [iOS Hacker] 使用 inline 内联函数对抗逆向分析