Oriented Programming Systems Languages

Abstrac

Return Oriented Programming refers to a method in which an invader may provoke arbitrary performance in a program whose control flow he or she has abstracted, with no any instilled code. In other words, this method gives an attacker a mandate of executing codes into a program in the availability of security measures like executable space protection as well as code signing.

Many architectures, as well as systems, easily exploit this method. This method also sidesteps the whole security measures of a system which are usually aimed at protecting as well as preventing malevolent calculation via prevention of malicious codes (Davi et al.

2015). In this report, the systems, languages, as well as applications of return-oriented programming, will be discussed.

I. Introduction:

Return-oriented programming is used by the hacker, which is a computer security exploit technique to execute the code at the time of code signing and executable space protection.

In the process of ROP, the attacker can hijack the program control flow and then choose machine instruction sequences from the machine's memory called gadgets, in order to execute.

Get quality help now
KarrieWrites
KarrieWrites
checked Verified writer

Proficient in: Computers

star star star star 5 (339)

“ KarrieWrites did such a phenomenal job on this assignment! He completed it prior to its deadline and was thorough and informative. ”

avatar avatar avatar
+84 relevant experts are online
Hire writer

These gadgets are located in a subroutine along with the shared library code and end in a return instruction. Also, the hacker can perform arbitrary operations on a machine with the help of the gadgets to prevent more straightforward attacks by employing defenses.

In the Return Oriented Programming, the first step includes the aggressor controlling the progression of a program. For example, in the support flood, overwriting the arrival address on the stack.

Get to Know The Price Estimate For Your Paper
Topic
Number of pages
Email Invalid email

By clicking “Check Writers’ Offers”, you agree to our terms of service and privacy policy. We’ll occasionally send you promo and account related email

"You must agree to out terms of services and privacy policy"
Write my paper

You won’t be charged yet!

The second step includes advance includes the aggressor utilizing the modifications to Run code of their inclination. This happens in buffer overflow where the infusion of the code is done on the stack.

Return-Oriented programming

The problem of malicious code represents the one which has long irritated the security society. From the past, much emphasis has been placed on the prevention of the implementation of a new malevolent code since it is not easy to project whether a give execution will begin or not. The prevention measures mainly entail efforts to guarantee to control the integrity of flow control of the already existing programs besides efforts to separate the safe and lousy code, which might have been introduced into the system. In this paper, the Return Oriented Programming, the systems, languages, as well as applications, will be discussed.

II. Systems:

This refers to the Operating Systems or Windows versions as well as processors which can support programs that can be attacked via return-oriented programming method. X86 architecture, with 8086 processor is an example of a system which powered the original IBM personal computer (Chen, Lange, & Zaverucha, 2017). Many of the X86's extraordinary characteristics are suitable for the ROP. Some of these X86 features include;

Memory; its inhabitant machine word is 32 bits. The little-endian format is what is used to store data. It also permits unaligned reminiscence entr?e with actions being probable on memory as well as in particular registers in 16-bit and 8-bit chunks. The Instruction Set is the second feature which denotes the X86 as a multifaceted command register reminiscence device. Therefore, many commands in this system can go way in the storage device directly. Majority of addressing modes are given support by the X86 for operands which is the most difficult for the programmer to specify a register base as well as register index, and an instantaneous offset (Hentunen, 2015).

Instruction Encoding; the instructions can vary from 1 byte to as many as 12 bytes, and that is why its referred to be having a variable length as well as unaligned. However, the instructions can have some exceptions whereby the instruction encoding is orthogonal zed like optional prefix bytes, which usually requires specifications of how the repetition of string instructions is done. The buffer overflows on this X86; the calling convention, as well as registers, is other features of X 86 systems which are attractive to Return Oriented Programming (Thioux, & Lin, 2017).

Fig2: Buffer Flow Exploit Diagrammatic Representation.

The Buffer overflow overwrites substance in the information segment of memory, which is set apart as non-executable. To break this, an arrival arranged programming assault does not infuse pernicious code, but instead, utilization guidelines that are as of now present, called devices by controlling return addresses.

Fig3: Instructions go Bad SPARC Stack Layout.

III. Language

