软件编译方法、软件加载方法、装置、机器人及存储介质制造方法及图纸

技术编号:34393977 阅读:15 留言:0更新日期:2022-08-03 21:25
本申请公开了一种软件编译方法、软件加载方法、装置、机器人及存储介质,涉及计算机技术领域,可以防止敏感数据被反编译获取,从而避免敏感数据泄露。该软件编译方法可以包括:获取至少一个编码字段;各编码字段包括不同的敏感信息,敏感信息至少包括敏感数据;基于至少一个编码字段编译JavaSdk的执行文件和JNI的执行文件;JavaSdk的执行文件被配置为在接收到应用程序的获取请求时加载,加载后基于获取请求调用JNI的执行文件;JNI的执行文件被配置为在被JavaSdk的执行文件调用时加载,加载后进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定目标敏感数据并返回给应用程序。回给应用程序。回给应用程序。

【技术实现步骤摘要】
软件编译方法、软件加载方法、装置、机器人及存储介质


[0001]本申请涉及计算机
,尤其涉及一种软件编译方法、软件加载方法、装置、机器人及存储介质。

技术介绍

[0002]在应用程序(Application,app)开发过程中,为了满足服务端(如机器人云端服务器)和客户端(如机器人)两者之间的交互安全需求,会在服务端和客户端通信过程中添加用户账号密码识别、身份标识号(identity document,ID)识别、网际互连协议(Internet Protocol,IP)地址识别或密钥验证等环节。
[0003]现有的,开发人员在app开发时,为了编码方便以及满足客户端脱机运行等需求,一般会将用户账号密码、ID、IP地址或密钥等敏感信息编码到app源码中。
[0004]然而,编码在app源码中的敏感信息容易被反编译获取,从而容易导致敏感信息泄露。

技术实现思路

