IP Library › Granted Patent US 12,737,279
Granted Patent B2
US 12,737,279 · App. 18/465,391 · Granted Sep 15, 2026

Detecting unwanted software using a machine learning operation

Inventors: Julian Collado Umana (Irvine, CA); Aaron Mark Tresch Fienberg (Irvine, CA)
Assignee: CYLANCE, INC.
G06F11/362
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 12,737,279
App. No.
18/465,391
Granted
Sep 15, 2026
Kind
B2
Abstract

Systems, methods, and software can be used to determine whether a software code is unwanted. In some aspects, a method includes: obtaining, by an electronic device, a set of software features of a software code; obtaining, by the electronic device, a set of user features of a user of the electronic device; and determining, by the electronic device, a classification score of the software code based on the set of software features and the set of the user features, wherein the classification score indicates whether the software code is potentially unwanted for the user.

Claims (56)

1 . A method, comprising:

obtaining, by an electronic device, a set of software features of a software code;

obtaining, by the electronic device, a set of user features of a user of the electronic device; and

determining, by the electronic device, a classification score of the software code based on the set of software features and the set of the user features, wherein the classification score indicates whether the software code is potentially unwanted for the user, wherein the determining the classification score comprises:

obtaining a software output vector by using a first machine learning model to process a software feature vector representing the set of software features of the software code;

obtaining a user output vector by using a second machine learning model to process a user feature vector representing the set of user features of the user, wherein the software feature vector and the user feature vector have different lengths, and the user output vector and the software output vector have a same length; and

determining the classification score of the software code based on the software output vector and the user output vector; and

outputting an indication indicating whether the software code is potentially unwanted for the user.

2 . The method of claim 1 , wherein the determining the classification score comprises:

determining the software feature vector based on the set of software features; and

determining the user feature vector based on the set of user features.

3 . The method of claim 1 , wherein the determining the classification score comprises:

sending the set of software features and the set of user features to a server; and

in response to the sending of the set of software features and the set of user features, receiving the software feature vector and the user feature vector from the server.

4 . The method of claim 1 , further comprising:

comparing the classification score with a threshold score; and

in response to determining that the classification score meets the threshold score, allowing access to the software code.

5 . The method of claim 1 , wherein the set of user features comprises a name of the user, a geographic location of the user, and an employer of the user.

6 . The method of claim 1 , wherein the set of user features comprises information of a browsing history, an access history, an application installation history, and an application usage history of the user.

7 . The method of claim 1 , wherein the set of user features comprises information of a hardware configuration of the electronic device and a software configuration of the electronic device.

8 . The method of claim 1 , wherein the set of software features comprises a file size of the software code, a file format of the software code, and a second indication indicating whether the software code is binary code or source code.

9 . The method of claim 1 , wherein the set of software features comprises at least a part of the software code.

10 . A non-transitory computer-readable medium containing instructions which, when executed, cause an electronic device to perform operations comprising:

obtaining a set of software features of a software code;

obtaining a set of user features of a user of the electronic device; and

determining a classification score of the software code based on the set of software features and the set of the user features, wherein the classification score indicates whether the software code is potentially unwanted for the user, wherein the determining the classification score comprises:

obtaining a software output vector by using a first machine learning model to process a software feature vector representing the set of software features of the software code;

obtaining a user output vector by using a second machine learning model to process a user feature vector representing the set of user features of the user, wherein the software feature vector and the user feature vector have different lengths, and the user output vector and the software output vector have a same length; and

determining the classification score of the software code based on the software output vector and the user output vector; and

outputting an indication indicating whether the software code is potentially unwanted for the user.

11 . The computer-readable medium of claim 10 , wherein the determining the classification score comprises:

determining the software feature vector based on the set of software features; and

determining the user feature vector based on the set of user features.

12 . The computer-readable medium of claim 10 , wherein the determining the classification score comprises: sending the set of software features and the set of user features to a server; and

