Run-time type checking for binary programs

作者: Michael Burrows , Stephen N. Freund , Janet L. Wiener

DOI: 10.1007/3-540-36579-6_7

关键词: Data typeVariety (linguistics)Type systemSoftware systemFalse alarmComputer scienceSource codeCompilerProgramming languageType safety

摘要: Many important software systems are written in the C programming language. Unfortunately, language does not provide strong safety guarantees, and many common mistakes introduce type errors that caught by compiler. These only manifest themselves at run time through unexpected program behavior, it is often hard to isolate identify their causes. This paper presents Hobbes run-time checker for compiled programs. Our tool interprets binaries, tracks information all memory register locations, reports warnings when a variety of occur. Because rely on source code, effective situations where similar tools not, such as full code available or linked with fragments assembly other languages.

参考文章(13)
Paul H. J. Kelly, Richard W. M. Jones, Backwards-Compatible Bounds Checking for Arrays and Pointers in C Programs Proceedings of the 3rd International Workshop on Automatic Debugging; 1997 (AADEBUG-97). pp. 13- 26 ,(1997)
Alan Mycroft, Type-Based Decompilation (or Program Reconstruction via Type Reconstruction) european symposium on programming. pp. 208- 223 ,(1999) , 10.1007/3-540-49099-X_14
Alexey Loginov, Suan Hsi Yong, Susan Horwitz, Thomas Reps, Debugging via Run-Time Type Checking fundamental approaches to software engineering. pp. 217- 232 ,(2001) , 10.1007/3-540-45314-8_16
Todd M. Austin, Scott E. Breach, Gurindar S. Sohi, Efficient detection of all pointer and array access errors programming language design and implementation. ,vol. 29, pp. 290- 301 ,(1994) , 10.1145/178243.178446
HARISH PATIL, CHARLES FISCHER, Low-cost, concurrent checking of pointer and array accesses in C programs Software - Practice and Experience. ,vol. 27, pp. 87- 110 ,(1997) , 10.1002/(SICI)1097-024X(199701)27:1<87::AID-SPE78>3.0.CO;2-P
Amitabh Srivastava, Alan Eustace, ATOM: a system for building customized program analysis tools programming language design and implementation. ,vol. 39, pp. 196- 205 ,(1994) , 10.1145/178243.178260
Michael Siff, Satish Chandra, Thomas Ball, Krishna Kunchithapadam, Thomas Reps, Coping with type casts in C foundations of software engineering. ,vol. 24, pp. 180- 198 ,(1999) , 10.1145/318774.318942
Satish Chandra, Thomas Reps, Physical type checking for C workshop on program analysis for software tools and engineering. ,vol. 24, pp. 66- 75 ,(1999) , 10.1145/316158.316183
Zhichen Xu, Thomas Reps, Barton P. Miller, Typestate Checking of Machine Code european symposium on programming. pp. 335- 351 ,(2001) , 10.1007/3-540-45309-1_22
George C. Necula, Scott McPeak, Westley Weimer, CCured ACM SIGPLAN Notices. ,vol. 47, pp. 74- 85 ,(2012) , 10.1145/2442776.2442786