[0005]本申请提供一种软件编译方法、软件加载方法、装置、机器人及存储介质,可以防止敏感数据被反编译获取,进而避免敏感数据泄露。
[0006]为达到上述目的,本申请采用如下技术方案:
[0007]第一方面,本申请提供一种软件编译方法,包括:获取至少一个编码字段;各编码字段包括不同的敏感信息,敏感信息至少包括敏感数据;基于至少一个编码字段编译JavaSdk的执行文件和JNI的执行文件;JavaSdk的执行文件被配置为:在接收到应用程序的获取请求时加载,加载后基于获取请求调用JNI的执行文件;JNI的执行文件被配置为:在被JavaSdk的执行文件调用时加载,加载后进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定目标敏感数据,且将目标敏感数据返回给应用程序。
[0008]第二方面,本申请提供一种软件加载方法,包括:在接收到应用程序的获取请求时,加载JavaSdk的执行文件,通过JavaSdk的执行文件调用JNI的执行文件;JNI的执行文件和JavaSdk的执行文件为基于至少一个编码字段预编译的文件;各编码字段包括不同的敏感信息,敏感信息至少包括敏感数据;加载JNI的执行文件,通过JNI的执行文件进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定目标敏感数据,且将目标敏感数据返回给应用程序。
[0009]第三方面,本申请提供一种软件编译装置,包括:获取模块和编译模块;
[0010]获取模块,用于获取至少一个编码字段;各编码字段包括不同的敏感信息,敏感信息至少包括敏感数据;
[0011]编译模块,用于基于获取模块获取的至少一个编码字段编译JavaSdk的执行文件和JNI的执行文件;
[0012]JavaSdk的执行文件被配置为:在接收到应用程序的获取请求时加载,加载后基于
获取请求调用JNI的执行文件;
[0013]JNI的执行文件被配置为:在被JavaSdk的执行文件调用时加载,加载后进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定目标敏感数据,且将目标敏感数据返回给应用程序。
[0014]第四方面,本申请提供一种软件加载装置,包括:接收模块和加载模块;接收模块,用于在接收到应用程序的获取请求时,通过加载模块加载JavaSdk的执行文件,并通过JavaSdk的执行文件调用JNI的执行文件;JNI的执行文件和JavaSdk的执行文件为基于至少一个编码字段预编译的文件;各编码字段包括不同的敏感信息,敏感信息至少包括敏感数据;
[0015]加载模块,还用于加载JNI的执行文件,通过JNI的执行文件进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定目标敏感数据,且将目标敏感数据返回给应用程序。
[0016]第五方面,本申请提供一种机器人,包括存储器、处理器、总线和通信接口;存储器用于存储计算机执行指令,处理器与存储器通过总线连接;当机器人运行时,处理器执行存储器存储的计算机执行指令,以使机器人执行如上述第一方面提供的软件编译方法或执行如上述第二方面提供的软件加载方法。
[0017]第六方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行指令时,使得计算机执行如第一方面提供的软件编译方法或执行如上述第二方面提供的软件加载方法。
[0018]第七方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算机上运行时,使得计算机执行如第一方面提供的软件编译方法或执行如上述第二方面提供的软件加载方法。
[0019]需要说明的是,上述计算机指令可以全部或者部分存储在计算机可读存储介质上。其中,计算机可读存储介质可以与机器人的处理器封装在一起的,也可以与机器人的处理器单独封装,本申请对此不做限定。
[0020]在本申请中,对于上述涉及到的设备或功能模块的名称不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,均属于本申请权利要求及其等同技术的范围之内。
[0021]本申请提供的技术方案中,为了防止敏感信息被反编译获取,在app开发时,不再将敏感数据对应的编码字段直接编码到app源码中,而是基于编码字段编译Java软件开发包(Java Software Development Kit,JavaSdk)的执行文件和Java本地接口(Java Native Interface,JNI)的执行文件。其中,JavaSdk的执行文件可以在接收到应用程序的获取请求时加载,加载后基于获取请求调用JNI的执行文件。JNI的执行文件可以在加载后对应用程序进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定出目标敏感数据返回给应用程序。可以看出,本申请提供的技术方案中,当应用程序发起获取请求时,需经过JavaSdk的执行文件调用JNI的执行文件,由JNI的执行文件对应用程序进行包名校验后从预先编译到so文件的敏感数据集合中确定敏感数据。由于JNI的执行文件在给应用程序返回敏感数据前,会对应用程序进行包名校验,这样可以确保未经授权的应用程序无法获取敏感数据。并且,由于so文件无法直接反编译,那么被预先编译到so文件中的敏感数
据很难被反编译获取,因此可以避免敏感数据泄露。
[0022]本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
[0023]图1为本申请实施例提供的一种软件编译方法的流程示意图;
[0024]图2为本申请实施例提供的另一种软件编译方法的流程示意图;
[0025]图3为本申请实施例提供的一种软件加载方法的流程示意图;
[0026]图4为本申请实施例提供的另一种软件加载方法的流程示意图;
[0027]图5为本申请实施例提供的又一种软件加载方法的流程示意图;
[0028]图6为本申请实施例提供的一种软件编译装置的结构示意图;
[0029]图7为本申请实施例提供的一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件编译方法,其特征在于,包括:获取至少一个编码字段;各所述编码字段包括不同的敏感信息,所述敏感信息至少包括敏感数据;基于所述至少一个编码字段编译JavaSdk的执行文件和JNI的执行文件;所述JavaSdk的执行文件被配置为:在接收到应用程序的获取请求时加载,加载后基于所述获取请求调用所述JNI的执行文件;所述JNI的执行文件被配置为:在被所述JavaSdk的执行文件调用时加载,加载后进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定目标敏感数据,且将所述目标敏感数据返回给所述应用程序。2.根据权利要求1所述的软件编译方法,其特征在于,所述敏感信息还包括信息标识,所述获取请求携带有所述信息标识和应用程序标识;所述JavaSdk的执行文件具体被配置为:加载后基于所述获取请求中的所述信息标识和所述应用程序标识确定传输参数,且将所述传输参数传输给所述JNI的执行文件;所述JNI的执行文件具体被配置为:在接收到所述传输参数时加载,加载后基于所述传输参数和预设白名单进行包名校验,并在校验通过后基于所述传输参数从所述敏感数据集合中确定所述目标敏感数据。3.根据权利要求2所述的软件编译方法,其特征在于,所述基于所述至少一个编码字段编译JavaSdk的执行文件和JNI的执行文件,包括:基于所述至少一个编码字段确定索引信息集合和所述敏感数据集合;所述索引信息集合中包括至少一组索引信息,每组索引信息包括对应编码字段的所述信息标识和索引标识;所述敏感数据集合中包括至少一组键值对,每组键值对的关键字为对应编码字段的所述索引标识,值为对应编码字段的所述敏感数据;基于所述索引信息集合编译所述JavaSdk的执行文件,且基于所述敏感数据集合编译所述JNI的执行文件;所述JavaSdk的执行文件具体还被配置为:加载后基于所述获取请求中的所述信息标识在所述索引信息集合中查找目标索引标识,且将所述目标索引标识和所述应用程序标识确定为所述传输参数;所述JNI的执行文件具体还被配置为:加载后基于所述应用程序标识和所述预设白名单进行包名校验,并在检验通过后基于所述目标索引标识从所述敏感数据集合中确定所述目标敏感数据。4.根据权利要求2或3所述的软件编译方法,其特征在于,所述JNI的执行文件还被配置为:在校验通过后,若在所述敏感数据集合中未查找到与所述传输参数对应的所述敏感数据,则将空字符串返回给所述应用程序。5.一种软件加载方法,其特征在于,包括:在接收到应用程序的获取请求时,加载JavaSdk的执行文件,通过所述JavaSdk的执行文件调用JNI的执行文件;所述JNI的执行文件和所述JavaSdk的执行文件为基于至少一个编码字段预编译的文件;各所述编码字段包括不同的敏感信息,所述敏感信息至少包括敏感数据;加载所述JNI的执行文件,通过所述JNI的执行文件进行包名校验,并在校验通过后从
预先编译到so文件的敏感数据集合中确定目标敏感数据,且将所述目标敏感数据返回给所述应用程序。6.根据权利要求5所述的软件加载方法,其特征在于,所述敏感信息还包括信息标识,所述获取请求携带有所述信息标识和应用程序标识;所述通过所述JavaSdk的执行文件调用JNI的执行文件,包括:通过所述JavaSdk的执行文件,根据所述获取请求中的所述信息标识和所述应用程序标识确定传输参数,且将所述传输参数传输给所述JNI的执行文件;所述加载所述JNI的执行文件,通过所述JNI的执行文件进行包名校验,并在校验通过后从预先编译到so文件的敏感数据集合中确定目标敏感数据,包括:在接收到所述传输参数时...

【专利技术属性】
技术研发人员:周冲郭双唐旋来
申请(专利权)人:上海擎朗智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1