IP Library › Granted Patent US 10,586,026
Granted Patent B2
US 10,586,026 · App. 15/172,891 · Granted Mar 10, 2020

Simple obfuscation of text data in binary files

Inventor: Alex Zvenigorodsky (Redwood City, CA)
Assignee: Electronic Arts Inc.
G06F21/14G06F8/423G06F21/125G06F21/54G06F21/6209G06F2221/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,586,026
App. No.
15/172,891
Granted
Mar 10, 2020
Kind
B2
Abstract

An obfuscation macro can expand obfuscation identification information into a data value during or prior to compiling source code, and insert a de-obfuscation call where the data value is referenced in the source code. An obfuscation utility can scan compiled binaries for data values containing obfuscation identification information. The obfuscation utility identifies and obfuscates data values containing obfuscation identification information within the compiled binaries. The de-obfuscation call de-obfuscates obfuscated data values during runtime.

Claims (37)

1. A system, comprising:

a memory;

a processor in communication with the memory, the processor configured to:

execute an obfuscation macro to insert, into a source code comprising a data value, obfuscation identification information concatenated to the data value and a runtime de-obfuscation function call associated with the data value;

compile the source code into a binary code, wherein the binary code comprises the data value in an unobfuscated form;

identify, in the binary code, the obfuscation identification information comprising an obfuscation tag;

produce, based on the obfuscation identification information, an obfuscation key, wherein the obfuscation key comprises at least part of the obfuscation tag; and

iteratively obfuscate, using the obfuscation key, each byte of a plurality of bytes of the data value, wherein the obfuscation key is circularly shifted by a predetermined number of bits after obfuscating each byte of the plurality of bytes.

2. The system of claim 1 , wherein the obfuscation identification information comprises one or more text tags.

3. The system of claim 1 , wherein the obfuscation macro is a preprocessor directive.

4. The system of claim 1 , wherein the data value is a static string.

5. The system of claim 1 , wherein the processor is further configured to digitally sign the binary code.

6. The system of claim 1 , wherein the processor is further configured to execute the de-obfuscation function to restore the data value in the unobfuscated form.

7. A method, comprising:

executing, by a processor, an obfuscation macro to insert, into a source code comprising a data value, obfuscation identification information concatenated to the data value and a runtime de-obfuscation function call associated with the data value;

compiling, by the processor, the source code into a binary code, wherein the binary code comprises the data value in an unobfuscated form;

identifying, in the binary code, the obfuscation identification information comprising an obfuscation tag;

producing, based on the obfuscation identification information, an obfuscation key, wherein the obfuscation key comprises at least part of the obfuscation tag; and

iteratively obfuscating, using the obfuscation key, each byte of a plurality of bytes of the data value, wherein the obfuscation key is circularly shifted by a predetermined number of bits after obfuscating each byte of the plurality of bytes.

8. The method of claim 7 , wherein the obfuscation identification information comprises one or more text tags.

9. The method of claim 7 , wherein the obfuscation macro is a preprocessor directive.

10. The method of claim 7 , wherein the data value is a static string.

11. The method of claim 7 , wherein producing the obfuscation key further comprises randomly obfuscating the obfuscation identification information.

12. A non-transitory computer-readable storage medium containing executable instructions which, when executed by a processing device, cause the processing device to:

execute an obfuscation macro to insert, into a source code comprising a data value, obfuscation identification information concatenated to the data value and a runtime de-obfuscation function call associated with the data value;

compile the source code into a binary code, wherein the binary code comprises the data value in an unobfuscated form;

identify, in the binary code, the obfuscation identification information comprising an obfuscation tag;

produce, based on the obfuscation identification information, an obfuscation key, wherein the obfuscation key comprises at least part of the obfuscation tag; and

iteratively obfuscate, using the obfuscation key, each byte of a plurality of bytes of the data value, wherein the obfuscation key is circularly shifted by a predetermined number of bits after obfuscating each byte of the plurality of bytes.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the obfuscation identification information comprises one or more text tags.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the obfuscation macro is a preprocessor directive.

15. The non-transitory computer-readable storage medium of claim 12 , wherein the data value is a static string.

16. The non-transitory computer-readable storage medium of claim 12 , wherein producing the obfuscation key further comprises randomly obfuscating the obfuscation identification information.

17. The method of claim 7 , further comprising:

executing the de-obfuscation function to restore the data value in the unobfuscated form.

18. The non-transitory computer-readable storage medium of claim 12 , further comprising executable instructions which, when executed by the processing device, cause the processing device to:

execute the de-obfuscation function to restore the data value in the unobfuscated form.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2016
From: ZVENIGORODSKY, ALEX
To: ELECTRONIC ARTS INC.
Reel/Frame 038820/0600 →
Continuity (1)
Related Publication 20170351847A1 · Dec 7, 2017