IP Library Granted Patent US 12,430,238
Granted Patent B2
US 12,430,238 · App. 18/462,825 · Granted Sep 30, 2025

System for aggregating program analysis tools

Inventors: Vincent A. Moscatello (Austin, TX); William G. Pence (Clearwater, FL); Cody J. Campbell (Tampa, FL)
Assignee: Nightwing Group, LLC
G06F11/3698G06F3/0482G06F8/74
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 12,430,238
App. No.
18/462,825
Granted
Sep 30, 2025
Kind
B2
Abstract

A system for aggregating program analysis tools displays a list of program analysis tool modules on a first computer user interface, and receives from a user a selection of a first program analysis tool. The system then renders a second computer user interface for the first program analysis tool, and receives input from the user identifying an action to be performed in a reverse engineering framework. The system then transmits.

Claims (43)

1. A process comprising:

displaying a list of program analysis tool modules on a first computer user interface, wherein at least one of the program analysis tool modules is a standalone analysis tool;

receiving from a user via the first computer user interface a selection of a first program analysis tool from the list of program analysis tool modules;

rendering a second computer user interface for the first program analysis tool;

receiving input from the user via the second computer user interface identifying an action to be performed in a reverse engineering framework that disassembles a compiled binary code for analysis; and

transmitting the input via a message to the reverse engineering framework,

wherein the second computer user interface is compatible with a native language of the reverse engineering framework and said at least one standalone analysis tool displayed on the first user interface.

2. The process of claim 1 , wherein the process comprises a web-based process.

3. The process of claim 2 , wherein the first computer user interface and the second computer user interface are rendered via a web page rendering library; and wherein the web page rendering library is compatible with a native language of the reverse engineering framework.

4. The process of claim 1 , wherein the message is transmitted via sent and received HTTP requests.

5. The process of claim 1 , wherein the message triggers events in the reverse engineering framework; and wherein the triggered events comprise one or more of an addition of a user-entered data structure into the reverse engineering framework, an identification of an address in the reverse engineering framework, a selection of a block of code of an object in the reverse engineering framework, and a selection of a block of memory of the object in the reverse engineering framework.

6. The process of claim 1 , comprising rendering a plurality of computer user interfaces for a plurality of program analysis tools, permitting the user to navigate among the plurality of computer user interfaces; and transmitting messages between the plurality of program analysis tools and the reverse engineering framework.

