• Viernes 19 de Abril de 2024, 20:22

Mostrar Mensajes

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


Temas - m0skit0

Páginas: 1 [2]
26
GNU/Linux / [SOLUCIONADO] Iceweasel no reconoce Flash
« en: Domingo 1 de Febrero de 2009, 02:09 »
Pues el iceweasel no me reconoce los contenidos Flash de las páginas y en vez de los vídeos me sale un mensaje:

Citar
Hola, tienes JavaScript desactivado o una versión antigua de Adobe Flash Player. Consigue la última versión de Flash Player.
El caso es que, si miro las opciones del navegador, está activado JavaScript y en "about:plugins" me sale:

Citar
Shockwave Flash
 
    File name: libflash-mozplugin.so
    Flash Movie player Version 0.4.12 compatible with Shockwave Flash 4.0
 
    Shockwave is a trademark of Macromedia®
 
    GPLFLash homepage : gplflash.sf.net
 
MIME Type   Description     Suffixes    Enabled
application/x-shockwave-flash   Flash Plugin    swf     Yes
application/futuresplash    Future Splash   spl     Yes

Shockwave Flash
 
    File name: libflashplayer.so
    Shockwave Flash 10.0 r15
 
MIME Type   Description     Suffixes    Enabled
application/x-shockwave-flash   Shockwave Flash     swf     Yes
application/futuresplash    FutureSplash Player     spl
¿Alguien me puede echar una mano?  :wacko:

27
La taberna del BIT / ¿Qué piensan de Obama?
« en: Jueves 22 de Enero de 2009, 16:51 »
;)  -_-  ;)  -_-  <_<  :bad:  :good:  :hola:

28
Hola de nuevo a tod@s los usuarios del foro.

La PSP es una consola de portátil de Sony y que utiliza unos extraños ficheros llamados EBOOT.PBP como ejecutables. Esto me extrañó mucho y comencé a investigar por mi cuenta sobre el formato y el contenido de este fichero y recopilando información de Internet. Si alguien le interesa el tema, estaría encantado de recibir una mano. Aquí les dejo los resultados temporales de mis avances. Espero que os animéis alguno  :)

