Return-oriented programming, cuja sigla é R.O.P, em Língua portuguesa programação orientada ao retorno é uma técnica que se incorpora ao retorno de uma função, alterando a saída da instrução RET (return). O ROP pode ser aplicado sem que haja nenhuma injeção de código, na verdade, ele subscreve um trecho de código já existente.

A programação orientada ao retorno age gerando um algoritmo que ao ser injetado numa máquina vulnerável constitui um código binário, ou gadget, que se acopla a partes já existentes de qualquer tipo de programa, como por exemplo .XLS, .DOC, .PPT ou mesmo funcionalidades do próprio sistema operacional. O worm se posiciona junto a uma instrução RET duma função e é colocado dentro da área de execução.

Tarefas bem definidas são realizadas quando um binário malicioso é inserido na pilha e utiliza os ponteiros para sequenciar as instruções RET. O atacante pode realizar qualquer comportamento que desejar, uma vez que posiciona o worm na pilha de execução. O nome dado a esta prática é subversão; É quando o atacante consegue mudar o fluxo dum programa fazendo uso das credenciais do usuário.

Alterar o retorno de uma função significa desvirtuar sua saída, isto é, sua resposta pode não ter nada a ver com os dados de entrada que foram inseridos; É como se ao realizar uma subtração o retorno fosse uma adição.

Ligações externas

editar

📚 Artikel Terkait di Wikipedia

Return-to-libc attack

buffer overflow Stack-smashing protection No eXecute (NX) bit Return-oriented programming Shacham, Hovav; Page, Matthew; Pfaff, Ben; Goh, Eu-Jin; Modadugu

Método (programação)

Object-oriented Programming Paradigm. [S.l.]: PHI Learning Pvt. Ltd. ISBN 978-81-203-2871-6  Sengupta, Probal (1 de agosto de 2004). Object-Oriented Programming:

Wargame (hacking)

problemas, dicas, pontuação e competição e integridade acadêmica. Return Oriented Programming Essa técnica é um método de exploração de segurança que habilita

Object-PL/SQL

exemplo simples de object-oriented PL/SQL create or replace type base_type as object ( a number, constructor function base_type return self as result, member

Java (linguagem de programação)

Program Development in Java – Abstraction, Specification, and Object-Oriented Design. [S.l.]: USA, Addison Wesley. ISBN 978-0-201-65768-5  «Java 5 catches

SymbolicC++

(1997). SymbolicC++: An introduction to Computer Algebra Using Object-Oriented Programming Springer-Verlag, Singapore. Tan Kiat Shi, Steeb, W.-H. and Hardy

Programação funcional

(outubro de 2005). Generalized Algebraic Data Types and Object-Oriented Programming. OOPSLA. San Diego, Califórnia: ACM. ISBN 9781595930316. doi:10.1145/1094811

Factory method

como foi descrito no livro Design Patterns: Elements of Reusable Object-Oriented Software, contém os seguintes elementos: Creator(Criador abstrato) — declara