iOS混淆代码

匿名 (未验证) 提交于 2019-12-03 00:30:01

混淆代码之前class-dump下代码。如图,发现方法名称完美的暴露了。

混淆之前

混淆之后,发现syn_loginWithName:password:方法名变成了毫无意义的名称。

混淆之后

好,混淆的作用已经演示清楚。那么接下来就说说如何实现混淆。


方式一

第一步:建立测试项目,同时新建一个confuse.sh、一个func.list文件。如图:

第二步:将新建的两个文件拖到项目中。如图:

第三步:将iOS安全攻防(二十三):Objective-C代码混淆 - 博客频道 - CSDN.NET 这篇文章中的脚本代码拷贝到confuse.sh文件中。如图:

拷贝代码

第四步:建立一个.pch文件,并添加代码。(现在的项目都不会自动创建这个文件了)

一:新建一个Header File文件,如图:

新建TestConfusion-Prefix.pch文件

二:在项目中配置一下:

配置.pch文件

三:在.pch文件中添加如下代码:(这个头文件的引入要写在最上面)

第五步:配置 Build Phase,并添加 Run Script

添加Run Script

添加完成后要赋予该文件权限。打开终端,cd到项目根目录并执行该命令:

chmod 755 confuse.sh

好了,回到项目command + b 编译一下,会发现报错。

报错

这时要注释.pch文件中 刚刚添加的那句话:

注释

再编译一下,会发现编译成功。编译成功后,在把刚刚注释的地方打开,再次编译,提示编译成功。

大功告成,混淆代码要做的准备工作已经完成。接下来就是配置你要混淆的函数名和变量名了。

第六步:混淆

假设我们要混淆图中的两个地方,那么我们就要在func.list文件中配置好。

配置func.list

编译项目,如图:

混淆代码成功

接着验证一下是否真的混淆成功了。

将项目打包,并class-dump下,发现方法名和属性名变了。


文章来源: iOS混淆代码
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!