IP Library › Granted Patent US 11,586,529
Granted Patent B2
US 11,586,529 · App. 17/542,575 · Granted Feb 21, 2023

Method for blocking external debugger application from analysing code of software program

Inventor: Aki Immonen (Espoo, FI)
Assignee: Supercell Oy
G06F11/3612G06F11/3624G06F11/3656G06F21/71
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 11,586,529
App. No.
17/542,575
Granted
Feb 21, 2023
Kind
B2
Abstract

A method for blocking external debugger application from analysing code of software program installed on computing device. The method including initializing software program including an application program and an internal debugger application. The software program, upon initialization thereof, instructs internal debugger application to load application program in internal debugger application. The internal debugger application is configured to utilize kernel resources of an operating system of the computing device. The method includes executing internal debugger application to set one or more break-points in code of application program to define execution path for code of application program, executing application program as per defined execution path for code thereof, stopping execution of code of application program upon reaching any of one or more break-points therein, and handing control to internal debugger application to provide an address for next instruction to be executed in defined execution path for code of application program.

Claims (32)

1. A method for blocking an external debugger application from analysing code of a software program installed on a computing device, the method comprising:

initializing an application program and an internal debugger application of the software program, wherein the internal debugger application is configured to load the application program in the internal debugger application;

executing the internal debugger application to set one or more break-points defining an execution path in the code of the application program, wherein the one or more break-points are set randomly at an end of one or more code blocks in the code of the application program;

executing the application program in the internal debugger application during run time according to a first execution path;

stopping execution of the code of the application program in the first execution path upon reaching a break-point of the one or more break-points;

handing control of the execution of the application program to the internal debugger application to provide an address for a next instruction in the code of the application to be executed; and

continuing execution of the application program in a second execution path defined by the address for the next instruction provided by the internal debugger application.

2. The method according to claim 1 , wherein the code of the application program includes multiple code blocks, and wherein the one or more break-points include instructions to move from a current code block in the first execution path to another code block corresponding to the address for the next instruction.

3. The method according to claim 1 , wherein the one or more break-points are set at an end of one or more predetermined code blocks in the code of the application program.

4. The method according to claim 1 , wherein the application program is a gaming application program.

5. A computer program product comprising a non-transitory machine-readable data storage medium having stored thereon program instructions, which when accessed by a processing device of a computing device, will cause the computing device to:

initialize an application program and an internal debugger application, wherein the internal debugger application is configured to load the application program in the internal debugger application;

execute the internal debugger application to set one or more break-points defining an execution path in the code of the application program, wherein the one or more break-points are set randomly at an end of one or more code blocks in the code of the application program;

execute the application program in the internal debugger application during run time according to a first execution path;

stopping execution of the code of the application program in the first execution path upon reaching a break-point of the one or more break-points;

handing control of the execution of the application program to the internal debugger application to provide an address for a next instruction in the code of the application to be executed; and

continuing execution of the application program in a second execution path defined by the address for the next instruction provided by the internal debugger application.

6. The computer program product according to claim 5 , wherein the code of the application program includes multiple code blocks, wherein the one or more break-points include instructions to move from one code block after execution thereof to another code block corresponding to the address for the next instruction.

7. The computer program product according to claim 5 , wherein the program instructions, when accessed by the processing device, will cause the computing device to set the one or more break-points at end of one or more predetermined code blocks in the code of the application program.

8. The computer program product according to claim 5 , wherein the application program is a gaming application program.

9. A computing device for blocking an external debugger application from analysing a code of a software program installed on the computing device, the computing device comprising a hardware processor device, the hardware processor configured to execute non-transitory machine readable instructions to cause the computing device to:

initialize an application program and an internal debugger application of the software program, wherein the internal debugger application is configured to load the application program in the internal debugger application;

execute the internal debugger application to set one or more break-points defining an execution path in the code of the application program, wherein the one or more break-points are set randomly at an end of one or more code blocks in the code of the application program;

execute the application program in the internal debugger application during run time according to a first execution path;

stop execution of the code of the application program in the first execution path upon reaching a break-point of the one or more break-points;

hand control of the execution of the application program to the internal debugger application to provide an address for a next instruction in the code of the application to be executed; and

continue execution of the application program in a second execution path defined by the address for the next instruction provided by the internal debugger application.

10. The computing device according to claim 9 , wherein the code of the application program includes multiple code blocks, and wherein the one or more break-points include instructions to move from a current code block in the first execution path to another code block corresponding to the address for the next instruction.

11. The computing device according to claim 9 , wherein the one or more break-points are set at an end of one or more predetermined code blocks in the code of the application program.

12. The computing device according to claim 9 , wherein the application program is a gaming application program.

13. The computing device according to claim 9 , wherein execution of the non-transitory machine readable instructions by the hardware processor are further configured to cause the computing device to hand control to the internal debugger application to provide an address for a next code block to be executed in the defined execution path for the code of the application program.

14. The computing device according to claim 9 , wherein execution of the non-transitory machine readable instructions by the hardware processor are further configured to cause the computing device to cause the internal debugger application to initialize the execution of the code of the application program.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2021
From: IMMONEN, AKI
To: SUPERCELL OY
Reel/Frame 058291/0211 →
Continuity (2)
Continuation 16736242 · Jan 7, 2020
Related Publication 20220164275A1 · May 26, 2022