{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,6]],"date-time":"2026-10-06T22:32:42Z","timestamp":1791325962837,"version":"4.3.1"},"publisher-location":"Berlin, Heidelberg","reference-count":66,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783540787907","type":"print"},{"value":"9783540787914","type":"electronic"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"DOI":"10.1007\/978-3-540-78791-4_2","type":"book-chapter","created":{"date-parts":[[2008,4,1]],"date-time":"2008-04-01T23:13:15Z","timestamp":1207091595000},"page":"16-35","source":"Crossref","is-referenced-by-count":31,"title":["Improved Memory-Access Analysis for x86 Executables"],"prefix":"10.1007","author":[{"given":"Thomas","family":"Reps","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Gogul","family":"Balakrishnan","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","reference":[{"key":"2_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/11779148_1","volume-title":"Developments in Language Theory","author":"R. Alur","year":"2006","unstructured":"Alur, R., Madhusudan, P.: Adding Nesting Structure to Words. In: Ibarra, O.H., Dang, Z. (eds.) DLT 2006. LNCS, vol.\u00a04036, pp. 1\u201313. Springer, Heidelberg (2006)"},{"key":"2_CR2","unstructured":"Amme, W., Braun, P., Zehendner, E., Thomasset, F.: Data dependence analysis of assembly code. In: IJPP 2000 (2000)"},{"key":"2_CR3","unstructured":"Backes, W.: Programmanalyse des XRTL Zwischencodes. PhD thesis, Universitaet des Saarlandes (In German) (2004)"},{"key":"2_CR4","doi-asserted-by":"crossref","unstructured":"Balakrishnan, G.: WYSINWYX: What You See Is Not What You eXecute. PhD thesis, C.S.Dept., Univ.of Wisconsin, Madison, WI, TR-1603 (August 2007)","DOI":"10.1007\/978-3-540-69149-5_22"},{"key":"2_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"250","DOI":"10.1007\/978-3-540-31985-6_19","volume-title":"Compiler Construction","author":"G. Balakrishnan","year":"2005","unstructured":"Balakrishnan, G., Gruian, R., Reps, T., Teitelbaum, T.: CodeSurfer\/x86\u2014A Platform for Analyzing x86 Executables. In: Bodik, R. (ed.) CC 2005. LNCS, vol.\u00a03443, pp. 250\u2013254. Springer, Heidelberg (2005)"},{"key":"2_CR6","series-title":"Lecture Notes in Computer Science","first-page":"5","volume-title":"Compiler Construction","author":"T. Reps","year":"2004","unstructured":"Reps, T., Balakrishnan, G.: Analyzing Memory Accesses in x86 Executables. In: Duesterwald, E. (ed.) CC 2004. LNCS, vol.\u00a02985, pp. 5\u201323. Springer, Heidelberg (2004)"},{"key":"2_CR7","doi-asserted-by":"crossref","unstructured":"Reps, T., Balakrishnan, G.: Recency-Abstraction for Heap-Allocated Storage. In: Yi, K. (ed.) SAS 2006. LNCS, vol.\u00a04134, pp. 221\u2013239. Springer, Heidelberg (2006)","DOI":"10.1007\/11823230_15"},{"key":"2_CR8","doi-asserted-by":"crossref","unstructured":"Reps, T., Balakrishnan, G.: DIVINE: DIscovering Variables IN Executables. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol.\u00a04349, pp. 1\u201328. Springer, Heidelberg (2007)","DOI":"10.1007\/978-3-540-69738-1_1"},{"key":"2_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"124","DOI":"10.1007\/978-3-540-78800-3_10","volume-title":"TACAS 2008","author":"G. Balakrishnan","year":"2008","unstructured":"Balakrishnan, G., Reps, T.: Analyzing stripped device-driver executables. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol.\u00a04963, pp. 124\u2013140. Springer, Heidelberg (2008)"},{"key":"2_CR10","doi-asserted-by":"crossref","unstructured":"Balakrishnan, G., Reps, T., Melski, D., Teitelbaum, T.: WYSINWYX: What You See Is Not What You eXecute. In: VSTTE 2007 (2007)","DOI":"10.1007\/978-3-540-69149-5_22"},{"key":"2_CR11","doi-asserted-by":"crossref","unstructured":"Ball, T., Bounimova, E., Cook, B., Levin, V., Lichtenberg, J., McGarvey, C., Ondrusek, B., Rajamani, S.K., Ustuner, A.: Thorough static analysis of device drivers. In: EuroSys 2006 (2006)","DOI":"10.1145\/1217935.1217943"},{"key":"2_CR12","doi-asserted-by":"crossref","unstructured":"Ball, T., Rajamani, S.K.: The SLAM Toolkit. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol.\u00a02102, Springer, Heidelberg (2001)","DOI":"10.1007\/3-540-44585-4_25"},{"key":"2_CR13","unstructured":"Bergeron, J., Debbabi, M., Desharnais, J., Erhioui, M.M., Lavoie, Y., Tawbi, N.: Static detection of malicious code in executable programs. IJRE 2001 (2001)"},{"key":"2_CR14","doi-asserted-by":"crossref","unstructured":"Bergeron, J., Debbabi, M., Erhioui, M.M., Ktari, B.: Static analysis of binary code to isolate malicious behaviors. In: WETICE 1999 (1999)","DOI":"10.1109\/ENABL.1999.805197"},{"key":"2_CR15","doi-asserted-by":"crossref","unstructured":"Bourdoncle, F.: Efficient chaotic iteration strategies with widenings. In: Int. Conf. on Formal Methods in Prog. and their Appl. 1993 (1993)","DOI":"10.1007\/BFb0039704"},{"key":"2_CR16","unstructured":"Brumley, D., Newsome, J.: Alias analysis for assembly. CMU-CS-06-180, School of Comp.Sci., Carnegie Mellon University, Pittsburgh, PA (December 2006)"},{"key":"2_CR17","first-page":"775","volume":"30","author":"W.R. Bush","year":"2000","unstructured":"Bush, W.R., Pincus, J.D., Sielaff, D.J.: A static analyzer for finding dynamic programming errors. Software: Practice and Experience\u00a030, 775\u2013802 (2000)","journal-title":"Software: Practice and Experience"},{"key":"2_CR18","doi-asserted-by":"crossref","unstructured":"Chandra, S., Reps, T.: Physical type checking for C. In: PASTE 1999(1999)","DOI":"10.1145\/316158.316183"},{"key":"2_CR19","doi-asserted-by":"crossref","unstructured":"Chang, B.-Y., Harren, M., Necula, G.C.: Analysis of low-level code using cooperating decompilers. In: Yi, K. (ed.) SAS 2006. LNCS, vol.\u00a04134, pp. 318\u2013335. Springer, Heidelberg (2006)","DOI":"10.1007\/11823230_21"},{"key":"2_CR20","doi-asserted-by":"crossref","unstructured":"Chen, H., Wagner, D.: MOPS: An infrastructure for examining security properties of software. In: CCCS 2002 (2002)","DOI":"10.1145\/586139.586142"},{"key":"2_CR21","doi-asserted-by":"crossref","unstructured":"Christodorescu, M., Goh, W.-H., Kidd, N.: String analysis for x86 binaries. In: PASTE 2005 (2005)","DOI":"10.1145\/1108792.1108814"},{"key":"2_CR22","doi-asserted-by":"crossref","unstructured":"Cifuentes, C., Fraboulet, A.: Intraprocedural static slicing of binary executables. In: ICSM 1997 (1997)","DOI":"10.1109\/ICSM.1997.624245"},{"key":"2_CR23","unstructured":"CodeSonar, GrammaTech, Inc., http:\/\/www.grammatech.com\/products\/codesonar"},{"key":"2_CR24","unstructured":"CodeSurfer, GrammaTech, Inc., http:\/\/www.grammatech.com\/products\/codesurfer"},{"key":"2_CR25","doi-asserted-by":"crossref","unstructured":"Cooper, K.D., Kennedy, K.: Interprocedural side-effect analysis in linear time. In: PLDI 1988 (1988)","DOI":"10.1145\/53990.53996"},{"key":"2_CR26","doi-asserted-by":"crossref","unstructured":"Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Pasareanu, C.S., Robby, Zheng, H.: Bandera: Extracting finite-state models from Java source code. In: ICSE 2000 (2000)","DOI":"10.1145\/337180.337234"},{"key":"2_CR27","doi-asserted-by":"crossref","unstructured":"Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In: POPL 1977 (1977)","DOI":"10.1145\/512950.512973"},{"key":"2_CR28","doi-asserted-by":"crossref","unstructured":"Cova, M., Felmetsger, V., Banks, G., Vigna, G.: Static detection of vulnerabilities in x86 executables. In: ACSAC 2006 (2006)","DOI":"10.1109\/ACSAC.2006.50"},{"key":"2_CR29","unstructured":"Coverity Prevent, http:\/\/www.coverity.com\/products\/prevent_analysis_engine.html"},{"key":"2_CR30","doi-asserted-by":"crossref","unstructured":"Das, M., Lerner, S., Seigle, M.: ESP: Path-sensitive program verification in polynomial time. In: PLDI 2002 (2002)","DOI":"10.1145\/512529.512538"},{"key":"2_CR31","unstructured":"De Sutter, B., De Bus, B., De Bosschere, K., Keyngnaert, P., Demoen, B.: On the static analysis of indirect control transfers in binaries. In: PDPTA 2000 (2000)"},{"key":"2_CR32","unstructured":"Debray, S.K., Linn, C., Andrews, G.R., Schwarz, B.: Stack analysis of x86 executables (2004), www.cs.arizona.edu\/~debray\/Publications\/stack-analysis.pdf"},{"key":"2_CR33","doi-asserted-by":"crossref","unstructured":"Debray, S.K., Muth, R., Weippert, M.: Alias analysis of executable code. In: POPL 1998 (1998)","DOI":"10.1145\/268946.268948"},{"key":"2_CR34","unstructured":"Van Emmerik, M.J.: Static Single Assignment for Decompilation. PhD thesis, School of Inf.Tech.and Elec.Eng., Univ.of Queensland, Brisbane, AU (May 2007)"},{"key":"2_CR35","doi-asserted-by":"crossref","unstructured":"Engler, D.R., Chelf, B., Chou, A., Hallem, S.: Checking system rules using system-specific, programmer-written compiler extensions. In: OSDI 2000 (2000)","DOI":"10.21236\/ADA419626"},{"key":"2_CR36","doi-asserted-by":"crossref","unstructured":"Gopan, D., Reps, T.: Low-Level Library Analysis and Summarization. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol.\u00a04590, pp. 68\u201381. Springer, Heidelberg (2007)","DOI":"10.1007\/978-3-540-73368-3_10"},{"key":"2_CR37","unstructured":"Guo, B., Bridges, M.J., Triantafyllis, S., Ottoni, G., Raman, E., August, D.I.: Practical and accurate low-level pointer analysis. In: CGO 2005 (2005)"},{"key":"2_CR38","doi-asserted-by":"crossref","unstructured":"Havelund, K., Pressburger, T.: Model checking Java programs using Java PathFinder. STTT\u00a02(4) (2000)","DOI":"10.1007\/s100090050043"},{"key":"2_CR39","doi-asserted-by":"crossref","unstructured":"Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: POPL 2002 (2002)","DOI":"10.1145\/503272.503279"},{"key":"2_CR40","unstructured":"Howard, M.: Some bad news and some good news, MSDN, Microsoft Corp. (October 2002), http:\/\/msdn2.microsoft.com\/en-us\/library\/ms972826.aspx"},{"key":"2_CR41","unstructured":"IDAPro disassembler, http:\/\/www.datarescue.com\/idabase\/"},{"key":"2_CR42","doi-asserted-by":"crossref","unstructured":"Jeannet, B., Loginov, A., Reps, T., Sagiv, M.: A Relational Approach to Interprocedural Shape Analysis. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol.\u00a03148, pp. 246\u2013264. Springer, Heidelberg (2004)","DOI":"10.1007\/978-3-540-27864-1_19"},{"key":"2_CR43","unstructured":"Kidd, N., Reps, T., Melski, D., Lal, A.: WPDS++: A C++ library for weighted pushdown systems (2004), http:\/\/www.cs.wisc.edu\/wpis\/wpds++\/"},{"key":"2_CR44","doi-asserted-by":"crossref","unstructured":"Kiss, \u00c1., Lehotai, G., J\u00e1sz, J., Gyim\u00f3thy, T.: Interprocedural static slicing of binary executables. In: SCAM 2003 (2003)","DOI":"10.1109\/SCAM.2003.1238038"},{"key":"2_CR45","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"125","DOI":"10.1007\/3-540-55984-1_13","volume-title":"Compiler Construction","author":"J. Knoop","year":"1992","unstructured":"Knoop, J., Steffen, B.: The interprocedural coincidence theorem. In: Pfahler, P., Kastens, U. (eds.) CC 1992. LNCS, vol.\u00a0641, pp. 125\u2013140. Springer, Heidelberg (1992)"},{"key":"2_CR46","unstructured":"Kruegel, C., Kirda, E., Mutz, D., Robertson, W., Vigna, G.: Automating mimicry attacks using static binary analysis. In: USENIX Sec. Symp. 2005 (2005)"},{"key":"2_CR47","doi-asserted-by":"crossref","unstructured":"Lal, A., Reps, T., Balakrishnan, G.: Extended Weighted Pushdown Systems. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol.\u00a03576, pp. 434\u2013448. Springer, Heidelberg (2005)","DOI":"10.1007\/11513988_44"},{"key":"2_CR48","doi-asserted-by":"crossref","unstructured":"Larus, J.R., Schnarr, E.: EEL: Machine-independent executable editing. In: PLDI 1995 (1995)","DOI":"10.1145\/207110.207163"},{"key":"2_CR49","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"36","DOI":"10.1007\/978-3-540-78791-4_3","volume-title":"CC 2008","author":"J. Lim","year":"2008","unstructured":"Lim, J., Reps, T.: A system for generating static analyzers for machine instructions. In: Hendren, L. (ed.) CC 2008. LNCS, vol.\u00a04959, pp. 36\u201352. Springer, Heidelberg (2008)"},{"key":"2_CR50","doi-asserted-by":"crossref","unstructured":"Myers, E.W.: Efficient applicative data types. In: POPL 1984 (1984)","DOI":"10.1145\/800017.800517"},{"key":"2_CR51","doi-asserted-by":"crossref","unstructured":"Nita, M., Grossman, D., Chambers, C.: A theory of platform-dependent low-level software. In: POPL 2008 (2008)","DOI":"10.1145\/1328438.1328465"},{"key":"2_CR52","unstructured":"PREfast with driver-specific rules, WHDC, Microsoft Corp. (October 2004), http:\/\/www.microsoft.com\/whdc\/devtools\/tools\/PREfast-drv.mspx"},{"key":"2_CR53","doi-asserted-by":"crossref","unstructured":"Ramalingam, G., Field, J., Tip, F.: Aggregate structure identification and its application to program analysis. In: POPL 1999 (1999)","DOI":"10.1145\/292540.292553"},{"key":"2_CR54","doi-asserted-by":"crossref","unstructured":"Regehr, J., Reid, A., Webb, K.: Eliminating stack overflow by abstract interpretation. In: Trans. on Embedded Comp. Systs. 2005 (2005)","DOI":"10.1145\/1113830.1113833"},{"key":"2_CR55","doi-asserted-by":"crossref","unstructured":"Reps, T., Balakrishnan, G., Lim, J.: Intermediate-representation recovery from low-level code. In: PEPM 2006 (2006)","DOI":"10.1145\/1111542.1111560"},{"key":"2_CR56","doi-asserted-by":"crossref","unstructured":"Reps, T., Balakrishnan, G., Lim, J., Teitelbaum, T.: A Next-Generation Platform for Analyzing Executables. In: Yi, K. (ed.) APLAS 2005. LNCS, vol.\u00a03780, pp. 212\u2013229. Springer, Heidelberg (2005)","DOI":"10.1007\/11575467_15"},{"key":"2_CR57","unstructured":"Schwoon, S.: Moped system, http:\/\/www.fmi.uni-stuttgart.de\/szs\/tools\/moped\/"},{"key":"2_CR58","doi-asserted-by":"crossref","unstructured":"Seidl, H., Fecht, C.: Interprocedural analyses: A comparison. In: JLP 2000 (2000)","DOI":"10.1016\/S0743-1066(99)00058-8"},{"key":"2_CR59","unstructured":"Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Program Flow Analysis: Theory and Applications, Prentice-Hall, Englewood Cliffs (1981)"},{"key":"2_CR60","unstructured":"Wagner, D., Foster, J., Brewer, E., Aiken, A.: A first step towards automated detection of buffer overrun vulnerabilities. In: NDSS (February 2000)"},{"key":"2_CR61","doi-asserted-by":"crossref","unstructured":"Wall, D.W.: Systems for late code modification. In: Giegerich, R., Graham, S.L. (eds.) Code Generation \u2013 Concepts, Tools, Techniques. Springer, Heidelberg (1992)","DOI":"10.1007\/978-1-4471-3501-2_15"},{"key":"2_CR62","unstructured":"C++ for kernel mode drivers: Pros and cons, WHDC web site (February 2007), http:\/\/www.microsoft.com\/whdc\/driver\/kernel\/KMcode.mspx"},{"key":"2_CR63","unstructured":"http:\/\/www.microsoft.com\/whdc\/devtools\/ddk\/default.mspx"},{"key":"2_CR64","doi-asserted-by":"crossref","unstructured":"Xu, Z., Miller, B., Reps, T.: Safety checking of machine code. In: PLDI 2000 (2000)","DOI":"10.1145\/349299.349313"},{"key":"2_CR65","doi-asserted-by":"crossref","unstructured":"Xu, Z., Miller, B., Reps, T.: Typestate Checking of Machine Code. In: Sands, D. (ed.) ESOP 2001. LNCS, vol.\u00a02028, Springer, Heidelberg (2001)","DOI":"10.1007\/3-540-45309-1_22"},{"key":"2_CR66","doi-asserted-by":"crossref","unstructured":"Zhang, J., Zhao, R., Pang, J.: Parameter and return-value analysis of binary executables. In: COMPSAC 2007 (2007)","DOI":"10.1109\/COMPSAC.2007.163"}],"container-title":["Lecture Notes in Computer Science","Compiler Construction"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-78791-4_2.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,11,24]],"date-time":"2020-11-24T02:15:30Z","timestamp":1606184130000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-78791-4_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[null]]},"ISBN":["9783540787907","9783540787914"],"references-count":66,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-78791-4_2","relation":{},"subject":[]}}