{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T09:58:39Z","timestamp":1740131919202,"version":"3.37.3"},"reference-count":38,"publisher":"Institute of Electrical and Electronics Engineers (IEEE)","issue":"8","license":[{"start":{"date-parts":[[2018,8,1]],"date-time":"2018-08-01T00:00:00Z","timestamp":1533081600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/ieeexplore.ieee.org\/Xplorehelp\/downloads\/license-information\/IEEE.html"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["IEEE Trans. Comput."],"published-print":{"date-parts":[[2018,8,1]]},"DOI":"10.1109\/tc.2018.2807818","type":"journal-article","created":{"date-parts":[[2018,2,20]],"date-time":"2018-02-20T19:24:10Z","timestamp":1519154650000},"page":"1092-1104","source":"Crossref","is-referenced-by-count":1,"title":["ARMOR: A Recompilation and Instrumentation-Free Monitoring Architecture for Detecting Memory Exploits"],"prefix":"10.1109","volume":"67","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9439-8598","authenticated-orcid":false,"given":"Alex","family":"Grieve","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3296-5603","authenticated-orcid":false,"given":"Michael","family":"Davies","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8220-7552","authenticated-orcid":false,"given":"Phillip H.","family":"Jones","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0566-5744","authenticated-orcid":false,"given":"Joseph","family":"Zambreno","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"263","reference":[{"key":"ref38","first-page":"291","article-title":"SafeMem: Exploiting\n ECC-memory for detecting memory leaks and memory corruption during production runs","author":"qin","year":"2005","journal-title":"Proc Int Symp High-Perform Comput Archit"},{"key":"ref33","doi-asserted-by":"publisher","DOI":"10.1145\/986537.986601"},{"journal-title":"Cortex-A9 Technical Reference Manual","year":"2016","key":"ref32"},{"journal-title":"CAT 6500 and 7600 Series Routers and Switches TCAM Allocation Adjustment Procedures","year":"2014","key":"ref31"},{"key":"ref30","doi-asserted-by":"publisher","DOI":"10.1109\/JSSC.2005.864128"},{"key":"ref37","doi-asserted-by":"publisher","DOI":"10.1145\/2717764.2717783"},{"article-title":"The Berkeley out-of-order machine (BOOM): An industry-competitive, synthesizable, parameterized RISC-V\n processor","year":"2015","author":"celio","key":"ref36"},{"article-title":"The rocket chip generator","year":"2016","author":"asanovi?","key":"ref35"},{"key":"ref34","doi-asserted-by":"publisher","DOI":"10.1145\/1250662.1250713"},{"key":"ref10","first-page":"46","article-title":"MemorySanitizer: Fast detector of uninitialized memory use in C++","author":"stepanov","year":"2015","journal-title":"Proc IEEE\/ACM Int Symp Code Generation Optim"},{"key":"ref11","doi-asserted-by":"crossref","first-page":"307","DOI":"10.1145\/949952.940113","article-title":"Protecting C programs from attacks via invalid pointer dereferences","author":"yong","year":"2003","journal-title":"Proc of SIGSOFT Foundations of Software Engineering"},{"key":"ref12","first-page":"17","article-title":"Using valgrind to detect undefined value errors with bit-precision","author":"seward","year":"2005","journal-title":"Proc USENIX Annu Tech Conf"},{"key":"ref13","first-page":"275","article-title":"Cyclone: A safe dialect of C","author":"jim","year":"2002","journal-title":"Proc USENIX Annu Tech Conf"},{"key":"ref14","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2007.346205"},{"key":"ref15","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2010.215"},{"key":"ref16","doi-asserted-by":"crossref","first-page":"189","DOI":"10.1145\/2366231.2337181","article-title":"Watchdog: Hardware for safe and secure manual memory management and full memory safety","author":"nagarakatte","year":"2012","journal-title":"Proc Int Symp Comput Archit"},{"key":"ref17","doi-asserted-by":"publisher","DOI":"10.1145\/2508859.2516713"},{"key":"ref18","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2014.79"},{"key":"ref19","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2012.6263925"},{"key":"ref28","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/1186736.1186737","article-title":"SPEC CPU2006 benchmark descriptions","volume":"34","author":"henning","year":"2006","journal-title":"SIGARCH Comput Archit News"},{"key":"ref4","doi-asserted-by":"publisher","DOI":"10.1145\/1866307.1866415"},{"key":"ref27","first-page":"173","article-title":"FlexiTaint: A programmable accelerator\n for dynamic taint propagation","author":"venkataramani","year":"2008","journal-title":"Proc Int Symp High-Perform Comput Archit"},{"article-title":"Intel memory protection\n extensions enabling guide","year":"2016","author":"ramakesavan","key":"ref3"},{"key":"ref6","first-page":"552","article-title":"The geometry of innocent flesh on the bone: Return-into-libc\n without function calls (on the x86)","author":"shacham","year":"2007","journal-title":"Proc ACM Conf Comput Commun Security"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1145\/1723112.1723128"},{"key":"ref5","doi-asserted-by":"publisher","DOI":"10.1145\/1030083.1030124"},{"key":"ref8","doi-asserted-by":"publisher","DOI":"10.1145\/2695664.2695906"},{"key":"ref7","doi-asserted-by":"publisher","DOI":"10.1145\/2133375.2133377"},{"key":"ref2","first-page":"63","article-title":"StackGuard: Automatic adaptive detection and prevention of buffer-overflow attacks","author":"cowan","year":"1998","journal-title":"Proc Usenix Security Symp"},{"key":"ref9","first-page":"309","article-title":"AddressSanitizer: A fast address sanity\n checker","author":"serebryany","year":"2012","journal-title":"Proc USENIX Annu Tech Conf"},{"article-title":"Mitigating buffer overflows by operating system randomization","year":"2002","author":"chew","key":"ref1"},{"key":"ref20","doi-asserted-by":"publisher","DOI":"10.1145\/2694344.2694383"},{"key":"ref22","first-page":"845","article-title":"BYTEWEIGHT: Learning to recognize functions in binary code","author":"bao","year":"2014","journal-title":"Proc Usenix Security Symp"},{"key":"ref21","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2008.4771782"},{"year":"0","key":"ref24","article-title":"Juliet test suite v1.2 for C\/C++."},{"key":"ref23","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065034"},{"year":"2015","key":"ref26"},{"year":"2014","key":"ref25"}],"container-title":["IEEE Transactions on Computers"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx7\/12\/8408570\/08295231.pdf?arnumber=8295231","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,1,26]],"date-time":"2022-01-26T13:13:10Z","timestamp":1643202790000},"score":1,"resource":{"primary":{"URL":"https:\/\/ieeexplore.ieee.org\/document\/8295231\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,8,1]]},"references-count":38,"journal-issue":{"issue":"8"},"URL":"https:\/\/doi.org\/10.1109\/tc.2018.2807818","relation":{},"ISSN":["0018-9340","1557-9956","2326-3814"],"issn-type":[{"type":"print","value":"0018-9340"},{"type":"electronic","value":"1557-9956"},{"type":"electronic","value":"2326-3814"}],"subject":[],"published":{"date-parts":[[2018,8,1]]}}}