Código: Text
  1. -- EBOOT.PBP --
  2.  
  3. [Ojo, la PSP es big-endian]
  4.  
  5. - Sólo vamos a discutir los formatos propios de la PSP: PSF, PSP y PSAR.
  6. - WORD 16 bits, DWORD 32 bits.
  7.  
  8. /***********/
  9. /*** PBP ***/
  10. /***********/
  11.  
  12. - Una cabecera seguida de ficheros embebidos (pueden no aparecer todos)
  13.  
  14. UBYTE cabecera[0x28];
  15. PARAM.PSF             //Parámetros de la aplicación (menú del SO)
  16. ICON0.PNG             //Icono de la aplicación (menú del SO)
  17. ICON1.PMF             //Icono animado de la aplicación (menú del SO)
  18. BACKGROUND.PNG        //Fondo de la aplicación (menú del SO)
  19. PIC1.PNG              //Imagen de la aplicación (menú del SO)
  20. SND0.AT3              //Sonido de la aplicación (menú del SO)
  21. DATA.PSP              //La aplicación en sí
  22. DATA.PSAR             //Datos de la aplicación
  23.  
  24. - Cabecera:
  25.  
  26. 0x00    DWORD firma;                //Siempre 0x00504250 (".PBP")
  27. 0x04    DWORD version;              //Versión del PBP
  28. 0x08    DWORD offset[8];            //Corresponden al desplazamiento dentro del PBP de los 8 ficheros
  29.                                       indicados en la estructura del PBP
  30.  
  31. - Los PBP con version = 0x00010001 tienen una protección añadida que no deja modificar el PBP. Si se modifica algún byte, no arranca: si es el PNG porque
  32. "la información de copyright ha sido modificada". Si es el PSF, entonces arranca pero finalmente vuelve a salir "no se puede ejecutar".
  33.  
  34. - Encontrados PBP con el offset de UNKNOWN.PSAR apuntando al final de los datos del PBP. No existe PSAR.
  35.  
  36. /***********/
  37. /*** PSF ***/
  38. /***********/
  39.  
  40. - Alineamiento a DWORD
  41.  
  42. 0x00    DWORD firma;                //Siempre 0x00505346 (".PSF")
  43. 0x04    DWORD version;              //Siempre 0x0101 0000
  44. 0x08    DWORD offset_tabla_claves;  //Relativo al comienzo del PSF
  45. 0x0C    DWORD offset_tabla_valores; //Relativo al comienzo del PSF
  46. 0x10    DWORD num_claves;           //Número de elementos de la tabla_indice
  47. 0x14    UBYTE tabla_indice[];       //Elementos de 16 bytes, cada uno con el siguiente formato:
  48.                                     //  WORD offset_tabla_claves  Desplazamiento de la clave en "tabla_claves"
  49.                                     //  UBYTE alineamiento_dato   Alineamiento de los datos en
  50.                                                                   "tabla_valores", siempre 0x04, alineamiento
  51.                                                                   a nivel de byte
  52.                                     //  UBYTE tipo_datos  Tipo de datos (0 - binario, 2 - cadena de caracteres
  53.                                                           UTF-8 acabada en NULL, 4 - número de 32 bits con
  54.                                                           signo)
  55.                                     //  DWORD tamanio_datos  Tamaño de los datos (bytes) en "tabla_valores"
  56.                                     //  DWORD tamanio_total  Tamaño de datos y relleno (bytes) en
  57.                                                              "tabla_valores"
  58.                                     //  DWORD offset_valor  Offset del valor en "tabla_valores"                                                    
  59. 0xXX    UBYTE tabla_claves[];       //Claves: serie de cadenas de caracteres ASCII sin espacios acabadas en
  60.                                       NULL (0x00). Alineamiento a DWORD, por tanto puede haber relleno con
  61.                                       ceros
  62. 0xXX    UBYTE tabla_valores[];     //Valores de los parámetros indicados por "tabla_indice" y "tabla_claves"
  63.  
  64. - Claves que se conocen:
  65.  
  66. Clave                   Tipo    Descripción
  67. -----                   ----    -------------------------------------------------------------
  68. BOOTABLE                INT     Si está a 1 parece indicar que aplicación se puede arrancar nada más
  69.                                 encenderse la PSP (saltando el menú)
  70. CATEGORY                TXT     Categoría del PSF
  71. DISC_ID                 TXT     ID del disco
  72. DISC_NUMBER             INT     Número de disco si hay varios discos (cuenta desde 1)
  73. DISC_TOTAL              INT     Número total de discos
  74. DISC_VERSION            TXT     Versión del disco
  75. DRIVER_PATH             TXT     ?
  76. LANGUAGE                TXT     Lenguaje
  77. PARENTAL_LEVEL          INT     Mínimo nivel parental requerido para ejecutar
  78. PSP_SYSTEM_VER          TXT     Versión mínima de FW para ejecutar
  79. REGION                  INT     Máscara con las regiones autorizadas a ejecutar
  80. SAVEDATA_DETAIL         TXT     Texto que aparece debajo de los datos de la partida salvada
  81. SAVEDATA_DIRECTORY      TXT     Nombre del directorio donde se halla la partida salvada
  82. SAVEDATA_FILE_LIST      BIN     Lista de fichero de partida salvada. Formato desconocido.
  83. SAVEDATA_PARAMS         BIN     Parámetros de partida salvada. Formato desconocido.
  84. SAVEDATA_TITLE          TXT     Título de la partida salvada.
  85. TITLE                   TXT     Título de la aplicación.
  86. TITLE_0                 TXT     Título de la aplicación en Japonés
  87. TITLE_2                 TXT     Título de la aplicación en Francés
  88. TITLE_3                 TXT     Título de la aplicación en Español
  89. TITLE_4                 TXT     Título de la aplicación en Alemán
  90. TITLE_5                 TXT     Título de la aplicación en Italiano
  91. TITLE_6                 TXT     Título de la aplicación en Holandés
  92. TITLE_7                 TXT     Título de la aplicación en Portugués
  93. TITLE_8                 TXT     Título de la aplicación en Ruso
  94. TITLE_9                 TXT     Título de la aplicación en ???
  95. TITLE_10                TXT     Título de la aplicación en ???
  96. TITLE_11                TXT     Título de la aplicación en ???
  97. UPDATER_VER             TXT     Utilizado por los actualizadores de FW para indicar a qué versión se actualiza.
  98.  
  99. - La clave CATEGORY describe el tipo de datos que contiene el PSP. Las opciones que se conocen son:
  100.     "MS" -> MemoryStick SaveGame (sólo en este caso, la entrada en la tabla índice indica un tamaño de 2 bytes
  101.             en vez de 3)
  102.     "MG" -> MemoryStick Game
  103.     "UG" -> UMD Game
  104.     "WG" -> WLAN Game
  105.     "UV" -> UMD Video
  106.     "UA" -> UMD Audio
  107.     "UC" -> UMD Cleaning Disc
  108.     "EG"??
  109.  
  110.  
  111. /***********/
  112. /*** PSP ***/
  113. /***********/
  114.  
  115. - Cabecera:
  116.  
  117. 0x00    DWORD firma;                //Siempre 0x7E505350 ("~PSP")
  118. 0x04    WORD atributos1;            //1 -> SCE_MODULE_ATTR_CANT_STOP
  119.                                     //2 -> SCE_MODULE_ATTR_LOAD
  120.                                     //4 -> SCE_MODULE_ATTR_START
  121.                                     //8 -> ???
  122. 0x06    WORD atributos2;            //1 -> FLAG_COMPRESS
  123.                                     //2 -> FLAG_NORELOC
  124. 0x08    UBYTE version_modulo_bajo;
  125. 0x09    UBYTE version_modulo_alto;
  126. 0x0A    UBYTE nombre[0x1C];
  127. 0x26    UBYTE version_formato;      //Siempre 1
  128. 0x27    UBYTE   num_segmentos;             
  129. 0x28    DWORD tamanio_elf;          //Tamaño del PRX (.PSP sin cabecera)
  130. 0x2C    DWORD   tamanio_psp;        //Tamaño del DATA.PSP
  131. 0x30    DWORD entrada;              //Entrada al ejecutable
  132. 0x34    DWORD offset_modinfo;       //Los 8 bits más altos se restan a los 24 bajos
  133. 0x38    DWORD tamanio_bss;
  134. 0x3C    WORD alineamiento[4];
  135. 0x44    DWORD direccion[4];
  136. 0x54    DWORD tamanio[4];
  137. 0x64    DWORD desconocido[6];
  138. 0x7C    UBYTE tipo;
  139. 0x7D    UBYTE desconocido[0x33];
  140. 0xB0    DWORD tamanio_elf_comp;       //Tamaño del PRX comprimido
  141. 0xB4    DWORD   desconocido;          //Siempre 0x8000 0000
  142. 0xB8    UBYTE desconocido[0x18];      //Siempre 0
  143. 0xD0    DWORD   id;
  144. 0xD4    UBYTE   desconocido[0x7c];
  145.  
  146. - Datos: muy probablemente el ejecutable comprimido y cifrado.
  147.  
  148. /************/
  149. /*** PSAR ***/
  150. /************/
  151.  
  152. - Tiene el siguiente formato:
  153.        
  154.         - Cabecera
  155.         - Sección A (Cabecera, Datos)
  156.         - Sección A (Cabecera, Datos)
  157.         - Sección B (Cabecera, Datos)
  158.         ... y así alternando A y B
  159.         - Sección A (Cabecera, Datos)
  160.         - Sección B (Cabecera, Datos)
  161.        
  162. - Cabecera:
  163.  
  164. 0x00    DWORD   firma;          //Siempre 0x50534152("PSAR")
  165. 0x04    DWORD   separador;      //Siempre 0x01000000
  166. 0x08    DWORD tamanio;          //Tamaño de los datos (sin contar la cabecera)
  167. 0x0C    DWORD   separador       //Siempre 0x01000000
  168.  
  169. - Cabecera de sección:
  170.  
  171. 0x00    UBYTE desconocido[0xb0];
  172. 0xB0    DWORD   tamanio_datos;          //Tamaño de los datos de la sección
  173. 0xB4    UBYTE   desconocido[4];         //¿Siempre 0x80?
  174. 0xB8    UBYTE desconocido[0x18];        //¿Siempre 0x00?
  175. 0xD0    UBYTE desconocido[4];           //¿Siempre 0x06?
  176. 0xD4    UBYTE desconocido[0xC];
  177. 0xE0    UBYTE desconocido[0x70];
  178.  
  179. - Datos de sección
  180.  
  181.         - El tipo A siempre tiene 0x110 bytes.
  182.         - El tipo B es variable en tamaño.
  183.         - Es probable que se trate de la aplicación a ser instalada por el ejecutable DATA.PSP
  184.  

