IP Library Granted Patent US 8,789,027
Granted Patent B2
US 8,789,027 · App. 13/715,380 · Granted Jul 22, 2014

Software analysis framework

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,789,027
App. No.
13/715,380
Granted
Jul 22, 2014
Kind
B2
Abstract

Presently described is a decompilation method of operation and system for parsing executable code, identifying and recursively modeling data flows, identifying and recursively modeling control flow, and iteratively refining these models to provide a complete model at the nanocode level. The nanocode decompiler may be used to determine if flaws, security vulnerabilities, or general quality issues exist in the code. The nanocode decompiler outputs in a standardized, human-readable intermediate representation (IR) designed for automated or scripted analysis and reporting. Reports may take the form of a computer annotated and/or partially human annotated nanocode listing in the above-described IR. Annotations may include plain English statements regarding flaws and pointers to badly constructed data structures, unchecked buffers, malicious embedded code or “trap doors,” and the like. Annotations may be generated through a scripted analysis process or by means of an expert-enhanced, quasi-autonomous system.

Claims (14)

1. A system for facilitating the analysis of software code, the system comprising:

a decompiler and analysis subsystem operating on a processor, the decompiler and analysis subsystem comprising;

means for separating the executable software code into a code section and a data section;

means for generating one or more signature files; and

means for comparing the code section of the executable software code to the one or more signature files; and

a graphical user interface rendered on a display device, the graphical user interface for (i) accepting user commands related to the modeling and analysis of the executable software code and (ii) displaying results of the comparison on the display device.

2. The system of claim 1 wherein the decompiler and analysis subsystem further comprises means for creating an intermediate representation of the executable software code comprising a complete model of the executable software code based on a data section and the code sections.

3. The system of claim 2 wherein the intermediate representation comprises a data flow model and a control flow model.

4. The system of claim 2 wherein the graphical user interface displays the data flow model and the control flow model on the display device.

5. The system of claim 2 wherein the intermediate representation of the executable software provides a nanocode model of the executable software code whereby the decompiler and analysis subsystem compare the nanocode model to a reference nanocode model and identify discrepancies between the nanocode model and the reference nanocode model.

6. The system of claim 1 wherein the signature files comprise a collection of software routines.

7. The system of claim 1 further comprising means for creating source code files based on the intermediate representation from which the executable software code can be rendered.

8. The system of claim 1 wherein the decompiler and analysis subsystem further comprises means for iteratively discovering variables contained in the executable software code.

9. The system of claim 1 further comprising means for providing one or more of processor architecture information, software compiler information, and source code parser information to the loader.

Assignments (5)
SECURITY INTEREST Recorded May 25, 2022
From: VERACODE, INC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 060011/0351 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded May 2, 2022
From: BARCLAYS BANK PLC, AS AGENT
To: VERACODE, INC.
Reel/Frame 059846/0650 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 5, 2020
From: VERACODE, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 054330/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2012
From: RIOUX, CHRISTIEN R.
To: @STAKE
Reel/Frame 029511/0747 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2012
From: @STAKE
To: VERACODE, INC.
Reel/Frame 029511/0753 →