一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信息获取方法、装置、计算机设备和计算可读存储介质与流程

2021-12-03 23:35:00 来源:中国专利 TAG:


1.本技术涉及通信技术领域,具体涉及一种信息获取方法、装置、计算机设备和计算可读存储介质。


背景技术:

2.用户通过应用软件(application,app)(也可以简称为应用)向对应的服务器发送请求时,通常需要携带签名信息,服务器通过签名信息进行对用户进行身份验证,身份验证通过才会为用户提供相应的服务。若能够获取到签名信息,则可以通过机器向服务器发送请求,提高访问效率。通常情况下,通过对应用软件中包含签名算法(通过签名算法可以得到签名信息)的目标代码库进行反汇编成汇编文件,得到签名算法,再通过签名算法得到签名信息,基于签名信息向服务器发送请求。反汇编需要将机器语言转化为汇编语言,分析难度较大,且对进行反汇编工作的开发人员要求较高,导致获取签名信息的效率低。


技术实现要素:

3.本技术实施例提供一种信息获取方法、装置、计算机设备和计算机可读存储介质,可以提高获取签名信息的效率。
4.本技术实施例提供的一种信息获取方法,包括:
5.获取目标应用的应用程序包;
6.解压所述应用程序包,以得到所述应用程序包中的目标代码库;
7.针对所述目标代码库,构建对应的调用接口,所述调用接口调用所述目标代码库的调用路径,与所述目标应用调用所述目标目标代码库的调用路径相同;
8.通过所述调用接口调用所述目标代码库中的签名算法生成签名信息。
9.相应的,本技术实施例还提供的一种信息获取装置,包括:
10.获取单元,用于获取目标应用的应用程序包;
11.解压单元,用于解压所述应用程序包,以得到所述应用程序包中的目标代码库;
12.构建单元,用于针对所述目标代码库,构建对应的调用接口,所述调用接口调用所述目标代码库的调用路径,与所述目标应用调用所述目标目标代码库的调用路径相同;
13.调用单元,用于通过所述调用接口调用所述目标代码库中的签名算法生成签名信息。
14.相应的,本技术实施例还提供的一种计算机设备,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行本技术实施例提供的任一种信息获取方法。
15.相应的,本技术实施例还提供一种计算可读存储介质,所述计算可读存储介质用于存储计算机程序,所述计算机程序被处理器加载以执行本技术实施例提供的任一种信息获取方法。
16.本技术实施例通过获取目标应用的应用程序包;解压应用程序包,以得到应用程
序包中的目标代码库;然后,针对目标代码库,构建对应的调用接口,调用接口调用目标代码库的调用路径,与目标应用调用目标目标代码库的调用路径相同;最后,通过调用接口调用目标代码库中的签名算法生成签名信息。本方案通过构建一个调用签名算法的调用路径与目标应用相同的调用接口,通过调用接口可以调用签名算法得到签名信息,不需要对目标代码库进行反汇编即可获取签名信息,提高获取签名信息的效率。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本技术实施例提供的信息获取方法的流程图;
19.图2是本技术实施例提供的信息获取方法的交互示意图;
20.图3是本技术实施例提供的信息获取装置示意图;
21.图4是本技术实施例提供的终端的结构示意图。
具体实施方式
22.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.本技术实施例提供一种信息获取方法、装置、计算机设备和计算可读存储介质。该信息获取装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
24.其中,该终端可以包括手机、穿戴式智能设备、平板电脑、笔记本电脑、个人计算(pc,personal computer)、以及车载计算机等。
25.其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
26.终端可以包括手机、穿戴式智能设备、平板电脑、笔记本电脑、以及个人计算(pc,personal computer)等。
27.以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
28.本实施例将从信息获取装置的角度进行描述,该信息获取装置具体可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备;如图1所示,信息获取方法的具体流程如下:
29.101、获取目标应用的应用程序包。
30.其中,目标应用可以是需要进行获取签名信息的应用软件(application,app),应
用程序包可以是目标应用的安装包,安装包中可以包含目标应用运行时所需要的文件,例如,目标应用为在安卓设备上运行的应用软件,目标应用的应用程序包为安卓应用程序包(android application package,apk),apk包中包含被编译的代码文件,文件资源,原生资源文件证书,和清单文件等。
31.比如,具体可以是通过浏览器等途径下载目标应用的应用程序包。
32.102、解压应用程序包,以得到应用程序包中的目标代码库。
33.其中,目标代码库可以是包含签名算法的文件,比如,可以是动态库。
34.比如,具体可以是对应用程序包进行解压处理,得到应用程序包中的包含的多个程序文件,从多个程序文件中获取目标代码库。
35.目标代码库通常会有固定的后缀名称,例如,动态库的后缀名称为.so,在一实施例中,步骤“解压应用程序包,以得到应用程序包中的目标代码库”,具体可以包括:
36.解压应用程序包,得到应用程序包所包含的多个程序文件;
37.遍历多个程序文件的后缀名称;
38.将后缀名称符合条件的程序文件确定为目标代码库。
39.比如,以目标代码库为动态库为例进行说明:动态库通常以.so作为文件后缀名称,对应用程序包进行解压处理后,可以得到应用程序包中的多个程序文件,遍历应用程序包中所有程序文件的后缀名称,将后缀名称为.so的程序文件确定为目标代码库。
40.103、针对目标代码库,构建对应的调用接口,调用接口调用目标代码库的调用路径,与目标应用调用目标目标代码库的调用路径相同。
41.其中,调用接口可以是用于调用目标代码库中的签名算法,以获得签名信息的接口。
42.比如,具体可以是通过查询解压应用程序包得到的程序文件中的逻辑代码,确定调用目标代码库的签名算法的方法,根据确定的方法,构建对应的接口,通过构建的接口,调用应用程序包中的逻辑代码,以得到签名信息。
43.在一实施例中,可以确定签名算法的调用路径,根据调用路径构建对应的接口,即步骤“针对目标代码库,构建对应的调用接口”,具体可以包括:
44.获取应用程序包的程序名称,以及获取应用程序包中,调用签名算法生成签名的加密类的类名称,以及加密类包含的方法的名称;
45.根据加密类的名称,以及加密类包含的方法的名称,确定签名算法的调用路径;
46.根据调用路径构建调用接口。
47.其中,加密类为逻辑代码中通过方法调用签名算法的类,类是面向对象程序设计实现信息封装的基础。
48.例如,目标应用的逻辑代码在类a中通过方法b调用动态库的签名算法得到签名信息,则对应地,调用路径为在应用程序包、类a和方法b形成的路径,构建和应用程序包具有相同程序名称、相同类名称以及相同方法名称的jni层接口类(即调用接口),jni层接口为java本地化接口(java native interface,jni),可以通过jni调用应用程序包提供的api,通过构建的jni层接口可以调用应用程序包的a类中的方法b,进而实现调用签名算法生成签名信息。
49.在一实施例中,该方法可以是在一种基于原生程序接口的软件开发工具搭建的本
地开发环境中实现,即步骤“根据加密类的名称,以及加密类包含的方法的名称,确定签名算法的调用路径”,具体可以包括:
50.安装软件开发工具;
51.基于软件开发工具配置本地开发环境;
52.基于本地开发环境,根据加密类的名称,以及加密类包含的方法的名称,构建调用接口。
53.其中,软件开发工具可以是一种基于原生程序接口的软件开发工具,例如native development kit,简称ndk,通过此工具开发的程序直接以本地语言运行,而非虚拟机。
54.比如,具体可以是如图2所示,下载并安装ndk,并配置相应的本地开发环境,在该本地开发环境中创建工程项目。将目标应用的应用程序包中的动态库置于工程项目中的调用目录,在项目中构建与应用程序包相同的程序名称、相同的类名称以及相同的方法的名称的jni层调用接口,进行编译,实现通过调用接口调用应用程序包中的代码,生成签名信息。
55.104、通过调用接口调用目标代码库中的签名算法生成签名信息。
56.其中,签名算法可以是md5算法或者sha1算法等。
57.其中,签名信息可以是服务端对客户端进行身份验证所需要的信息,客户端通过签名算法生成签名信息,并将签名信息作为请求参数一并传到服务端,服务端接受到请求同时要做验证签名信息的操作,对称加密对请求参数生成签名信息,并与客户端传过来的签名信息进行比对,如签名不一致,服务端需要拦截该请求;如果验证签名信息成功,才能访问接口。
58.比如,具体可以是通过调用接口调用目标代码库中的签名算法生成签名信息。
59.在一实施例中,可以通过逻辑代码中的代码字段确定所需要的参数信息,并传入相应的参数,以生成签名信息,即步骤“通过调用接口调用目标代码库中的签名算法生成签名信息”,具体可以包括:
60.遍历加密类以及加密类包含的方法中的逻辑代码;
61.确定所签名算法所需要的参数信息;
62.根据参数信息向调用接口传入相应的参数,以通过调用接口基于参数生成签名信息。
63.其中,参数信息可以是签名算法所需要的信息,比如,可以是时间戳以及随机数等,具体的参数信息是签名算法而定。
64.比如,具体可以是遍历加密类和加密类包含的方法中的逻辑代码,确定传入签名算法的参数信息,可以通过关键词匹配确定所需要的参数信息,如逻辑代码中包含timestamp,可以确定传入的参数信息有时间戳。
65.确定签名算法所需要的参数信息,可以生成对应的参数,并将参数传入调用接口,调用接口通过调用路径调用签名算法,基于参数生成签名信息。
66.可选的,还可以对应用程序包进行反编译,反编译将机器语言反向编译为高级编程语音,编程过程中,开发人员通常会根据功能定义字段,通过高级编程语音中的代码字段可以确定字段的对应的信息,比如可以是用户id或者是时间戳等,进而确定参数信息。
67.在一实施例中,步骤“根据参数信息向调用接口传入相应的参数,以通过调用接口
基于参数生成签名信息”,具体可以包括:
68.根据参数信息向调用接口传入相应的参数;
69.通过调用接口对参数进行加密处理生成签名信息。
70.比如,具体可以是将参数传入调用接口,调用接口通过调用路径调用签名算法对参数进行加密处理,生成签名信息。
71.可选的,得到签名信息后,可以将签名信息,以及传入调用接口的参数加入统一资源定位符中(uniform resource locator,url),通过url访问服务器获取数据,并使得服务器进行身份验证。
72.根据签名信息生成数据获取请求;
73.向目标应用对应的服务器发送数据获取请求,以从服务器获取数据。
74.比如,具体可以是根据将签名信息加入数据获取请求中,向目标应用对应的服务器发送数据获取请求,若服务器对签名信息验证通过,则可以从服务器中获取对应的数据。
75.由上可知,本技术实施例通过获取目标应用的应用程序包;解压应用程序包,以得到应用程序包中的目标代码库;然后,针对目标代码库,构建对应的调用接口,调用接口调用目标代码库的调用路径,与目标应用调用目标目标代码库的调用路径相同;最后,通过调用接口调用目标代码库中的签名算法生成签名信息。本方案通过构建一个调用签名算法的调用路径与目标应用相同的调用接口,通过调用接口可以调用签名算法得到签名信息,不需要对目标代码库进行反汇编即可获取签名信息,提高获取签名信息的效率。
76.为了便于更好地实施本技术实施例提供的信息获取方法,在一实施例中还提供了一种信息获取装置。其中名词的含义与上述信息获取方法中相同,具体实现细节可以参考方法实施例中的说明。
77.该信息获取装置具体可以集成在计算机设备中,如图3所示,该信息获取装置可以包括:获取单元301、解压单元302、构建单元303和调用单元304,具体如下:
78.获取单元301:用于获取目标应用的应用程序包。
79.比如,具体可以是通过浏览器下载目标应用的应用程序包。
80.解压单元302:用于解压应用程序包,以得到应用程序包中的目标代码库。
81.比如,具体可以是对应用程序包进行解压处理,得到应用程序包中的包含的多个程序文件,从多个程序文件中获取目标代码库。
82.在一实施例中,解压单元302可以包括解压子单元、遍历子单元以及确定子单元,具体地:
83.解压子单元:用于解压应用程序包,得到应用程序包所包含的多个程序文件;
84.遍历子单元:用于遍历多个程序文件的后缀名称;
85.确定子单元:用于将后缀名称符合条件的程序文件确定为目标代码库。
86.比如,以目标代码库为动态库为例进行说明:动态库通常以.so作为文件后缀名称,对应用程序包进行解压处理后,可以得到应用程序包中的多个程序文件,便利应用程序包中所有程序文件的后缀名称,将后缀名称为.so的程序文件确定为目标代码库。
87.构建单元303:用于针对目标代码库,构建对应的调用接口,调用接口调用目标代码库的调用路径,与目标应用调用目标目标代码库的调用路径相同。
88.比如,具体可以是通过查询解压应用程序包得到的程序文件中的逻辑代码,确定
调用目标代码库的签名算法的方法,根据确定的方法,构建对应的接口,通过构建的接口,调用应用程序包中的逻辑代码,以得到签名信息。
89.在一实施例中,构建单元303可以包括获取子单元、确定子单元以及构建子单元,具体地:
90.获取子单元:用于获取应用程序的名称,以及获取应用程序中,调用签名算法生成签名的加密类的名称,以及加密类包含的方法的名称;
91.确定子单元:用于根据加密类的名称,以及加密类包含的方法的名称,确定签名算法的调用路径;
92.构建子单元:用于根据调用路径构建调用接口。
93.例如,目标应用的逻辑代码在类a中通过方法b调用动态库的签名算法得到签名信息,则对应地,调用路径为在应用程序包、类a和方法b形成的路径,构建和应用程序包具有相同文件名称、相同类名称以及相同方法名称的jni层接口类(即调用接口),jni层接口为java本地化接口(java native interface,jni),可以通过jni调用应用程序包提供的api,通过构建的jni层接口可以调用应用程序包的a类中的方法b,进而实现调用签名算法生成签名信息。
94.在一实施例中,确定子单元可以包括安装模块、配置模块以及构建模块,具体地:
95.安装模块:用于安装软件开发工具;
96.配置模块:用于基于软件开发工具配置本地开发环境;
97.构建模块:用于基于本地开发环境,根据加密类的名称,以及加密类包含的方法的名称,构建调用接口。
98.比如,具体可以是如图2所示,下载并安装ndk,并配置相应的本地开发环境,在该本地开发环境中创建项目。将目标应用的应用程序包中的动态库置于项目中的调用目录,在项目中构建与应用程序包具有相同包名、相同类型以及相同方法名的jni层调用接口,进行编译,实现通过调用接口调用应用程序包中的代码,生成签名信息。
99.调用单元304:用于通过调用接口调用目标代码库中的签名算法生成签名信息。
100.比如,具体可以是通过调用接口调用目标代码库中的签名算法生成签名信息。
101.可选的,调用单元304可以包括遍历子单元、确定子单元以及传入子单元,具体地:
102.遍历子单元:用于遍历加密类以及加密类包含的方法中的逻辑代码;
103.确定子单元:用于确定所签名算法所需要的参数信息;
104.传入子单元:用于根据参数信息向调用接口传入相应的参数,以通过调用接口基于参数生成签名信息。
105.比如,具体可以是遍历加密类和加密类包含的方法中的逻辑代码,确定传入签名算法的参数信息,可以通过关键词匹配确定所需要的参数信息,如逻辑代码中包含timestamp,可以确定传入的参数信息有时间戳。
106.确定签名算法所需要的参数信息,可以生成对应的参数,并将参数传入调用接口,调用接口通过调用路径调用签名算法,基于参数生成签名信息。
107.在一实施例中,传入子单元可以包括传入模块和加密模块,具体地:
108.传入模块:用于根据参数信息向调用接口传入相应的参数;
109.加密模块:用于通过调用接口对参数进行加密处理生成签名信息。
110.比如,具体可以是将参数传入调用接口,调用接口通过调用路径调用签名算法对参数进行加密处理,生成签名信息。
111.可选的,信息获取装置还可以包括生成单元和发送单元,具体地:
112.生成单元:用于根据签名信息生成数据获取请求;
113.发送单元:用于向目标应用对应的服务器发送数据获取请求,以从服务器获取数据。
114.比如,具体可以是根据将签名信息加入数据获取请求中,向目标应用对应的服务器发送数据获取请求,若服务器对签名信息验证通过,则可以从服务器中获取对应的数据。
115.由上可知,本技术实施例通过获取单元301获取目标应用的应用程序包;由解压单元302解压应用程序包,以得到应用程序包中的目标代码库;然后,针对目标代码库,通过构建单元303构建对应的调用接口,调用接口调用目标代码库的调用路径,与目标应用调用目标目标代码库的调用路径相同;最后,通过调用单元304调用接口调用目标代码库中的签名算法生成签名信息。本方案通过构建一个调用签名算法的调用路径与目标应用相同的调用接口,通过调用接口可以调用签名算法得到签名信息,不需要对目标代码库进行反汇编即可获取签名信息,提高获取签名信息的效率。
116.本技术实施例还提供一种计算机设备,该计算机设备可以是终端,也可以是服务器,如图4所示,其示出了本技术实施例所涉及的计算机设备的结构示意图,具体来讲:
117.该计算机设备可以包括一个或者一个以上处理核心的处理器1001、一个或一个以上计算机可读计算可读存储介质(也可以称为存储介质)的存储器1002、电源1003和输入单元1004等部件。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
118.处理器1001是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器1002内的软件程序和/或模块,以及调用存储在存储器1002内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器1001可包括一个或多个处理核心;优选的,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和计算机程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。
119.存储器1002可用于存储软件程序以及模块,处理器1001通过运行存储在存储器1002的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1002可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1002还可以包括存储器控制器,以提供处理器1001对存储器1002的访问。
120.计算机设备还包括给各个部件供电的电源1003,优选的,电源1003可以通过电源管理系统与处理器1001逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1003还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障
检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
121.该计算机设备还可包括输入单元1004,该输入单元1004可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
122.尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器1001会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器1002中,并由处理器1001来运行存储在存储器1002中的计算机程序,从而实现各种功能,如下:
123.获取目标应用的应用程序包;
124.解压应用程序包,以得到应用程序包中的目标代码库;
125.针对目标代码库,构建对应的调用接口,调用接口调用目标代码库的调用路径,与目标应用调用目标目标代码库的调用路径相同;
126.通过调用接口调用目标代码库中的签名算法生成签名信息。
127.以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
128.由上可知,本技术实施例的计算机设备可以获取目标应用的应用程序包;解压应用程序包,以得到应用程序包中的目标代码库;然后,针对目标代码库,构建对应的调用接口,调用接口调用目标代码库的调用路径,与目标应用调用目标目标代码库的调用路径相同;最后,通过调用接口调用目标代码库中的签名算法生成签名信息。本方案通过构建一个调用签名算法的调用路径与目标应用相同的调用接口,通过调用接口可以调用签名算法得到签名信息,不需要对目标代码库进行反汇编即可获取签名信息,提高获取签名信息的效率。
129.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读计算可读存储介质中。计算机设备的处理器从计算机可读计算可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中各种可选实现方式中提供的方法。
130.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读计算可读存储介质中,并由处理器进行加载和执行。
131.为此,本技术实施例提供一种计算可读存储介质,其中存储有计算机程序,该计算机程序,能够被处理器进行加载,以执行本技术实施例所提供的任一种信息获取方法。
132.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
133.其中,该计算可读存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
134.由于该计算可读存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种信息获取方法,因此,可以实现本技术实施例所提供的任一种信息获取方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
135.以上对本技术实施例所提供的一种信息获取方法、装置、计算机设备和计算可读存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的
技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献