29
La taberna del BIT / Investigación PSP
« en: Martes 20 de Enero de 2009, 16:03 »
Mu wenas a tod@s

Estoy haciendo una investigación sobre los ficheros ejecutables de la consola portátil de Sony PSP. Me gustaría saber en qué foro puedo poner mis avances y que la gente que le interese pueda echarme una mano  ^_^ Es una investigación personal y con fin únicamente lúdico, que no pretende violar ningún copyright ni piratear juegos ni nada por el estilo.

Saludos y animaos :)

30
La taberna del BIT / Feliz Navidad
« en: Martes 23 de Diciembre de 2008, 17:11 »
Bueno, yo no soy para nada cristiano, ni celebro estas fiestas, pero como sé que aquí hay muchos que seguramente disfruten de estas fiestas, pues me permito felicitarles por el nacimiento de su Señor y la entrada de un nuevo año, ya que seguramente no voy a visitar este foro hasta el año que viene. ¡Me voy de vacaciones a casa!

FELIZ NAVIDAD A TODOS Y PRÓSPERO AÑO NUEVO
Que lo paséis bien, y dejad la computadora (y vuestras neuronas) descansar un poco  :hitcomp:

 :beer:  :hola:

31
Visual Basic 6.0 e inferiores / Error usando IsEmpty()
« en: Lunes 1 de Diciembre de 2008, 10:32 »
Hola a todxs

