Bolt: On-demand infinite loop escape in unmodified binaries

Michael Kling, Sasa Misailovic, Michael Carbin, Martin Rinard

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

We present Bolt, a novel system for escaping from infinite and long-running loops. Directed by a user, Bolt can attach to a running process and determine if the program is executing an infinite loop. If so, Bolt can deploy multiple strategies to escape the loop, restore the responsiveness of the program, and enable the program to deliver useful output. Bolt operates on stripped x86 and x64 binaries, dynamically attaches and detaches to and from the program as needed, and dynamically detects loops and creates program state checkpoints to enable exploration of different escape strategies. Bolt can detect and escape from loops in off-theshelf software, without available source code, and with no overhead in standard production use.

Original languageEnglish (US)
Title of host publicationSPLASH 2012
Subtitle of host publicationOOPSLA'12 - Proceedings of the 2012 ACM International Conference on Object Oriented Programming SystemsLanguages and Applications
Pages431-450
Number of pages20
DOIs
StatePublished - Nov 27 2012
Event2012 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012 - Tucson, AZ, United States
Duration: Oct 19 2012Oct 26 2012

Publication series

NameProceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA

Other

Other2012 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012
CountryUnited States
CityTucson, AZ
Period10/19/1210/26/12

Fingerprint

Bolts

Keywords

  • Bolt
  • Error Recovery
  • Infinite Loop
  • Unresponsive Program

ASJC Scopus subject areas

  • Software

Cite this

Kling, M., Misailovic, S., Carbin, M., & Rinard, M. (2012). Bolt: On-demand infinite loop escape in unmodified binaries. In SPLASH 2012: OOPSLA'12 - Proceedings of the 2012 ACM International Conference on Object Oriented Programming SystemsLanguages and Applications (pp. 431-450). (Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA). https://doi.org/10.1145/2384616.2384648

Bolt : On-demand infinite loop escape in unmodified binaries. / Kling, Michael; Misailovic, Sasa; Carbin, Michael; Rinard, Martin.

SPLASH 2012: OOPSLA'12 - Proceedings of the 2012 ACM International Conference on Object Oriented Programming SystemsLanguages and Applications. 2012. p. 431-450 (Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Kling, M, Misailovic, S, Carbin, M & Rinard, M 2012, Bolt: On-demand infinite loop escape in unmodified binaries. in SPLASH 2012: OOPSLA'12 - Proceedings of the 2012 ACM International Conference on Object Oriented Programming SystemsLanguages and Applications. Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA, pp. 431-450, 2012 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012, Tucson, AZ, United States, 10/19/12. https://doi.org/10.1145/2384616.2384648
Kling M, Misailovic S, Carbin M, Rinard M. Bolt: On-demand infinite loop escape in unmodified binaries. In SPLASH 2012: OOPSLA'12 - Proceedings of the 2012 ACM International Conference on Object Oriented Programming SystemsLanguages and Applications. 2012. p. 431-450. (Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA). https://doi.org/10.1145/2384616.2384648
Kling, Michael ; Misailovic, Sasa ; Carbin, Michael ; Rinard, Martin. / Bolt : On-demand infinite loop escape in unmodified binaries. SPLASH 2012: OOPSLA'12 - Proceedings of the 2012 ACM International Conference on Object Oriented Programming SystemsLanguages and Applications. 2012. pp. 431-450 (Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA).
@inproceedings{09faa73b94844ee4a896e3ceae05bb99,
title = "Bolt: On-demand infinite loop escape in unmodified binaries",
abstract = "We present Bolt, a novel system for escaping from infinite and long-running loops. Directed by a user, Bolt can attach to a running process and determine if the program is executing an infinite loop. If so, Bolt can deploy multiple strategies to escape the loop, restore the responsiveness of the program, and enable the program to deliver useful output. Bolt operates on stripped x86 and x64 binaries, dynamically attaches and detaches to and from the program as needed, and dynamically detects loops and creates program state checkpoints to enable exploration of different escape strategies. Bolt can detect and escape from loops in off-theshelf software, without available source code, and with no overhead in standard production use.",
keywords = "Bolt, Error Recovery, Infinite Loop, Unresponsive Program",
author = "Michael Kling and Sasa Misailovic and Michael Carbin and Martin Rinard",
year = "2012",
month = "11",
day = "27",
doi = "10.1145/2384616.2384648",
language = "English (US)",
isbn = "9781450315616",
series = "Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA",
pages = "431--450",
booktitle = "SPLASH 2012",

}

TY - GEN

T1 - Bolt

T2 - On-demand infinite loop escape in unmodified binaries

AU - Kling, Michael

AU - Misailovic, Sasa

AU - Carbin, Michael

AU - Rinard, Martin

PY - 2012/11/27

Y1 - 2012/11/27

N2 - We present Bolt, a novel system for escaping from infinite and long-running loops. Directed by a user, Bolt can attach to a running process and determine if the program is executing an infinite loop. If so, Bolt can deploy multiple strategies to escape the loop, restore the responsiveness of the program, and enable the program to deliver useful output. Bolt operates on stripped x86 and x64 binaries, dynamically attaches and detaches to and from the program as needed, and dynamically detects loops and creates program state checkpoints to enable exploration of different escape strategies. Bolt can detect and escape from loops in off-theshelf software, without available source code, and with no overhead in standard production use.

AB - We present Bolt, a novel system for escaping from infinite and long-running loops. Directed by a user, Bolt can attach to a running process and determine if the program is executing an infinite loop. If so, Bolt can deploy multiple strategies to escape the loop, restore the responsiveness of the program, and enable the program to deliver useful output. Bolt operates on stripped x86 and x64 binaries, dynamically attaches and detaches to and from the program as needed, and dynamically detects loops and creates program state checkpoints to enable exploration of different escape strategies. Bolt can detect and escape from loops in off-theshelf software, without available source code, and with no overhead in standard production use.

KW - Bolt

KW - Error Recovery

KW - Infinite Loop

KW - Unresponsive Program

UR - http://www.scopus.com/inward/record.url?scp=84869852386&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84869852386&partnerID=8YFLogxK

U2 - 10.1145/2384616.2384648

DO - 10.1145/2384616.2384648

M3 - Conference contribution

AN - SCOPUS:84869852386

SN - 9781450315616

T3 - Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA

SP - 431

EP - 450

BT - SPLASH 2012

ER -