IP Library Granted Patent US 10,754,717
Granted Patent B2
US 10,754,717 · App. 15/791,806 · Granted Aug 25, 2020

Fast and accurate identification of message-based API calls in application binaries

Inventor: Chaoting Xuan (Duluth, GA)
Assignee: AIRWATCH LLC
G06F9/546G06F8/75G06F21/50G06F21/54G06F21/629G06F9/54G06F2221/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,754,717
App. No.
15/791,806
Granted
Aug 25, 2020
Kind
B2
Abstract

Disclosed are various embodiments for fast and accurate identification of message-based application programming interface (API) calls in applications. A set of compliance rules is obtained from a compliance rule store. A request to analyze an application is received. An application analysis is performed by scanning the application to identify one or more public APIs invoked by the application. The set of compliance rules are enforced on the application based at least in part on the application analysis.

Claims (40)

1. A system, comprising:

at least one computing device; and

at least one service executable in the at least one computing device, the at least one service, when executed, causing the at least one computing device to at least:

obtain a set of compliance rules from a compliance rule store;

receive a request to analyze an application;

perform an application analysis by scanning the application to identify at least one public application programming interface (API) invoked by the application;

generate a developer reputation record based at least in part on the application analysis; and

enforce the set of compliance rules on the application based at least in part on the application analysis and the developer reputation record.

2. The system of claim 1 , wherein the at least one service, when executed, further causes the at least one computing device to at least, based at least in part on the application analysis, wrap the application or embed a software development kit (SDK) in the application.

3. The system of claim 1 , wherein the at least one service, in performing the application analysis, further causes the at least one computing device to:

obtain data identifying a plurality of public API definitions; and

determine the at least one public API invoked by the application by comparing a listing of external classes from the application and a listing of external methods from the application with the data identifying the plurality of public API definitions.

4. The system of claim 3 , wherein the at least one service, in performing the application analysis, further causes the at least one computing device to at least determine the listing of external classes and the listing of external methods based at least in part on analyzing binary code of the application and analyzing metadata of the application.

5. The system of claim 4 , wherein analyzing the binary code of the application produces a listing of local classes and a list of local methods, and analyzing the metadata of the application produces a listing of local and external classes and a listing of local and external methods.

6. A method, comprising:

obtaining a set of compliance rules from a compliance rule store;

receiving a request to analyze an application;

performing an application analysis by scanning the application to identify at least one public application programming interface (API) invoked by the application;

generating a developer reputation record based at least in part on the application analysis; and

enforcing the set of compliance rules on the application based at least in part on the application analysis and the developer reputation record.

7. The method of claim 6 , further comprising:

based at least in part on the application analysis, wrapping the application or embedding a software development kit (SDK) in the application.

8. The method of claim 6 , further comprising performing forward constant propagation to determine a plurality of instructions of the application that invoke the at least one public API.

9. The method of claim 6 , wherein performing the application analysis further comprises:

obtaining data identifying a plurality of public API definitions; and

determining the at least one public API invoked by the application by comparing a listing of external classes from the application and a listing of external methods from the application with the data identifying the plurality of public API definitions.

10. The method of claim 9 , further comprising determining the listing of external classes and the listing of external methods based at least in part on analyzing binary code of the application and analyzing metadata of the application.

11. The method of claim 10 , wherein analyzing the binary code of the application produces a listing of local classes and a list of local methods, and analyzing the metadata of the application produces a listing of local and external classes and a listing of local and external methods.

12. A non-transitory computer-readable medium embodying a program executable in at least one computing device, wherein when executed the program causes the at least one computing device to at least:

obtain a set of compliance rules from a compliance rule store;

receive a request to analyze an application;

perform an application analysis by scanning the application to identify at least one public application programming interface (API) invoked by the application;

generate a developer reputation record based at least in part on the application analysis; and

enforce the set of compliance rules on the application based at least in part on the application analysis and the developer reputation record.

13. The non-transitory computer-readable medium of claim 12 , wherein when executed the program causes the at least one computing device to at least wrap the application based at least in part on the application analysis.

14. The non-transitory computer-readable medium of claim 12 , wherein when executed the program causes the at least one computing device to at least embed a software development kit (SDK) in the application based at least in part on the application analysis.

15. The non-transitory computer-readable medium of claim 12 , wherein when executed the program causes the at least one computing device to at least perform forward constant propagation to determine a plurality of instructions of the application that invoke the at least one public API.

16. The non-transitory computer-readable medium of claim 12 , wherein performing the application analysis further comprises:

obtaining data identifying a plurality of public API definitions; and

determining the at least one public API invoked by the application by comparing a listing of external classes from the application and a listing of external methods from the application with the data identifying the plurality of public API definitions.

Assignments (2)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: AIRWATCH LLC
To: OMNISSA, LLC
Reel/Frame 068327/0670 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
Continuity (4)
Continuation 15013231 · Feb 2, 2016
Continuation 14498486 · Sep 26, 2014
Provisional Application 61914772 · Dec 11, 2013
Related Publication 20180046525A1 · Feb 15, 2018