IP Library Granted Patent US 8,949,660
Granted Patent B1
US 8,949,660 · App. 13/714,350 · Granted Feb 3, 2015

Remote deobfuscation of compressed code

Inventors: Daniel Felix Pupius (San Francisco, CA); Mark William Rawling (Sunnyvale, CA); Bradley Garett Hawkes (Sunnyvale, CA); Adam Richard De Boor (Bainbridge Island, WA); Joseph Schorr (New York, NY); John Joseph Lenz (Santa Cruz, CA); Nick Santos (Brooklyn, NY)
Assignee: Google Inc.
G06F11/1402
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,949,660
App. No.
13/714,350
Granted
Feb 3, 2015
Kind
B1
Abstract

Systems and methods for remotely deobfuscating JavaScript are provided. In some aspects, a method includes sending obfuscated code from a server to a browser, receiving a deobfuscation request at the server over a network, and deobfuscating an error in the deobfuscation request at the server.

Claims (52)

1. A machine-implemented method, comprising:

sending obfuscated code from a server to a browser;

when there is an error during execution of the obfuscated code at the browser, receiving a deobfuscation request including obfuscated information about the error at the server over a network; and

deobfuscating the obfuscated information in the deobfuscation request at the server.

2. The method of claim 1 , wherein the obfuscated code is obfuscated JavaScript.

3. The method of claim 2 , further comprising:

receiving JavaScript source code;

compiling the JavaScript source code into the obfuscated JavaScript; and

storing the obfuscated JavaScript.

4. The method of claim 1 , further comprising:

creating a source map used to deobfuscate a stack trace and storing the source map.

5. The method of claim 4 , further comprising:

accessing the stored source map when deobfuscating a stack trace in the deobfuscation request.

6. The method of claim 1 , further comprising:

creating a predefined error map used to deobfuscate an error message; and

storing the error map.

7. The method of claim 6 , further comprising:

accessing the stored predefined error map when deobfuscating an error message in the deobfuscation request.

8. The method of claim 1 , wherein the deobfuscation request is received from a frontend server.

9. The method of claim 8 , further comprising:

sending a readable error message to the frontend server.

10. The method of claim 8 , further comprising:

sending a readable stack trace to the frontend server.

11. A non-transitory computer-readable medium for remotely deobfuscating code, the computer-readable medium comprising instructions that, when executed by a computer, cause the computer to:

send obfuscated JavaScript to a browser;

when there is an error during execution of the obfuscated JavaScript at the browser, receive a deobfuscation request including obfuscated information about the error over a network; and

deobfuscate the obfuscated information in the deobfuscation request.

12. The non-transitory computer-readable medium of claim 11 , further comprising instructions that, when executed by the computer, cause the computer to:

receive JavaScript source code;

compile the JavaScript source code into the obfuscated JavaScript; and

store the obfuscated JavaScript.

13. The non-transitory computer-readable medium of claim 11 , further comprising instructions that, when executed by the computer, cause the computer to:

create a source map used to deobfuscate a stack trace; and

store the source map.

14. The non-transitory computer-readable medium of claim 13 , further comprising instructions that, when executed by the computer, cause the computer to:

access the stored source map when deobfuscating a stack trace in the deobfuscation request.

15. The non-transitory computer-readable medium of claim 11 , further comprising instructions that, when executed by the computer, cause the computer to:

create a predefined error map used to deobfuscate an error message; and

store the error map.

16. The non-transitory computer-readable medium of claim 15 , further comprising instructions that, when executed by the computer, cause the computer to:

access the stored predefined error map when deobfuscating an error message in the deobfuscation request.

17. A JavaScript system, comprising:

one or more processors;

a memory comprising instructions which, when executed by the one or more processors, cause the one or more processors to:

receive an error report at a frontend server from a browser;

generate a deobfuscation request including obfuscated information about an error in the error report; and

send the deobfuscation request from the frontend server over a network.

18. The system of claim 17 , wherein the deobfuscation request is sent to a JavaScript server.

19. The system of claim 17 , further comprising instructions which, when executed by the one or more processors, cause the one or more processors to:

receive a readable error message from the JavaScript server after deobfuscation.

20. The system of claim 17 , further comprising instructions which, when executed by the one or more processors, cause the one or more processors to:

receive a readable stack trace from the JavaScript server after deobfuscation.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044277/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2013
From: PUPIUS, DANIEL FELIX; RAWLING, MARK WILLIAM; HAWKES, BRADLEY GARETT; DE BOOR, ADAM RICHARD; SCHORR, JOSEPH; LENZ, JOHN JOSEPH; SANTOS, NICK
To: GOOGLE INC.
Reel/Frame 029909/0104 →
Continuity (1)
Provisional Application 61570783 · Dec 14, 2011