US 11,841,966 B2
Inhibiting memory disclosure attacks using destructive code reads
Adrian Tang, New York, NY (US); Salvatore Stolfo, New York, NY (US); and Lakshminarasimhan Sethumadhavan, New York, NY (US)
Assigned to The Trustees of Columbia University in the City of New York, New York, NY (US)
Filed by The Trustees of Columbia University in the City of New York, New York, NY (US)
Filed on Dec. 14, 2021, as Appl. No. 17/550,559.
Application 17/550,559 is a continuation of application No. 15/753,270, granted, now 11,227,056, previously published as PCT/US2016/045616, filed on Aug. 4, 2016.
Claims priority of provisional application 62/236,257, filed on Oct. 2, 2015.
Claims priority of provisional application 62/206,411, filed on Aug. 18, 2015.
Prior Publication US 2022/0284115 A1, Sep. 8, 2022
Int. Cl. H04L 9/40 (2022.01); G06F 21/62 (2013.01); G06F 21/52 (2013.01); G06F 9/455 (2018.01); G06F 12/1009 (2016.01); G06F 12/14 (2006.01); G06F 21/60 (2013.01)
CPC G06F 21/6218 (2013.01) [G06F 9/45558 (2013.01); G06F 12/1009 (2013.01); G06F 12/1475 (2013.01); G06F 21/52 (2013.01); G06F 21/604 (2013.01); G06F 2009/45583 (2013.01); G06F 2009/45595 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
determining, by a processor-based device, whether an operation to access a memory location containing executable code representative of a decodable instruction executable on the processor-based device comprises one of a plurality of general-purpose memory access operations that do not cause execution of the decodable instruction on the processor-based device; and
performing, by the processor-based device, the operation to access the memory location to read from the memory location the executable code representative of the decodable instruction; and
overwriting the memory location by the processor-based device, in response to a determination that the operation to access the memory location containing the executable code representative of a decodable instruction is a general-purpose memory access operation from the plurality of general purpose memory access operations, with a new content different than the executable code after reading the executable code from the memory location.