CN109298952A - 应用程序编程接口的调用方法及其装置 - Google Patents

应用程序编程接口的调用方法及其装置 Download PDF

Info

Publication number
CN109298952A
CN109298952A CN201810979639.7A CN201810979639A CN109298952A CN 109298952 A CN109298952 A CN 109298952A CN 201810979639 A CN201810979639 A CN 201810979639A CN 109298952 A CN109298952 A CN 109298952A
Authority
CN
China
Prior art keywords
programming interface
class
application program
file
called
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810979639.7A
Other languages
English (en)
Inventor
李志毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ucweb Singapore Pte Ltd
Original Assignee
Ucweb Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ucweb Singapore Pte Ltd filed Critical Ucweb Singapore Pte Ltd
Priority to CN201810979639.7A priority Critical patent/CN109298952A/zh
Priority to PCT/IB2018/057154 priority patent/WO2020044093A1/zh
Publication of CN109298952A publication Critical patent/CN109298952A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种应用程序编程接口的调用方法、装置、设备/终端/服务器、计算机可读介质。该方法的一具体实施方式包括:确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。该具体实施方式提供了一种调用隐藏应用程序编程接口的解决方案。

Description

应用程序编程接口的调用方法及其装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种应用程序编程接口的调用方法、装置、设备/终端/服务器、计算机可读介质。
背景技术
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
比如,对于Windows系统来说,Windows API包含在Windows系统目录下的动态连接库文件中。Windows API可以控制Windows的各个部件的外观和行为的预先定义的Windows函数。用户的每个动作都会引发一个或几个Windows函数的运行以告诉Windows发生了什么。比如当点击窗体上的一个按钮时,Windows会发送一个消息给窗体,Visual Basic获取这个调用并经过分析后生成一个特定事件。
更易理解来说:Windows系统除了协调应用程序的执行、内存的分配、系统资源的管理外,同时它也是一个很大的服务中心。通过这些Windows API调用这个服务中心的各种服务(每一种服务就是一个函数)可以帮助应用程序达到开启视窗、描绘图形和使用周边设备等目的。
类似地,对于智能终端上的系统也存在类似的情形,但是,系统发布方考虑到存在不经常使用的API或者处于安全考虑不允许使用的API,会将这些API设置成对开发者来说是隐藏的即存在隐藏API。但是,实际上对于基于系统平台开发应用来说,在一些应用场景下常常需要获取系统隐藏API来处理问题。
因此,如何调用隐藏API成为亟待解决的技术问题。
发明内容
本申请的目的在于提出一种应用程序编程接口的调用方法、装置、设备/终端/服务器、计算机可读介质,用于解决或者缓解现有技术中上述问题。
第一方面,本申请提供了一种应用程序编程接口的调用方法,其包括:
确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
第二方面,本申请实施例提供了一种数据传输装置,其包括:
类描述文件获取单元,配置为确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
类描述文件修改单元,配置为对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
第三方面,本申请实施例提供了一种设备/终端/服务器,包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一实施例中所述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一实施例中所述的方法。
本申请提供的应用程序编程接口的调用方法、装置、设备/终端/服务器、计算机可读介质中,通过确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用,从而提供了一种调用隐藏应用程序编程接口的解决方案。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例一中应用程序编程接口的调用方法的流程示意图;
图2为本申请实施例二中应用程序编程接口的调用方法的流程示意图;
图3为本申请实施例三中应用程序编程接口的调用方法的流程示意图;
图4为本申请实施例四中应用程序编程接口的调用装置的结构示意图;
图5为本申请实施例五中应用程序编程接口的调用装置的结构示意图;
图6为本申请实施例六中应用程序编程接口的调用装置的结构示意图;
图7为本申请实施例七中设备/终端/服务器的结构示意图;
图8为本申请实施例八中设备/终端/服务器的硬件结构。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本申请实施例一中应用程序编程接口的调用方法的流程示意图;如图1所示,其可以包括:
S101、确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
本实施例中,步骤S101中在确定待调用的隐藏应用程序编程接口时具体根据系统属性获取接口,确定待调用的隐藏应用程序编程接口。
本实施例中,比如对于安卓系统来说,应用程序编程接口通过Java中事先写好的类描述文件(业界称之为class)来承载,类描述文件是一种能够被java虚拟机识别,加载并且执行的文件格式。因此,对于隐藏应用程序编程接口来说,也存在对应的类描述文件,该类描述文件的后缀为.class,该类描述文件的生成可以有多种选择方式,比如java语言生成,或者通过scala语言生成,或者通过python语言生成,或者其他语言如Kotlin、C++,实际根据需求而定。
本实施例中,对于安卓系统来说,系统属性获取接口StringsystemPropertiesGet来确定待调用的隐藏应用程序编程接口。
进一步地,根据系统属性获取接口,确定待调用的隐藏应用程序编程接口,包括:根据系统属性获取接口调取带有隐藏声明的应用程序编程接口;从所述带有隐藏声明的应用程序编程接口中确定待调用的隐藏应用程序编程接口。
如前所述,由于隐藏应用程序编程接口相当于给永晨旭变成接口配置了隐藏属性,因此,当通过系统属性获取接口String systemPropertiesGet来确定待调用的隐藏应用程序编程接口,首先通过String systemPropertiesGet中具有隐藏属性的所有应用程序编程接口,在比如通过名称匹配从中筛选出待调用的隐藏应用程序编程接口。
具体的,由于隐藏应用程序编程接口的类描述文件中,为了表征或者区别该应用程序编程接口是被隐藏处理的,一般往往在该类描述文件的属性参数中配置了可反应出其被隐藏的定义,因此,通过该被隐藏的定义,来确定那些是隐藏应用程序编程接口,再通过定义值的不同,区别不同功能的隐藏应用程序编程接口。
S102、对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
本实施例中,步骤S102中在对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用时,具体对所述类描述文件进行处理以控制所述隐藏应用程序编程接口被调用时绕过编译器的编译检查,以使得所述隐藏应用程序编程接口可被调用。
本实施例中,由于隐藏应用程序编程接口在使用时无法经过编译器编译或者不允许经过编译起的编译,使得这些应用程序编程接口对应用程序开发者来说不可见或者不可用,在被调用时,无法通过编译器的编译,而对于要使用这些应用程序编程接口来说,均需要通过编译器的编译才能生成可被系统识别的目标文件。
在实现本申请的过程中,发明人发现,应用程序编程接口之所以可以被隐藏,是在通过该应用程序编程接口在被执行的时候产生的返回值来实现。为此,本实施例中,具体可以通过修改隐藏应用程序编程接口对应的类描述文件中定义的返回值,从而相当于修改了程序执行的流程,使得所述隐藏应用程序编程接口可被调用。
图2为本申请实施例二中应用程序编程接口的调用方法的流程示意图;如图2所示,其可以包括:
S201、确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
本实施例中,步骤S201类似上述实施例一中的步骤S101,详细不再赘述。
与上述实施例中不同的是,在本实施例中的一中应用场景中,具体可以通过getDebugJar.sh脚本文件来获取所述隐藏应用程序编程接口对应的类描述文件。
S202、获取所述类描述文件对应的字节码文件;
通常将源程序进行翻译形成二进制的字节码以在应用程序编程接口被调用时通过java虚拟机来分析、执行等,因此,本实施例中,优选通过对所述字节码直接进行修改,而并非对源程序进行修改,以通过后续步骤S203对字节码的修改实现隐藏应用程序编程接口的调用。java虚拟机可以字节码比如为8位字节的二进制流。
这里,需要说明的是,虚拟机不同,字节码的形式可能也存在差异。
本实施例中,步骤S202具体可以通过完全命令行方式、外部工具、内接插件工具的方式实现。完全命令行方式比如采用首先使用命令javac、javap-c来实现。外部工具比如采用Java Bytecode Editor、运行其中的jbe.sh来实现。内接插件工具比如采用jclasslibbytecode viewer,打开其中的ide(这里是Android studio),setting-plugin-browse..-bytecode viewer-jclasslib bytecode viewer-install-restart,然后通过操作面板上View-Show bytecode with jclasslib来实现。
S203、修改所述类描述文件对应的字节码文件,以使得所述隐藏应用程序编程接口可被调用。
本实施例中,在步骤S203中修改所述类描述文件对应的字节码文件时,具体修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数,以使得所述隐藏应用程序编程接口可被调用,这些执行参数主要用于控制函数或者程序执行的跳转的返回值。
在本实施例中的一具体应用场景中,具体可以通过jclasslib、eclipse实现修改。
图3为本申请实施例三中应用程序编程接口的调用方法的流程示意图;如图3所示,其可以包括:
S301、确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
S302、获取所述类描述文件对应的字节码文件;
S303、启用字节码操控框架;
本实施例中,由于字节码操控框架(assembly,简称ASM)是基于事件驱动的处理方式,可以直接对二进制的字节码文件进行修改,具有较好的友好性,因此,优先使用字节码操控框架来进行后续字节码文件的修改。
S304、通过字节码操控框架修改所述类描述文件对应的字节码文件,以使得所述隐藏应用程序编程接口可被调用。
本实施例中,字节码的修改,类似上述实施例二,具体修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数,以使得所述隐藏应用程序编程接口可被调用,这些执行参数主要用于控制函数或者程序执行的跳转的返回值,使得所述隐藏应用程序编程接口被调用时绕过编译器,从最终达到被调用的目的。
图4为本申请实施例四中应用程序编程接口的调用装置的结构示意图;如图4所示,其可以包括:
类描述文件获取单元401,配置为确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
类描述文件修改单元402,配置为对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
本实施例中,所述类描述文件获取单元401进一步配置为根据系统属性获取接口,确定待调用的隐藏应用程序编程接口。
本实施例中,所述类描述文件获取单元401进一步配置为:
根据系统属性获取接口调取带有隐藏声明的应用程序编程接口;
从所述带有隐藏声明的应用程序编程接口中确定待调用的隐藏应用程序编程接口。
在具体应用场景中,所述类描述文件获取单元401具体可以包括:接口调取子单元以及筛选子单元,所述接口调取子单元具体配置为根据系统属性获取接口调取带有隐藏声明的应用程序编程接口;所述筛选子单元具体配置为从所述带有隐藏声明的应用程序编程接口中确定待调用的隐藏应用程序编程接口。
本实施例中,所述类描述文件修改单元402进一步配置为对所述类描述文件进行处理以控制所述隐藏应用程序编程接口被调用时绕过编译器的编译检查,以使得所述隐藏应用程序编程接口可被调用。
图5为本申请实施例五中应用程序编程接口的调用装置的结构示意图;如图5所示,其除了包括上述类描述文件获取单元401以及类描述文件修改单元402外,还可以包括:字节码获取单元403,配置为获取所述类描述文件对应的字节码文件。
对应地,本实施例中,所述类描述文件修改单元402进一步配置为修改所述类描述文件对应的字节码文件,以使得所述隐藏应用程序编程接口可被调用。
本实施例中,所述类描述文件修改单元402进一步配置为修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数,以使得所述隐藏应用程序编程接口可被调用。
图6为本申请实施例六中应用程序编程接口的调用装置的结构示意图;如图6所示,其除了包括上述类描述文件获取单元401以及类描述文件修改单元402外,还可以包括:操控框架启用单元404,配置为启用字节码操控框架。
进一步地,本实施例中,所述类描述文件修改单元402进一步配置为通过所述字节码操控框架修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数。
图7为本申请实施例七中设备/终端/服务器的结构示意图;该设备/终端/服务器可以包括:
一个或多个处理器701;
计算机可读介质702,可以配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一实施例中所述传输方法。
图8为本申请实施例八中设备/终端/服务器的硬件结构;如图8所示,该设备/终端/服务器的硬件结构可以包括:处理器801,通信接口802,计算机可读介质803和通信总线804;
其中处理器801、通信接口802、计算机可读介质803通过通信总线804完成相互间的通信;
可选的,通信接口802可以为通信模块的接口,如GSM模块的接口;
其中,处理器801具体可以配置为:确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
处理器801可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请上述实施例可以用到近场传输中调用隐藏API:WifiManager里面的setWifiApEnabled、setWifiApConfiguration、getWifiApConfiguration。所谓近场传输可以是指多个终端通过自建wifi实现数据的传输,比如热点、蓝牙或者NFC。
计算机可读介质803可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括类描述确定单元、类描述修改单元。其中:
类描述确定单元,配置为确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
类描述修改单元,配置为对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,类描述确定单元还可以被描述为“确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一实施例中所描述的方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件。
对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
在本申请的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本申请的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (16)

