首页> 中国专利> 一种基于iOS Method Swizzling技术的数据隔离系统和方法

一种基于iOS Method Swizzling技术的数据隔离系统和方法

摘要

本发明提供一种基于iOS Method Swizzling技术的数据隔离系统和方法,属于iOS移动应用开发领域。该数据隔离系统包括,数据加密模块和方法替换模块;该数据隔离方法主要包括以下步骤:S1,所述MR模块替换writeToFile:atomically:的IMP和hook_writeToFile:atomically:的IMP;S2,所述DE模块将所述hook_writeToFile:atomically:的NSData类型的数据Adata加密成NSData类型数据Bdata。

著录项

  • 公开/公告号CN105956478A

    专利类型发明专利

  • 公开/公告日2016-09-21

    原文格式PDF

  • 申请/专利权人 北京珊瑚灵御科技有限公司;

    申请/专利号CN201610262517.7

  • 发明设计人 丁昊;宋锦辉;李倩;

    申请日2016-04-25

  • 分类号

  • 代理机构北京市盛峰律师事务所;

  • 代理人于国富

  • 地址 100080 北京市海淀区苏州街18号院-2号楼1105室

  • 入库时间 2023-06-19 00:30:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-05

    未缴年费专利权终止 IPC(主分类):G06F21/60 专利号:ZL2016102625177 申请日:20160425 授权公告日:20200103

    专利权的终止

  • 2020-01-03

    授权

    授权

  • 2016-10-19

    实质审查的生效 IPC(主分类):G06F21/60 申请日:20160425

    实质审查的生效

  • 2016-09-21

    公开

    公开

说明书

技术领域

本发明涉及iOS移动应用开发领域,尤其涉及一种基于iOS MethodSwizzling技术的数据隔离系统和方法。

背景技术

现有的iOS应用的数据读写方式都是没有经过加密的,通过某些平台可以看到应用里面的文件从而造成数据泄密,即使是加密也是要针对每一个存储的文件进行加密,非常繁琐,往往会导致最后忘记哪些加密,哪些没有解密。

发明内容

本发明的目的在于提供一种基于iOS Method Swizzling技术的数据隔离系统和方法,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种基于iOS Method Swizzling技术的数据隔离系统,其特征在于,包括数据加密模块和方法替换模块;

所述数据加密模块即DataEncryption,简称为DE模块,所述方法替换模块即MethodsReplace,简称为MR模块;

所述DE模块实现对数据的AdvancedEncryptionStandard加密,所述MR模块实现对所需要的方法进行方法替换并修改。

一种基于iOS Method Swizzling技术的数据隔离方法,包括以下步骤:

S1,所述MR模块通过Method Swizzling技术替换系统方法writeToFile:atomically:的IMP和自定义方法hook_writeToFile:atomically:的IMP;

S2,所述DE模块将所述自定义方法hook_writeToFile:atomically:的NSData类型的数据Adata加密成NSData类型数据Bdata;

S3,将所述数据Bdata调用所述系统方法writeToFile:atomically:存入文件中;

S4,所述MR模块通过Method Swizzling技术替换系统方法initWithContentsOfFile:的IMP和自定义方法hook_initWithContentsOfFile:的IMP;

S5,将所述自定义方法hook_initWithContentsOfFile:传递的参数还原成所述NSData类型数据Cdata;

S6,调用DE模块,将所述数据Cdata解密成所述NSData类型数据Ddata;

S7,将所述数据Ddata调用所述系统方法initWithContentsOfFile:返回。

优选的,S1具体步骤包括:

S11,所述MR模块通过method_getImplementation()函数获取到所述系统方法writeToFile:atomically:的IMP;

S12,所述MR模块自定义一个所述自定义方法hook_writeToFile:atomically:,并通过系统函数method_getImplementation()获取所述自定义方法hook_writeToFile:atomically:的IMP;

S13,通过系统函数class_replaceMethod()来交换所述系统方法writeToFile:atomically:的IMP和所述自定义方法hook_writeToFile:atomically:的IMP。

优选的,S4具体步骤包括:

