iOS 初探代码混淆(OC)

iOS 初探代码混淆(OC)

前言

本身作iOS开发也有几年的时间了,平时作完项目基本就直接打包上传到Appstore上,而后作上架操做了。可是最近,客户方面提出了代码安全的要求。说是要作代码混淆,这方面的工做以前历来没有接触过。而后就上网查了一下,原来有不少应用程序都作了代码混淆。看来是我固步自封了......html

原由

使用classdump对原程序进行dump,能够dump出全部源程序的函数全部信息:源程序全部函数类型,变量所有泄露。这样的话,让攻击者,也就是黑客们了解了程序结构方便逆向。由于在工程中,咱们这些变量或函数命名都是有必定可读性的,例如跟用户名相关的,那通常里面会有 userName,跟密码相关的通常会有passWord,这样定义也是为了咱们本身代码可读性更强,咱们修改的时候才更加的方便。可是咱们相信,这么个定义法,咱们只是但愿方便咱们本身,咱们可不但愿方便黑客们去破解咱们的APP。 总结出来就是一句话:“会把你项目中的全部方法和变量都罗列出来”。ios

开始混淆:

1.

在进行代码混淆以前,咱们须要在咱们的项目中增长两个文件:confuse.sh&func.list
咱们打开咱们的终端命令行git


先cd到你项目的路径下,而后回车
而后在终端中分别输入  touch confuse.sh 和 func.list而后回车
这个时候打开咱们的项目文件夹,就能看到多了两个文件。这个时候咱们打开咱们的工程,把咱们建立的这两个文件添加到项目中去

 

2

这个时候咱们点击咱们的confuse.sh文件能够看到里面的内容是空的,咱们要填一些代码进去,点这个连接地址iOS安全攻防(二十三):Objective-C代码混淆能够把这位大神的代码粘贴到本身的confuse.sh文件中github

3

在项目中添加一个.PCH文件。若是你说你不知道怎么添加.pch,不要紧。这里有个连接地址能帮到你ios中pch文件的建立与配置
成功添加.pch文件以后,咱们就要在.pch文件中添加这么一句代码#import"codeObfuscation.h 而后咱们编译一下,是否是报错了?是否是这样的?安全

咱们先把报错的代码注释掉,而后去项目的 Build Phases中的左上角的 +号,选中那个 New Run Script Phase,而后以下图所示,把你的 confuse.sh文件的地址写进去 而后返回咱们的PCH文件,把咱们刚才注释的那行代码打开,而后再编译一会儿,是否是经过了。这个时候就证实,代码混淆的前期工做,咱们已经作好了。

 

4

而后接下来的就是如何进行代码混淆了。函数

这个时候你就找到一个你想要混淆的类(.h .m)文件均可以。把你想混淆的代码复制一下,而后粘贴到咱们的func.list文件中去。而后编译一下,而后把切换到这个界面post

咱们就能够看到,咱们定义的属性或者方法名都被混淆了。

 

5

打完收工,Over!!!!!

6

注意:该方法只能针对有.m.h的类进行混淆,静态库等只有.h文件的无法进行混淆

7

传送门:Objective-C代码混淆

 

做者:c4ibd3
连接:https://juejin.im/post/5b06578f51882538c150744bui

相关文章
相关标签/搜索