US 11,989,291 B2
System, method, and apparatus for software verification
Ryan S. Torvik, Indiatlantic, FL (US); and James A. Connor, Jr., Rockledge, FL (US)
Filed by Tulip Tree Technology, LLC, Indiatlantic, FL (US)
Filed on Jun. 29, 2021, as Appl. No. 17/361,354.
Prior Publication US 2022/0414218 A1, Dec. 29, 2022
Int. Cl. G06F 21/00 (2013.01); G06F 21/56 (2013.01); G06F 21/57 (2013.01)
CPC G06F 21/562 (2013.01) [G06F 21/577 (2013.01); G06F 2221/033 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A system for software verification, the system comprising:
a computer having a non-transitory memory;
software running from the non-transitory memory of the computer, the software reads machine-language code that is for running on a target computer system and converts the machine-language code into a descriptive intermediate language version of the machine-language code, the software lifts the machine-language code using a dictionary of a descriptive intermediate language;
the software runs the descriptive intermediate language version of the machine-language code in an emulation environment, the emulation environment provides abstractions of hardware subsystems of the target computer system that model device behaviors that are not captured in the descriptive intermediate language version of the machine-language code including input ports, output ports, interrupts, and/or direct memory access; and
after the software runs the descriptive intermediate language version of the machine-language code, the software analyzes a state of the emulation environment to uncover abnormalities in the descriptive intermediate language version of the machine-language code;
wherein the emulation environment further provides instruments for monitoring operation of the descriptive intermediate language version of the machine-language code as the descriptive intermediate language version of the machine-language code is run in the emulation environment and wherein one of the instruments comprises monitoring ranges of uninitialized memory for read operations.