What the patents claim

Claim 1 of US 10,331,888 detects memory corruption caused by an address-table attack. It captures a shadow copy of an address table in the control section of memory, checks the table against the shadow copy after a function call executes, checks that the executed call is present in the table, and declares corruption if the contents do not match or the call is missing. It then reports the detected security attack to a user.

Claim 1 of US 8,966,312 runs at least two invariant checks: it captures registers and part of the data segment before a function call, compares them after the call, and declares corruption on a mismatch.

Virsec accuses Windows 10 and 11, Windows Server, Windows 365, Azure Virtual Desktop, Surface devices and Microsoft Defender for Endpoint.

What we found

Microsoft’s US 7,739,516, “Import address table verification” (filed March 2004), loads a software module, works out the correct address of each critical imported function, and verifies the matching entries in the in-memory import address table. It then builds a verified copy of the table and re-verifies the live table against that copy periodically while the module runs, to stop detouring attacks.

Symantec’s US 7,552,479 (filed March 2005) makes a reference copy of a process’s import address table at start-up and hooks calls to critical imported functions. When such a call arrives, it checks the current table entries against the reference copy, treats a mismatch as an evasion attempt by shellcode, and generates a notification and takes protective action.

Neither reference appears in the 166 citations on the ’888 or the 231 across its family, and neither patent has faced a PTAB petition.

Why it matters to the defendant

The closest prior art is Microsoft’s own patent, so the inventors and the 2004 Windows engineering behind it are within the defendant’s reach. Between them, the two references cover the shadow copy, the comparison, declaring corruption and reporting the attack. The open points are timing and the second check. Claim 1 checks the table after the function call executes, whereas Microsoft re-verifies periodically and Symantec checks when the call arrives. Claim 1 also checks that the executed call is present in the table. The family expires in about February 2027, so the dispute is over past use.

The answer in Patent Mechanics

The search as it appears in the app, abridged.

app.patentmechanics.com
Virsec ’888 prior artUSGlobalExport
Find prior art for claim 1 of US 10,331,888 (shadow copy of an address table checked after function calls) before February 2006 that is not in the family’s citation record.
Read claim 1 · 6 elementsSearched US patents before 2006-02-09Checked family citations · 231 totalChecked finalists in the full text
Microsoft’s 2004 import-table verification patent and Symantec’s 2005 reference-copy patent cover the shadow copy and the comparison. Both are uncited.
ReferenceAssigneePriorityCitation recordFit
US 7,739,516Microsoft2004Not citedStrong
US 7,552,479Symantec2005Not citedStrong
Claim 1 vs. references
ElementClaim language (abridged)’516’479
1[a]Capture a shadow copy of the address table✓✓
1[b]Check the table against the copy after a function call??
1[c]If they match, check the executed call is in the table–?
1[d]Declare corruption on a mismatch✓✓
1[e]Detect and report a security attack?✓
Chart 1[b] and 1[c] first. Microsoft re-verifies periodically; Symantec checks at the moment a critical function is called.
Ask a follow-up…

References

ReferenceTitlePriorityCoversGaps
US 7,739,516Import address table verification (Microsoft)2004-03-05Verified copy of the in-memory import address table; periodic re-verification against it while the module runs; stops detouring attacksPeriodic rather than after each function call; no check that the executed call is in the table
US 7,552,479Detecting shellcode that modifies IAT entries (Symantec)2005-03-22Reference copy of the import address table; check when a critical imported function is called; notification and protective actionCheck occurs as the call arrives, not after it executes

Limits of this analysis

  • The address-table claims may be entitled only to the 2007 continuation-in-part date. We used the earlier 2006 provisional date, and both references predate it.
  • Our index holds the full claims and roughly the first 10,000 characters of each description. Passages were checked in that text, and a full claim chart against the complete documents is the next step.
  • Rootkit and anti-tamper tools from 2004 to 2006 that scanned for import-table hooks are likely further non-patent evidence and are outside this search.

“Not cited” means the reference does not appear in the examiner or applicant citations of the patent or its family in our index. This article is research, not legal advice, and makes no finding that any claim is invalid.

You can do what’s written in this article, and a lot more, today on Patent Mechanics. Try it with a 7-day free trial, no credit card required.