IP Library Granted Patent US 11,056,212
Granted Patent B1
US 11,056,212 · App. 16/731,195 · Granted Jul 6, 2021

Methods and systems for an integrated disassembler with a function-queue manager and a disassembly interrupter for rapid, efficient, and scalable code gene extraction and analysis

Inventors: Itai Tevet (New York, NY); Roy Halevi (Tel Aviv-Jaffa, IL); Jonathan Abrahamy (Ramat Hasharon, IL); Ari Eitan (Tel Aviv-Jaffa, IL); David Tufik (Jerusalem, IL); Jay Rosenberg (Tel Aviv, IL)
Assignee: Intezer Labs, Ltd.
G16B20/00G06F8/53G06F21/564G16B50/00G06F21/56
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,056,212
App. No.
16/731,195
Granted
Jul 6, 2021
Kind
B1
Abstract

The present invention discloses methods and systems for an integrated disassembler with a function-queue manager and a disassembly interrupter for rapid, efficient, and scalable code gene extraction and analysis. Methods include the steps of: upon receiving a target binary file, disassembling the target binary file into assembly code; extracting code fragments from the assembly code; as each code fragment is extracted, verifying each code fragment; upon availability, placing each verified code fragment in an extractor queue; and upon availability, submitting each code fragment in the extractor queue to a gene-analysis system having a code genome database. Alternatively, upon determining the extractor queue is empty or determining resources of the gene-analysis system are underutilized, transferring partially-verified code fragments to the extractor queue. Alternatively, upon receiving gene information regarding the target binary file from the gene-analysis system during disassembly, determining whether to terminate the step of disassembling based on the gene information.

Claims (47)

1. A method for an integrated disassembler for code gene analysis, the method comprising the steps of:

(a) upon receiving a target binary file, disassembling said target binary file into assembly code;

(b) extracting individually-identifiable code fragments from said assembly code;

(c) upon each said individually-identifiable code fragment being extracted, verifying said each individually-identifiable code fragment;

(d) upon said each individually-identifiable code fragment being verified, placing each verified said individually-identifiable code fragment in an extractor queue, wherein said placing includes placing said each individually-identifiable code fragment that has been completely verified to be a valid function;

(e) upon said each verified individually-identifiable code fragment being placed in said extractor queue, submitting said each individually-identifiable code fragment in said extractor queue to a gene-analysis system having a code genome database;

(f) placing each partially-verified individually-identifiable code fragment in a verification queue, wherein said each partially-verified individually-identifiable code fragment has not been completely verified;

(g) performing additional verification on said each partially-verified individually-identifiable code fragment; and

(h) transferring each completely-verified said individually-identifiable code fragment to said extractor queue.

2. The method of claim 1 , the method further comprising the step of:

(i) transferring said each partially-verified individually-identifiable code fragment to said extractor queue when said extractor queue is empty.

3. The method of claim 1 , the method further comprising the step of:

(i) transferring said each partially-verified individually-identifiable code fragment to said extractor queue when resources of said gene-analysis system are underutilized.

4. The method of claim 1 , the method further comprising the step of:

(i) upon receiving gene information regarding said target binary file from said gene-analysis system during disassembly, determining whether to terminate said step of disassembling based on said gene information.

5. A system for an integrated disassembler for code gene analysis, the system comprising:

(a) a CPU for performing computational operations;

(b) a memory for storing data and having computer-readable code embodied therein, wherein said computer-readable code includes:

(i) program code for, upon receiving a target binary file, disassembling said target binary file into assembly code;

(ii) program code for extracting individually-identifiable code fragments from said assembly code;

(iii) program code for, upon each said individually-identifiable code fragment being extracted, verifying said each individually-identifiable code fragment;

(iv) program code for, upon said each individually-identifiable code fragment being verified, placing each verified said individually-identifiable code fragment in an extractor queue, wherein said placing includes placing said each individually-identifiable code fragment that has been completely verified to be a valid function;

(v) program code for, upon said each verified individually-identifiable code fragment being placed in said extractor queue, submitting said each individually-identifiable code fragment in said extractor queue to a gene-analysis system having a code genome database;

(vi) program code for placing each partially-verified said individually-identifiable code fragment in a verification queue, wherein said each partially-verified individually-identifiable code fragment has not been completely verified;

(vii) program code for performing additional verification on said each partially-verified individually-identifiable code fragment by said verification module; and

(viii) program code for transferring each completely-verified said individually-identifiable code fragment to said extractor queue.

6. The system of claim 5 , wherein said computer-readable code further includes:

(ix) program code for transferring said each partially-verified individually-identifiable code fragment to said extractor queue when said extractor queue is empty.

7. The system of claim 5 , wherein said computer-readable code further includes:

(ix) program code for transferring said each partially-verified individually-identifiable code fragment to said extractor queue when resources of said gene-analysis system are underutilized.

8. The system of claim 5 , said computer-readable code further includes:

(ix) program code for, upon receiving gene information regarding said target binary file from said gene-analysis system during disassembly, determining whether to terminate said step of disassembling based on said gene information.

9. A non-transitory computer-readable storage medium, having computer-readable code embodied on the non-transitory computer-readable storage medium, for an integrated disassembler for code gene analysis, the computer-readable code comprising:

(a) program code for, upon receiving a target binary file, disassembling said target binary file into assembly code;

(b) program code for extracting individually-identifiable code fragments from said assembly code;

(c) program code for, upon each said individually-identifiable code fragment is-being extracted, verifying said each individually-identifiable code fragment;

(d) program code for, upon said each individually-identifiable code fragment being verified, placing each verified said individually-identifiable code fragment in an extractor queue, wherein said placing includes placing said each individually-identifiable code fragment that has been completely verified to be a valid function;

(e) program code for, upon said each verified individually-identifiable code fragment being placed in said extractor queue, submitting said each individually-identifiable code fragment in said extractor queue to a gene-analysis system having a code genome database;

(f) program code for placing each partially-verified said individually-identifiable code fragment in a verification queue, wherein said each partially-verified individually-identifiable code fragment has not been completely verified;

(g) program code for performing additional verification on said each partially-verified individually-identifiable code fragment; and

(h) program code for transferring each completely-verified said individually-identifiable code fragment to said extractor queue.

10. The non-transitory computer-readable storage medium of claim 9 , the computer-readable code further comprising:

(i) program code for transferring said each partially-verified individually-identifiable code fragment to said extractor queue when said extractor queue is empty.

11. The non-transitory computer-readable storage medium of claim 9 , the computer-readable code further comprising:

(i) program code for transferring said each partially-verified individually-identifiable code fragment to said extractor queue when resources of said gene-analysis system are underutilized.

12. The non-transitory computer-readable storage medium of claim 9 , the computer-readable code further comprising:

(i) program code for, upon receiving gene information regarding said target binary file from said gene-analysis system during disassembly, determining whether to terminate said disassembling based on said gene information.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2026
From: COMERICA BANK
To: INTEZER LABS, LTD
Reel/Frame 074922/0520 →
SECURITY INTEREST Recorded Jul 13, 2021
From: INTEZER LABS, LTD.
To: COMERICA BANK
Reel/Frame 056833/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: TEVET, ITAI; HALEVI, ROY; ABRAHAMY, JONATHAN; EITAN, ARI; TUFIK, DAVID; ROSENBERG, JAY
To: INTEZER LABS, LTD.
Reel/Frame 051900/0216 →