IP Library Granted Patent US 8,458,673
Granted Patent B2
US 8,458,673 · App. 11/699,678 · Granted Jun 4, 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,458,673
App. No.
11/699,678
Granted
Jun 4, 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 selecting a memory page of host application code, translating the contents of the selected memory page of host application code, saving the translated contents of the selected memory page into a stub code area, overwriting the selected memory page of host application code; removing host page permission for execution of code in the selected memory page of host application code, and emulating the translated contents of the selected memory page when an exception is raised as a result of attempted access to the selected memory page of host application code.

Claims (30)

1. A method comprising:

selecting a memory page of host application code;

translating executable code of the selected memory page of host application code;

moving the translated executable code of the selected memory page from the host application into a stub code area comprising at least one stub routine for performing any of a security and access rights check;

overwriting the selected memory page of host application code;

removing host page permission for execution of code in the selected memory page of host application code; and

emulating the translated executable code of the selected memory page that was moved into the stub code area when an exception is raised during execution of said host application code as a result of attempted access to the selected memory page of host application code if and only if said security or access rights check is satisfied by said at least one stub routine.

2. The method as claimed in claim 1 wherein emulating the translated executable code of the selected memory page further includes receiving an authentication from a digital rights management subsystem.

3. The method as claimed in claim 1 further including setting up an exception handler to receive execution control when the exception is raised.

4. The method as claimed in claim 3 further including executing the exception handler when the exception is raised.

5. The method as claimed in claim 1 further including waiting for the exception to be raised.

6. The method as claimed in claim 1 wherein translating the executable code of the selected memory page of host application code further includes transforming a portion of the host application code into another code interpretable by an emulator.

7. The method as claimed in claim 1 wherein selecting a memory page of host application code includes selecting a memory page that contains functions which are not executed more than a minimal number of times to avoid system performance degradation.

8. The method as claimed in claim 1 further including wrapping the host application code with stub code of the stub code area.

9. The method as claimed in claim 1 wherein a code block from the host application code is selected via a hardware mechanism.

10. An article of manufacture comprising a non-transitory machine-accessible medium including instructions that, when executed by a machine, cause the machine to be operable to:

select a memory page of host application code;

translate executable code of the selected memory page of host application code;

move the translated executable code of the selected memory page from the host application into a stub code area comprising at least one stub routine for performing any of a security and access rights check;

overwrite the selected memory page of host application code;

remove host page permission for execution of code in the selected memory page of host application code; and

emulate the translated executable code of the selected memory page that was moved into the stub code area when an exception is raised during execution of said host application code as a result of attempted access to the selected memory page of host application code if and only if said security or access rights check is satisfied by said at least one stub routine.

11. The article of manufacture as claimed in claim 10 wherein emulating the translated executable code of the selected memory page being further operable to receive an authentication from a digital rights management subsystem.

12. The article of manufacture as claimed in claim 10 being further operable to set up an exception handler to receive execution control when the exception is raised.

13. The article of manufacture as claimed in claim 12 being further operable to execute the exception handler when the exception is raised.

14. The article of manufacture as claimed in claim 10 being further operable to wait for the exception to be raised.

15. The article of manufacture as claimed in claim 10 being further operable to transform a portion of the host application code into another code interpretable by an emulator.

16. The article of manufacture as claimed in claim 10 being further operable to select a memory page that contains functions which are not executed more than a minimal number of times to avoid system performance degradation.

17. The article of manufacture as claimed in claim 10 being further operable to wrap the host application code with stub code of the stub code area.

18. The article of manufacture as claimed in claim 10 wherein a code block from the host application code is selected via a hardware mechanism.

Assignments (9)
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 →