本文介绍: 自己iOS开发也有几年的时间了,平时做完项目基本就直接打包上传到Appstore上,然后上架操作了。但是最近,客户方面提出了代码安全的要求。说是要做代码混淆,这方面的工作之前从来没有接触过。然后上网查了一下,原来有很多应用程序都做了代码混淆。看来是我固步自封了…

前言

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

起因

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

开始混淆

在进行代码混淆之前,我们需要我们项目中增加两个文件:confuse.sh&func.list我们打开我们的终端命令行


2

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

3

项目添加一个.PCH文件。如果你说你不知道怎么添加.pch,没关系这里有个链接地址能帮到你ios中pch文件的创建与配置成功添加.pch文件之后,我们就要在.pch文件中添加这么一句代码#import"codeObfuscation.h 然后我们编译一下,是不是报错了?是不是这样的?

我们先把报错的代码注释掉,然后去项目Build Phases中的左上角的+号,选中那个New Run Script Phase,然后如下图所示,把你的confuse.sh文件的地址写进去

然后返回我们的PCH文件,把我们刚才注释的那行代码打开,然后再编译一下子,是不是通过了。这个时候就证明,代码混淆的前期工作,我们已经做好了。

4

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

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

我们就可以看到,我们定义属性或者方法名都被混淆了。

5

打完收工,Over!!!!!

6

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

原文地址:https://blog.csdn.net/m0_59598029/article/details/128635987

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27104.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注