1.一种应用程序编程接口的调用方法,其特征在于,包括:
确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
2.根据权利要求1中所述的方法,其特征在于,确定待调用的隐藏应用程序编程接口,包括:根据系统属性获取接口,确定待调用的隐藏应用程序编程接口。
3.根据权利要求2所述的方法,其特征在于,根据系统属性获取接口,确定待调用的隐藏应用程序编程接口,包括:
根据系统属性获取接口调取带有隐藏声明的应用程序编程接口;
从所述带有隐藏声明的应用程序编程接口中确定待调用的隐藏应用程序编程接口。
4.根据权利要求1所述的方法,其特征在于,还包括:获取所述类描述文件对应的字节码文件;对应地,对所述类描述文件进行处理包括:修改所述类描述文件对应的字节码文件,以使得所述隐藏应用程序编程接口可被调用。
5.根据权利要求4所述的方法,其特征在于,修改所述类描述文件对应的字节码文件包括:修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数,以使得所述隐藏应用程序编程接口可被调用。
6.根据权利要求5所述的方法,其特征在于,还包括:启用字节码操控框架,以通过所述字节码操控框架修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数。
7.根据权利要求1所述的方法,其特征在于,对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用,包括:对所述类描述文件进行处理以控制所述隐藏应用程序编程接口被调用时绕过编译器的编译检查,以使得所述隐藏应用程序编程接口可被调用。
8.一种应用程序编程接口的调用装置,其特征在于,包括:
类描述文件获取单元,配置为确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;
类描述文件修改单元,配置为对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。
9.根据权利要求8中所述的装置,其特征在于,所述类描述文件获取单元进一步配置为根据系统属性获取接口,确定待调用的隐藏应用程序编程接口。
10.根据权利要求9所述的装置,其特征在于,所述类描述文件获取单元进一步配置为:
根据系统属性获取接口调取带有隐藏声明的应用程序编程接口;
从所述带有隐藏声明的应用程序编程接口中确定待调用的隐藏应用程序编程接口。
11.根据权利要求8所述的装置,其特征在于,还包括:字节码获取单元,配置为获取所述类描述文件对应的字节码文件;对应地,所述类描述文件修改单元进一步配置为修改所述类描述文件对应的字节码文件,以使得所述隐藏应用程序编程接口可被调用。
12.根据权利要求11所述的装置,其特征在于,所述类描述文件修改单元进一步配置为修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数,以使得所述隐藏应用程序编程接口可被调用。
13.根据权利要求12所述的装置,其特征在于,还包括:操控框架启用单元,配置为启用字节码操控框架;对应地,所述类描述文件修改单元进一步配置为通过所述字节码操控框架修改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的执行参数。
14.根据权利要求8所述的装置,其特征在于,所述类描述文件修改单元进一步配置为对所述类描述文件进行处理以控制所述隐藏应用程序编程接口被调用时绕过编译器的编译检查,以使得所述隐藏应用程序编程接口可被调用。
15.一种设备/终端/服务器,包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN201810979639.7A 2018-08-27 2018-08-27 应用程序编程接口的调用方法及其装置 Pending CN109298952A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810979639.7A CN109298952A (zh) 2018-08-27 2018-08-27 应用程序编程接口的调用方法及其装置
PCT/IB2018/057154 WO2020044093A1 (zh) 2018-08-27 2018-09-18 应用程序编程接口的调用方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810979639.7A CN109298952A (zh) 2018-08-27 2018-08-27 应用程序编程接口的调用方法及其装置

