System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
1、软件开发工具包通常由第一开发者提供给第二开发者进行使用。软件开发工具包需要在各种包名下暴露公共api方法,使得第二开发者可以实际利用软件开发工具包。第二开发者在其自己的应用中使用软件开发工具包的暴露api方法。例如,第二开发者编写调用(例如引用)软件开发工具包的暴露的api方法的代码以执行由第一开发者创建的函数所提供的处理。
2、除了公开暴露的api方法之外,通常还会对处理敏感信息(例如用户生物特征数据、密码、支付信息、社会保障号码、疫苗接种状态等)的软件开发工具包进行混淆。在此模型中,不能对公开暴露的api方法进行混淆,因为对公开暴露的api方法进行混淆将不会允许第二开发者以有意义的方式利用api调用。这是因为混淆的函数名称和其参数失去了它们的意义。
3、当第二开发者构建其包括对暴露api函数的调用的应用时,该第二开发者也将对其代码进行混淆,因为该代码可能还会处理敏感信息。除了对暴露api函数的调用之外,第二开发者还将对其应用进行混淆。暴露api函数调用不能被混淆。这是因为,如果该暴露api函数调用被改变,则最终应用在运行时将不会知道sdk中实际正在调用什么函数。
4、由于针对这些暴露的公共api方法的输入数据以及来自该暴露的公共api方法的输出数据可能是敏感的,因而恶意方可能在静态代码分析中寻找这些暴露的公共api方法。例如,恶意方可能在运行时调试期间在暴露的公共api方法上设置断点,并且试图检查调用堆栈以暴露敏感数据和代码执行流。这会对所有软件开发工具包以及使用暴露这些软
5、本公开的实施方案单独地以及共同地解决此问题和其他问题。
技术实现思路
1、实施方案涉及用于对暴露的公共api方法进行安全混淆的方法和系统。
2、一个实施方案涉及一种用于创建最终应用的方法,该方法包括:由计算机接收混淆sdk二进制代码和接口源代码,该接口源代码包括调用混淆sdk内的混淆方法的一个或多个方法;由计算机创建调用接口源代码中的方法的应用源代码;由计算机构建包括接口源代码和应用源代码的中间对象;以及由计算机使用中间对象和混淆sdk来创建最终应用。
3、另一实施方案涉及一种计算机,该计算机包括:处理器;以及计算机可读介质,该计算机可读介质耦合到处理器,该计算机可读介质包括可由处理器执行以用于实现用于创建最终应用的方法的代码,该方法包括:接收混淆sdk二进制代码和接口源代码,该接口源代码包括调用混淆sdk内的混淆方法的一个或多个方法;创建调用接口源代码中的方法的应用源代码;构建包括接口源代码和应用源代码的中间对象;以及使用中间对象和混淆sdk来创建最终应用。稍后可以对最终应用进行混淆。
4、一个实施方案涉及一种在用户设备上运行最终应用的方法,该最终应用包括api调用函数、接口函数和库函数,api调用函数、接口函数和库函数被混淆,该方法包括:由用户设备执行调用接口函数的api调用函数;由用户设备执行调用库函数的接口函数;以及由用户设备执行库函数的功能。
5、关于本公开的实施方案的其他细节可见于具体实施方式和附图。
本文档来自技高网...【技术保护点】
1.一种用于创建最终应用的方法,所述方法包括:
2.如权利要求1所述的方法,所述方法还包括:
3.如权利要求2所述的方法,其中对所述中间对象进行混淆包括:
4.如权利要求1所述的方法,其中所述接口源代码在构建所述中间对象之前以人类可读编程语言进行编写,其中所述应用源代码在构建所述中间对象之前以人类可读编程语言进行编写,并且其中所述混淆SDK二进制代码是以包括机器语言指令的低级编程语言编写的混淆代码。
5.如权利要求1所述的方法,其中所述混淆SDK二进制代码和所述接口源代码是从软件开发工具访问计算机获得的。
6.如权利要求1所述的方法,其中所述计算机是第二开发计算机,并且其中第一开发计算机创建所述混淆SDK二进制代码和所述接口源代码,并且向软件开发工具访问计算机提供所述混淆SDK二进制代码和所述接口源代码。
7.如权利要求6所述的方法,其中在创建所述混淆SDK二进制代码和所述接口源代码期间,所述第一开发计算机创建SDK源代码,将所述SDK源代码编译成SDK二进制代码,将所述SDK二进制代码混淆成混淆SDK二进制
8.如权利要求1所述的方法,其中所述最终应用包括一个或多个混淆函数调用,所述一个或多个混淆函数调用所述接口源代码中也被混淆的所述一个或多个函数。
9.如权利要求1所述的方法,所述方法还包括:
10.一种计算机,所述计算机包括:
11.如权利要求10所述的计算机,其中获得所述混淆SDK二进制代码和所述接口源代码还包括:
12.如权利要求10所述的计算机,其中所述混淆SDK二进制代码包括处理混淆处理步骤的所述混淆函数。
13.如权利要求10所述的计算机,其中所述方法还包括:
14.如权利要求13所述的计算机,其中所述一个或多个用户设备执行所述最终应用。
15.如权利要求10所述的计算机,其中所述中间对象包括从所述接口源代码和所述应用源代码创建的对象代码。
16.如权利要求10所述的计算机,其中所述计算机是第二开发计算机,并且其中第一开发计算机创建所述混淆SDK二进制代码和所述接口源代码,并且向软件开发工具访问计算机提供所述第二开发计算机能够访问的所述混淆SDK二进制代码和所述接口源代码。
17.一种在用户设备上运行最终应用的方法,所述最终应用包括API调用函数、接口函数和库函数,所述API调用函数、所述接口函数和所述库函数被混淆,所述方法包括:
18.如权利要求17所述的方法,所述方法还包括:
19.如权利要求17所述的方法,其中所述库函数是包括在SDK二进制代码中的函数。
20.如权利要求17所述的方法,其中所述用户设备是智能手机,并且所述最终应用是安全交互应用,并且其中所述安全交互应用通过至少执行所述库函数的所述功能来处理交互。
...【技术特征摘要】
【国外来华专利技术】
1.一种用于创建最终应用的方法,所述方法包括:
2.如权利要求1所述的方法,所述方法还包括:
3.如权利要求2所述的方法,其中对所述中间对象进行混淆包括:
4.如权利要求1所述的方法,其中所述接口源代码在构建所述中间对象之前以人类可读编程语言进行编写,其中所述应用源代码在构建所述中间对象之前以人类可读编程语言进行编写,并且其中所述混淆sdk二进制代码是以包括机器语言指令的低级编程语言编写的混淆代码。
5.如权利要求1所述的方法,其中所述混淆sdk二进制代码和所述接口源代码是从软件开发工具访问计算机获得的。
6.如权利要求1所述的方法,其中所述计算机是第二开发计算机,并且其中第一开发计算机创建所述混淆sdk二进制代码和所述接口源代码,并且向软件开发工具访问计算机提供所述混淆sdk二进制代码和所述接口源代码。
7.如权利要求6所述的方法,其中在创建所述混淆sdk二进制代码和所述接口源代码期间,所述第一开发计算机创建sdk源代码,将所述sdk源代码编译成sdk二进制代码,将所述sdk二进制代码混淆成混淆sdk二进制代码,并且基于将所述sdk二进制代码混淆成混淆sdk二进制代码来创建所述接口源代码。
8.如权利要求1所述的方法,其中所述最终应用包括一个或多个混淆函数调用,所述一个或多个混淆函数调用所述接口源代码中也被混淆的所述一个或多个函数。
9.如权利要求1所述的方法,所述方法还包括:...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。