7. The process of claim 6 , wherein the program analysis tools comprise one or more of a dynamic program analysis tool, comprising (a fuzzing test tool and a static program analysis tool.

8. The process of claim 1 , comprising receiving input from the user to add a new program analysis tool; displaying on the first computer user interface a message indicating that one or more dependencies do not exist for the new program analysis tool; and aborting installation of the new program analysis tool.

9. The process of claim 1 , comprising permitting a user to move from using the first program analysis tool to using a second program analysis tool, and returning to the first program analysis tool and resuming a prior state of the first program analysis tool when the user returns to the first program analysis tool.

10. A non-transitory machine-readable medium comprising instructions that when executed by a processor executes a process comprising:

displaying a list of program analysis tool modules on a first computer user interface, wherein at least one of the program analysis tool modules is a standalone analysis tool;

receiving from a user via the first computer user interface a selection of a first program analysis tool from the list of program analysis tool modules;

rendering a second computer user interface for the first program analysis tool;

receiving input from the user via the second computer user interface identifying an action to be performed in a reverse engineering framework that disassembles a compiled binary code for analysis; and

transmitting the input via a message to the reverse engineering framework,

wherein the second computer user interface is compatible with a native language of the reverse engineering framework and said at least one standalone analysis tool displayed on the first user interface.

11. The non-transitory machine-readable medium of claim 10 , wherein the process comprises a web-based process.

12. The non-transitory machine-readable medium of claim 11 , wherein the first computer user interface and the second computer user interface are rendered via a web page rendering library; and wherein the web page rendering library is compatible with a native language of the reverse engineering framework.

13. The non-transitory machine-readable medium process of claim 10 , wherein the message is transmitted via sent and received HTTP requests.

14. The non-transitory machine-readable medium of claim 10 , wherein the message triggers events in the reverse engineering framework; and wherein the triggered events comprise one or more of an addition of a user-entered data structure into the reverse engineering framework, an identification of an address in the reverse engineering framework, a selection of a block of code of an object in the reverse engineering framework, and a selection of a block of memory of the object in the reverse engineering framework.

15. The non-transitory machine-readable medium of claim 10 , comprising instructions for rendering a plurality of computer user interfaces for a plurality of program analysis tools; permitting the user to navigate among the plurality of computer user interfaces; and transmitting messages between the plurality of program analysis tools and the reverse engineering framework.

16. The non-transitory machine-readable medium of claim 15 , wherein the program analysis tools comprise one or more of a dynamic program analysis tool and a static program analysis tool.

17. The non-transitory machine-readable medium of claim 10 , comprising instructions for receiving input from the user to add a new program analysis tool; displaying on the first computer user interface a message indicating that one or more dependencies do not exist for the new program analysis tool; and aborting installation of the new program analysis tool.

18. The non-transitory machine-readable medium of claim 10 , comprising instructions for permitting a user to move from using the first program analysis tool to using a second program analysis tool, and returning to the first program analysis tool and resuming a prior state of the first program analysis tool when the user returns to the first program analysis tool.

19. A system comprising:

a computer processor; and

a computer memory coupled to the computer processor;

wherein the computer processor and the computer memory are operable for:

displaying a list of program analysis tool modules on a first computer user interface, wherein at least one of the program analysis tool modules is a standalone analysis tool;

receiving from a user via the first computer user interface a selection of a first program analysis tool;

receiving from a user via the first computer user interface a selection of a first program analysis tool from the list of program analysis tool modules;

rendering a second computer user interface for the first program analysis tool;

receiving input from the user via the second computer user interface identifying an action to be performed in a reverse engineering framework;

receiving input from the user via the second computer user interface identifying an action to be performed in a reverse engineering framework that disassembles a compiled binary code for analysis; and

transmitting the input via a message to the reverse engineering framework,

wherein the second computer user interface is compatible with a native language of the reverse engineering framework and said at least one standalone analysis tool displayed on the first user interface.

20. The system of claim 19 , wherein the computer processor and the computer memory are operable for permitting a user to move from using the first program analysis tool to using a second program analysis tool, and returning to the first program analysis tool and resuming a prior state of the first program analysis tool when the user returns to the first program analysis tool.

Assignments (4)
PATENT SECURITY AGREEMENT Recorded Apr 29, 2025
From: NIGHTWING GROUP, LLC
To: WELLS FARGO BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071109/0795 →
CHANGE OF NAME Recorded Jul 5, 2024
From: COLUMBUS BUYER LLC
To: NIGHTWING GROUP, LLC
Reel/Frame 068588/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 4, 2024
From: RAYTHEON COMPANY
To: COLUMBUS BUYER LLC
Reel/Frame 068131/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2023
From: MOSCATELLO, VINCENT A.; PENCE, WILLIAM G.; CAMPBELL, CODY J.
To: RAYTHEON COMPANY
Reel/Frame 064832/0084 →
Continuity (2)
Provisional Application 63404783 · Sep 8, 2022
Related Publication 20240086309A1 · Mar 14, 2024
References Cited (4)
US 20030023953A1 · Lucassen · 2003 [cited by examiner]
US 20180341477A1 · Kulkarni · 2018 [cited by examiner]
US 20220181012A1 · Skelton · 2022 [cited by examiner]
Balci et al., “Malware Reverse Engineering Handbook,” (2020). (Year: 2020). [cited by examiner]