IP Library Granted Patent US 12,639,438
Granted Patent B2
US 12,639,438 · App. 18/733,034 · Granted May 26, 2026

Just in time memory analysis for malware detection

Inventors: Soumyadipta Das (Milpitas, CA); Alex Dubrovsky (Milpitas, CA); Igor Korsunsky (Milpitas, CA)
Assignee: SONICWALL INC.
G06F21/566G06F2221/034G06F2221/2125
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,639,438
App. No.
18/733,034
Granted
May 26, 2026
Kind
B2
Abstract

Methods and apparatus consistent with the present disclosure may use instrumentation code that remains transparent to an application program that the instrumentation code has been injected into. In certain instances, data sets that include executable code may be received via packetized communications or be received via other means, such as, receiving a file from a data store. The present technique allows a processor executing instrumentation code to monitor actions performed by the program code included in a received data set. Malware may be detected by scanning suspect program code with a malware scanner, malware may be detected by identifying suspicious actions performed by a set of program code, or malware may be detected by a combination of such techniques.

Claims (59)

1 . A method for analyzing program code at a computer device, the method comprising:

analyzing behaviors of program code as the program code is being executed in real time by inserting one or more instructions into the program code as it is executed by a processor and then receiving instruction information associated with the one or more inserted instructions;

classifying context information associated with the program code based on one or more of the behaviors of the program code being executed in real time;

identifying one or more states associated with the context information based on the classification, wherein the one or more states associates with allocating memory that includes allocating a portion of the memory and includes invocation of and operating system program function,

wherein the data written to the memory is written to a newly allocated memory portion;

determining that the identified states are related to malware, wherein the states are further associated with a corrective action for the determined malware, and wherein the determination is based, at least in part, on reviewing the received instruction information to determine if it corresponds to a particular behavior consistent with malware; and

identified states are related to malware.

2 . The method of claim 1 , wherein the context information includes data being passed from instrumentation code injected into the program code and executed as part of the program code.

3 . The method of claim 1 , wherein the context information includes content related to one or more of:

a computer register,

a parameter associated with a process performed based on execution of the program code,

information that relates to a state of memory,

information relating to an allocation of memory, or

an initiation or completion of an operating system operation.

4 . The method of claim 1 , further comprising identifying that the identified states associated with malware include one or more actions to collect information from a first computing device.

5 . The method of claim 1 , further comprising identifying that the identified states associated with malware include preparing collected information to be sent to a second computing device.

6 . The method of claim 1 , further comprising identifying that the states associated with malware include initiating a write to a system registry.

7 . The method of claim 1 , further comprising identifying that the states associated with malware include initiating a write to a system area on a disk drive.

8 . The method of claim 1 , wherein the corrective actions include one or more of:

sequestering a data set associated with the program code;

saving the data set for future analysis;

sending the data set to a second computing device for analysis; or

deleting the data set from one or more locations in a memory.

9 . A non-transitory computer-readable storage medium having embodied thereon a program executable by a processor for implementing a method for analyzing program code, the method comprising:

analyzing behaviors of program code as the program code is being executed in real time by inserting one or more instructions into the program code as it is executed by a processor and then receiving instruction information associated with the one or more inserted instructions;

classifying context information associated with the program code based on one or more of the behaviors of the program code being executed in real time;

identifying one or more states associated with the context information based on the classification, wherein the one or more states associates with allocating memory that includes allocating a portion of the memory and includes invocation of and operating system program function,

wherein the data written to the memory is written to a newly allocated memory portion;

determining that the identified states are related to malware, wherein the states are further associated with a corrective action for the determined malware, and wherein the determination is based, at least in part, on reviewing the received instruction information to determine if it corresponds to a particular behavior consistent with malware; and

performing the corrective action based, at least in part, on the determination that the identified states are related to malware.

10 . The non-transitory computer-readable storage medium of claim 9 , wherein the context information includes data being passed from instrumentation code injected into the program code and executed as part of the program code.

11 . The non-transitory computer-readable storage medium of claim 9 , wherein the context information includes content related to one or more of:

a computer register,

a parameter associated with a process performed based on execution of the program code,

information that relates to a state of memory,

information relating to an allocation of memory, or

an initiation or completion of an operating system operation.

12 . The non-transitory computer-readable storage medium of claim 9 , further comprising identifying that the identified states associated with malware include one or more actions to collect information from a first computing device.

13 . The non-transitory computer-readable storage medium of claim 9 , further comprising identifying that the identified states associated with malware include preparing collected information to be sent to a second computing device.

14 . The non-transitory computer-readable storage medium of claim 9 , further comprising identifying that the states associated with malware include initiating a write to a system registry.

15 . The non-transitory computer-readable storage medium of claim 9 , further comprising identifying that the states associated with malware include initiating a write to a system area on a disk drive.

16 . An apparatus for analyzing program code, the apparatus comprising:

a memory; and

a processor that executes instructions out of the memory to:

analyze behaviors of program code as the program code is being executed in real time by inserting one or more instructions into the program code as it is executed by a processor and then receiving instruction information associated with the one or more inserted instructions;

classify context information associated with the program code based on one or more of the behaviors of the program code being executed in real time;

identify one or more states associated with the context information based on the classification, wherein the one or more states associates with allocating memory that includes allocating a portion of the memory and includes invocation of and operating system program function,

wherein the data written to the memory is written to a newly allocated memory portion;

determine that the identified states are related to malware, wherein the states are further associated with a corrective action for the determined malware, and wherein the determination is based, at least in part, on reviewing the received instruction information to determine if it corresponds to a particular behavior consistent with malware; and

perform the corrective action based, at least in part, on the determination that the identified states are related to malware.

17 . The apparatus of claim 16 , wherein the context information includes data being passed from instrumentation code injected into the program code and executed as part of the program code.

18 . The apparatus of claim 16 , wherein the context information includes content related to one or more of:

a computer register,

a parameter associated with a process performed based on execution of the program code,

information that relates to a state of memory,

information relating to an allocation of memory, or

an initiation or completion of an operating system operation.

19 . The apparatus of claim 16 , wherein the processor executes further instructions to identify that the states associated with malware include one or more actions to collect information from a first computing device.

20 . The apparatus of claim 16 , wherein the processor executes further instructions to identify that the states associated with malware include preparing the information to be sent to a second computing device.