Me ha surgido un error que me tiene intrigado. A ver si alguno sabe de qué se trata:

Cita de: "VB"
Sólo los tipos definidos por el usuario de módulos de objeto públicos se pueden pasar a funciones enlazadas en tiempo de ejecución o forzar a o desde  un Variant

Código: Visual Basic
  1. Modulo1.bas
  2. ''''''''''''''''''''''''
  3. If Not IsEmpty(Pasarela61850.Nodos61850) Then
  4.  
Cuando Pasarela61850 está definida en un módulo aparte y está declarada como pública:

Código: Visual Basic
  1. Modulo2.bas
  2. ''''''''''''''''''''''''
  3. Public Pasarela61850 As tPasarela61850
  4.  
Lo que no termino de entender es lo de "los tipos definidos por el usuario de módulos de objeto públicos".

¡Gracias!

32
La taberna del BIT / Bill Gates es el anticristo
« en: Jueves 27 de Noviembre de 2008, 15:52 »
Suma los códigos ASCII de

BILL GATES III
WINDOWS 95
MS-DOS 6.21

¿Qué número obtienes? AAAAAAAAAAAAAAAAAAAARGH  :adios:

"Y él obligó a todos, pequeños y grandes, ricos y pobres, libres y esclavos, a recibir una marca en su mano derecha o en su frente, de tal modo que nadie pudo comprar o vender sin la marca, que es el nombre de la Bestia o el número de su nombre. [...] Este numero es 666." (Apocalipsis 13:16-18.)

Reflexionad sobre ello...

33
Gnome / No funcionan los atajos de teclado
« en: Domingo 16 de Noviembre de 2008, 05:34 »
Hola a todxs

No consigo hacer que funcionen los atajos de teclado presonalizados mediante gconf-editor en Debian/XOrg/GNOME.

Lo hago de la siguiente manera:

  • /apps/metacity/global_keybindings y cambio el valor de run_command_1 a <Control><Alt>k
  • /apps/metacity/keybinding_commands y cambio el valor de command_1 a xkill
  • cierro gconf-editor

