公开/公告号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:返回。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明提供一种可以对数据自动加密解密的方案,不需写入大量的代码,就可以对存入文件的数据进行加密,在使用的时候可以自动解密,不需要开发人员重复加密解密的过程,即可完成对数据的保护,加密之后的文件通过第三方工具即使找到了存储的文件,也会因为文件加密过而无法读取文件的内容,在应用内部可以正常的使用文件的数据,达到数据隔离的效果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
机译: 用于压缩和解压缩彩色数字视频数据的视频电信系统和方法技术领域本发明涉及一种用于压缩电信系统视频中数字彩色视频数据的方法,该方法具有用于生成视频信号的装置,该装置是用于生成视频信号的装置。将视频信号转换为多个彩色视频帧速率,每个帧图像由多个扫描线组成,扫描线由多个像素组成,图像中的每个像素由彩色数字分量组成(该方法包括确定功能的步骤);基于彩色数字(b)的三个分量中的至少一个的亮度像素,基于两个像素之间的亮度差异,针对当前图像表的扫描线中的至少大部分像素,确定至少一个参数决策。与每条扫描线中至少一个像素相距预定距离的像素,以及至少(c)比较决策参数与
机译: 基于计算机的用于处理地下矿井中的多次潜水的方法,存在的介质,基于计算机的用于基于矿井中的矿物处理井底数据的方法的方法一个基于计算机的地下信息系统。根据地下矿井中的矿物来处理数据,并基于计算机对地下矿井中的数据进行处理的方法,仓储腿目前的计算机系统是基于计算机的,用于处理基于地下的一种形式的多次潜水。计算机根据地下矿井中的矿物质来处理数据u00e7o地下,以及基于计算机的数据处理方法
机译: 一种用于改进与基于软件的近场数据处理(NDP)技术的软件基于关系数据库查询的处理的系统和方法