博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS程序安全-代码混淆
阅读量:2396 次
发布时间:2019-05-10

本文共 870 字,大约阅读时间需要 2 分钟。

转载自:  http://www.jianshu.com/p/7181c8116c66

最近第三方测试机构给了一份测试报告。罗罗列列的给了将近有20条的问题。
我就选出其中两条给大家说一下解决办法。

1:代码混淆
为什么要搞代码混淆:就是把关键函数混淆,如果有反编译的工具,编译出来之后,看不到主要函数的名字。保证程序安全,当然就要搞混淆了。

推荐一个比较笨的方法:宏定义

我们在工程里创建一个.pch文件。
关于这个文件,大家都知道。在整个app中他贯通整个程序。就是宏吗!!!

1:创建一个.pch文件(关于配置pch文件的方法自行搜索)
2:创建一个头部文件。命名为Fuscation.h(注意)
3:在pch文件中引入

#import "Fuscation.h"

4:使用
这次在混淆的时候,主要把登陆、注册、关键的一些函数都给混淆了
比如我们的登陆函数叫做

- (void)loginRequest:(NSString *)Name {}

这个时候我们要对这个函数混淆,我们只需要在我们刚刚创建的“Fuscation.h”头文件里只需要写上下面的函数

#define loginRequest eqxvXUDIReajGjoF

NOTICE: loginRequest后面的一些字符,就是我们要给他混淆的结果。这个结果,我们可以对他MD5、或者你乱写都没问题。

如果你搞得没错,这时候看看你的函数名字都已经变色了。

有的时候可能函数有多个参数如下

-(void)chengUserName:(NSString *)names withPwd:(NSString *)pwd {}

我们混淆的时候可以在“Fuscation.h”这样写:

#define chengUserName YwJTjEspxeLAPlbq#define withPwd IyJapptwJNuhKrnO

如有问题可添加我的QQ:1290925041
还可添加QQ群:234812704(洲洲哥学院)
欢迎各位一块学习,提高逼格!
也可以添加洲洲哥的微信公众号

你可能感兴趣的文章
Oracle--管理触发器(查看、启用/禁用、修改、删除)
查看>>
Oracle--事务详解
查看>>
Oracle--锁(概述、分类)
查看>>
Oracle--加锁的方法
查看>>
Lambda表达式语法
查看>>
Lambda函数式接口
查看>>
Lambda方法引用、构造器引用、闭包
查看>>
Lambda表达式使用场景及实例
查看>>
Docker概述
查看>>
Docker--基本组成
查看>>
Docker--Mac下配置阿里云容器镜像、测试运行hello-world镜像
查看>>
数据结构--循环双链表实现、详解
查看>>
数据结构--优先队列实现、模拟线程调度
查看>>
Java并发--Java中的13个原子操作类详解
查看>>
Java并发--同步锁Lock
查看>>
数据结构--串的实现
查看>>
Java并发--数据依赖性、as-if-aerial、程序顺序规则、重排序对多线程的影响
查看>>
Java并发--并发编程模型、内存屏障
查看>>
Java并发--volatile内存语义的实现
查看>>
Java并发--concurrent包的实现
查看>>