The Return Oriented Programming has got a specific principle as well as program language layout. Firstly, there is a program layout; this demands that any ordinary program is composed of a series of machine language commands which are laid in the content part of the program. Every instruction is a byte prototype which is usually construed by the machine CPU, hence inducing some alterations in the state of the program. The No-op Instructions is another principle dealing with program language layout, which acknowledges the fact that the most comfortable command is the no-op, which has explicitly no impact apart from the highest program counter. In consideration to ROP, a no-op refers to a stacked word which contains the address of a ret command (Lee et al. 2017).

Encoding Immediate Constants Language Layout; the commands in standard programming can code instantaneous constants. We would thus be able to see the guidance stream in an ordinary program as including the two tasks and certain quick operands that the directions work on it. Consequently arranged programming a comparative impact is conceivable when guidance successions incorporate a pop reg guidance. In Return Oriented Programming, the pop reg command is used. For instance, a pop %ebx; ret sequence is a return-oriented programming language which commands the program to store the next word on the stack in %ebx as well as advancing the stack pointer past it. Other programming language layout includes the control flow as well as the gadgets. (Durham, & Patel, 2016).

Fig4: Return Oriented Programming Language Layouts

IV. Applications:

Despite many programmers applying the Return Oriented Programming for malicious activities like hacking the company information, this programming tool can be applied in increasing the security measures of an organization. The fact that this programming method has got the capability of running or executing a malicious code into the program in the presence of security measures like code signing, it can be used in testing for mitigation measures of itself. For instance, the programmers can develop return-oriented programming mitigation software, so to test its effectiveness; they will utilize the Return Oriented Programming (Wicherski, 2016).

Fig5: Showing how ROP is Dangerous while applying it in a Program

V. Conclusion

We have introduced ROP which an attacker can use it to take arbitrary computation, without injecting any new malicious code. We also saw that ROP is present both the Linux/x86 and Solaris/SPARC platforms. We have also observed that there are tools for automatic gadget generation. Since ROP exploits reuse existing code, they are not affected by any exploitation mitigations that are currently in use.

We have exhibited that arrival situated endeavors are handy to compose, as the unpredictability of contraption mix is preoccupied behind a programming language and compiler. Consequent work has mechanized contraption age also. Since return-situated endeavors reuse existing code, they are not influenced by a significant class of abuse alleviations being used today those that separate great system from awful.

References:

[1] Chen, L. T., Lange, J. E., & Zaverucha, G. M. (2017). U.S. Patent No. 9,646,154. Washington, DC: U.S. Patent and Trademark Office.

[2] Davi, L., Liebchen, C., Sadeghi, A. R., Snow, K. Z., & Monrose, F. (2015, February). Isomer: Code randomization resilient to (just-in-time) return-oriented programming. In NDSS.

[3] Durham, D. M., & Patel, B. V. (2016). U.S. Patent No. 9,514,285. Washington, DC: U.S. Patent and Trademark Office.

[4] Hentunen, D. (2015). U.S. Patent No. 8,997,218. Washington, DC: U.S. Patent and Trademark Office.

[5] Lee, J., Jang, J., Jang, Y., Kwak, N., Choi, Y., Choi, C., ... & Kang, B. B. (2017). Hacking in darkness: Return-oriented programming against secure enclaves. In 26th {USENIX} Security.

[6] Symposium ({USENIX} Security 17) (pp. 523-539).

[7] Polychronakis, M., & Keromytis, A. D. (2017). U.S. Patent Application No. 15/349,445.

[8] Thioux, E., & Lin, Y. (2017). U.S. Patent No. 9,594,912. Washington, DC: U.S. Patent and Trademark Office.

[9] Wicherski, G. (2016). U.S. Patent No. 9,256,730. Washington, DC: U.S. Patent and Trademark Office.

[10] "Return-oriented programming," Wikipedia, 05-Jun-2019. [Online]. Available: [Accessed: 07-Jul-2019].

Updated: May 19, 2021
Cite this page

Oriented Programming Systems Languages. (2019, Dec 19). Retrieved from https://studymoose.com/oriented-programming-systems-languages-essay

Oriented Programming Systems Languages essay
Live chat  with support 24/7

👋 Hi! I’m your smart assistant Amy!

Don’t know where to start? Type your requirements and I’ll connect you to an academic expert within 3 minutes.

get help with your assignment