免人工改造的业务应用文件管理系统、读写及打开方法
文献发布时间:2023-06-19 11:26:00
技术领域
本发明属于网络信息安全技术领域,具体涉及免人工改造的业务应用文件管理系统、读写及打开方法。
背景技术
现有原始OA应用程序(例如致远OA,协同办公OA等应用程序)中业务应用文件的数据加解密需要开发工程师手动添加加解密代码,进行人工改造,然后才能实现业务应用文件的加密和解密。且现有原始OA应用程序本身不具备文件阅读预览功能,原始OA应用程序中业务应用文件的查看需要安装专门的文件阅读应用程序(例如WPS)才能进行文件查看,参见图1,这可能会存在业务应用文件被泄露的风险。
发明内容
针对现有技术中的缺陷,本发明提供一种免人工改造的业务应用文件管理系统、读写及打开方法,克服了现有技术中存在的业务应用文件泄露的问题,通过免改造程序大大提高了SDK集成效率和文件阅读的安全性。
第一方面,一种免人工改造的业务应用文件管理系统,
该业务应用文件管理系统通过在原始OA应用程序中加入拦截SDK得到;
该业务应用文件管理系统采用拦截系统文件接口的方式,对业务应用文件的读写操作进行自动加解密;采用拦截系统响应动作的方式,对原始OA应用程序进行自动封装,实现原始OA应用程序中业务应用文件的查看预览。
优选地,所述业务应用文件管理系统具体通过以下步骤得到:
使用反编译工具对原始OA应用程序进行反编译,得到反编译目录;
修改反编译目录中的原始OA应用程序的清单文件;
根据修改后的反编译目录生成改造目录;
对改造目录进行编译并签名,得到所述业务应用文件管理系统。
优选地,所述修改反编译目录中的原始OA应用程序的清单文件具体包括:
在原始OA应用程序的清单文件中找到application类包名,并添加拦截SDK初始化代码。
优选地,所述根据修改后的反编译目录生成改造目录具体包括:
根据拦截SDK生成改造目录;
拷贝拦截SDK中jar文件与aar文件到改造目录;
使用smali语法在改造目录的application文件中插入SDK初始化代码。
优选地,所述根据拦截SDK生成改造目录具体包括:
根据反编译目录中assets目录、smali目录、res目录和lib目录下的文件生成一个目录结构,新建所述改造目录,将目录结构中的目录全部拷贝至改造目录中;
或者是,对拦截SDK进行反编译,将得到的目录与反编译目录进行合并,得到所述改造目录。
优选地,所述res目录下values目录的拷贝方法包括:
将拦截SDK的对应文件与values目录下对应文件里的xml文件进行合并去重;
将拦截SDK中public.xml文件与改造目录中public.xml资源清单文件合并去重,并重新分配ID号。
优选地,该方法在所述将目录结构中的目录全部拷贝至改造目录中之后,还包括:
将.r后缀解析成R.java文件,再转换成R.smali文件,最后拷贝到改造目录下的smali目录中。
优选地,所述拷贝拦截SDK中jar文件与aar文件到改造目录具体包括:
将拦截SDK中jar文件转换成dex文件,再将dex文件转换成smali文件,拷贝转换后的smali文件到改造目录中;
解压aar文件,依次将该解压后目录的资源拷贝到改造目录中。
第二方面,一种基于第一方面所述业务应用文件管理系统的读写方法,包括以下步骤:
业务应用文件管理系统启动后,对函数进行动态代理;
监听业务应用文件管理系统调用文件IO读写接口;
通过代理接口类对文件IO写操作进行文件流加密,并且重定向到沙箱文件系统;
通过代理接口类对文件IO读操作进行重定向到沙箱文件系统指定位置并解密。
第三方面,一种基于第一方面所述业务应用文件管理系统的打开方法,包括以下步骤:
业务应用文件管理系统启动后,对函数进行动态代理;
监听业务应用文件管理系统调用系统打开文件查看接口动作,解析得到需要查看的文件类型;
通过代理接口类根据不同文件类型重定向到拦截SDK中调用不同的文件阅读组件进行解析显示;
查看完成监听当前页面关闭动作,关闭当前文件显示。
由上述技术方案可知,本发明提供的免人工改造的业务应用文件管理系统、读写及打开方法,克服了现有技术中存在的业务应用文件泄露的问题,通过免改造程序大大提高了SDK集成效率和文件阅读的安全性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为背景技术提供的现有业务应用文件的打开流程。
图2为本发明实施例一提供的业务应用文件管理系统的原理图。
图3为本发明实施例一提供的业务应用文件管理系统改造方法的原理图。
图4为本发明实施例二提供的读写方法的原理图。
图5为本发明实施例二提供的打开方法的原理图。
图6为本发明实施例二提供的打开方法的流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例一:
一种免人工改造的业务应用文件管理系统,参见图2,该业务应用文件管理系统通过在原始OA应用程序中加入拦截SDK得到;
该业务应用文件管理系统采用拦截系统文件接口的方式,对业务应用文件的读写操作进行自动加解密;采用拦截系统响应动作的方式,对原始OA应用程序进行自动封装,实现原始OA应用程序中业务应用文件的查看预览。
该免人工改造的业务应用文件管理系统,克服了现有技术中存在的业务应用文件泄露的问题,通过免改造程序大大提高了SDK集成效率和文件阅读的安全性。
参见图3,所述业务应用文件管理系统具体通过以下步骤得到:
S1:使用反编译工具对原始OA应用程序进行反编译,得到反编译目录;其中反编译目录包括以下内容:
assets目录:为原始OA应用程序中assets目录下存放的资源文件;
build目录:为重编译OA应用程序时临时生成的目录;
lib目录:为原始OA应用程序中so库存放目录;
original目录:为原始OA应用程序中原始数据目录;
res目录:为原始OA应用程序的资源目录;
smali目录:为原始OA应用程序的源代码目录,以smali格式的中间文件存在;
unknown目录:反编译过程中未识别的文件目录,在重编译时会原封不动的编译回包中;
AndroidManifest.xml:原始OA应用程序的清单文件;
S2:修改反编译目录中的原始OA应用程序的清单文件,具体包括:
在原始OA应用程序的清单文件中找到application类包名,添加拦截SDK初始化代码。
S3:根据修改后的反编译目录生成改造目录,具体包括:
S31:根据拦截SDK生成改造目录:
具体地,步骤S31可以通过复制拦截SDK中assets目录、smali目录、res目录和lib目录下的文件到改造目录,拷贝有两种方式:
第一种是使用拦截SDK标准目录结构拷贝。即根据反编译目录中assets目录、smali目录、res目录和lib目录下的文件生成一个目录结构,新建所述改造目录,依次将目录结构中的目录全部拷贝至改造目录中。
在拷贝res/values目录的文件时,不能进行直接复制,需要将拦截SDK的对应文件与res/values目录下对应文件里的xml文件进行合并去重。然后将拦截SDK中public.xml文件与改造目录中public.xml资源清单文件合并去重,并重新分配ID号。
改造目录中assets目录有几个特殊的文件:com_leagsoft_emm_baseui.r文件、com_leagsoft_emm_filereader.r文件、com_leagsoft_emm_globalization.r文件、com_leagsoft_emm_invoke.r文件。这些.r后缀的文件为R.java文件的序列化文件,需要把它解析成R.java文件后,再转换成R.smali文件,最后再拷贝到改造目录下的smali目录中。
第二种是使用拦截SDK打包成了拦截SDK文件。即对拦截SDK进行反编译,将得到的目录与反编译目录进行合并,得到所述改造目录。在自动打包程序中先要反编译拦截SDK,再将反编译后的目录与改造目录合并,将拦截SDK完全打入到改造后得到的业务应用文件管理系统中。
S32:拷贝拦截SDK中jar文件与aar文件到改造目录;
具体地,使用dx.jar工具将拦截SDK中jar文件转换成dex文件,再将dex文件转换成smali文件,拷贝转换后的smali目录到改造目录中;使用GZIP解压工具解压aar文件,解压后的目录结构包括aidl目录、assets目录、jni目录、libs目录、res目录、AndroidManifest.xml文件、classes.jar文件、R.txt文件。依次将该解压后的目录结构中的资源拷贝到改造目录中,其中要将拦截SDK中aar文件的AndroidManifest.xml文件与改造目录进行合并去重。
S33:使用smali语法在改造目录的application文件中插入SDK初始化代码。
S4:对改造目录进行编译并签名,得到所述业务应用文件管理系统。
具体地,使用apktool.jar工具重新编译改造目录,并重签名。最后清空在打包过程中生成的临时文件,得到所述业务应用文件管理系统。
该免人工改造的业务应用文件管理系统,克服了现有技术中存在的业务应用文件泄露的问题,通过免改造程序大大提高了SDK集成效率和文件阅读的安全性。
实施例二:
一种基于上述业务应用文件管理系统的读写方法,参见图4,包括以下步骤:
业务应用文件管理系统启动后,加入SDK拦截初始化逻辑,对函数进行动态代理;
监听业务应用文件管理系统调用文件IO读写接口;
通过代理接口类对文件IO写操作进行文件流加密,并且重定向到沙箱文件系统;
通过代理接口类对文件IO读操作进行重定向到沙箱文件系统指定位置并解密。
具体地,该读写方法通过动态代理技术实现系统内接口函数拦截,对业务应用文件管理系统中涉及文件IO读写的操作进行文件流拦截加解密重定向。
本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
实施例三:
一种基于上述业务应用文件管理系统的打开方法,参见图5、6,包括以下步骤:
业务应用文件管理系统启动后,加入SDK拦截初始化逻辑,对函数进行动态代理;
监听业务应用文件管理系统调用系统打开文件查看接口动作,解析得到需要查看的文件类型;
通过代理接口类根据不同文件类型重定向到拦截SDK中调用不同的文件阅读组件进行解析显示;
查看完成监听当前页面关闭动作,关闭当前文件显示,并销毁缓存的数据。
具体地,该打开通过动态代理技术实现接口函数拦截,对于业务应用文件管理系统查看响应动作重定向到SDK文件组件中进行查看显示。
本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
- 免人工改造的业务应用文件管理系统、读写及打开方法
- 一种业务应用容器化改造及镜像制作的方法