美文网首页
OC 简单的函数名混淆

OC 简单的函数名混淆

作者: 学无止境吧 | 来源:发表于2016-12-10 14:36 被阅读224次

方法抄自念茜的博客:
http://blog.csdn.net/yiyaaixuexi/article/details/29201699

使用了一下,感觉很棒,有需要的可以试一下。

混淆函数名,这里使用的是#define来将函数名定义成宏,我们原本写好的文件不用做任何改变,只需要加一个混淆的宏文件,然后在PrefixHeader.pch中引用一下即可。
当开发的时候,可以把PrefixHeader.pch的混淆头文件注释掉,这样开发过程中就可以正常使用xcode的函数名联想。

废话不多说,拿起键盘就是干:
第一步:
在自己的项目根目录,新建一个混淆的头文件,取名:codeObfuscation.h
第二步:
在codeObfuscation.h中定义好我们需要混淆的函数宏
先看一下需要被混淆的oc文件,这里随便搞了一个:

编辑codeObfuscation.h文件,如图:

额,我这里拿了中文来做函数名,是不是有点小变态......

第三步:
在PrefixHeader.pch中引入这个.h文件。


第四步:
猥琐的编译一下

第五步:
看下编译结果。
使用class-dump导出文件的文件头。
class-dump的下载地址:https://github.com/0xced/class-dump/tree/swift-binaries

使用方法:

class-dump -H xxxx -o  xxxx_headers

查看下结果:

额,函数名已经成功变成了乱码,有人要逆向你app的话得稍微费点脑子了。

再看看hopper里面的效果:


第六步:
结束

以上是一个很简单的混淆例子,知道了这个的实现原理,我们就能够在此基础上加上一些更自动化的东西,如念茜的博客中的自动生成随机字符串,还有别人写好的使用python脚本自动提取项目中的函数名自动生成宏文件等等。

祝大家好运!

相关文章

  • OC 简单的函数名混淆

    方法抄自念茜的博客:http://blog.csdn.net/yiyaaixuexi/article/detail...

  • 拓展

    iOS自动化埋点探索 我背着女朋友,用 Python 偷偷抓取了她的行踪 OC 简单的函数名混淆 iOS安全攻防(...

  • iOS 初探代码混淆(OC)

    iOS 初探代码混淆(OC) iOS 初探代码混淆(OC)

  • 浅析混淆

    序言 混淆的优点和缺点 优点: 会将方法名,类名,包名,参数名进行混淆,使用简单字符替代,对于反编译阅读产生一定的...

  • 菜鸡学Swift3.0 10.函数

    1. 函数的定义 func 函数名(参数)-> 返回值类型 { 函数体 } 函数名( 参数名:参数值 ) 2. 函...

  • PHP函数

    function functionName() { Code } 函数名不区分大小写 函数名不能以数字开头 函...

  • Swift散记4 函数

    func <#name#> (参数名:参数类型 , 参数名:参数类型) - > 返回值{函数内容return} 函...

  • 2016.11.22 JS

    函数 函数:function foo函数名(函数的自变量){ }; 调用函数:foo();函数名加上括号就是调用函...

  • Python - 2017/01/28-函数

    调用python内置函数 函数名(参数) 即可调用python内置函数 help(函数名) 返回python对于函...

  • JS函数

    函数:简单来说就是一个封装功能代码的容器格式:function 函数名(形参1,形参2...){代码块;}调用:函...

网友评论

      本文标题:OC 简单的函数名混淆

      本文链接:https://www.haomeiwen.com/subject/dgxumttx.html