Assignments (2)
FIRST LIEN IP SUPPLEMENT Recorded Jun 30, 2025
From: SONICWALL INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 071758/0159 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2024
From: DAS, SOUMYADIPTA; DUBROVSKY, ALEX; KORSUNSKY, IGOR
To: SONICWALL INC.
Reel/Frame 068134/0041 →
Continuity (3)
Continuation 17505327 · Oct 19, 2021
Continuation 15783793 · Oct 13, 2017
Related Publication 20240370561A1 · Nov 7, 2024
References Cited (161)
US 6154844A · Touboul et al. · 2000 [cited by applicant]
US 6804780B1 · Touboul · 2004 [cited by applicant]
US 6965968B1 · Touboul · 2005 [cited by applicant]
US 7058822B2 · Edery et al. · 2006 [cited by applicant]
US 7260845B2 · Kedma et al. · 2007 [cited by applicant]
US 7523502B1 · Kennedy et al. · 2009 [cited by applicant]
US 7613926B2 · Edery et al. · 2009 [cited by applicant]
US 7647633B2 · Edery et al. · 2010 [cited by applicant]
US 7934103B2 · Kidron · 2011 [cited by applicant]
US 7962959B1 · Batenin · 2011 [cited by applicant]
US 7971255B1 · Kc et al. · 2011 [cited by applicant]
US 7975305B2 · Rubin et al. · 2011 [cited by applicant]
US 8104089B1 · Guo et al. · 2012 [cited by applicant]
US 8141154B2 · Gruzman et al. · 2012 [cited by applicant]
US 8146151B2 · Hulten et al. · 2012 [cited by applicant]
US 8225408B2 · Rubin et al. · 2012 [cited by applicant]
US 8276202B1 · Dubrovsky et al. · 2012 [cited by applicant]
US 8307432B1 · Feng · 2012 [cited by applicant]
US 8327137B1 · Erb · 2012 [cited by applicant]
US 8413235B1 · Chen et al. · 2013 [cited by applicant]
US 8539578B1 · Zhou et al. · 2013 [cited by applicant]
US 8595829B1 · Kane · 2013 [cited by applicant]
US 8645923B1 · Satish et al. · 2014 [cited by applicant]
US 8677494B2 · Edery et al. · 2014 [cited by applicant]
US 8832836B2 · Thomas et al. · 2014 [cited by applicant]
US 8893278B1 · Chechik · 2014 [cited by applicant]
US 8910238B2 · Lukacs et al. · 2014 [cited by applicant]
US 9141794B1 · Soubramanien et al. · 2015 [cited by applicant]
US 9202048B2 · Sallam · 2015 [cited by applicant]
US 9336386B1 · Qu · 2016 [cited by applicant]
US 9355247B1 · Thioux et al. · 2016 [cited by applicant]
US 9411953B1 · Kane et al. · 2016 [cited by applicant]
US 9430646B1 · Mushtaq · 2016 [cited by applicant]
US 9516055B1 · Liu · 2016 [cited by applicant]
US 9836604B2 · Coronado et al. · 2017 [cited by applicant]
US 9882929B1 · Ettema · 2018 [cited by applicant]
US 9990497B2 · Spernow et al. · 2018 [cited by applicant]
US 10210329B1 · Malik et al. · 2019 [cited by applicant]
US 10515213B2 · Stepan et al. · 2019 [cited by applicant]
US 10685110B2 · Das · 2020 [cited by applicant]
US 10873589B2 · Cheetancheri · 2020 [cited by applicant]
US 10902122B2 · Das · 2021 [cited by applicant]
US 11151252B2 · Das · 2021 [cited by applicant]
US 11232201B2 · Das · 2022 [cited by applicant]
US 11550912B2 · Das · 2023 [cited by applicant]
US 11558405B2 · Cheetancheri · 2023 [cited by applicant]
US 11797677B2 · Dubrovsky et al. · 2023 [cited by applicant]
US 12001554B2 · Das et al. · 2024 [cited by applicant]
US 12058154B2 · Cheetancheri et al. · 2024 [cited by applicant]
US 12079340B2 · Dubrovsky et al. · 2024 [cited by applicant]
US 12130919B2 · Das · 2024 [cited by applicant]
US 20020009079A1 · Jungck et al. · 2002 [cited by applicant]
US 20030033542A1 · Goseva-Popstojanova et al. · 2003 [cited by applicant]
US 20030140248A1 · Izatt · 2003 [cited by applicant]
US 20060155865A1 · Brandt · 2006 [cited by applicant]
US 20060224724A1 · Marinescu et al. · 2006 [cited by applicant]
US 20070050848A1 · Khalid · 2007 [cited by applicant]
US 20070157203A1 · Lim · 2007 [cited by applicant]
US 20070256127A1 · Kraemer et al. · 2007 [cited by applicant]
US 20070261112A1 · Todd et al. · 2007 [cited by applicant]
US 20080016339A1 · Shukla · 2008 [cited by applicant]
US 20090070876A1 · Kim et al. · 2009 [cited by applicant]
US 20100024033A1 · Kang et al. · 2010 [cited by applicant]
US 20100185876A1 · Kim · 2010 [cited by applicant]
US 20100269171A1 · Raz et al. · 2010 [cited by applicant]
US 20110047620A1 · Mahaffey et al. · 2011 [cited by applicant]
US 20110078794A1 · Manni et al. · 2011 [cited by applicant]
US 20110277033A1 · Ramchetty et al. · 2011 [cited by applicant]
US 20110302656A1 · El-Moussa · 2011 [cited by applicant]
US 20120266243A1 · Turkulainen · 2012 [cited by applicant]
US 20130007884A1 · Franklin et al. · 2013 [cited by applicant]
US 20130080625A1 · Morinaga et al. · 2013 [cited by applicant]
US 20130091584A1 · Liebmann et al. · 2013 [cited by applicant]
US 20130276056A1 · Epstein · 2013 [cited by applicant]
US 20140115652A1 · Kapoor · 2014 [cited by applicant]
US 20140181976A1 · Snow et al. · 2014 [cited by applicant]
US 20140208426A1 · Natarajan et al. · 2014 [cited by applicant]
US 20140215621A1 · Xaypanya et al. · 2014 [cited by applicant]
US 20150089651A1 · Mirski et al. · 2015 [cited by applicant]
US 20150096018A1 · Mircescu · 2015 [cited by applicant]
US 20150096022A1 · Vincent · 2015 [cited by examiner]
US 20150227742A1 · Pereira · 2015 [cited by applicant]
US 20160098560A1 · Friedrichs et al. · 2016 [cited by applicant]
US 20160099963A1 · Mahaffey et al. · 2016 [cited by applicant]
US 20160110542A1 · Shanbhogue et al. · 2016 [cited by applicant]
US 20160357958A1 · Guidry · 2016 [cited by applicant]
US 20160378640A1 · Hron · 2016 [cited by examiner]
US 20170171240A1 · Arzi et al. · 2017 [cited by applicant]
US 20170289176A1 · Chen et al. · 2017 [cited by applicant]
US 20170329621A1 · Beckett · 2017 [cited by applicant]
US 20180018459A1 · Zhang · 2018 [cited by examiner]
US 20180052720A1 · Ionescu et al. · 2018 [cited by applicant]
US 20180288097A1 · Poornachandran · 2018 [cited by applicant]
US 20190052651A1 · Cheetancheri · 2019 [cited by applicant]
US 20190065740A1 · van Riel et al. · 2019 [cited by applicant]
US 20190087572A1 · Ellam · 2019 [cited by applicant]
US 20190114421A1 · Das et al. · 2019 [cited by applicant]
US 20190205537A1 · Das et al. · 2019 [cited by applicant]
US 20190236275A1 · Das et al. · 2019 [cited by applicant]
US 20190342313A1 · Watkiss et al. · 2019 [cited by applicant]
US 20190347413A1 · Dubrovsky et al. · 2019 [cited by applicant]
US 20190354680A1 · De Lima, Jr. et al. · 2019 [cited by applicant]
US 20200380127A1 · Das · 2020 [cited by applicant]
US 20210185062A1 · Cheetancheri · 2021 [cited by applicant]
US 20220035919A1 · Das · 2022 [cited by applicant]
US 20220222343A1 · Dubrovsky et al. · 2022 [cited by applicant]
US 20230020421A1 · Cheetancheri · 2023 [cited by applicant]
US 20230222214A1 · Das et al. · 2023 [cited by applicant]
US 20240012907A1 · Dubrovsky et al. · 2024 [cited by applicant]
US 20240427889A1 · Dubrovsky et al. · 2024 [cited by applicant]
US 20250030708A1 · Cheetancheri et al. · 2025 [cited by applicant]
US 20250124128A1 · Das et al. · 2025 [cited by applicant]
CA 3017941 · 2017 [cited by applicant]
EP 3665573 · 2020 [cited by applicant]
EP 3732571 · 2020 [cited by applicant]
EP 4177779 · 2023 [cited by applicant]
EP 242036424 · 2024 [cited by applicant]
EP 4474993 · 2024 [cited by applicant]
GB 2553033 · 2018 [cited by applicant]
WO WO2019032702 · 2019 [cited by applicant]
WO WO2019075388 · 2019 [cited by applicant]
WO WO2019133637 · 2019 [cited by applicant]
WO WO2019222261 · 2019 [cited by applicant]
Nethercote, Nicholas; “Dynamic binary analysis and instrumentation”, Technical Report, UCAM-CL-TR-606, ISSN 1476-2986, Nov. 2004. [cited by applicant]
Software Instrumentation, Wiley Encyclopedia of Computer Science and Engineering, edited by Benjamin Wah. Copyright 2008 John Wiley & Sons, Inc. [cited by applicant]
“XOR Cipher—Wikipedia”, Mar. 19, 2017, XP055758581, Retrieved from the Internet: URL:https://en.wikipedia.org/w/index.php?title=XOR_cipher&oldid=771112755 [retrieved on Dec. 9, 2020]. [cited by applicant]
European Application No. 18844091.1 Extended European Search Report dated Jan. 19, 2021. [cited by applicant]
European Application No. 22208411.3 Extended European Search Report dated Mar. 21, 2023. [cited by applicant]
European Application No. 18894474.8 Extended European Search Report dated Aug. 3, 2021. [cited by applicant]
PCT Application No. PCT/US2018/045814 International Preliminary Report on Patentability dated Feb. 11, 2020; 8 pages. [cited by applicant]
PCT Application No. PCT/US2018/045814 International Search Report and Written Opinion dated Oct. 19, 2018; 9 pages. [cited by applicant]
PCT Application No. PCT/US2018/055694 International Preliminary Report on Patentability dated Apr. 14, 2020; 7 pages. [cited by applicant]
PCT Application No. PCT/US2018/055694 International Search Report and Written Opinion dated Feb. 11, 2019; 8 pages. [cited by applicant]
PCT Application No. PCT/US2018/067541 International Preliminary Report on Patentability dated Jun. 30, 2020; 7 pages. [cited by applicant]
PCT Application No. PCT/US2018/067541 International Search Report and Written Opinion dated Mar. 27, 2019; 7 pages. [cited by applicant]
PCT Application No. PCT/US2019/032283 International Preliminary Report on Patentability dated Nov. 17, 2020; 9 pages. [cited by applicant]
PCT Application No. PCT/US2019/032283 International Search Report and Written Opinion dated Sep. 12, 2019; 10 pages. [cited by applicant]
Parsons, Christopher; Chapter One: Deep Packet Inspection and Its Predecessors, Feb. 6, 2012 : Version 3.5. [cited by applicant]
European Application No. 24203642.4, Extended European Search Report dated Dec. 11, 2024. [cited by applicant]
U.S. Appl. No. 15/783,793, Office Action dated Apr. 16, 2020. [cited by applicant]
European Application No. 22208411.3, First Examination Report dated Jun. 30, 2025. [cited by applicant]
U.S. Appl. No. 15/671,445 Office Action mailed May 14, 2020. [cited by applicant]
U.S. Appl. No. 15/671,445 Final Office Action mailed Aug. 15, 2019. [cited by applicant]
U.S. Appl. No. 15/671,445 Office Action mailed Feb. 25, 2019. [cited by applicant]
U.S. Appl. No. 17/949,796 Office Action mailed Sep. 14, 2023. [cited by applicant]
U.S. Appl. No. 15/783,793 Office Action mailed Feb. 22, 2021. [cited by applicant]
U.S. Appl. No. 15/783,793 Final Office Action mailed Oct. 14, 2020. [cited by applicant]
U.S. Appl. No. 15/783,793 Office Action mailed Apr. 16, 2019. [cited by applicant]
U.S. Appl. No. 15/783,793 Final Office Action mailed Dec. 11, 2019. [cited by applicant]
U.S. Appl. No. 15/783,793 Office Action mailed Jun. 28, 2019. [cited by applicant]
U.S. Appl. No. 17/505,327 Office Action mailed Aug. 16, 2023. [cited by applicant]
U.S. Appl. No. 15/858,785 Office Action mailed Sep. 6, 2019. [cited by applicant]
U.S. Appl. No. 16/903,060 Office Action mailed May 12, 2022. [cited by applicant]
U.S. Appl. No. 18/095,340 dated Jan. 5, 2024. [cited by applicant]
U.S. Appl. No. 15/890,192 Office Action mailed Jun. 11, 2020. [cited by applicant]
U.S. Appl. No. 15/890,192 Final Office Action mailed Jan. 21, 2020. [cited by applicant]
U.S. Appl. No. 15/890,192 Office Action mailed Oct. 4, 2019. [cited by applicant]
U.S. Appl. No. 16/055,958 Office Action mailed Mar. 25, 2021. [cited by applicant]
U.S. Appl. No. 16/055,958 Final Office Action mailed Oct. 9, 2020. [cited by applicant]
U.S. Appl. No. 16/055,958 Office Action mailed Apr. 21, 2020. [cited by applicant]
U.S. Appl. No. 17/584,152 Office Action mailed Feb. 16, 2023. [cited by applicant]