Pero el atajo sigue sin funcionar... ¿Alguna idea?

35
Seguridad y Criptografía / Protocolo HTTP desde telnet
« en: Viernes 24 de Octubre de 2008, 18:12 »
Un sencillo truco para poder echar vistazos interesantes a cierta información que mandan los servidores de páginas web sin necesidad de instalar nada nuevo... Funciona en todos los sistemas operativos a mi alcance.

Código: Text
  1. $ telnet www.#####.com 80
  2.  

Se nos queda el cursor parpadeando, como si estuviera colgado, pero no. Si escribimos HEAD / HTTP/1.1 (seguid escribiendo, en mayúsculas, aunque no aparezca por pantalla) y le damos a Enter 2 veces, podremos ver el resultado:

Código: Text
  1. HTTP/1.1 400 Bad Request
  2. Date: Fri, 24 Oct 2008 16:00:21 GMT
  3. Server: Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.7a mod_auth_passthrough/2.
  4. 1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.3
  5. Connection: close
  6. Content-Type: text/html; charset=iso-8859-1
  7.  
  8. Se ha perdido la conexión con el host.
  9.  

Interesante, ¿no?

Citar
telnet foros.#####.com 80

Hacemos una conexión al puerto 80 (el puerto por defecto del protocolo HTTP) del servidor especificado.

Citar
HEAD / HTTP/1.1

Petición HTTP de cabecera al servidor web. GET es la que usan los navegadores para obtener las páginas web. También se puede usar y generalmente devuelve la cabecera.

Ahora busquemos por ejemplo "Apache/2.2.9 exploit" en Google. Con un poco de conocimiento y suerte, podremos llegar a tener una cuenta de administrador en el servidor.

Les aconsejo a los administradores del sistema, si quieren que su servidor esté bien protegido, que cambien estos valores o que prohíban al servidor mostrar la cabecera en las respuestas (aparte de mantener el servidor y los añadidos siempre actualizados y parcheados).

36
Windows / Memoria virtual
« en: Viernes 17 de Octubre de 2008, 14:43 »
¿Alguien le ha encontrado alguna vez la lógica a por qué Windows usa el fichero de paginación de memoria virtual cuando hay memoria física libre? ¿Y por qué usa un fichero de paginación dentro del sistema de ficheros (con la lentitud que ello conlleva) en vez de usar una partición de intercambio y pasar de las llamadas al sistema de ficheros?

37
C/C++ / El destructor me vuelve loco...
« en: Viernes 17 de Octubre de 2008, 14:15 »
Hola chavales, ¿qué onda?

Estoy refrescando mi memoria en POO (y de paso aprendiendo la sintaxis de C++ de una vez  :P ) y he implementado una cola de enteros doblemente enlazada:

Código: C
  1.  
  2. struct tNodoCola
  3. {
  4.     int valor;
  5.     tNodoCola * sig;
  6.     tNodoCola * ant;
  7. };
  8.  
  9. struct tCabeceraCola
  10. {
  11.     tNodoCola *primero, *ultimo;
  12.     int numelementos;
  13. };
  14.  
  15. class cColaEnteros
  16. {
  17.     tCabeceraCola * pCabecera;
  18.    
  19. public:
  20.     //Constructor
  21.     cColaEnteros(void);
  22.  
  23.     //Destructor
  24.     ~cColaEnteros(void);
  25.  
  26.     //Operadores
  27.     cColaEnteros operator + (cColaEnteros cola);
  28.  
  29.     //Métodos
  30.         // Aquí van varios métodos...
  31.  
  32.     //Colegas
  33.     friend class cColaEnteros;
  34. };
  35.  
  36.  

El desctructor y el operador + implementados tal que así:

