Skip to main content

Jump-oriented programming: A new class of code-reuse attack

Publication ,  Conference
Bletsch, T; Jiang, X; Freeh, VW; Liang, Z
Published in: Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011
January 1, 2011

Return-oriented programming is an effective code-reuse attack in which short code sequences ending in a ret instruction are found within existing binaries and executed in arbitrary order by taking control of the stack. This allows for Turing-complete behavior in the target program without the need for injecting attack code, thus significantly negating current code injection defense efforts (e.g., W⊕X). On the other hand, its inherent characteristics, such as the reliance on the stack and the consecutive execution of returnoriented gadgets, have prompted a variety of defenses to detect or prevent it from happening. In this paper, we introduce a new class of code-reuse attack, called jump-oriented programming. This new attack eliminates the reliance on the stack and ret instructions (including ret-like instructions such as pop+jmp) seen in return-oriented programming without sacrificing expressive power. This attack still builds and chains functional gadgets, each performing certain primitive operations, except these gadgets end in an indirect branch rather than ret. Without the convenience of using ret to unify them, the attack relies on a dispatcher gadget to dispatch and execute the functional gadgets. We have successfully identified the availability of these jump-oriented gadgets in the GNU libc library. Our experience with an example shellcode attack demonstrates the practicality and effectiveness of this technique. Copyright 2011 ACM.

Duke Scholars

Altmetric Attention Stats
Dimensions Citation Stats

Published In

Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011

DOI

ISBN

9781450305648

Publication Date

January 1, 2011

Start / End Page

30 / 40
 

Citation

APA
Chicago
ICMJE
MLA
NLM
Bletsch, T., Jiang, X., Freeh, V. W., & Liang, Z. (2011). Jump-oriented programming: A new class of code-reuse attack. In Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011 (pp. 30–40). https://doi.org/10.1145/1966913.1966919
Bletsch, T., X. Jiang, V. W. Freeh, and Z. Liang. “Jump-oriented programming: A new class of code-reuse attack.” In Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011, 30–40, 2011. https://doi.org/10.1145/1966913.1966919.
Bletsch T, Jiang X, Freeh VW, Liang Z. Jump-oriented programming: A new class of code-reuse attack. In: Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011. 2011. p. 30–40.
Bletsch, T., et al. “Jump-oriented programming: A new class of code-reuse attack.” Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011, 2011, pp. 30–40. Scopus, doi:10.1145/1966913.1966919.
Bletsch T, Jiang X, Freeh VW, Liang Z. Jump-oriented programming: A new class of code-reuse attack. Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011. 2011. p. 30–40.

Published In

Proceedings of the 6th International Symposium on Information, Computer and Communications Security, ASIACCS 2011

DOI

ISBN

9781450305648

Publication Date

January 1, 2011

Start / End Page

30 / 40