IP Library Granted Patent US 8,516,447
Granted Patent B2
US 8,516,447 · App. 11/598,318 · Granted Aug 20, 2013

Computer-implemented method and system for binding digital rights management executable code to a software application

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 8,516,447
App. No.
11/598,318
Granted
Aug 20, 2013
Kind
B2
Abstract

A computer-implemented method and system for binding digital rights management executable code to a software application are disclosed. The method and system include identifying a host code block in the host code section, copying the host code block from the host code section to a stub code block in the stub code section, and re-routing at least one reference of the host code block to be a reference of the stub code block.

Claims (39)

1. A computer-implemented method, comprising:

executing a host code section;

identifying, during execution of the host code section, a host code block in the host code section;

categorizing, during execution of the host code section, the host code block by a function, wherein the function is performance sensitive or not performance sensitive; and

upon categorizing the host code block by the function as being not performance sensitive, processing the host code block, wherein processing the host code block includes:

copying, during execution of the host code section, the host code block from the host code section to a stub code block in a stub code section;

copying, during execution of the host code section, the stub code block to the host code block in the host code section;

re-routing at least one reference of the host code block to be a reference of the stub code block prior to termination of execution of the host code section; and

re-routing at least one reference of the stub code block to be a reference of the host code block prior to termination of execution of the host code section.

2. The computer-implemented method as claimed in claim 1 wherein the at least one reference of the host code block is an outbound reference.

3. The computer-implemented method as claimed in claim 1 wherein the at least one reference of the host code block is an inbound reference.

4. The computer-implemented method as claimed in claim 1 wherein the host code block in the host code section is rendered inoperable.

5. The computer-implemented method as claimed in claim 1 wherein the host code block in the host code section is identified by disassembling the host code section.

6. The computer-implemented method as claimed in claim 1 wherein the host code block in the host code section is identified by comparing host code blocks against a predefined list of functions.

7. The computer-implemented method as claimed in claim 1 wherein the host code block in the host code section is identified interactively during a wrapping process.

8. The computer-implemented method as claimed in claim 1 further including retaining at least one reference of the host code block to remain a reference of the host code block.

9. The computer-implemented method as claimed in claim 8 wherein the host code block in the host code section remains operable.

10. The computer-implemented method as claimed in claim 1 further comprising:

providing a stub routine in the stub code section;

re-routing at least one reference of the host code block to be a reference of the stub routine; and

re-routing at least one reference of the stub routine to be a reference of the stub code block.

11. The computer-implemented method as claimed in claim 10 wherein the at least one reference of the host code block is an outbound reference.

12. The computer-implemented method as claimed in claim 10 wherein the at least one reference of the host code block is an inbound reference.

13. The computer-implemented method as claimed in claim 10 wherein the stub routine is a digital rights management routine.

14. The computer-implemented method as claimed in claim 10 wherein the stub routine is an optical disc verification routine.

15. The computer-implemented method as claimed in claim 10 wherein the stub routine is an authentication verification routine.

16. The computer-implemented method as claimed in claim 10 wherein the stub routine is a tamper-proofing verification routine.

17. The computer-implemented method as claimed in claim 10 further including transforming the stub code block.

18. An article of manufacture embodied as a non-transitory computer-readable medium storing data that, when accessed by a machine, causes the machine to perform operations comprising:

executing a host code section;

identifying, during execution of the host code section, a host code block in the host code section;

categorizing, during execution of the host code section, the host code block by a function, wherein the function is performance sensitive or not performance sensitive; and

upon categorizing the host code block by the function as being not performance sensitive, processing the host code block, wherein processing the host code block includes:

copying, during execution of the host code section, the host code block from the host code section to a stub code block in a stub code section;

copying, during execution of the host code section, the stub code block to the host code block in the host code section;

re-routing at least one reference of the host code block to be a reference of the stub code block prior to termination of execution of the host code section; and

re-routing at least one reference of the stub code block to be a reference of the host code block prior to termination of execution of the host code section.