Código: C
  1.  
  2. cColaEnteros::~cColaEnteros(void)
  3. {
  4.     tNodoCola * aux1, * aux2;
  5.  
  6.     if (!this->Esta_Vacia())
  7.     {
  8.         aux1 = pCabecera->ultimo;
  9.  
  10.         while (aux1)
  11.         {
  12.             aux2 = aux1->ant;
  13.             delete aux1;
  14.             aux1 = aux2;
  15.         }
  16.  
  17.         delete pCabecera;
  18.     }
  19. }
  20.  
  21. cColaEnteros cColaEnteros::operator + (cColaEnteros cola)
  22. {
  23.     tNodoCola * aux;
  24.  
  25.     aux = cola.pCabecera->primero;
  26.  
  27.     while (aux)
  28.     {
  29.         this->Insertar_Elemento_Ultimo(aux->valor);
  30.         aux = aux->sig;
  31.     }  
  32.  
  33.     return *this;
  34. }
  35.  
  36.  

Sin embargo, me da error de violación de segmento :brickwall: en la línea (en main()):

Código: C
  1. cola3 = cola1 + cola2;
  2.  

Si imprimo los valores en el interior del operador, la cola this queda con los nuevos valores concatenados de cola, pero al salir del operador y querer imprimirlo en main(), veo que los valores de la cola son todos incorrectos, con punteros corruptos.

Si comento el destructor funciona bien, así que el problema es el destructor, ya que suprime los valores de ambas colas al salir del operador + (porque son variables locales al método). Pero necesito usar el destructor para liberar la memoria usada una vez finalizado el programa, y tampoco quiero que se tenga que llamar a un método de descarga cada vez que se deje de usar una cola, que para eso están los destructores. ¿Alguna idea de cual es el error?

¡Gracias de antemano!

38
Seguridad y Criptografía / Escaneo de puertos
« en: Martes 30 de Septiembre de 2008, 13:22 »
Primero, aclarar que es necesario un conocimiento medio del protocolo TCP/IP. Aquí van unos enlaces para los interesados:

Introducción:
http://infase.es/FORMACION/INTERNET/tcpip.html
http://es.wikipedia.org/wiki/TCP/IP
http://www4.uji.es/~al019803/tcpip/
http://www.geocities.com/SiliconValley/ ... enido.html

Avanzado:
http://www.rfc-es.org/

¿Qué es el escaneo de puertos?

Es una técnica que nos permite saber qué puertos TCP/IP están a la escucha (estado LISTEN) en un determinado host. Un puerto TCP/IP en escucha (abierto) acepta conexiones entrantes, lo cual significa que hay un servicio que procesa dichas conexiones y sus datos, por lo tanto una posible vulnerabilidad y puerta de acceso a posibles atacantes.

Como ya sabréis, TCP/IP provee de 2 protocolos para el nivel de transporte: TCP (orientado a conexión) y UDP (no orientado a conexión). TCP establece primero una conexión entre ambos hosts, usando la siguiente secuencia:

Código: Text
  1.  
  2. Puerto Abierto
  3.  
  4. Host1 ->     SYN     -> Host2
  5. Host1 <-   SYN/ACK   <- Host2
  6. Host1 ->     ACK    -> Host2
  7.  
  8.  

Una vez completado este paso, la conexión pasa a estar establecida (estado ESTABLISHED). Para que esto ocurra, Host2 tiene que tener el puerto abierto (en escucha). Si esto no ocurre, Host2 envía un paquete TCP RST a Host1 en respuesta al paquete SYN.

Código: Text
  1.  
  2. Host1 -> SYN -> Host2
  3. Host1 <- RST <- Host2
  4.  
  5.  

Con esto podemos averiguar si un puerto TCP está abierto o cerrado.

En el caso de un puerto UDP, el tema es más complicado. UDP no está orientado a conexión, por lo tanto non establece ningún contacto previo. Simplemente se envían los datos. En este caso, si recibimos una respuesta a nuestro paquete, podemos asegurar que el puerto está abierto. Pero si no recibimos ninguna, no podemos estar seguros. ¿Llegó el paquete a su destino? ¿Eran correctos los datos para que el servicio del puerto nos responda? ¿Está el puerto cerrado? No podemos responder con certeza a estas preguntas. Por lo tanto, el uso de UDP para averiguar si un puerto está abierto es menos eficaz que el uso de TCP.

39
Seguridad y Criptografía / Hacking ético
« en: Jueves 25 de Septiembre de 2008, 09:50 »
Muy buenas a todos, quisiera comenzar un pequeño tutorial de hacking ético :alien: (testeo de vulnerabilidades) y primero voy a preguntar si los moderadores y administradores del foro no tienen ningún inconveniente en ello. Personalmente creo que no contraviene ninguna norma. Me pueden responder aquí o con un mensaje privado. Gracias de antemano, un saludo.

41
Visual Basic 6.0 e inferiores / Problema con automatización de hojas Excel
« en: Lunes 15 de Septiembre de 2008, 09:27 »
A ver si alguien tiene alguna idea de por qué puede producirse este error, al comenzar el FOR (línea 1):

Código: Visual Basic
  1.  
  2. Dim xlsProtocol As Excel.Workbook
  3. Dim Hoja As Excel.Worksheet
  4. {...}
  5. For Each Hoja In xlsProtocol.Worksheets
  6.      If UCase(Trim(Hoja.Name)) = UCase(Trim(NombrePerfil)) Then
  7.           Aux = False
  8.      End If
  9. Next
  10.  
  11.  

"El procedimiento Let de la propiedad no está definido y el procedimiento Get no ha devuelto un objeto"

Cualquier pista es la bienvenida. Gracias de antemano.

42
La taberna del BIT / Me despido
« en: Jueves 4 de Septiembre de 2008, 09:27 »
Bueno, sinceramente, me había gustado este foro, hasta que algunos "moderadores" (si se les puede llamar así, más bien CENSORES), se dedican a quitarme los comentarios. Sé que hay comentarios que estuvieron fuera de lugar y entiendo que se quiten, no me quejo de eso, pero desde luego otros no y no lo voy a aguantar.

Si le digo a uno en que reclame su disco de Windows Vista que para eso pagó por su licencia, ningún moderador tiene ningún argumento  :no: ético/político/legal para borrarme el post salvo que sea un friki de Microsoft y le haya molestado mi comentario de que esta empresa nos toma el pelo un día sí y otro también. Si aconsejarle a la gente que exija sus derechos está mal visto en este foro, pues buscaos a otro que os eche una mano. Aquí sólo me he dedicado a resolver las dudas de la gente (aparte de algún que otro chiste) sin pedir nada a cambio. Y esto es lo que obtengo. Desde luego, uno de los foros más desagradecidos en los que he tenido la oportunidad de participar. La verdad es que ni me siento molesto, simplemente decepcionado.

Que tengan un buen día.

43
Visual Basic 6.0 e inferiores / Programa para calcular tiempos de ejecución
« en: Lunes 1 de Septiembre de 2008, 11:57 »
Bueno, aquí les dejo el código fuente y el compilado de un pequeño programilla que he hecho esta mañana para calcular lo que tarda en ejecutarse un EXE (desde que se abre hasta que se cierra). Cualquier comentario y/o valoraciones y/o críticas son las bienvenidas por supuesto.

[attachment=0:m8vggi2v]TiempoEjecucion.7z[/attachment:m8vggi2v]

44
Visual Basic 6.0 e inferiores / Emulador de CPU elemental
« en: Miércoles 27 de Agosto de 2008, 23:26 »
Bueno, aquí les dejo un proyecto personal de hace un par de años, el emulador de una CPU muy muy sencilla, básica. Hay que programar en lenguaje máquina, números decimales o hexadecimales. Hay un par de ficheros de texto y una imagen explicativa del diseño de la CPU. TYambién está PORHACER.TXT, cuyo nombre es bastante autoexplicativo. Si aguien se anima a echarle mano, adelante.

A ver qué les parece. Ya me comentan. :bad:  :good:

45
La taberna del BIT / Una de política
« en: Lunes 25 de Agosto de 2008, 13:22 »
Bueno, bueno, ya que todo el mundo lo estaba esperando... ¿Cuál es el dirigente latinoamericano que más les gusta y el que menos? ¿Por qué? ¿Preferirían otro tipo de sistema político/económico en su país?

Yo soy marroquí, pero tengo mis opiniones sobre latinoamérica. Pero venga, echen el balón a rodar   :)

Páginas: 1 [2]