Teoría de Programación en Java

Páginas: 32 (7810 palabras) Publicado: 19 de noviembre de 2013
Teoría de Programación en Java


1) Teoría de Programación Orientada a Objetos (POO)


1.1) Concepto de Objeto: Atributos y Métodos
Un objeto es cualquier cosa real o abstracta de la cual nos interesa su comportamiento y que tiene una identidad única que la distingue de las demás. Un objeto es una unidad atómica formada por la unión de estado+comportamiento.
Un Objeto se compone de:   - Atributos (datos o variables): Información que posee cada objeto y que identifica su estado.
   - Métodos (operaciones o funciones): Conjunto de instrucciones que definen el comportamiento del objeto. Reciben unos argumentos y devuelven un resultado.
Sólo se puede acceder a los atributos de un objeto a través de sus métodos.

Imaginemos que nuestro objeto es un exploit y que su plantilla es lasiguiente:

------------------------------------------
|                        Dame el lenguaje  |
|   Dame la vulnerabilidad                 |
|            ---------------               |
|           |   Autor       |              |
|           |               |Dame el autor |
|           |Vulnerabilidad |              |
|           |               |              |
|           |    Lenguaje  |              |
|           |               |              |
|            ---------------               |
|                                          |
|     Introduzco nuevo offset              |
|                                          |
 ------------------------------------------

Este diagrama representa la estructura de un objeto. La parte interna del objeto no es accesibley contiene los atributos. La parte externa o interfaz del objeto es accesible y contiene los métodos.

Citar
Para los que no conocen mucho sobre los exploits, les recomiendo que se den una vuelta por http://foro.elhacker.net/index.php/board,32.0

Para poder comprender este ejemplo, sólo es necesario saber que un exploit es un código (codificado por un autor) que explota una vulnerabilidadpara lograr ejecutar código arbitrario en el sistema comprometido. La codificación puede haberse hecho en el lenguaje que prefiera el autor: C, C++, Perl...
Antes de lanzar un exploit contra un objetivo remoto, por ejemplo, debemos conocer su sistema operativo y a veces es necesario cambiar la dirección offset dentro del código del exploit, en función del sistema operativo y la versión de servicepack que el objetivo tenga instalada, para ajustar el exploit a las características del sistema objetivo.



Bien, nuestro objeto-exploit tiene algunos atributos como el autor del exploit (= Lion), la vulnerabilidad que explota (= Serv-U FTPD 3.x/4.x "SITE CHMOD" Command Remote stack buffer overflow) y el lenguaje en que se ha codificado el exploit (= Lenguaje C). Si otro objeto quiere accedera estos atributos, no lo puede hacer directamente, sino a través de los métodos del objeto-exploit. Es decir,
    · si quiere saber el autor que codificó el exploit, llamará al método "dame el autor" del objeto-exploit y recibirá como resultado el tipo string con el nombre del autor = "Lion".
    · si quiere introducir una nueva dirección offset, llamará al método "introduzco nuevo offset" yle pasará como argumento el tipo string con la dirección offset = "0x7ffa4a1b" a introducir para que el exploit nos funcione.
Generalmente, a estos métodos q "obtienen" o "introducen" se les llama métodos getters y setters. De esta forma, los métodos del objeto-exploit pasarán a codificarse bajo los nombres getAutor, getVulnerabilidad, getLenguaje, y setOffset.

Continuando con el ejemplo...    · el prototipo del método getAutor será: String getAutor ()
String (antes del método), indica que la llamada al método devuelve un tipo String, como es una cadena de caracteres con el nombre del autor. Sin embargo, no hace falta pasarle ningún argumento al método, por lo que dejamos los paréntesis () vacíos.
    · el prototipo del método setOffset será: void setOffset (String offset)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion Java
  • Programacion Java
  • Programacion en java
  • programacion java
  • programacion en java
  • Programacion java
  • programacion java
  • Programacion java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS