Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - arturoro

#21
Hola Apuromafo:

   En serio, el que sabe sabe, jejejeje!!!! eres un guru  :rolleyes: , tenias razon, ya deje la programacion del VS2003, y me dedique de lleno con el Reflector 7.6, ya se como modificar las DLL, y grabar los cambios, ufff!!!, ahora solo toy modificando en base a prueba y error (no sabia que el Reflector viene con un pequeño compilador, pequeño pero eficaz), solo me estoy acostumbrando a las instrucciones jejeje!!!, ahora solo quiero "jugar" con las instrucciones y valores, ya que cuando hago que no haga el reset del dispositivo, no sabia que habia 2 bloques que llaman a la funcion (grrrr!!!! pense que eran diferentes), en fin, nuevamente:

    GRACIAS POR TODO APUROMAFO ERES GRANDE ENTRE LOS GRANDES!!!  ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
#22
Hola Apuromafo:

  Perdona la confusion de tu nombre, ya estaba cansado y desvelado, ahora te digo como me fue: Proble con el Reflector 7.6 pero tuve problemas a la hora de modificar la DLL, probe con el Dis#, igual forma, pero, pude bajar el fuente en C# y lo puse en Visual Studio 2003 (VS), el unico error que me manda fue una apertura de una DLL que hace referencia (no se si en las demas me indica lo mismo, ya que llega ahi y me manda ese error), pense que ese archivo que hace referencia tenia llave, pero la verifique y nada de llave, en fin, como no es de aqui la duda la mande al apartado de programacion en C, jejejje!!! De todas formas sigo leyendo lo que me mandaste, voy a probar otras cosas en lo que resuelvo la duda de programacion en C#

GRACIAS DE ANTEMANO POR LA AYUDA !!!!  ;-)
#23
Hola amigos del Foro espero que puedan ayudar u orientarme:

Hice una libreria dll en VS2003 en C#, para un proyecto que hice hace 3 años, formatee una maquina y solo puse VS2003, tengo el fuente de la DLL y me manda el siguiente error:

------ Build started: Project: Myproject, Configuration: Debug .NET ------

Preparing resources...
Updating references...
Performing main compilation...
fatal error CS0009: Metadata file 'c:\Archivos de programa\Microsoft Visual Studio .NET 2003\Common7\IDE\PublicAssemblies\EnlaceDLL.dll' could not be opened -- 'Common Language Runtime Internal error: 0x80131107'

Build complete -- 1 errors, 0 warnings
Building satellite assemblies...
Satellite assemblies could not be built because the main project output is missing.

ya le puse en mi archivo lo siguiente:

<References>
     Name = "EnlaceDLL"
     AssemblyName = "EnlaceDLL"
     HintPath = "c:\Archivos de programa\Microsoft Visual Studio .NET 2003\Common7\IDE\PublicAssemblies\EnlaceDLL.dll"

</References>

  Si me podrian ayudar?

  GRACIAS POR TODO DE ANTEMANO !!!  ;-)
#24
Hola Nuevamente Apuromofo:

  MMM!!! corrigeme si me equivoco :P, el NET Reflector por si mismo no modifica los DLL, verdad??? :o, y si los hay debe ser mediante un Add-Ins (creo yo), lo mas que hice fue bajar descompilado el DLL que quiero modificar, y lo mande como libreria de Clase (CLass Library), lo descompila y me manda cero errores, abro el visual studio 2008 (me manda que es una version anterior, estoy bajando el 2005, actualiza a 2008 y listo), pero al momento de generar la solucion, simplemente me manda arriba de 15 errores, jejeje!!! (ya agrege las referencias, etc), lo que no se es que si debo de agregar todoooooo el sistema al proyecto, pero creo que no, ya que las dll, las puedes crear por separado, verdad???. Espero tus comentarios y jalones de orejas jejeje!!!  :laugh:

GRACIAS POR TODO Y SOPORTAR A GENTE COMO YO !!!!  ;-) ;-)
#25
Hola Apuromofo:

Creo que ya descubri como modificar los DLL en el Net Reflector, ya que por lo que veo hay que agregar unos Add-Ins, pero ya van como 5 que trato de meter y solo me marca error de cargar el archivo, que debo de checar el evento de excepcion???? en fin, sigo checando....


   NUEAVAMENTE GRACIAS!!!  ;-)
#26
Hola Nuevamente Apuromafo:

   Cheque el archivo DLL en cuestion y me dice lo siguiente:

File Type : 32-Bit Dll (Subsystem : Win CUI / 3), Size : 507904 (07C000h) Byte(s)
[File Heuristics] -> Flag : 00000000000001001101000000110000 (0x0004D030)
[!] Possible CD/DVD-Key or Serial Check -> SerialNumber
[CompilerDetect] -> .NET
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.796 Second(s)
:rolleyes:

Lo que me llama la atencion es el Posible CD/DVD-Key   :-*, pero con el Net Reflector lo lee bien ( me refiero a que no tengo problemas de lectura en eventos, instrucciones, referencias, etc), me comentas que te quite el desofucador, pero cheque por la internet y solo he visto pocos, otros para javascript, o C# (pero era para ofuscar dentro del programa, no para verificar), tambien lo he desesamblado jejeje!!! con el net reflector, pero solo quiero cambiar unas lineas del propio DLL y que se grabe, se puede hacer eso? o debo de instalar el visual studio para programar en C#, bueno, no codificar sino copiar y pegar ? jejeje!!!!. Perdona mi ignorancia ...  :-(


GRACIAS NUEVAMENTE !!!!  ;-)
#27
Gracias por responder Apuromafo: :rolleyes:

  Perdona la demora que no te conteste rapido, estaba checando lo que me escribiste y tienes razon, fue mejor ver los .DLL con SAE y no con el ollyDBG  ;-), creo que ya estoy mas cerca, solo que he tenido problemas en modificar los .DLL la version 1 del ILSpy, no me deja modificar el codigo que me aparece, baje la version 2 y tampoco, solo me kedaron 6 .DLL que no lo abre el SAE, lo cheque y no tienen  codigo que modificar, pero, eso s lo de menos, y la pregunta de los 64 mil, conoces un programa para modificar los .DLL que necesito modificar? porque me aparece en C o C++, ya que con el Ollydbg no puedo jejejej!!! me manda el mensaje que o que estan dañados, incompletos o que esta cifrado, y asi no puedo modificarlos.

NUEVAMENTE GRACIAS X TU AYUDA !!!!  ;-)
#28
Cita de: Eternal Idol en 22 Mayo 2012, 11:23 AM
¿Alguna razon para usar dos veces el mismo nombre de variable?

u16 port_idx;
static u16 port_idx[];

En el codigo original no hace eso ....

http://mbed.org/users/etherealflaim/programs/NetTool/lg5k8l/docs/scanner_8h_source.html

Supongo que es el problema de copiar y pegar codigo sin entenderlo.


No es eso, aun con el codigo original (ports) me sigue mandando el mismo error de que la variable inicializada pero no declarada, aun asi, me sigue mandando el mismo error, le puse la misma variable porque se necesita que guarde en la matriz los valores que necesito.

Si compilas ese codigo, te manda el mismo error.

:rolleyes:
#29
Hola a todos:

Creo que el problema que tuve la otra vez de "variable iniciada pero no declarada nunca sera referenciada" fue por el alcance de la variable en class, pero volvi a checar y nada raro le veo, les mando completo las instrucciones:

#ifndef SCANNER_H
#define SCANNER_H

#include "main.h"

#define SCANNER_PADSIZE 0
#define SCANNER_FRAMESIZE (sizeof(Ethernet_FrameHeader) + sizeof(IP_PacketHeader) + sizeof(TCP_SegmentHeader) + SCANNER_PADSIZE)


class Scanner
{
private:
Sniffer *sniffer;
Ticker scan_timer;
Timeout scan_timeout;

u8 raw_frame[SCANNER_FRAMESIZE];

IP_Address destip;
u16 port_idx; //////////////////////////////// AQUI DECLARO LA VARIABLE
u16 pseudo_checksum;

set<u16> open_ports;

LocalFileSystem local;

public:
inline Scanner(Sniffer *_sniffer)
: sniffer(_sniffer), local("local")
{
sniffer->attach_tcp(this, &Scanner::handle_tcp);
}


inline void handle_tcp(TCP_SegmentHeader *packet, u32 data_bytes)
{
if (packet->syn && packet->ack)
{
open_ports.insert(packet->source_port);
}
}


inline void finish()
{
FILE *fp = fopen("/local/PortScan.txt", "w");
fprintf(fp, "Open Ports on %d.%d.%d.%d:\n", destip.octet[0], destip.octet[1], destip.octet[2],estip.octet[3]);

for (set<u16>::iterator iter = open_ports.begin(); iter != open_ports.end(); ++iter)
{
fprintf(fp, " TCP:%-5d OPEN\n", *iter);
}
fclose(fp);

main_log.printf("Open ports:");
for (set<u16>::iterator iter = open_ports.begin(); iter != open_ports.end(); ++iter)
{
main_log.printf(" TCP:%-5d OPEN", *iter);
}
main_log.printf("Port scan complete.");
}

inline void start(Ethernet_MAC src, Ethernet_MAC dst, IP_Address srcip, IP_Address dstip)
{

static Ethernet_FrameHeader *frame = (Ethernet_FrameHeader*)raw_frame;
static IP_PacketHeader *packet = (IP_PacketHeader*)frame->payload;
static TCP_SegmentHeader *segment = (TCP_SegmentHeader*)packet->data;

destip = dstip;
main_log.printf("Starting TCP port scan of %d.%d.%d.%d...", dstip.octet[0], dstip.octet[1], dstip.octet[2], dstip.octet[3]);


memset(raw_frame, '\0', SCANNER_FRAMESIZE);


frame->destination = dst;
frame->source = src;
frame->ethertype = ETHERTYPE_IPV4;

packet->source = srcip;
packet->version = 0x04;
packet->header_bytes_div4 = 5;
packet->packet_bytes = SCANNER_FRAMESIZE-sizeof(Ethernet_FrameHeader);
packet->ttl = 64;
packet->protocol = IPPROTO_TCP;
packet->destination = dstip;

segment->sequence_number = 0xBADBEEF0;
segment->data_offset_bytes_div4 = sizeof(TCP_SegmentHeader)/4;
segment->syn = 1;
segment->window_size = 8192;
pseudo_checksum = pseudo_header_checksum(srcip, dstip, sizeof(TCP_SegmentHeader));

port_idx = 0; //////////////// AQUI LA INICIALIZO

open_ports.clear();
scan_timer.attach_us(this, &Scanner::scan, 50);
}


inline void scan()
{

/////////////////////////// AQUI CREO LA MATRIZ

static u16 port_idx[] = {1, 2, 3, 5, 7, 9, 11, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 35, 37, 39,
41, 42, 43, 47, 49, 50, 51, 52, 53, 54, 56, 58, 70, 79, 80, 83, 88, 90, 101, 102,
104, 105, 107, 108, 109, 110, 111, 113, 113, 115, 117, 118, 119, 135, 137, 138, 139, 143, 152, 153,
156, 162, 170, 177, 179, 194, 199, 201, 209, 210, 213, 218, 220, 259, 264, 308, 311, 318, 350, 351,
366, 369, 371, 383, 384, 387, 389, 401, 427, 443, 444, 445, 464, 475, 497, 504, 512, 513, 514, 515,
520, 524, 530, 532, 540, 542, 543, 544, 546, 547, 548, 554, 556, 563, 587, 591, 593, 604, 631, 635,
636, 639, 641, 646, 647, 648, 653, 654, 657, 660, 674, 691, 692, 694, 695, 699, 700, 701, 702, 706,
711, 712, 749, 750, 751, 752, 753, 754, 760, 860, 873, 902, 989, 990, 991, 992, 993, 995, 1058,
1080, 1085, 1098, 1099, 1140, 1169, 1176, 1182, 1194, 1198, 1200, 1214, 1220, 1223, 1241, 1270, 1293, 1337, 1352, 1387,
1414, 1417, 1418, 1419, 1420, 1431, 1433, 1470, 1494, 1512, 1513, 1521, 1524, 1533, 1547, 1677, 1720, 1723, 1755, 1761,
1762, 1763, 1764, 1765, 1766, 1767, 1768, 1801, 1812, 1813, 1863, 1935, 1947, 1970, 1971, 1972, 1984, 1994, 1998, 2000,
2031, 2053, 2073, 2074, 2082, 2083, 2086, 2102, 2103, 2104, 2105, 2144, 2145, 2161, 2181, 2210, 2211, 2212, 2219, 2220,
2261, 2262, 2369, 2370, 2404, 2447, 2483, 2484, 2500, 2612, 2713, 2714, 2735, 2809, 2868, 2947, 2948, 2949, 3050, 3051,
3074, 3225, 3233, 3235, 3260, 3268, 3269, 3283, 3305, 3306, 3386, 3389, 3396, 3412, 3455, 3423, 3424, 3478, 3483, 3516,
3532, 3533, 3606, 3632, 3689, 3690, 3702, 3880, 3868, 3900, 3945, 3999, 4018, 4089, 4093, 4096, 4111, 4116, 4321, 4662,
4728, 4840, 4843, 4847, 4993, 4894, 4899, 4950, 5000, 5001, 5003, 5004, 5005, 5051, 5060, 5061, 5070, 5084, 5085, 5099,
5151, 5154, 5190, 5222, 5269, 5298, 5351, 5355, 5402, 5405, 5421, 5432, 5556, 5631, 5814, 5900, 5984, 5999, 6000, 6005,
6086, 6110, 6111, 6112, 6129, 6346, 6347, 6350, 6432, 6444, 6445, 6619, 6665, 6666, 6667, 6668, 6669, 6888, 6969, 7005,
7006, 7400, 7401, 7402, 7547, 7787, 7788, 8000, 8008, 8078, 8080, 8118, 8123, 8243, 8280, 8400, 8442, 8880, 8888, 9009,
9080, 9100, 9105, 9119, 9306, 9312, 9418, 9535, 9536, 9800, 9898, 9996, 10008, 10010, 10050, 10051, 10113, 10114, 10115,
10116, 13076, 13720, 13721, 13724, 13782, 13783, 13785, 13786, 15000, 15345, 17500, 18104, 19283, 19315, 22347, 22350,
24465, 24554, 26000, 31457, 33434, 40000, 43047, 43048, 47808};


static Ethernet_FrameHeader *frame = (Ethernet_FrameHeader*)raw_frame;
static IP_PacketHeader *packet = (IP_PacketHeader*)frame->payload;
static TCP_SegmentHeader *segment = (TCP_SegmentHeader*)packet->data;

segment->source_port = port_idx; //////// AQUI LA VUELVO A UTILIZAR
segment->destination_port = port_idx; //////////// AQUI HAGO LO MISMO

fix_endian_tcp(segment);
segment->checksum = checksum(segment, sizeof(TCP_SegmentHeader), &segment->checksum, sizeof(segment->checksum), pseudo_checksum);

fix_endian_ip(packet);
packet->header_checksum = checksum(packet, sizeof(IP_PacketHeader), &packet->header_checksum, sizeof(packet->header_checksum));

fix_endian_ethernet(frame);
sniffer->inject(frame, SCANNER_FRAMESIZE);

fix_endian_ethernet(frame);
fix_endian_ip(packet);
fix_endian_tcp(segment);


segment->sequence_number++;


/////////////////////////////////// AQUI PREGUNTO SI PORT ES MAYOR O IGUAL A 65,535
if (port_idx >= 65535)
{
scan_timer.detach();
scan_timeout.attach(this, &Scanner::finish, 7);
}
port_idx++; //////////////// POR ULTIMO INCREMENTO EL VALOR DE PORT
}
};

#endif

Como ven, no se porque a la hora de compilar, me manda ese error de que la variable es inicializada pero no declarada, me la manda en la linea que dice "static u16 port_idx[]", en la creacion de matriz

Si me podrian ayudar?

GRACIAS DE ANTEMANO!!!
#30
Envio el contenido completo del archivo:

#ifndef SCANNER_H
#define SCANNER_H

#include "main.h"

#include <cstring>
#include <set>


#define SCANNER_PADSIZE   0
#define SCANNER_FRAMESIZE (sizeof(Ethernet_FrameHeader) + sizeof(IP_PacketHeader) + sizeof(TCP_SegmentHeader) + SCANNER_PADSIZE)


class Scanner
{
private:
  Sniffer *sniffer;
  Ticker scan_timer;
  Timeout scan_timeout;
 
  u8 raw_frame[SCANNER_FRAMESIZE];
 
  IP_Address destip;
  u16 port_idx;
  u16 pseudo_checksum;
 
  set<u16> open_ports;
 
  LocalFileSystem local;

public:

  inline Scanner(Sniffer *_sniffer)
  : sniffer(_sniffer), local("local")
  {
    sniffer->attach_tcp(this, &Scanner::handle_tcp);
  }
 

  inline void handle_tcp(TCP_SegmentHeader *packet, u32 data_bytes)
  {
    if (packet->syn && packet->ack)
    {
      open_ports.insert(packet->source_port);
    }
  }
 

  inline void finish()
  {
    FILE *fp = fopen("/local/PortScan.txt", "w");
    fprintf(fp, "Open Ports on %d.%d.%d.%d:\n", destip.octet[0], destip.octet[1], destip.octet[2], destip.octet[3]);
    for (set<u16>::iterator iter = open_ports.begin(); iter != open_ports.end(); ++iter)
    {
      fprintf(fp, "  TCP:%-5d OPEN\n", *iter);
    }
    fclose(fp); 
   
    main_log.printf("Open ports:");
    for (set<u16>::iterator iter = open_ports.begin(); iter != open_ports.end(); ++iter)
    {
      main_log.printf("  TCP:%-5d OPEN", *iter);
    }
    main_log.printf("Port scan complete.");
  }
 

  inline void start(Ethernet_MAC src, Ethernet_MAC dst, IP_Address srcip, IP_Address dstip)
  {

    static Ethernet_FrameHeader *frame = (Ethernet_FrameHeader*)raw_frame;
    static IP_PacketHeader *packet = (IP_PacketHeader*)frame->payload;
    static TCP_SegmentHeader *segment = (TCP_SegmentHeader*)packet->data;
   
    destip = dstip;
    main_log.printf("Starting TCP port scan of %d.%d.%d.%d...", dstip.octet[0], dstip.octet[1], dstip.octet[2], dstip.octet[3]);
   

    memset(raw_frame, '\0', SCANNER_FRAMESIZE);
   
    frame->destination = dst;
    frame->source = src;
    frame->ethertype = ETHERTYPE_IPV4;
   

    packet->source = srcip; // Can't change with destination back-to-back? lol
    packet->version = 0x04;
    packet->header_bytes_div4 = 5; // *4 = 20
    packet->packet_bytes = SCANNER_FRAMESIZE-sizeof(Ethernet_FrameHeader);
    packet->ttl = 64;
    packet->protocol = IPPROTO_TCP;
    packet->destination = dstip;
   

    segment->sequence_number = 0xBADBEEF0;
    segment->data_offset_bytes_div4 = sizeof(TCP_SegmentHeader)/4;
    segment->syn = 1;
    segment->window_size = 8192;
    pseudo_checksum = pseudo_header_checksum(srcip, dstip, sizeof(TCP_SegmentHeader));
   

    port_idx = 0;
   
    open_ports.clear();
    scan_timer.attach_us(this, &Scanner::scan, 50);

  }
 

  inline void scan()
  {

    static u16 port_idx [] = {1, 2, 3, 5, 7, 9, 11, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 35, 37, 39,
      41, 42, 43, 47, 49, 50, 51, 52, 53, 54, 56, 58, 70, 79, 80, 83, 88, 90, 101, 102,
      104, 105, 107, 108, 109, 110, 111, 113, 113, 115, 117, 118, 119, 135, 137, 138, 139, 143, 152, 153,
      156, 162, 170, 177, 179, 194, 199, 201, 209, 210, 213, 218, 220, 259, 264, 308, 311, 318, 350, 351,
      366, 369, 371, 383, 384, 387, 389, 401, 427, 443, 444, 445, 464, 475, 497, 504, 512, 513, 514, 515,
      520, 524, 530, 532, 540, 542, 543, 544, 546, 547, 548, 554, 556, 563, 587, 591, 593, 604, 631, 635,
      636, 639, 641, 646, 647, 648, 653, 654, 657, 660, 674, 691, 692, 694, 695, 699, 700, 701, 702, 706,
      711, 712, 749, 750, 751, 752, 753, 754, 760, 860, 873, 902, 989, 990, 991, 992, 993, 995, 1058,
      1080, 1085, 1098, 1099, 1140, 1169, 1176, 1182, 1194, 1198, 1200, 1214, 1220, 1223, 1241, 1270, 1293, 1337, 1352, 1387,
      1414, 1417, 1418, 1419, 1420, 1431, 1433, 1470, 1494, 1512, 1513, 1521, 1524, 1533, 1547, 1677, 1720, 1723, 1755, 1761,
      1762, 1763, 1764, 1765, 1766, 1767, 1768, 1801, 1812, 1813, 1863, 1935, 1947, 1970, 1971, 1972, 1984, 1994, 1998, 2000,
      2031, 2053, 2073, 2074, 2082, 2083, 2086, 2102, 2103, 2104, 2105, 2144, 2145, 2161, 2181, 2210, 2211, 2212, 2219, 2220,
      2261, 2262, 2369, 2370, 2404, 2447, 2483, 2484, 2500, 2612, 2713, 2714, 2735, 2809, 2868, 2947, 2948, 2949, 3050, 3051,
      3074, 3225, 3233, 3235, 3260, 3268, 3269, 3283, 3305, 3306, 3386, 3389, 3396, 3412, 3455, 3423, 3424, 3478, 3483, 3516,
      3532, 3533, 3606, 3632, 3689, 3690, 3702, 3880, 3868, 3900, 3945, 3999, 4018, 4089, 4093, 4096, 4111, 4116, 4321, 4662,
      4728, 4840, 4843, 4847, 4993, 4894, 4899, 4950, 5000, 5001, 5003, 5004, 5005, 5051, 5060, 5061, 5070, 5084, 5085, 5099,
      5151, 5154, 5190, 5222, 5269, 5298, 5351, 5355, 5402, 5405, 5421, 5432, 5556, 5631, 5814, 5900, 5984, 5999, 6000, 6005,
      6086, 6110, 6111, 6112, 6129, 6346, 6347, 6350, 6432, 6444, 6445, 6619, 6665, 6666, 6667, 6668, 6669, 6888, 6969, 7005,
      7006, 7400, 7401, 7402, 7547, 7787, 7788, 8000, 8008, 8078, 8080, 8118, 8123, 8243, 8280, 8400, 8442, 8880, 8888, 9009,
      9080, 9100, 9105, 9119, 9306, 9312, 9418, 9535, 9536, 9800, 9898, 9996, 10008, 10010, 10050, 10051, 10113, 10114, 10115,
      10116, 13076, 13720, 13721, 13724, 13782, 13783, 13785, 13786, 15000, 15345, 17500, 18104, 19283, 19315, 22347, 22350,
      24465, 24554, 26000, 31457, 33434, 40000, 43047, 43048, 47808};
   

    static Ethernet_FrameHeader *frame = (Ethernet_FrameHeader*)raw_frame;
    static IP_PacketHeader *packet = (IP_PacketHeader*)frame->payload;
    static TCP_SegmentHeader *segment = (TCP_SegmentHeader*)packet->data;
   
    segment->source_port = port_idx; //ports[port_idx];
    segment->destination_port = port_idx; //ports[port_idx];
   
    fix_endian_tcp(segment);
    segment->checksum = checksum(segment, sizeof(TCP_SegmentHeader), &segment->checksum, sizeof(segment->checksum), pseudo_checksum);
   
    fix_endian_ip(packet);
    packet->header_checksum = checksum(packet, sizeof(IP_PacketHeader), &packet->header_checksum, sizeof(packet->header_checksum));
   
    fix_endian_ethernet(frame);
    sniffer->inject(frame, SCANNER_FRAMESIZE);
   
    fix_endian_ethernet(frame);
    fix_endian_ip(packet);
    fix_endian_tcp(segment);
   

    segment->sequence_number++;
   

    if (port_idx >= 65535)
    {
      scan_timer.detach();
      scan_timeout.attach(this, &Scanner::finish, 7);
    }
    port_idx++;
  }
};

#endif


Y cuando compilo, me manda error de que la variable no esta declarada, pero, si lo hago como pueden ver.


GRACIAS DE ANTMANO !!!