Publications (1)

Publication Number Publication Date
CN109298952A true CN109298952A (zh) 2019-02-01

Family

ID=65165507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810979639.7A Pending CN109298952A (zh) 2018-08-27 2018-08-27 应用程序编程接口的调用方法及其装置

Country Status (2)

Country Link
CN (1) CN109298952A (zh)
WO (1) WO2020044093A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673834A (zh) * 2019-09-23 2020-01-10 北京博睿宏远数据科技股份有限公司 一种源码调用方法、装置、计算机设备及存储介质
CN111506437A (zh) * 2020-03-31 2020-08-07 北京安码科技有限公司 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2187173C2 (ru) * 1999-05-18 2002-08-10 Институт физики полупроводников СО РАН Устройство для контроля скрытой границы раздела контактирующих поверхностей (варианты)
CN103098433A (zh) * 2010-04-18 2013-05-08 Voxeo研究有限公司 用于xmpp协议的servlet api和方法
CN104035778A (zh) * 2014-06-26 2014-09-10 上海斐讯数据通信技术有限公司 一种Android应用程序开发方法
CN105653905A (zh) * 2015-12-28 2016-06-08 西北大学 一种基于api安全属性隐藏与攻击威胁监控的软件保护方法
CN106126412A (zh) * 2016-06-14 2016-11-16 中国科学院软件研究所 基于安卓api使用规范的代码质量自动评估优化方法
CN107341106A (zh) * 2017-06-21 2017-11-10 努比亚技术有限公司 应用程序兼容性检测方法、开发终端及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2187173C2 (ru) * 1999-05-18 2002-08-10 Институт физики полупроводников СО РАН Устройство для контроля скрытой границы раздела контактирующих поверхностей (варианты)
CN103098433A (zh) * 2010-04-18 2013-05-08 Voxeo研究有限公司 用于xmpp协议的servlet api和方法
CN104035778A (zh) * 2014-06-26 2014-09-10 上海斐讯数据通信技术有限公司 一种Android应用程序开发方法
CN105653905A (zh) * 2015-12-28 2016-06-08 西北大学 一种基于api安全属性隐藏与攻击威胁监控的软件保护方法
CN106126412A (zh) * 2016-06-14 2016-11-16 中国科学院软件研究所 基于安卓api使用规范的代码质量自动评估优化方法
CN107341106A (zh) * 2017-06-21 2017-11-10 努比亚技术有限公司 应用程序兼容性检测方法、开发终端及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J_CODER: "通过Java反射机制使用系统隐藏API", 《HTTPS://WWW.JIANSHU.COM/P/C9A11DF30A26》 *
我是黄老邪: "利用Java反射技术调用Android中被隐藏的API", 《HTTPS://BLOG.CSDN.NET/DEZHIHUANG/ARTICLE/DETAILS/74521723》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673834A (zh) * 2019-09-23 2020-01-10 北京博睿宏远数据科技股份有限公司 一种源码调用方法、装置、计算机设备及存储介质
CN111506437A (zh) * 2020-03-31 2020-08-07 北京安码科技有限公司 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
WO2020044093A1 (zh) 2020-03-05

Similar Documents

Publication Publication Date Title
CN108346028B (zh) 一种业务审批处理方法、装置及系统
CN111176629B (zh) 一种应用开发的方法和装置
US20170123762A1 (en) Graphical representation of data in a program code editor
CN106547520B (zh) 一种代码路径分析方法及装置
CN107077379B (zh) 一种虚拟机创建方法和装置
TW201820131A (zh) 進程管理方法及裝置
CN108345449A (zh) 一种信息处理方法、装置、存储介质及计算机设备
JP2021502648A (ja) Fpgaクラウドホストの開発方法およびシステム
CN107832059A (zh) 一种基于Makefile的代码静态分析方法和装置
CN110968437A (zh) 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质
US20210103514A1 (en) Reusable test cases for identifiable patterns
CN110389786A (zh) 内核管理方法、设备和计算机程序产品
US20200274758A1 (en) Provisioning hybrid cloud resources in an operating environment
CN109298952A (zh) 应用程序编程接口的调用方法及其装置
CN113742005A (zh) 一种平台对接方法和装置
CN109451499A (zh) 一种连接无线接入点的方法及设备
JP2009169864A (ja) コンパイル方法およびコンパイルプログラム
CN110401925A (zh) 一种通讯消息的生成方法及装置
CN109240667A (zh) 一种应用软件的开发方法、装置、存储介质及终端
CN106951236B (zh) 插件的开发方法及装置
CN110069261A (zh) 一种嵌入式软件的可配置分区方法及系统
CN113051173B (zh) 测试流程的编排执行方法、装置、计算机设备和存储介质
CN113961194B (zh) 基于Flutter跨应用的工程构建方法、系统、终端及介质
CN109815455A (zh) 项目文件处理方法和装置
CN115658140A (zh) 一种sdk的打包方法、装置、终端以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190201