S41,所述MR模块通过method_getImplementation()函数获取到所述系统方法initWithContentsOfFile:的IMP;

S42,自定义一个所述自定义方法hook_initWithContentsOfFile:,并通过method_getImplementation()函数获取该方法IMP;

S43,最后通过class_replaceMethod()来交换所述系统方法initWithContentsOfFile:的IMP和所述自定义方法hook_initWithContentsOfFile:的IMP。

优选的,S5具体步骤包括:

S51,获取自定义方法hook_initWithContentsOfFile:的参数Path;

S52,根据所述参数Path,调用所述系统方法initWithContentsOfFile:得到所述数据Cdata。

本发明的有益效果是:本发明提供一种可以对数据自动加密解密的方案,不需写入大量的代码,就可以对存入文件的数据进行加密,在使用的时候可以自动解密,不需要开发人员重复加密解密的过程,即可完成对数据的保护,加密之后的文件通过第三方工具即使找到了存储的文件,也会因为文件加密过而无法读取文件的内容,在应用内部可以正常的使用文件的数据,达到数据隔离的效果。

附图说明

图1是本发明中基于iOS Method Swizzling技术的数据隔离系统的运行图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

一种基于iOS Method Swizzling技术的数据隔离系统,包括数据加密模块和方法替换模块;

所述数据加密模块即DataEncryption,简称为DE模块,所述方法替换模块即MethodsReplace,简称为MR模块;

所述DE模块实现对数据的AdvancedEncryptionStandard加密,所述MR模块实现对所需要的方法进行方法替换并修改。

一种基于iOS Method Swizzling技术的数据隔离方法,包括以下步骤:

S1,所述MR模块通过Method Swizzling技术替换系统方法writeToFile:atomically:的IMP和自定义方法hook_writeToFile:atomically:的IMP;其中,S1具体步骤包括:S11,所述MR模块通过method_getImplementation()函数获取到所述系统方法writeToFile:atomically:的IMP;S12,所述MR模块自定义一个所述自定义方法hook_writeToFile:atomically:,并通过系统函数method_getImplementation()获取所述自定义方法hook_writeToFile:atomically:的IMP;S13,通过系统函数class_replaceMethod()来交换所述系统方法writeToFile:atomically:的IMP和所述自定义方法hook_writeToFile:atomically:的IMP。

S2,所述DE模块将所述自定义方法hook_writeToFile:atomically:的NSData类型的数据Adata加密成NSData类型数据Bdata;

S3,将所述数据Bdata调用所述系统方法writeToFile:atomically:存入文件中;

S4,所述MR模块通过MethodSwizzling技术替换系统方法initWithContentsOfFile:的IMP和自定义方法hook_initWithContentsOfFile:的IMP;其中,S4具体步骤包括:S41,所述MR模块通过method_getImplementation()函数获取到所述系统方法initWithContentsOfFile:的IMP;S42,自定义一个所述自定义方法hook_initWithContentsOfFile:,并通过method_getImplementation()函数获取该方法IMP;S43,最后通过class_replaceMethod()来交换所述系统方法initWithContentsOfFile:的IMP和所述自定义方法hook_initWithContentsOfFile:的IMP;

S5,将所述自定义方法hook_initWithContentsOfFile:传递的参数还原成所述NSData类型数据Cdata;其中,S5具体步骤包括:S51,获取自定义方法hook_initWithContentsOfFile:的参数Path;S52,根据所述参数Path,调用所述系统方法initWithContentsOfFile:得到所述数据Cdata;

S6,调用DE模块,将所述数据Cdata解密成所述NSData类型数据Ddata;

S7,将所述数据Ddata调用所述系统方法initWithContentsOfFile:返回。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:

本发明提供一种可以对数据自动加密解密的方案,不需写入大量的代码,就可以对存入文件的数据进行加密,在使用的时候可以自动解密,不需要开发人员重复加密解密的过程,即可完成对数据的保护,加密之后的文件通过第三方工具即使找到了存储的文件,也会因为文件加密过而无法读取文件的内容,在应用内部可以正常的使用文件的数据,达到数据隔离的效果。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号