19. The article of manufacture as claimed in claim 18 wherein the at least one reference of the host code block is an outbound reference.

20. The article of manufacture as claimed in claim 18 wherein the at least one reference of the host code block is an inbound reference.

Assignments (24)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 045441/ 0499 Recorded Aug 25, 2025
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
Reel/Frame 072552/0558 →
SECURITY INTEREST Recorded Aug 15, 2025
From: FLEXERA SOFTWARE LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL GENT
Reel/Frame 072460/0828 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
Reel/Frame 067636/0534 →
SECOND LIEN SECURITY AGREEMENT Recorded Mar 3, 2021
From: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 055487/0354 →
RELEASE OF SECOND LIEN SECURITY INTEREST Recorded Feb 28, 2020
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION; RIGHTSCALE, INC.; RISC NETWORKS, LLC
Reel/Frame 052049/0560 →
SECOND LIEN SECURITY AGREEMENT Recorded Feb 27, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045451/0499 →
FIRST LIEN SECURITY AGREEMENT Recorded Feb 26, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045441/0499 →
TERMINATION OF 2ND LIEN SECURITY INTEREST RECORDED AT REEL/FRAME 032590/0805 Recorded Feb 26, 2018
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC
Reel/Frame 045447/0842 →
TERMINATION OF 1ST LIEN SECURITY INTEREST RECORDED AT REEL/FRAME 032590/0617 Recorded Feb 26, 2018
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC
Reel/Frame 045447/0894 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Apr 2, 2014
From: FLEXERA SOFTWARE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 032590/0617 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2014
From: BANK OF MONTREAL
To: FLEXERA SOFTWARE LLC
Reel/Frame 032581/0652 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Apr 2, 2014
From: FLEXERA SOFTWARE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 032590/0805 →
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Mar 28, 2013
From: FLEXERA SOFTWARE LLC
To: BANK OF MONTREAL, AS COLLATERAL AGENT
Reel/Frame 030111/0362 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 027022/0202 Recorded Mar 25, 2013
From: BNAK OF MONTREAL, AS COLLATERAL AGENT
To: FLEXERA SOFTWARE LLC
Reel/Frame 030081/0156 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Oct 5, 2011
From: FLEXERA SOFTWARE LLC
To: BANK OF MONTREAL, AS COLLATERAL AGENT
Reel/Frame 027021/0054 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 5, 2011
From: FLEXERA SOFTWARE LLC
To: BANK OF MONTREAL, AS COLLATERAL AGENT
Reel/Frame 027022/0202 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Oct 3, 2011
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: FLEXERA SOFTWARE, INC.
Reel/Frame 027004/0601 →
CERTIFICATE OF CONVERSION Recorded Sep 29, 2011
From: FLEXERA SOFTWARE, INC.
To: FLEXERA SOFTWARE LLC
Reel/Frame 026994/0341 →
SECURITY AGREEMENT Recorded Jan 21, 2011
From: FLEXERA SOFTWARE, INC.
To: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
Reel/Frame 025675/0840 →
RELEASE OF SECURITY INTEREST Recorded Jan 20, 2011
From: BANK OF MONTREAL, AS AGENT
To: FLEXERA SOFTWARE, INC. (F/K/A ACRESSO SOFTWARE INC.)
Reel/Frame 025668/0070 →
CHANGE OF NAME Recorded Nov 25, 2009
From: ACRESSO SOFTWARE INC.
To: FLEXERA SOFTWARE, INC.
Reel/Frame 023565/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2008
From: MACROVISION CORPORATION
To: ACRESSO SOFTWARE INC.
Reel/Frame 020817/0960 →
SECURITY AGREEMENT Recorded Apr 2, 2008
From: ACRESSO SOFTWARE INC.
To: BANK OF MONTREAL, AS AGENT
Reel/Frame 020741/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2006
From: TORRUBIA, ANDRES M.; ROMAN, MIGUEL A.; GADEA, IVAN; SANCHEZ, PAU
To: MACROVISION CORPORATION
Reel/Frame 018602/0414 →