in response to the sending of the set of software features and the set of user features, receiving the software feature vector and the user feature vector from the server.

13 . The computer-readable medium of claim 10 , the operations further comprising:

comparing the classification score with a threshold score; and

in response to determining that the classification score meets the threshold score, allowing access to the software code.

14 . A computer-implemented system, comprising:

one or more computers; and

one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform one or more operations comprising:

obtaining a set of software features of a software code;

obtaining a set of user features of a user of an electronic device; and

determining a classification score of the software code based on the set of software features and the set of the user features, wherein the classification score indicates whether the software code is potentially unwanted for the user, wherein the determining the classification score comprises:

obtaining a software output vector by using a first machine learning model to process a software feature vector representing the set of software features of the software code;

obtaining a user output vector by using a second machine learning model to process a user feature vector representing the set of user features of the user, wherein the software feature vector and the user feature vector have different lengths, and the user output vector and the software output vector have a same length; and

determining the classification score of the software code based on the software output vector and the user output vector; and

outputting an indication indicating whether the software code is potentially unwanted for the user.

15 . The computer-implemented system of claim 14 , wherein the determining the classification score comprises:

determining the software feature vector based on the set of software features; and

determining the user feature vector based on the set of user features.

16 . The computer-implemented system of claim 14 , wherein the determining the classification score comprises: sending the set of software features and the set of user features to a server; and

in response to the sending of the set of software features and the set of user features, receiving the software feature vector and the user feature vector from the server.

17 . The computer-implemented system of claim 14 , the operations further comprising:

comparing the classification score with a threshold score; and

in response to determining that the classification score meets the threshold score, allowing access to the software code.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2023
From: BLACKBERRY CORPORATION
To: CYLANCE INC.
Reel/Frame 064993/0993 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2023
From: COLLADO UMANA, JULIAN; FIENBERG, AARON MARK TRESCH
To: BLACKBERRY CORPORATION
Reel/Frame 064887/0674 →
Continuity (1)
Related Publication 20250086093A1 · Mar 13, 2025
References Cited (19)
US 10372913B2 · Harms · 2019 [cited by examiner]
US 11726889B1 · Rao et al. · 2023 [cited by applicant]
US 12111930B2 · Alasmari · 2024 [cited by examiner]
US 20170300814A1 · Shaked et al. · 2017 [cited by applicant]
US 20180018459A1 · Zhang et al. · 2018 [cited by applicant]
US 20180157845A1 · Mehta · 2018 [cited by applicant]
US 20180309793A1 · Ardanza Azcondo et al. · 2018 [cited by applicant]
US 20190363925A1 · Davis et al. · 2019 [cited by applicant]
US 20200274894A1 · Argoeti et al. · 2020 [cited by applicant]
US 20210120014A1 · Argoety et al. · 2021 [cited by applicant]
US 20210312058A1 · Chiarelli et al. · 2021 [cited by applicant]
US 20210357436A1 · Filios et al. · 2021 [cited by applicant]
US 20220179957A1 · Kuskov et al. · 2022 [cited by applicant]
US 20230007023A1 · Andrabi et al. · 2023 [cited by applicant]
US 20230127836A1 · Batson et al. · 2023 [cited by applicant]
Jacob A. Harer et al., Automated software vulnerability detection with machine learning, Aug. 2, 2018, arXiv, retrieved online on Nov. 20, 2025. Retrieved from the Internet: <URL: https://arxiv.org/pdf/1803.04497>. (Yea… [cited by examiner]
International Search Report and Written Opinion in International Appln. No. PCT/US2024/046001, mailed on Oct. 24, 2024, 15 pages. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2024/046041, mailed on Nov. 20, 2024, 13 pages. [cited by applicant]
Non-Final Offfice Action in U.S. Appl. No. 18/465,406, mailed on Mar. 24, 2026, 16 pages [cited by applicant]