{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,7]],"date-time":"2025-05-07T04:59:00Z","timestamp":1746593940757},"reference-count":42,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2015,3,7]],"date-time":"2015-03-07T00:00:00Z","timestamp":1425686400000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2016,6]]},"DOI":"10.1007\/s10664-015-9363-y","type":"journal-article","created":{"date-parts":[[2015,3,6]],"date-time":"2015-03-06T07:54:56Z","timestamp":1425628496000},"page":"778-810","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":10,"title":["Scalable data structure detection and classification for C\/C++ binaries"],"prefix":"10.1007","volume":"21","author":[{"given":"Istvan","family":"Haller","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Asia","family":"Slowinska","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Herbert","family":"Bos","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2015,3,7]]},"reference":[{"issue":"4","key":"9363_CR1","doi-asserted-by":"crossref","first-page":"1597","DOI":"10.1214\/09-AOAS263","volume":"3","author":"B Aydin","year":"2009","unstructured":"Aydin B, Pataki G, Wang H, Bullit E, Marron J (2009) A principal component analysis for trees. Ann Stat 3(4):1597\u20131615","journal-title":"Ann Stat"},{"key":"9363_CR2","doi-asserted-by":"crossref","unstructured":"Balakrishnan G, Gruian R, Reps T, Teitelbaum T (2005) Codesurfer\/x86\u2014a platform for analyzing x86 executuables. In: Lecture notes in computer science, pp 250\u2013254. Springer","DOI":"10.1007\/978-3-540-31985-6_19"},{"key":"9363_CR3","doi-asserted-by":"crossref","unstructured":"Balakrishnan G, Reps T (2004) Analyzing memory accesses in x86 binary executables. In: Proceedings of the conference on compiler construction, CC\u201904","DOI":"10.1007\/978-3-540-24723-4_2"},{"key":"9363_CR4","doi-asserted-by":"crossref","unstructured":"Bogudlov I, Lev-Ami T, Reps T, Sagiv M (2007) Revamping TVLA: making parametric shape analysis competitive. In: Proceedings of the 19th international conference on computer aided verification","DOI":"10.1007\/978-3-540-73368-3_25"},{"key":"9363_CR5","unstructured":"Cadar C, Dunbar D, Engler D (2008) KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In: Proceedings of the 8th USENIX symposium on operating systems design and implementation, OSDI\u201908"},{"key":"9363_CR6","doi-asserted-by":"crossref","unstructured":"Chen X, Slowinska A, Bos H (2013) Detecting custom memory allocators in C binaries. Tech. rep., Vrije Universiteit Amstetrdam","DOI":"10.1109\/WCRE.2013.6671277"},{"key":"9363_CR7","doi-asserted-by":"crossref","unstructured":"Chipounov V, Kuznetsov V, Candea G (2011) S2E: A platform for in vivo multi-path analysis of software systems. In: Proceedings of the 16th international conference on architectural support for programming languages and operating systems, ASPLOS\u201911","DOI":"10.1145\/1950365.1950396"},{"key":"9363_CR8","unstructured":"Cormen TH, Stein C, Rivest RL, Leiserson CE (2001) Introduction to Algorithms"},{"key":"9363_CR9","unstructured":"Cozzie A, Stratton F, Xue H, King ST (2008) Digging for data structures. In: Proceedings of USENIX symposium on operating systems design and implementation, OSDI\u201908"},{"key":"9363_CR10","unstructured":"Cui W, Peinado M, Xu Z, Chan E (2012) Tracking rootkit footprints with a practical memory analysis system. In: Proceedings of the 21st USENIX conference on security symposium, SSYM\u201912"},{"key":"9363_CR11","first-page":"191","volume-title":"Verification, model checking, and abstract interpretation. Lecture notes in computer science, vol 2937","author":"D Engler","year":"2004","unstructured":"Engler D, Musuvathi M (2004) Static analysis versus software model checking for bug finding. In: Steffen B, Levi G (eds) Verification, model checking, and abstract interpretation. Lecture notes in computer science, vol 2937. Springer, Berlin, pp 191\u2013210. doi: 10.1007\/978-3-540-24622-0_17"},{"issue":"1\u20133","key":"9363_CR13","doi-asserted-by":"crossref","first-page":"35","DOI":"10.1016\/j.scico.2007.01.015","volume":"69","author":"MD Ernst","year":"2007","unstructured":"Ernst MD, Perkins JH, Guo PJ, McCamant S, Pacheco C, Tschantz MS, Xiao C (2007) The daikon system for dynamic detection of likely invariants. Sci Comput Program 69(1\u20133):35\u201345. doi: 10.1016\/j.scico.2007.01.015","journal-title":"Sci Comput Program"},{"key":"9363_CR14","doi-asserted-by":"crossref","unstructured":"Ghiya R, Hendren LJ (1996) Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL\u201996. doi: 10.1145\/237721.237724","DOI":"10.1145\/237721.237724"},{"key":"9363_CR15","unstructured":"Godefroid P, Levin MY, Molnar DA (2008) Automated whitebox fuzz testing. In: Proceedings of the 15th annual network and distributed system security symposium, NDSS\u201908"},{"key":"9363_CR16","doi-asserted-by":"crossref","unstructured":"Guo PJ, Perkins JH, McCamant S, Ernst MD (2006) Dynamic inference of abstract types. In: Proceedings of the 2006 international symposium on software testing and analysis, ISSTA\u201906. doi: 10.1145\/1146238.1146268","DOI":"10.1145\/1146238.1146268"},{"key":"9363_CR18","volume-title":"Mempick: High-level data structure detection in c\/c++ binaries. In: Proceedings of the 20th working conference on reverse engineering (WCRE)","author":"I Haller","year":"2013","unstructured":"Haller I, Slowinska A, Bos H (2013) Mempick: High-level data structure detection in c\/c++ binaries. In: Proceedings of the 20th working conference on reverse engineering (WCRE). Koblenz, Germany"},{"key":"9363_CR19","unstructured":"Hotelling H (1933) Analysis of a complex of statistical variables into principal components. J Educ Psych 24"},{"key":"9363_CR20","unstructured":"Intel (2011) Pin - A dynamic binary instrumentation tool. http:\/\/www.pintool.org\/"},{"key":"9363_CR21","volume-title":"Why don't software developers use static analysis tools to find bugs? In: Proceedings of the 2013 international conference on software engineering, ICSE \u201913, pp 672\u2013681","author":"B Johnson","year":"2013","unstructured":"Johnson B, Song Y, Murphy-Hill E, Bowdidge R (2013) Why don't software developers use static analysis tools to find bugs? In: Proceedings of the 2013 international conference on software engineering, ICSE \u201913, pp 672\u2013681. IEEE Press, Piscataway. http:\/\/dl.acm.org\/citation.cfm?id=2486788.2486877"},{"key":"9363_CR22","doi-asserted-by":"crossref","unstructured":"Jung C, Clark N (2009) DDT: design and evaluation of a dynamic program analysis for optimizing data structure usage. In: Proceedings of the 42nd annual IEEE\/ACM international symposium on microarchitecture, MICRO-42","DOI":"10.1145\/1669112.1669122"},{"key":"9363_CR23","volume-title":"Brainy: Effective selection of data structures. In: Proceedings of the 32Nd ACM SIGPLAN conference on programming language design and implementation, PLDI \u201911, pp 86\u201397","author":"C Jung","year":"2011","unstructured":"Jung C, Rus S, Railing BP, Clark N, Pande S (2011) Brainy: Effective selection of data structures. In: Proceedings of the 32Nd ACM SIGPLAN conference on programming language design and implementation, PLDI \u201911, pp 86\u201397. ACM, New York. doi: 10.1145\/1993498.1993509"},{"key":"9363_CR24","doi-asserted-by":"crossref","unstructured":"Kuncak V, Lam P, Zee K, Rinard M (2006) Modular pluggable analyses for data structure consistency. IEEE Trans Softw Eng 32(12). doi: 10.1109\/TSE.2006.125","DOI":"10.1109\/TSE.2006.125"},{"key":"9363_CR25","unstructured":"Lee J, Avgerinos T, Brumley D (2011) TIE: Principled reverse engineering of types in binary programs. In: Proceedings of the 18th annual network & distributed system security symposium, NDSS\u201911"},{"key":"9363_CR26","unstructured":"Lin Z, Rhee J, Zhang X, Xu D, Jiang X (2011) SigGraph: Brute force scanning of kernel data structure instances using graph-based signatures. In: Proceedings of 18th annual network & distributed system security symposium, NDSS\u201911"},{"key":"9363_CR27","unstructured":"Lin Z, Zhang X, Xu D (2010) Automatic reverse engineering of data structures from binary execution. In: Proceedings of the 17th annual network and distributed system security symposium, NDSS\u201910"},{"key":"9363_CR28","first-page":"716","volume-title":"Make test-zesti: A symbolic execution solution for improving regression testing. In: Proceedings of the 34th international conference on software engineering, ICSE \u201912","author":"PD Marinescu","year":"2012","unstructured":"Marinescu PD, Cadar C (2012) Make test-zesti: A symbolic execution solution for improving regression testing. In: Proceedings of the 34th international conference on software engineering, ICSE \u201912. IEEE Press, Piscataway, pp 716\u2013726. http:\/\/dl.acm.org\/citation.cfm?id=2337223.2337308"},{"key":"9363_CR29","volume-title":"Katch: High-coverage testing of software patches. In: Proceedings of the 2013 9th joint meeting on foundations of software engineering, ESEC\/FSE 2013, pp. 235\u2013245","author":"PD Marinescu","year":"2013","unstructured":"Marinescu PD, Cadar C (2013) Katch: High-coverage testing of software patches. In: Proceedings of the 2013 9th joint meeting on foundations of software engineering, ESEC\/FSE 2013, pp. 235\u2013245. ACM, New York. doi: 10.1145\/2491411.2491438"},{"key":"9363_CR30","doi-asserted-by":"crossref","unstructured":"Polishchuk M, Liblit B, Schulze CW (2007) Dynamic heap type inference for program understanding and debugging. In: Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL\u201907. doi: 10.1145\/1190215.1190225","DOI":"10.1145\/1190215.1190225"},{"key":"9363_CR31","doi-asserted-by":"crossref","unstructured":"Ramalingam G, Field J, Tip F (1999) Aggregate structure identification and its application to program analysis. In: Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on principles of programming languages. doi: 10.1145\/292540.292553","DOI":"10.1145\/292540.292553"},{"key":"9363_CR32","doi-asserted-by":"crossref","unstructured":"Raman E, August DI (2005) Recursive data structure profiling. In: Proceedings of the 2005 workshop on memory system performance, MSP\u201905. doi: 10.1145\/1111583.1111585","DOI":"10.1145\/1111583.1111585"},{"key":"9363_CR33","doi-asserted-by":"crossref","unstructured":"Reps T, Balakrishnan G (2008) Improved memory-access analysis for x86 executables. In: Proceedings of the joint european conferences on theory and practice of software 17th international conference on compiler construction, CC\u201908\/ETAPS\u201908","DOI":"10.1007\/978-3-540-78791-4_2"},{"key":"9363_CR34","doi-asserted-by":"crossref","unstructured":"Rossow C, Andriesse D, Werner T, Stone-Gross B, Plohmann D, Dietrich CJ, Bos H (2013) P2PWNED: Modeling and evaluating the resilience of peer-to-peer botnets. In: Proceedings of the 34th IEEE symposium on security and privacy (S&P). San Francisco, CA","DOI":"10.1109\/SP.2013.17"},{"key":"9363_CR35","doi-asserted-by":"crossref","unstructured":"Sagiv M, Reps T, Wilhelm R (1999) Parametric shape analysis via 3-valued logic. In: Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL\u201999. doi: 10.1145\/292540.292552","DOI":"10.1145\/292540.292552"},{"key":"9363_CR36","unstructured":"Slowinska A, Stancescu T, Bos H (2011) Howard: a dynamic excavator for reverse engineering data structures. In: Proceedings of the 18th annual network & distributed system security symposium, NDSS\u201911"},{"key":"9363_CR37","unstructured":"Slowinska A, Stancescu T, Bos H (2012) Body armor for binaries: Preventing buffer overflows without recompilation. In: Proceedings of USENIX annual Technical conference, USENIX ATC\u201912"},{"key":"9363_CR38","unstructured":"Szeredi M File system in user space. http:\/\/fuse.sourceforge.net"},{"issue":"5","key":"9363_CR17","doi-asserted-by":"crossref","first-page":"1849","DOI":"10.1214\/009053607000000217","volume":"35","author":"H Wang","year":"2007","unstructured":"Wang H, Marron JS (2007) Object oriented data analysis: Sets of trees. Ann Stat 35(5):1849\u20131873","journal-title":"Ann Stat"},{"key":"9363_CR39","doi-asserted-by":"crossref","unstructured":"White DH, L\u00fcttgen G (2013) Identifying dynamic data structures by learning evolving patterns in memory. In: Proceedings of the 19th international conference on tools and algorithms for the construction and analysis of systems, TACAS\u201913. doi: 10.1007\/978-3-642-36742-7","DOI":"10.1007\/978-3-642-36742-7"},{"key":"9363_CR40","volume-title":"Data structures and C programs, 2nd Ed. (Addison-Wesley series in computer science)","author":"CJV Wyk","year":"1991","unstructured":"Wyk CJV (1991) Data structures and C programs, 2nd Ed. (Addison-Wesley series in computer science), 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston","edition":"2nd edn"},{"key":"9363_CR41","doi-asserted-by":"crossref","unstructured":"Yang H, Lee O, Berdine J, Calcagno C, Cook B, Distefano D, O\u2019Hearn PW (2008) Scalable shape analysis for systems code. In: Gupta A, Malik S (eds) CAV, Lecture notes in computer science, vol 5123, pp 385\u2013398. Springer. http:\/\/dblp.uni-trier.de\/db\/conf\/cav\/cav2008.html#YangLBCCDO08","DOI":"10.1007\/978-3-540-70545-1_36"},{"key":"9363_CR42","doi-asserted-by":"crossref","unstructured":"Zee K, Kuncak V, Rinard M (2008) Full functional verification of linked data structures. In: Proceedings of the 2008 ACM SIGPLAN conference on programming language design and implementation, PLDI\u201908. doi: 10.1145\/1379022.1375624","DOI":"10.1145\/1379022.1375624"},{"key":"9363_CR43","volume-title":"Control flow integrity for cots binaries. In: Proceedings of the 22nd USENIX Conference on Security, SEC\u201913, pp 337\u2013352","author":"M Zhang","year":"2013","unstructured":"Zhang M, Sekar R (2013) Control flow integrity for cots binaries. In: Proceedings of the 22nd USENIX Conference on Security, SEC\u201913, pp 337\u2013352. USENIX Association, Berkeley. http:\/\/dl.acm.org\/citation.cfm?id=2534766.2534796"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-015-9363-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10664-015-9363-y\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-015-9363-y","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,8,21]],"date-time":"2019-08-21T18:26:38Z","timestamp":1566411998000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10664-015-9363-y"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,3,7]]},"references-count":42,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2016,6]]}},"alternative-id":["9363"],"URL":"https:\/\/doi.org\/10.1007\/s10664-015-9363-y","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2015,3,7]]}}}