Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - Mavis

#201
¿Qué son los scripts?

Los scripts permiten a los diseñadores agregar sin mucho trabajo sus propias funciones al Windows Live Messenger y le permite a los usuarios beneficiarse de una extensa lista de opciones adicionales para su cliente de Messenger. Si eres un programador, lo primero que deberías hacer es revisar la documentación. Si eres un usuario normal, simplemente navega por la base de datos por algún script que pueda interesarte.

Soy un programador, ¿cómo puedo crear mi propio script?

¡Fácil! Sigue el conejo blanco hacia la You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, una sola descarga con todo lo que necesitas saber acerca del sistema de scripts de Messenger Plus! Live. Toda la documentación está contenida en un sólo archivo CHM que puede ser visto sin la necesidad de ningún programa adicional en Windows XP. Nota también que la documentación puede ser descargada y vista automáticamente desde el editor de scripts de Messenger Plus! Live. Más información puede ser encontrada en los You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login o varios sitios externos como You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Ya creé un script y quiero que otros lo descarguen

¡Excelente! Échale un vistazo a las You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login. Después de ser revisado, si no se encuentra ningún problema, pondremos tu script en la base de datos para que millones de personas puedan disfrutar del fruto de tu trabajo. Recuerda enviarnos cualquier actualización que hagas si la mejoras después.

Documentacion oficial de Scripts:

Si eres programador y quieres crear tu propio script para msn descargandote este programa los creas y los subes a tu msn.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#202
Calcula los múltiplos en un rango determinado (pasado por argumentos).




Código: lua
function Multiplos(nFrom,nTo,nNum)
    local r = ""
    for i = nFrom,nTo do
        if i % nNum == 0 then
           r = r..i..","
        end
    end
    return r
end

-- Ejemplo de uso:
print(Multiplos(2,200,15))


Autor: .:WindHack:.




Saludos!
#203
Otros lenguajes Scripting / [Lua] Cifrado César
Julio 13, 2011, 05:42:51 PM
Código: lua
--Cifrado César 18/11/10
function Cifrar(cadena,clave)
if tonumber(clave) and tonumber(clave)%1==0 then
local palabra = ""
local separar = {}
for i = 1,string.len(cadena) do
local letra = string.byte(string.lower(cadena),i)
table.insert(separar,letra)
end
for k = 1,#separar do
if separar[k]>=97 and separar[k]<=122 then
if separar[k]+clave>122 then
palabra = palabra..string.char(separar[k]-(26-clave))
else
palabra = palabra..string.char(separar[k]+clave)
end
else
palabra = palabra..string.char(separar[k])
end
end
return palabra
else
return false
end
end

while true do
print(">Texto a cifrar:")
texto = io.read()
print(">Clave:")
llave = io.read()
cifrado = Cifrar(texto,llave)
if cifrado then
print("\n>>"..cifrado.."\n")
else
print("Error, intente de nuevo\n")
end
end


Autor: MatU_MalO

Saludos!
#204
Otros lenguajes Scripting / [Lua] Número Par/Impar
Julio 13, 2011, 05:41:35 PM
Retorna si el número ingresado es par o impar.




Código: lua
while true do
local x = tonumber(io.read())
if x and (x%2 == 0) then print("El numero "..x.." es par\n") else print("El numero "..x.." es impar\n") end
end


Autor: MatU_MalO




Saludos!
#205
Seguridad / Re:[Encuesta] Mejor Antivirus
Julio 13, 2011, 04:44:37 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Veo mucha gente aqui que no se da cuenta de que el mejor antivirus es uno mismo. ¿Por que no se ha puesto la opcion de no tener?
Pasense por algun foro de indeteccion y veran que ninguna mierda de esta lista les servira de mucho...

Con ese pensamiento, todos pueden caer algún dia. Mejor prevenir que curar.

Por otro lado, pensando así, porque no nos cambiamos a linux? y disminuimos en más de un 94% la posibilidad de ser infectado.

Saludos!
#206
Python / Re:[Python]No-AutoRun
Julio 13, 2011, 12:19:53 AM
Investiga sobre el módulo winreg y sobre como evitar el autorun.inf desde el registro, con ese módulo puedes modificar el registro y evitar así mismo que se ejecute. Tambien podrias realizar otros temas sobre Analizis Forense mediante el uso de los mismos.

Lindo código compañero!
#207
Encontré este manual por la web, no vi que se hablara en el foro, y por donde lo vi tampoco hablaban.
Simplemente, disfruten!




1-Breve historia
2-Enlaces importantes
3-Primer Paso
4-Comentarios
5-Variables
   Declarando variables: cómo crearlas,
      Tipos:
          a)Cadenas
          b)Números
          c)Booleanas
          d)Nil
      Alcance:
          a)Globales
          b)Locales
6-Funciones
   Definiendo funciones(function,argumentos,end)
   Return
   Funciones predefinidas
   Funciones vararg
      a)io.read()
7-Condicionales
   Estructura IF (if then, or, and)
   Signos de comparación
   Not
   Else y Else if
8-Bucles (Estructuras de reiteración)
   For Do
   While
9-Arreglos y Tablas
10-Palabras reservadas
11-Ejecutando un script fácilmente
12-Códigos de ejemplo
   Un juego simple



Comencemos...

1.Breve historia
LUA es un lenguaje de scripting multiplataforma derivado de C++, es muy ligero y su semántica es muy similar a otros lenguajes de scripting, por lo que lo pueden entender muy rápidamente. Fue creado en 1993 en una universidad brasileña. En la actualidad (desde hace algunos años), lua se utiliza como soporte para otras aplicaciones gracias a su simplicidad, principalmente sistemas de bases de datos, o "scripts" para juegos (Por ejemplo, el conocidísimo WoW [World of Warcraft]).

2.Enlaces importantes
Lo primero que van a tener que hacer es descargárselo. Aquí tienen la versión más reciente, 5.1 para Windows:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

También acá subí el srlua, una herramienta para crear .exe standalone de sus scripts:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Desde la página oficial de LUA, pueden testear sus programas:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Y les recomiendo bajarse el Notepad++, no sólo para LUA, se los recomiendo para tenerlo ya que es excelente para cualquier lenguaje:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

3.Primer paso
Una vez que lo tienen, lo instalan y abren LUA (Command Line). Ésta es la consola, donde probarán lo básico.

Hello World
Bueno, como ya sabían, vamos a empezar por hacer que la consola nos devuelva el mensaje "Hola mundo". Para eso vamos a utilizar la sentencia print. Ésta va de una forma muy simple: print (mensaje), y automáticamente se devolverá mensaje en la pantalla. Los paréntesis no son obligatorios generalmente, pero pueden ocurrir errores (en especial entre versiones diferentes) cuando se quiere imprimir el valor de una variable por ejemplo, por lo que es preferible usarlos.

Ejercicio: Hacer que diga Hola Mundo

4.Comentarios
Los comentarios se colocan con el símbolo de comentarios --. Todo lo que siga detrás de éste, será tomado como comentario por lo que el programa no lo tendrá en cuenta. Están en el código sólo para agregar anotaciones que guiarán a quien lo lea (sea el creador del programa o no), harán el código más ordenado, profesional y entendible.
Si queremos hacer comentarios de varias líneas, podemos utilizar -–[[ para comenzar, y ]] para terminar. Ejemplo:

Código: text
-–[[ Esto es un ejemplo
de un comentario con varias líneas
para el tutorial de LUA
Nada de esto va a ser tomado en cuenta
]]


5.Variables
Las muy conocidas variables, son palabras que contienen un valor. Éstas las utilizaremos a lo largo del código de cualquier programa, por lo que son muy importantes.
Por empezar, no hay que definir el tipo de variable, sino que se "autodefine" según los datos que le asignemos.

Declarando variables
Las variables se crean mediante un nombre, el símbolo de asignación = (igual) y la información a asignar. El nombre debe ser descriptivo para que sea más comprensivo, y tampoco podemos usar palabras reservadas para este.
Entonces, para declarar una variable escribimos:
nombre = información. Por ejemplo: nombre = "Carlitos".

Ejercicio: Probar declarar variables en la línea de comandos y luego escribir el nombre de la variable sola para comprobar que devuelve.

Como les dije previamente, el tipo de la variable va a depender de lo que le ingresemos. Noten que en el ejemplo anterior, entrecomillé a Carlitos. Esto es porque las cadenas (string) van entre comillas dobles (" "). Los números, sean enteros, con coma (float, o de coma flotante), reales, etc; no van entre comillas, si los ponemos entre comillas, entonces serán cadenas por más de que sólo contenga números.

a)Cadenas
El tipo string se forma de todo tipo de caracteres: letras, números y símbolos. Se caracteriza por ir entre comillas. Una forma de usarlos es mediante la sentencia print. Por ejemplo:
Código: text

bienvenida = "Hola Gente"
print (bienvenida)


Las cadenas se pueden formar con otras variables. Para hacer esto tenemos que concatenar. El símbolo de concatenación de lua es: ..
Por ejemplo, supongamos que en una variable tengo la cantidad de alumnos hombres de una clase y en otra las mujeres. Con una cadena quiero decir "La clase tiene X hombres, y N mujeres". Entonces quedaría así:
Código: text

cmujeres = 17
chombres = 11
mensaje = "La clase tiene "..chombres.." hombres, y "..cmujeres.." mujeres."
print (mensaje)


Como ven, las variables chombres y cmujeres van entre .., para concatenarlos en la cadena. Ademas se deja un espacio, ya que si no se dejara el espacio la devolución sería:
La clase tiene11hombres, y17mujeres.

Ejercicio: Comprobar que ocurre si se colocan las variables solas sin concatenarlas (es decir quitando los "..").

b)Números
Los números se utilizarán principal y obviamente para cálculos, y para recordar datos numéricos y mostrarlos cuando sea necesario. Los cálculos se realizan mediante operadores, los principales: +(suma); -(resta); *(multiplicación); /(división); ^n (exponenciar a n). Las operaciones se pueden expresar como cálculos combinados, es decir, se pueden utilizar los paréntesis, que hacen el código más ordenado.
Así, como podemos sumar número normalmente, también podemos sumar las variables que los contienen.

Con el ejemplo previo, podemos mostrar la cantidad total de alumnos de la clase:

Código: text

cmujeres = 17
chombres = 11
ctotal = cmujeres+chombres
print ("La clase tiene "..ctotal)


Ejercicios: *hacer un programa que imprima el mensaje "El colegio tiene X alumnos", sabiendo que tiene 3 años (clases): El primer año tiene el total del ejemplo anterior, el total del segundo es el doble del primero, y el tercero la mitad del primero. Usar variables y print ().
*Comprobar que ocurre si se intenta sumar una variable cadena con una variable número. Ej.: nombre = "Juan"
numero = 8
nombre+numero


c)Booleanas
Las booleanas representan un dato que puede ser verdadero (true) o falso (false). También podríamos usar los números 0 y 1, o cadenas como "si" y "no" para cumplir la misma función, pero las booleanas quedan más profesionales, además de ser las que menos memoria consumen. Se asignan igual que el resto: encendido = true, encendido = false.

4)Nil
El valor nil corresponde justamente a un valor nulo, es decir no es nada. Si se lo asignamos a una variable (chombres = nil, por ejemplo); la destruímos.

Alcance
a)Globales
Las variables además poseen alcance. Las variables como fueron declaradas previamente son globales, esto quiere decir que podrán ser usadas en cualquier parte del código, existirá en cualquier estructura que se use, y si se cambia su valor se cambiará en el código completo.
b)Locales
En cambio, si a la declaración de la variable le colocamos la palabra reservada local, la variable se creará sólo para esa estructura, es decir que si la declaramos dentro de una función, la variable existirá en esa función, pero si la llamamos fuera de la función, no existirá, y si existe es porque la creamos previamente, y seguramente tendrá otro valor, ya que aunque tengan el mismo nombre son dos variables distintas. Aún aunque sean locales, es recomendable no usar los mismos nombres en las funciones.


6.Funciones

Definiendo funciones
Una función es un bloque de código que al ser llamado, hace que el flujo del programa se detenga, se dirija a la función, ejecute sus sentencias, y regrese al flujo normal. Esto nos permite evitar las repeticiones, acortar el código, hacerlo más simple, más profesional, más ligero y más entendible.
Las funciones se definen con la palabra reservada Function, el nombre de la función, y sus argumentos entre paréntesis, separados por comas. El nombre de las funciones al igual que en el de las variables, debe ser descriptivo para ser entendible.
Los argumentos serán variables locales que ingrese el usuario al llamar la función, y que luego la función los maneje y los utilice para realizar una determinada orden.
Una vez escrito el conjunto de órdenes y sentencias, cerramos la función con End.

Return
Pero, antes de cerrar la función, podemos usar return DEVOLUCIÓN. Esto hace, que la función no se utilice para modificar algo, sino para obtener un dato que luego será manipulado. Si no usamos return, entonces la función será considerada como un procedimiento que hará cambios en el código. Por ejemplo, podemos hacer que dentro de una función se le cambie el valor a 5 variables, por lo que no es necesario usar return. Mientras que si una función se utilizara para que a una variable se le asigne el valor de x+y; se utilizaría return x+y, y al llamarla se pondría cuenta = hacercuenta(10,8)

Por ejemplo, supongamos que yo quiero hacer un programa que haga una determinada suseción de operaciones de unos gastos que voy a hacer, que sería muy repetitivo de no ser que no hiciera una función para llamarla cada vez que lo necesite. La función tomaría dos números, los sumaría entre sí, al resultado le sumaría 10 y luego lo multiplicaría por 3. Por lo tanto, mi programa sería:

--Declaramos la función, como "cuentas", con los argumentos a y b
Function cuentas(a,b)
   local primercuenta = a+b
   --Fíjense que utilizo una variable local, será sólo existente en ésta función
   local segundacuenta = (primercuenta+10)*3
   --Noten que utilizo paréntesis, sino multiplica 10*3 y luego se lo suma a primercuenta
   return segundacuenta
End
--Ahora llamo a la función, asignándole el valor de devolución (el return, osea
--segunda cuenta) a una variable que luego la imprimiré

vtotal = cuentas(7,8)
print ("El total a pagar será de "..vtotal.." pesos")

Ejercicios: *Probar llamar la función cuentas cambiando los argumentos y viendo que devuelve.
*Lograr imprimir la función cuentas(a,b) directamente, sin asignársela a una variable previamente.
*Probar llamar a la función en la línea de comandos directamente, sin ingresarla dentro de print, y ver que ocurre.

Funciones Predefinidas
Las funciones predefinidas son aquellas que ya vienen definidas por LUA, ya existen aunque no las veamos y las podemos utilizar sin necesidad de definirlas. Estas son una gran cantidad y se dividen según la función que cumplen, por ejemplo están las math que realizan cálculos matemáticos (funciones trigonométricas, raíz cuadrada, etc) os que devuelve datos del sistema (como la fecha, la hora, eliminar archivos, etc). Otras no pertenecen a ningún grupo, incluso print es una función predefinida, o acaso no notaron los paréntesis.
Una muy útil es dofile(ruta), que permite incluir un script o archivo de texto en nuestro programa. Es muy interesante para realizar bases de datos.
Las funciones tonumber(variable) y tostring(variable), como su nombre lo indica, permiten cambiar el tipo de la variable que le ingresemos.
Para más documentación sobre las funciones predefinidas (son bastantes pero no todas del todo necesario, por eso si realmente necesitan una búsquenla o pídanme ayuda), en Google, la mayoría está en inglés pero es entendible.

Ejercicio: Realizar un programa corto pero útil, que utilice variables y una (y si es posible varias) funciones, y por lo menos 2 funciones predefinidas; que esté bien ordenado, con nombres claros y comentar todo lo posible. Puede estar basado en el ejemplo del colegio, de los pagos, o lo que quieran.


a)io.read()
Como les dije, hay muchas funciones predefinidas, todas muy útiles; pero dentro de ellas voy a resaltar algunas. Una de estas es You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login (similar a raw_input). Lo que hace es pedirle al usuario que ingrese algo y presione enter para continuar. Lo que escriba se le puede asignar, por ejemplo, a una variable...de esta manera:

[Ejemplo]
Código: text
>nombre = io.read()
_                   El "_" representa el puntero que aparece para que el usuario ingrese
algo, supongamos "Marta"
>print(nombre)
Marta


b)os.execute("pause")
Otra es os.execute("pause"), que es el equivalente a system("pause"). Lo que hace es pausar el programa y no continuar hasta que no se aprete una tecla, mostrando en pantalla el clásico mensaje "Presione una tecla para continuar..."


Parámetros extra y funciones vararg
Lua tiene una propiedad característica, en la que al llamar una función, si le colocamos parametros de más, no los tomará en cuenta. Esto se relaciona con las funciones vararg. Vararg proviene de "variable arguments" (probablemente). Dichas funciones, son iguales al resto sólo que en sus argumentos contiene una expresión vararg: ... (tres puntos). Quiere decir que estas funciones no definen sus argumentos, sino que toman todos los extras y los administran para hacer ciertas devoluciones.

Les voy a explicar con ejemplos de funciones. Supongamos que nosotros tenemos la función sumar(a,b) (y que en el cuerpo sume a+b). Por lo que les dije primero, si nosotros llamamos sumar(1,4,6), va a sumar 1+4 (a+b) y devolverá 5, sin importar el 6. Si nosotros llamamos sumar(1), entonces devolverá error al intentar sumar 1 con nil (ya que al no valorar b, lo toma como nil).
Si en cambio definimos una función cuentas(a,b,...), estoy utilizando "...". Si lo llamamos como cuentas(1,5); tomará a y b como number, y a "..." lo descartará ya que no es necesario. Mientras que si llamamos como cuentas(1,5,6,7,8) tomará todos los numeros que ingresamos como number, gracias al vararg.

También podemos utilizar el múltiple return, colocándolos entre comas. Ejemplo:

function contar()
           return 1,2,3,4
end

Si esa función la usamos para llamar a cuentas: cuentas(contar()), sería como llamarla así: contar(1,2,3,4), por lo que tomará esos 4 valores como number.


7-Condicional
El condicional IF, es una estructura que permite colocar un cuerpo con un conjunto de órdenes que se ejecutarán sólo si la condición establecida es verdadera. Si conocen lo básico de cualquier lenguaje de programación actual sabrán muy bien de que hablo, sino, lo entenderán muy fácilmente.

IF, AND y OR
Es tan simple como esto: (Ejemplo) Si está lloviendo, entonces llevar un paraguas. La estructura es
If condición Then
Órdenes
End


Si nos olvidamos de alguna de éstas palabras (if, then, o end) o la colocamos en posición incorrecta, como en cualquier otra estructura obtendremos un error.

Además contamos con dos reservadas más, OR y AND. El and nos permitirá usar varias condiciones (Ejemplo en castellano: Si es día y es fin de semana entonces ir de picnic [IF es de dia AND es fin de semana THEN ir de picnic). En este caso se deben cumplir las dos condiciones, si se cumple una y la otra no entonces no es válido.
En cambio, si utilizamos OR, puede que se cumpla una o la otra, o ambas. (Si es fin de semana O es feriado, entonces no ir al colegio [IF es fin de semana OR es feriado THEN no ir al colegio])

Si el or se utiliza dentro de una condición sin iniciar una condición distinta, es decir en la misma condición, ejemplo: if calzado == "zapatilla" or "zapato" or "sandalia" then; entonces la condición va a observar la primer cadena, y si es correcta la va a tomar, sino va a proseguir con la siguiente y así hasta encontrar una correcta. Si no lo hace, entonces la condición es falsa.

Si la sentencia es una sola orden, no un conjunto, entonces se puede hacer en una sola linea IF condición THEN sentencia, sin necesidad de ponerlo en vertical.
Si la condición es una booleana, entonces no es necesario poner IF variable==TRUE THEN, se puede poner IF variable THEN, entendiéndose que es TRUE.


Signos de Comparación
Como les expliqué recién, IF se forman de IF condición THEN. Esa condición debe ser una expresión que solo permitirá ejecutar la sentencia si se cumple. Esta expresión se forma con caracteres especiales para crear una condición. Ellos son:

> (mayor que)
< (menor que)
== (igual a. RECUERDEN QUE el signo de comparación "igual que" es ==. Si colocamos un solo igual (=), estaremos utilizando el signo de asignación, para crear o asignar una variable)
>= (mayor o igual que. EL ORDEN DEBE SER > y luego =, Y SOLO EN ESE ORDEN)
<= (menor o igual que)
~= (desigual a)

Igualar a Nil: si igualamos a nil (==nil), entonces lo que haremos es preguntar si sierta variable existe o no.
if variable==nil (variable no existe)
if not variable==nil (variable existe)
if variable~=nil (variable existe)


NOT
Si a nuestro condicional le agregamos un Not detrás, entonces la condición debe ser incorrecta para que se pueda ejecutar la sentencia. Para que se entienda: Si no es fin de semana entonces ir al colegio (If not fin de semana then ir al colegio).
Con las booleanas, si colocamos IF not variable THEN, se entiende que queremos decir IF variable==false then. Cualquiera de las dos maneras es correcta, como les explicaba anteriormente.

Else y Else If
Else (que se puede traducir como "sino", "en cambio"), como la palabra lo dice, nos permite ejecutar un conjunto de órdenes en caso de que ocurra algo distinto a la condición sugerida. No es obligatorio, pero si muy útil. Su sintáxis es muy similar a muchos otros lenguajes de programación. Como vengo explicándoles "con lenguaje natural", voy a hacerlo con el Else para que lo comprendan bien.

SI está lloviendo ENTONCES (If...Then)
llevar un paraguas
SINO (Else)
dejarlo en casa

Pero, también, sino se cumple la condición principal, podemos establecer otra condición, si esa no se cumple podemos establecer otra, y así hasta que una se cumpla o ninguna lo haga, y siga de largo. Para hacer esto podemos poner:
IF condición principal THEN
sentencia
ELSE IF otra condición THEN
sentencia
ELSE IF otra condición mas THEN
sentencia
ELSE
sentencia

Como verán termina, con "ELSE sentencia".
Ejercicio: Comprender que hace ese "ELSE sentencia" final.


Ahora, prosigan con los bucles. Allí podrán ver pequeños ejemplos de la utilización de IF y ELSE.


8-Bucles
Los bucles son estructuras que nos ahorrarán muchas iteraciones. Es necesario conocerlos muy bien para saber utilizarlos debido a que son muy recurrentes y el no conocerlos puede llevarlos a hacer códigos extremadamente raros, largos y poco vistosos, y aún menos entendibles.

For...do
Los bucles for son un bloque que al terminar de ejecutarse sus órdenes, en vez de continuar con el flujo del programa, volverá al inicio del bucle y repetirá las órdenes. Ésta repetición se realizará las veces que el usuario lo indique. La repetición puede ser un número directo o puede ser una variable, por lo que, claramente, se pueden crear funciones donde el usuario ingrese el rango del bucle. Los for se usan de la siguiente forma: for variable = inicio,final do.
Vamos por partes, primero comenzamos por for(palabra reservada), luego seguimos por variable. ¿Qué es eso de variable? quiere decir que ingresaremos un nombre de variable (local) utilizada para el bucle que luego será destruída. Cada vez que el bucle se repita el valor de la variable aumentará en 1, es decir que si el rango del bucle es de 1 a 5, entonces el valor de la variable al principio será 1, luego 2, 3, 4 y por último 5.
inicio y final determinarán el rango, por ejemplo: 1,5 ; 1,10; 6,45; etc.
Finalmente do. Luego debajo de eso colocaremos el conjunto de órdenes a ejecutar, y debajo end para terminar.
Lo más interesante de esto, es ciertamente la variable. Ésta será la base del for, y la podemos manipular para incluirla en la sentencia a ejecutar. Por ejemplo, si yo quiero "contar ovejas", y no detenerme hasta no haber contado 12, podría hacer esto:

Código: text

for numoveja = 1,12 do
--Vamos a hacerlo interesante, con if
if numoveja==1 then --Si el número es 1 entonces dice "Veo una oveja"
print ("Veo una oveja")
else --En cambio, si son mas de 1 dice "Veo X ovejas", sino queda feo
print ("Veo "..numoveja.." ovejas")
end
end
print("No veo más ovejas :(")


Espero que ahora lo hayan entendido mejor.

Ejercicio: Realizar un for que cuente hasta 20, pero de 2 en 2 comenzando por 2 (imprimiendo con print:
2
4
6
8
10
etc...)

While...do
Bueno, este bucle repetirá un bloque mientras una expresión sea verdadera. Por ejemplo, si le decimos que repita las órdenes hasta que variable<=5 (variable sea menor o igual que 5), y dentro de las órdenes colocamos variable = variable+1 (siendo que variable empieza como = 1), el bloque se repetirá 5 veces, ya que irá sumando su valor hasta que en un momento variable será mayor que 5 y la expresión será falsa; en ese momento el bucle terminará y el programa seguirá su flujo normal.
En este caso, haremos una cuenta regresiva...

Código: text

gregresiva = 10
while gregresiva>=0 do
If gregresiva>0 then
print (gregresiva)
else
print ("Feliz Navidad!")
end
end

Devolución: 10
9
8
7
6
5
4
3
2
1
Feliz Navidad!

Ejercicio: Buscar sobre el bucle repeat...until




Fuente: Foro Portal Hacker
#208




Contenido:

INTRODUCCIÓN
Primeros pasos con ActionScript
Destinatarios
Requisitos del sistema
Utilización de la documentación
Convenciones tipográficas
Términos utilizados en este documento
Recursos adicionales
PARTE I: Bienvenido a ActionScript
CAPÍTULO 1: Novedades de Flash MX 2004 ActionScript
Elementos de lenguaje nuevos y modificados
Nuevo modelo de seguridad y archivos SWF heredados
Transferencia de scripts existentes a Flash Player 7
Cambios en el editor de ActionScript
Cambios en la depuración
Nuevo modelo de programación orientada a objetos
CAPÍTULO 2: Conceptos básicos de ActionScript
Diferencias entre ActionScript y JavaScript
Compatibilidad de ActionScript con Unicode
Terminología
Sintaxis
Tipos de datos
Asignación de tipos de datos a elementos
Variables
Utilización de operadores para manipular los valores de las expresiones
Especificación de la ruta de un objeto
Utilización de funciones incorporadas
Creación de funciones
CAPÍTULO 3: Escritura y depuración de scripts
Control de la ejecución de ActionScript
Utilización del panel Acciones y la ventana Script
Utilización del editor de ActionScript
Depuración de los scripts
Utilización del panel Salida
Actualización de Flash Player para realizar pruebas
Manual Flash ActionScript
Manuales Macromedia Flash MX 2004 español
Curso guia gratis
Gratuito pdf
Tutorial banners
Tutoriales actionscript
PARTE II: Gestión de eventos y creación de interacciones
CAPÍTULO 4: Gestión de eventos
Utilización de métodos de controlador de eventos
Utilización de detectores de eventos
Utilización de controladores de eventos de botones y de clips de película
Creación de clips de película con estados de botón
Ámbito del controlador de eventos
Ámbito de la palabra clave "this"
CAPÍTULO 5: Creación de interacciones con ActionScript
Eventos e interacciones
Control de la reproducción de archivos SWF
Creación de interactividad y efectos visuales
Análisis de un script de ejemplo
PARTE III: Trabajo con objetos y clases
CAPÍTULO 6: Utilización de clases incorporadas
Clases e instancias
Información general sobre las clases incorporadas
CAPÍTULO 7: Trabajo con clips de película
Control de clips de película con ActionScript
Llamada a varios métodos en un solo clip de película
Carga y descarga de archivos SWF adicionales
Especificación de una línea de tiempo raíz para archivos SWF cargados
Cargar archivos JPEG en clips de película
Modificación de la posición y el aspecto de un clip de película
Clips de película que se pueden arrastrar
Creación de clips de película en tiempo de ejecución
Adición de parámetros a clips de película creados de forma dinámica
Gestión de las profundidades de los clips de película
Dibujo de formas con ActionScript
Utilización de clips de película como máscaras
Gestión de eventos de clip de película
Asignación de una clase a un símbolo de clip de película
Inicialización de las propiedades de clase
CAPÍTULO 8: Trabajo con texto
Utilización de la clase TextField
Creación de campos de texto durante la ejecución
Utilización de la clase TextFormat
Aplicación de formato al texto con hojas de estilos en cascada
Utilización de texto en formato HTML
Creación de texto desplazable
CAPÍTULO 9: Creación de clases con ActionScript 2.0
Principios de la programación orientada a objetos
Utilización de clases: un ejemplo sencillo
Creación y utilización de clases
Miembros de clase e instancia
Creación y utilización de interfaces
Introducción a la ruta de clases
Utilización de paquetes
Importación de clases
Métodos get/set implícitos
Creación de clases dinámicas
Cómo se compilan y exportan las clases
PARTE IV: Trabajo con datos y medios externos
CAPÍTULO 10: Trabajo con datos externos
Envío y carga de variables hacia y desde una fuente remota
Envío de mensajes hacia y desde Flash Player
Funciones de seguridad de Flash Player
CAPÍTULO 11: Trabajo con elementos multimedia externos
Información general sobre la carga de archivos mutimedia externos
Carga de archivos SWF y JPEG externos
Carga de archivos MP3 externos
Lectura de etiquetas ID3 en archivos MP3
Reproducción dinámica de archivos FLV externos
Precarga de archivos multimedia externos
PARTE V: Referencia
CAPÍTULO 12: Diccionario de ActionScript
Entrada de muestra para la mayoría de los elementos de ActionScript
Entrada de muestra para clases
Contenido del diccionario
Clase Accessibility
Clase Arguments
Clase Array
Clase Boolean
Clase Button
Clase Camera
Clase Color
Clase ContextMenu
Clase ContextMenuItem
Clase CustomActions
Clase Date
Clase Error
Clase Function
Clase Key
Clase LoadVars
Clase LocalConnection
Clase Math
Clase Microphone
Clase Mouse
Clase MovieClip
Clase MovieClipLoader
Clase NetConnection
Clase NetStream
Clase Number
Clase Object
Clase PrintJob
Clase Selection
Clase SharedObject
Clase Sound
Clase Stage
Clase String
Clase System
Objeto System.capabilities
Objeto You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Clase TextField
Clase TextField.StyleSheet
Clase TextFormat
Objeto TextSnapshot
Clase Video
Clase XML
Clase XMLNode
Clase XMLSocket
APÉNDICE A: Mensajes de error
APÉNDICE B: Precedencia y asociatividad de los operadores
APÉNDICE C: Teclas del teclado y valores de códigos de tecla
Letras de la A a la Z y números estándar del 0 al 9
Teclas del teclado numérico
Teclas de función
Otras teclas
APÉNDICE D: Escritura de scripts para versiones anteriores de Flash Player
Utilización de versiones anteriores de Flash Player
Utilización de Flash MX 2004 para crear contenido para Flash Player 4
APÉNDICE E: Programación orientada a objetos con ActionScript 1
ActionScript 1
ÍNDICE ALFABÉTICO




Descarga: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




No conseguí subirlo a otro hosting, luego lo subo a You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login o mediafire.
Saludos!
#209
Tutorial de introducción del nuevo ActionScript 2.0 de Flash MX 2004

Este tutorial pretende ser una guía de migración desde Flash 5 y MX hacia MX 2004, en lo referente a su lenguaje de programación y un poco de su modelo de componentes; no pretende ser una guía básica de programación ni un tutorial de ActionScript desde cero.

Se muestran las novedades y explica cada nueva funcionalidad, desde la declaración de variables hasta el uso de clases y programación orientada a objetos

Requiere que tengas nociones básicas de programación, que hayas manejado un poco de ActionScript y que uses actualmente Flash MX 2004.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#210
Recopilatorio de temas importantes sobre Scripting




Ventajas de SOP (Scripting Oriented Programming)


Lenguajes de Programación Interpretados
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Resumen de scripting en la Wikipedia
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Estudio de los lenguajes SOP
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

¿Scripting mejor que C y Java?
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




ActionScript

¿Qué es ActionScript?
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Completisimo manual de ActionScript
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Tutorial de ActionScript 2.0
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Bash

Bash - Guía de referencia
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Programación en Bash (Shell Scripting)
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Batch

Iniciación Batch desde 0
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Video-curso Comandos MS-DOS
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Video-curso programación Batch
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Guía para crear Bombas Lógicas
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Programación Batch Avanzada
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Manual avanzado de Batch
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Lua

¿Qué es Lua?
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Manual Lua desde 0
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Perl

Aprendiendo Perl desde 0
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Recopilación de manuales Perl
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Perl Forever
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Mecánica Cuántica en Perl
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Aprendiendo a usar Cookies
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Creando gráficos con Perl
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Funciones de arreglo
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Funciones de arreglo asociativo
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Estructura de datos (arrays multidimencionales)
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Recopilatorio de 100 scripts en Perl
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Python

Papel de Python en Google
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

F.A.Q. de Python
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Python para Todos
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Introducción a la programación en Python
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Manual de Python
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Videocurso de Programación en python desde 0
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Implementos para Python
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Compilar de *.py a *.exe
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Tutorial de sockets en Python
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Primeros pasos con PyQT4
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Desarrollando aplicaciones de escritorio con PyQT4
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Ruby

Guia para el iniciado en Ruby
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Ruby en 20 minutos
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Comenzando en Ruby de novato a profesional
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Instalando Rubygems y TK en Windows
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Expresiones regulares
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Jugando con las API de Windows
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




VBScript

¿Qué es VBScript?
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Manual de VBScript
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

La biblia de las funciones
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Creación de comandos complejos por consola
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


#211
Cita de: [Corruptedyte link=topic=6609.msg21818#msg21818 date=1310414890]
Excelente aporte  ;) , si pudieras poner mas infromacion acerca de los videotutoriales estaria perfecto

He añadido el índice, saludos!
#212
Cifrado WEP (Wireless Equivalent Privacy).

Es un mecanismo de cifrado de datos utilizado por el protocolo de comunicación WiFi.
Tras este pretencioso nombre se esconde en realidad el algoritmo de cifrado de clave simétrica RC4.




RC4

RC4 es un algoritmo de cifrado de flujo. Los cifrados de flujo funcionan expandiendo una clave secreta (en el caso de WEP, una vector de inicialización(IV) público y una clave secreta) en una clave arbitrariamente larga de bits pseudo aleatorios (el keystream).

El cifrado se lleva a efecto aplicando or-exclusivos al texto plano P antes de enviarlo.
Simbólicamente, este proceso puede ser representado así:
A -> B: v,(P (+) RC4(iv, k));

El descifrado consiste sencillamente en invertir el proceso. Generar un keystream idéntico basado en la IV compartida y en la clave secreta, para después aplicar de nuevo la función XOR sobre el texto cifrado.

Además entran en juego unas sumas de chequeo que comprueban que el mensaje no ha sido alterado por el camino.

Como veremos con detalle, WEP adolece de varias vulnerabilidades severas de seguridad.

Estas vulnerabilidades dan lugar a cierto número de ataques, tanto activos como pasivos, que permiten escuchar y alterar conexiones inalámbricas.




Análisis seguridad WEP.

Como se demostró hace un par de años, el algoritmo RC4 sufre múltiples vulnerabilidades, entre las cuáles destacan las que permiten reducir la longitud efectiva del cifrado a 24 bits, en lugar de los 128 que se pueden definir como máximo en WEP.

Nótese que un cifrado de 64 no es la mitad de débil que uno de 128, sería uno de  127 bits.
2^128 / 2^1 = 2^ (128-1) = 2^127, con lo que uno de 24 es la mitad de la mitad de la mitad ...etc de débil que uno de 128.




Reutilización del KeyStream.

Una debilidad bien conocida de los algoritmos de cifrado de flujo es que cifrando dos mensajes (P1, P2) con la misma clave (k) y vector IV se puede revelar información sobre ambos mensajes:

CitarSi          C1 = P1 (+) RC4(iv, k)
y           C2 = P2 (+) RC4(iv, k)

entonces

     
CitarC1 (+) C2 = (P1 (+) RC4(iv, k)) (+) (P2 (+) RC4(iv, k)) = P1 (+) P2

En otras palabras, aplicando XOR a los dos textos cifrados (C1 y C2) el keystream se cancela, y el resultado que obtenemos es el XOR de ambos textos planos (P1 (+) P2).

Esto nos brinda las siguientes posibilidades.

Conocido el texto plano de uno de los mensajes, dispondremos inmediatamente del otro texto plano.

Podremos recuperar P1 y P2 teniendo sólo P1 (+) P2, debido a la redundancia que habitualmente tienen los textos planos. Podemos buscar dos textos sobre los que, aplicados un XOR, resulten en el valor dado P1 (+) P2.

Disponiendo de n textos cifrados con el mismo keystream tendremos lo que comúnmente se denomina un problema de profundidad n. Descifrar el tráfico se facilita en tanto en cuando n aumente, ya que el resultado del XOR de cada par de textos planos puede ser calculado, y se conocen varias técnicas clásicas para resolver esta clase de problemas (análisis de frecuencias, etc).

Como vemos para que estos ataques tengan éxito necesitamos disponer de textos cifrados en los que alguna porción del keystream se haya utilizado más de una vez, y de un conocimiento parcial de parte del texto plano.

Para prevenir estos ataques, WEP utiliza un IV diferente por cada paquete transmitido, de este modo, cada paquete recibe un keystream diferente.

El problema es que el vector IV se incluye en la parte no cifrada de la transmisión, para que luego el receptor pueda descifrarlo, y está por tanto disponible también para los agresores, aunque la clave secreta siga siendo desconocida y mantenga la seguridad del keystream.
Una gestión inadecuada del vector IV, que implique su reutilización, provoca como consecuencia una reutilización de la clave keystream, puesto que generalmente la clave secreta compartida k no cambia.

Ya que los IVs son públicos, el duplicado de IVs puede ser fácilmente detectado por los posibles agresores.
Nos referiremos a estas reiteraciones de valores IV como colisiones.

El estándar WEP recomienda (pero no requiere) que IV cambie en cada paquete.
Sin embargo, no dice nada acerca de los mecanismos aconsejables para seleccionar IVs y, por esta razón, algunas implementaciones del sistema lo hacen precariamente.

Hay un gran número de las tarjetas PCMCIA que reestablecen IV a 0 cada vez que son reiniciadas, e incrementan IV en uno en cada paquete posterior.
Estas tarjetas se reinician automáticamente cada vez que se introducen en un portátil, algo que se espera pase a menudo.

En consecuencia, los keystream correspondientes a IVs de valor bajo son susceptibles de ser reutilizados muchas veces durante el tiempo de vida de la clave privada.

Peor aún, el vector IV utilizado en WEP tiene una longitud predefinida de tan sólo 24 bits, está prácticamente garantizando que se usará un mismo IV en múltiples mensajes.

Un cálculo rápido muestra que un punto de acceso ocupado que transmita paquetes de 1500 bytes a una media de 5Mbps de ancho de banda (la velocidad máxima correpondería a 11Mbs) agotará todos los valores posibles de IV en menos de doce horas.

Incluso en instalaciones con menor ocupación de canal, un agresor paciente puede encontrar duplicados fácilmente.

Hay otros detalles de implementación pueden provocar iteraciones del keystream más frecuentemente.
Una implementación que utilizase un IV aleatorio para cada paquete produciría una colisión cada 5000 paquetes aproximadamente, que se resumen en tan sólo varios minutos de transmisión.

Pero lo peor de todo es que el estándar 802.11 no exige que IV cambie en cada paquete, lo que podría permitir el uso de un IV idéntico en todos los paquetes sin que ello suponga una disconformidad con la norma estándar.




Explotando la reutilización del keystream.

Una vez localizados dos paquetes con el mismo IV se pueden aplicar varios métodos para recuperar el texto plano.

Conocido el texto en plano de uno de los mensajes es muy sencillo acceder a los contenidos del otro.
Hay muchas formas de obtener candidatos plausibles de texto plano.
Muchos campos del tráfico IP son predecibles, ya que los protocolos utilizados usan estructuras de mensaje perfectamente conocidas.
Por ejemplo, las secuencias de entrada a sistemas son bastante uniformes para la mayor parte de los usuarios, y también lo son los contenidos (la palabra Password: como mensaje de bienvenida), que pueden ser utilizados para ataques a la clave.

Otro ejemplo podría consistir en la posibilidad de reconocer por análisis de tramas de tráfico y longitud una librería compartida que estuviese siendo transferida en un sistema de red. Esto suministraría una gran cantidad de texto plano conocido que permitiría su utilización para realizar un ataque al keystream por reutilización.

Es posible provocar la transmisión de textos planos conocidos enviandolos directamente al terminal móvil desde un ordenador conectado a internet en manos del agresor.

El agresor también puede enviar correo electrónico a usuarios y esperar que lo descarguen por medio del enlace inalámbrico. Enviar correo no solicitado (spam, en argot) puede ser un buen método para hacer esto sin levantar sospechas.

A veces obtener texto plano conocido puede ser incluso más sencillo. Un punto de acceso que probamos emitía paquetes broadcast de modo cifrado y no cifrado cuando la opción de controlar el acceso a la red estaba desactivada. En este caso, un agresor con una tarjeta 802.11 puede transmitir broadcasts al punto de acceso (que serán aceptados, porque el control de acceso está desactivado) y observar su forma cifrada durante la retransmisión. Es inevitable que esto suceda en una subred que contiene una mezcla de clientes WEP con otros sin soporte para cifrado, ya que los paquetes broadcast deben llegar a todos y cada uno de los clientes; no hay forma de evitar esta técnica para recoger texto plano conocido.

En definitiva, incluso sin conocer ningún texto plano es posible analizar, por medio de suposiciones, posibles textos planos susceptibles de ser transmitidos que puedan desembocar en la obtención del la clave privada.




Diccionarios de descifrado.

Una vez que se obtiene el texto plano de un mensaje se puede aislar el valor del keystream, ya sea por análisis de IVs o por otros métodos.
Es posible usar este keystream para descifrar cualquier otra trama que utilice un mismo IV.

Dado que las claves secretas compartidas k son cambiadas ocasionalmente, el agresor, acumulando datos, puede construir una tabla de keystreams que correspondan a distintas IV.
Una vez que se tiene la tabla, es posible descifrar inmediatamente cada texto cifrado con muy poco esfuerzo.

Esto es independiente de la longitud de la clave de cifrado, ya que el tamaño del diccionario depende del tamaño de IV, que está prefijado en 24 bits.

Es más, el diccionario del agresor puede hacerse más práctico aprovechando el comportamiento de las tarjetas PCMCIA que ponen el vector IV a 0 cada vez que son reiniciadas.
Puesto que en los casos más comunes las tarjetas son iniciadas al menos una vez al día, el agresor puede limitarse a construir un diccionario centrado sólo en los primeros miles de IVs, lo que le permitirá descifrar la mayoría de los paquetes que circulen a través del punto de acceso.
En una red con numerosos clientes 802.11 las colisiones en los primeros miles de IV's serán abundantes.




Gestión de claves

El estándar 802.11 no especifica cómo llevar a cabo la distribución de claves.
Depende de un mecanismo externo para poblar la matriz de cuatro claves compartida globalmente.
Cada mensaje contiene un campo identificador de clave especificando el índice de la matriz que se utiliza para el cifrado.

El estándar también permite asociar una clave específica de la matriz para cada estación móvil; sin embargo, está práctica no es habitual. La mayoría de las instalaciones usan una única clave para la toda red.

Esto perjudica severamente la seguridad del sistema, ya que las contraseñas están almacenadas en los terminales clientes. Con técnicas de hacking habituales pueden ser robadas fácilmente.

La reutilización de una clave única por muchos usuarios ayuda también a convertir los ataques en algo más práctico, porque aumenta la posibilidad de colisión de IVs.
La posibilidad de una colisión casual aumenta proporcionalmente con número de usuarios, y si además tenemos en cuenta que las tarjetas PCMCIA establecen a 0 el vector IV cada vez que son reiniciadas todos los usuarios reutilizarán keystreams correspondientes a un pequeño rango de IVs.

El hecho de que muchos usuarios compartan las mismas claves también significa que es difícil sustituir esta información, porque resulta comprometido ponerla en boca de todos.
Además esto no será habitual puesto que cambiar una clave requiere que todos y cada uno de los usuarios reconfiguren su adaptador inalámbrico.

En la práctica estimamos que puedan pasar meses, o incluso más tiempo, antes de que se cambien las claves privadas, lo que permite al potencial agresor disponer de una generosa cantidad de tiempo para buscar instancias de reutilización de keystreams.




Fuente: Adaptación de documento de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Saludos!
#213
Les comparto los videos de un interesante curso de Seguridad en Redes Inalámbricas.




Índice:

  • Getting Started
  • Bands, Channels And Sniffing
  • Pwning Beacon Frames
  • Dissecting Ap-Client Connections
  • Dissecting Wlan Headers
  • Pwning Hidden Ssids
  • Laughing Off Mac Filters
  • Hacking Wlan Authentication
  • Hotspot Attacks
  • Hacking Isolated Clients
  • Alfa Card Kung-Fu
  • Man-In-The-Middle Attack
  • Ssl Mitm Attack Over Wireless
  • Ssl Mitm Attack Over Wireless Demo
  • Ssl Man-In-The-Middle Attacks
  • Custom Wireless Regulation Database
  • Wep In-Depth
  • Wep Cracking
  • Caffe Latte Attack Basics
  • Caffe Latte Attack Demo
  • Caffe Latte Attack On The Iphone
  • Korek's Chopchop Attack
  • Fragmentation And Hirte Attack
  • Understanding Wpa/Wpa2
  • There Is No Patch For Stupidity! (challenge)
  • There Is No Patch For Stupidity! (solution)
  • Know Thy Packets
  • Never Underestimate Your Enemy! (challenge)
  • Wpa-Psk
  • Wpa-Psk Cracking
  • Wpa2-Psk Cracking
  • Speeding Up Wpa/Wpa2 Psk Cracking
  • Never Underestimate Your Enemy! (solution)
  • Mood Swings Of A Wandering Client
  • Cracking Wpa/Wpa2-Psk With Just The Client
  • Questions And Answers
  • Wpa_Supplicant
  • Crack Wpa-Personal With Only Ap
  • Setting Up Freeradius-Wpe On Backtrack
  • Eap-Md5 Basics And Demo
  • Cracking Eap-Md5 With Eapmd5Pass And Eapmd5Crack

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login




Saludos!
#214
GNU/Linux / Re:¿Que distribucion de linux elegir?
Julio 11, 2011, 04:09:27 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Me salio Fedora y OpenSuSE. Igual los demas resultados eran compatibles todos con 95%. Mucho sentido no tiene. Todas eran perfectas para mi...?

Te adaptas rápido a todas las distribuciones.

Mis porcentaje:

  • 100% Ubuntu
  • 100% Debian
  • 100% Kubuntu
  • 100% Mepis
  • 100% Linux Mint
#215
Código: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login









Autor: Dr. F
Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#216
Python / Re:pasar un texto a MD5 o a hexadecimal
Julio 10, 2011, 05:14:26 PM
Con versiones 3x dará problemas, ya que la sintaxis es incorrecta.

El código podemos decir que está bien, solo te falta respetar el ordenamiento de Python (abajo hacia arriba) y aprender a dejar el código limpio, ya que es una de las características más importantes del lenguaje.

Te reto a que sigas practicando, y espero ver mejoras de este código.

Saludos!
#217
Batch - Bash / Re:-> Programación BATCH Avanzada.
Julio 10, 2011, 03:32:19 PM
Lo subí a mi box, puedes verlo online haciendo click en el enlace y si quieres descargarlo.

Saludos!
#218
Batch - Bash / -> Programación BATCH Avanzada.
Julio 10, 2011, 01:30:11 PM


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login



Programación BATCH Avanzada.

Temario.
1.- Variables y Argumentos.
2.- Imprimir caracteres de comandos.
3.- Algunas otras variables de Entorno.
4.- IF
5.- FOR
6.- Funciones
7.- Includes
8.- Misc
9.- EOF



Variables y Argumentos

El manejo de variables en batch, es muy flexible., y este nos permite hacer desde operaciones matemáticas, hasta seleccionar ciertas partes de una variable, asi como reemplazar  cadenas de texto, y obtener archivos.. y sus propiedades, la fecha, hora, generar numeros aleatorios, entre otros.

Los argumentos que recibe un batch, son recibidos de la siguiente forma:

batch argumento1 dos tres

hara que:
%0 = batch
%1 = argumento1
%2 = dos
%3 = tres

en %0 se guardara, el nombre del archivo.

Podemos borrar el contenido de un parametro con el comando shift:

Código: dos

@echo off
echo %0 %1 %2 %3
shift /1
echo %0 %1 %2 %3


al llamar:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>astring 123 456 789
astring 123 456 789
astring 456 789


shift borro, el primer argumento.

Tambien contamos con los siguientes modificadores para los archivos:

Código: dos

       %~f1        - regresa la ruta y el archivo de %1.
       %~d1        - regresa la letra de la unidad de %1.
       %~p1        - regresa solo la ruta del archivo %1.
       %~n1        - regresa solo el nombre de archivo %1.
       %~x1        - regresa solo la extension del archivo %1.
       %~s1        - regresa solo la ruta, con directorios, con nombres cortos del archivo %1.
       %~a1        - regresa los atributos del archivo.
       %~t1        - regresa la hora/fecha del archivo %1
       %~z1        - regresa el tamaño del archivo %1.


por ejemplo:

en un directorio donde tenemos:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>dir
El volumen de la unidad C no tiene etiqueta.
El número de serie del volumen es: A057-553B

Directorio de C:\Documents and Settings\Administrador\tempcurso

24/07/2006  12:25a      <DIR>          .
24/07/2006  12:25a      <DIR>          ..
24/07/2006  12:25a                   6 archivo.txt
               1 archivos              6 bytes
               2 dirs  401,715,161,088 bytes libres


este batch:

Código: dos

@echo off
echo Ruta al archivo: %~f1
echo Disco: %~d1
echo Solo ruta: %~p1
echo Nombre: %~n1
echo Extension: %~x1
echo Ruta Corta: %~s1
echo Atributos: %~a1
echo Fecha: %~t1
echo Tamaño: %~z1


llamandolo analiza.bat, saca el siguiente resultado:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>analiza archivo.txt
Ruta al archivo: C:\Documents and Settings\Administrador\tempcurso\archivo.txt
Disco: C:
Solo ruta: \Documents and Settings\Administrador\tempcurso\
Nombre: archivo
Extension: .txt
Ruta Corta: C:\DOCUME~1\ADMINI~1\TEMPCU~1\archivo.txt
Atributos: --a------
Fecha: 24/07/06 12:25a
Tama±o: 6


Tambien podemos usar varias propiedades, por ejemplo, este codigo:
Código: dos

@echo off

echo %~anxt1


saca este resultado:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>analiza archivo.txt
--a------ 24/07/06 12:25a archivo.txt


Si lo que recibimos no es un archivo, sino una cadena de texto, que contiene mas de una palabra, se debe poner entre comillas, algo asi:

astring "parametro de varias letras"

al obtenerlo, en %1, lo recibimos con comillas, pero si usamos:

Código: dos

@echo off
echo Con Comillas: %1
echo Sin Comillas: %~1


saca este resultado:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>astring "parametro de varias letras"
Con Comillas: "parametro de varias letras"
Sin Comillas: parametro de varias letras


Y por ejemplo, si queremos obtener todos los argumentos, se usa:

%*

es decir:

Código: dos

@echo off

echo Argumentos: %*


al ejecutar:

astring parametro de varias letras

nos regresa:

Código: dos
C:\Documents and Settings\Administrador\tempcurso>astring parametro de varias letras
Argumentos: parametro de varias letras


Para asignar a una variable, el valor de algo escrito por el usuario, puedes usar:

set /P variable=

por ejemplo:
Código: dos

@echo off
echo ¿Como te llamas?
set /P miva=

echo Tu te llamas %miva%


hara algo asi:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>astring
┐Como te llamas?
Juan
Tu te llamas Juan


Ahora, si por ejemplo, queremos, hacer algo como, obtener las ultimas 3 letras del nombre:

Código: dos

@echo off
echo Escribe tu Nombre
set /P NOM=
echo %NOM:~-3%


Aqui lo que estamos haciendo en la ultima linea:

%NOM:~-3%
hara, obtener los ultimos 3 caracteres, como si se tratara de la funcion substring.

por ejemplo, esto:

%NOM:~1,3%

obtendra del segundo al cuarto caracter. (empiezas desde 0, recuerda)

Para reemplazar cadenas, dentro de otra variable, es la siguiente sintaxis:
Código: dos

@echo off
echo Escribe una frase
set /P FRA=
echo %FRA:e=XXX%


esto reemplazara las letras "e" por "XXX".

Para hacer calculos matematicos, se usa el modificado /A, de esta forma:

Código: dos

@echo off
set /A x=1
echo %x%
set /A x=x*9
echo %x%


tenemos las siguientes operaciones disponibles:

Código: dos

()                  - agrupar
* / %               - operadores aritméticos
+ -                 - operadores aritméticos
<< >>               - mayús lógica
&                   - AND
^                   - XOR
|                   - OR
= *= /= %= += -=    - asignación
  &= ^= |= <<= >>=
,                   - separador de expresión


Con este podemos usar numeros hexadecimales de la siguiente forma:

Código: dos
@echo off
set /A x=2
echo %x%
set /A x=x*0xff
echo %x%


al colocar 0x estamos especificando, que a continuacion se pondra un valor hexadecimal.




Imprimir caracteres sin usar comandos

Ahora, se preguntaran, en las variabes, siempre usamos los signos %
Como imprimes uno?

veamos:

Código: dos

@echo off
set x=pru
set pru=HOLA

:: Esto imprimira el contenido de x
echo %x%

::Esto imprimira la letra x
echo x

::Esto imprimira %x%
echo %%x%%

::Esto imprimira el valor de x entre %%
echo %%%x%%%

:: Lo mismo
echo %pru%
echo %%pru%%
echo %%%pru%%%


En resumen, si quieren imprimir, el caracter %, deben colocarlo 2 veces.

Para otros caracteres, que ejecutan alguna accion en batch como:
&
|
<
>

debes colocar este caracter antes:^

por ejemplo:

Código: dos

echo <html><h1>Hola</h1></html> >index.html


no funcionara, pero:

Código: dos

echo ^<html^>^<h1^>Hola^</h1^>^</html^> >index.html


dara:
Código: dos

C:\Documents and Settings\Administrador\tempcurso>type index.html
<html><h1>Hola</h1></html>





Algunas otras variables de entorno

Tenemos otras variables de entorno que podrian servir, ademas de las comunes de ALLUSERSPROFILE y HOMEPATH, por ejemplo:

Código: dos

@echo off
echo Directorio Actual: %CD%
echo Fecha: %DATE%
echo Hora: %TIME%
echo Numero Aleatorio: %RANDOM%

dara como resultado:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>astring
Directorio Actual: C:\Documents and Settings\Administrador\tempcurso
Fecha: Lun 24/07/2006
Hora:  2:13:49.33
Numero Aleatorio: 24523

C:\Documents and Settings\Administrador\tempcurso>astring
Directorio Actual: C:\Documents and Settings\Administrador\tempcurso
Fecha: Lun 24/07/2006
Hora:  2:13:51.60
Numero Aleatorio: 3681


Otras instrucciones muy utiles, serian POPD y PUSHD, que sirven para guardar y regresar al directorio actual, por ejemplo:

Código: dos

@echo off
echo %CD%
PUSHD \
echo %CD%
POPD
echo %CD%


PUSHD funciona de la siguiente manera:

Guarda el directorio actual., y va a la ruta especificada.

POPD regresa al directorio guardado por PUSHD

podemos usarlos uno dentro de otro, asi:

Código: dos

@echo off
echo %CD%
PUSHD \
echo %CD%
PUSHD %homepath%
echo %CD%
POPD
echo %CD%
POPD
echo %CD%





IF

If, reconoce varias situaciones:

valores de error
comparar cadenas
existencia de archivos
comparaciones matematicas

como ya sabemos %ERRORLEVEL% almacena algunos valores de otras funciones.

al hacer

IF ERRORLEVEL 1 @echo ok ELSE @echo no

estariamos preguntando si ERRORLEVEL es 1, si lo es imprime OK, si no, imprime NO.

tambien podemos comparar cadenas, por ejemplo:

Código: dos

@echo off
IF "%~1"=="hola" echo hola


usamos %~1 para que aunque el usuario ponga comillas, no salga error.

Código: dos

@echo off
IF /I "%~1"=="hola" echo hola


este codigo, solo responde si dices hola CON minusculas. /I es para hacer mas estricta la comparacion.

ahora, podemos usar IF en varias lineas:

Código: dos

@echo off
IF EXIST %~snx1 (
echo EXISTE!
) ELSE (
echo NO EXISTE
)


con parentesis ().

si vamos a usar comparaciones numericas, debemos usar los siguientes codigos de comparación:

Código: dos


    EQU - igual
    NEQ - no igual
    LSS - menor que
    LEQ - menor que o igual
    GTR - mayor que
    GEQ - mayor que o igual



por ejemplo:

Código: dos

@echo off
echo Cual es tu edad?
SET /P m=
IF %m% GEQ 18 (
echo ERES MAYOR DE EDAD
) ELSE (
echo NO ERES MAYOR DE EDAD
)


que regresa:

Código: dos

C:\Documents and Settings\Administrador\tempcurso>acon
Cual es tu edad?
19
ERES MAYOR DE EDAD

C:\Documents and Settings\Administrador\tempcurso>acon
Cual es tu edad?
17
NO ERES MAYOR DE EDAD


Tambien podemos saber si una variable ya fue definida:

Código: dos

IF DEFINED var (
echo SI
) ELSE (
echo NO
)





FOR

FOR es una herramienta muy completa, nos permite analizar segmentos de la salida de comandos, funciones y el contenido de archivos.

Tambien permite hacer bucles de la siguiente manera:

Código: dos
FOR /L %%var IN (inicio,incremento,fin) DO (acciones)


inicio, es el valor inicial, incremento es la cantidad a sumar, y fin es la cantidad a detenerse, por ejemplo:

Código: dos
FOR /L %%i IN (0,1,10) DO (echo %%i)

imprimira 0 1 2 3 4 5 6 7 8 9 10

sinembargo, la forma mas sencilla de usar FOR, es para numerar archivos, y hacer algo con ellos.. por ejemplo:

Código: dos
FOR %%x in (x*) DO echo %%x

mostrará todos los archivos que empiezan con x.

para SOLO mostrar directorios:
Código: dos
FOR /D %%x in (m*) DO echo %%x

el modificador "/D", mostrará solo los directorios, que empiesen con m.

El comando se puede hacer "recursivo", es decir, que se ejecute  dentro de cada directorio, con el comando "/R", por ejemplo, en una estructura de directorios como la siguiente:

Código: dos

├───adios
│   └───algo
│       └───xx
└───hola


al ejecutar el comando:
Código: dos
FOR /R /D %%x in (a*) DO echo %%x
C:\adios
C:\adios\algo


sinembargo, al ejecutar el comando..
Código: dos
FOR /R %%x in (*x*) DO echo %%x
C:\ax.txt
C:\adios\sx.txt
C:\adios\wwx.txt
C:\adios\algo\kkx.txt
C:\adios\algo\xx\xx.txt
C:\hola\ax.txt
C:\hola\rx.txt


nos mostrara todos los archivos que coinciden con la sequencia especificada, incluso podriamos hacer un buscador en batch, con el uso de FINDSTR y FOR.

Tenemos otro modificador, /F que nos permite usar ciertas opciones para separar el resulado de las acciones.. comandos, cadenas, o archivos. Su sintaxis es la siguiente:

Código: dos
FOR /F ["opciones"] %var IN (conjunto) DO (acciones)


conjunto puede ser:
conjunto de archivos -> sin comillas
cadena de caracteres -> con comillas dobles (" ")
comando -> con comilla simple (' ')

las opciones son las siguientes:
eol -> todo lo que este despues de este caracter sera ignorado (para cada linea)
skip -> numero de lineas a saltarse al principio del archivo/comando.
delims -> esto sirve para separar las strings.. si no se coloca esta opcion, se usaran como separadores "espacio" y "tab"
tokens -> esto es para especificar cuales segementos, delimitados por "delims", seran pasados a las variables.. por ejemplo:
1,2,3
solo pasara los primeros 3 segmentos.
1,2*
pasara 2 segmentos, el primero y todo lo que este despues (el * regresa todo el resto de la linea)
1,2-6,8,9*
regresara 4 segmentos, el primero, desde el segundo hasta el sexto, el octavo y el resto de la linea, despues del noveno, el signo de menos (-) genera intervalos.

por ultimo, esta la opcion:
usebackq -> que cambia la forma de interpretar si es string o comando, de la siguiente manera:
'cadena'
`comando`

Nota: [`] es diferente al caracter de acento [´]

por ejemplo, el siguiente comando:

Código: dos
FOR /F "tokens=1,3-5,7-9,10* delims= " %%i IN ("George no es malvado, es bondadoso, siempre piensa en los demas.") DO echo %%i %%j %%k %%l tonto, %%m %%n %%o matar a %%p %%q


dara de resultado:
Código: dos
George es malvado, es tonto, siempre piensa en matar a los demas.





Funciones

El uso de argumentos, de etiquetas y de filtros nos ayuda mucho al momento de escribir un codigo.

Muchos creen que las etiquetas solo sirven para los goto.. sinembargo una etiqueta puede servir de funcion y recibir parametros.

miren, el siguiente programa:
Código: dos
@echo off
call:funcion 1 2 3
call:funcion %*
goto:EOF
:funcion
echo Estoy en: %~nx0-^>%0 %*


al ser llamado, por ejemplo en:
Código: dos
C:\>ejemplo
Estoy en: ejemplo.bat->:funcion 1 2 3
Estoy en: ejemplo.bat->:funcion

el primero muestra los parametros enviados por el batch (1 2 3), y el segundo los parametros enviados al programa.
en este otro ejemplo:
Código: dos
C:\>ejemplo HOLA MUNDO
Estoy en: ejemplo.bat->:funcion 1 2 3
Estoy en: ejemplo.bat->:funcion HOLA MUNDO

la funcion obtiene tambien los argumentos del programa.

hasta ahora.. todo es igual a usar goto a excepcion del uso de argumentos, sinembargo.. si queremos hacer un.. "return", se hace usando:
goto:EOF
entonces, en situaciones como:
Código: dos

@echo off&call:main&goto:EOF

:suma
set /A res=%1 + %2
echo %res%
goto:EOF

:resta
set /A res=%1 - %2
echo %res%
goto:EOF

:multiplica
set /A res=%1 * %2
echo %res%
goto:EOF

:main
set /P arg=Escribe 2 numeros separados por un espacio
echo %arg%
echo su suma es:
call:suma %arg%

echo su resta es:
call:resta %arg%

echo su producto es:
call:multiplica %arg%

goto:EOF


como podemos ver goto:EOF se usa para regresar al orden de comandos.

el resultado es algo asi:

Código: dos

C:\>operaciones
Escribe 2 numeros separados por un espacio 6 2
6 2
su suma es:
8
su resta es:
4
su producto es:
12





Includes
Para hacer un "include" oincluir un archivo, solo debes llamarlo asi:
archivo_a_incluir.bat funcion argumentos
y en el archivo a incluir, debe de estar al principio: @echo off&call:%*&goto:EOF

queda algo asi:
Código: dos

@echo off&call:%*&goto:EOF
:funcion1
...
:funcion2
...


por ejemplo:

--inclu.bat--
Código: dos

@echo off&call:%*&goto:EOF

:cabeza
echo ###############
echo # Hecho por:  #
echo # sirdarckcat #
echo ###############
goto:EOF

:uso
echo uso:
echo %~nx0 Nombre
goto:EOF

:nombre
echo Hola %*
goto:EOF


--inicio.bat--
Código: dos

@echo off
if "%~1"=="" (
inclu.bat cabeza
inclu.bat uso
) else (
inclu.bat nombre %~1
)


esto daria este resultado:

Código: dos

C:\>inicio
###############
# Hecho por:  #
# sirdarckcat #
###############
uso:
inclu.bat Nombre

C:\>inicio sirdarckcat
Hola sirdarckcat

C:\>





Misc
Algunos filtros y comandos interesantes:

  • comando | more
muestra el resultado del comando de forma paginada

  • comando | sort
muestra el resultado del comando de forma ordenada

  • TITLE "algo"
cambia el titulo de la ventana de CMD

  • SUBST ruta/a/alguna/carpeta [letra_unidad]
asgina a letra_unidad la ruta de acceso

  • FIND "cadena"
busca cierta cadena en un archivo (se puede usar como filtro), con el modificador /v encuentra solo las que NO tienen la linea especificada. (para mas info, escribe en CMD: FIND /?)

  • FINDSTR
extension de FIND, acepta expresiones regulares, y busqueda general (lo mas parecido que DOS tiene a grep), descripción detallada:
Código: dos

Busca cadenas en los archivos.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:archivo]
   [/C:cadena] [/G:archivo] [/D:lista de directorios] [/A:atributos de color]
   [cadenas] [[unidad:][ruta]nombredearchivo[ ...]]

  /B        Hace coincidir los modelos si están al principio de la línea.
  /E        Hace coincidir los modelos si están al final de la línea.
  /L        Literalmente utiliza cadenas de búsqueda.
  /R        Utiliza cadenas sde búsqueda como expresiones regulares.
  /S        Busca archivos que coinciden en el directorio actual y en todos
            los subdirectorios.
  /I        Especifica que la búsqueda no distingue mayúsculas de minúsculas.
  /X        Imprime líneas que coinciden con exactitud.
  /V        Sólo imprime líneas que no contienen una correspondencia.
  /N        Imprime el número de la línea antes de la línea que coincide.
  /M        Sólo imprime el nombre de archivo si el archivo contiene una
            correspondencia.
  /O        Imprime un carácter de desplazamiento antes de las líneas que
            coinciden.
  /P        Omite archivos con caracteres que no son imprimibles
  /A:attr   Especifica atributos de color con dos dígitos hexadecimales. Ver
            "color /?"
  /F:archivo  Lee la lista de archivos desde el archivo especificado
            (/ significa consola).
  /C:cadena   Utiliza una cadena especificada como una búsqueda de cadena
            literal.
  /G:archivo  Coje la búsqueda de archivos desde el archivo especificado
            (/ significa consola).
  /D:dir    Busca un signo de punto y coma de la lista delimitada de
            directorios
  cadenas   Texto que se debe buscar.
  [unidad:][ruta]nombredearchivo
            Especifica un archivo o  archivos que buscar.

Utiliza espacios para separar múltiples cadenas de búsqueda a no ser que
el argumento lleve un prefijo con /C.  Por ejemplo, 'FINDSTR "qué tal" x.y'
busca "qué" o "tal" en el archivo x.y.  'FINDSTR /C:"qué tal" x.y' busca
"qué tal" en el archivo x.y.

Expresión regular de referencia rápida:
  .        Comodín: cualquier carácter
  *        Repetir: cero o más ocurrencias de un carácter previo o de clase
  ^        Posición de línea: comienzo de la línea
  $        Posición de línea: fin de línea
  [clase]  Clase de carácter: cualquier carácter en la serie
  [^class] Clase inversa: cualquier carácter que no esté en la serie
  [x-y]    Intervalo: cualquier carácter que esté dentro del intervalo
           especificado
  \x       Escape: uso literal de un metacarácter x
  \<xyz    Posición de palabra: principio de palabra
  xyz\>    Posición de palabra: fin de palabra

Para obtener una información más completa sobre expresiones regulares de
FINDSTR referirse al Comando de referencia Command en línea.



  • start "titulo ventana nueva" [OPCIONES] comando argumentos
START tiene mas opciones de las que son usadas comunmente.
"titulo ventana nueva" especifica el titulo de la ventana que se generará.

las opciones entre otros contienen:
/Druta - el programa inicia en el directorio..
/B - la aplicación se inicia sin ventana
/I - se inicia la aplicacion con el entorno original, es decir las modificaciones al entrono hechas en esta sesion, no afectaran el nuevo programa
/MIN - La nueva ventana se inicia minimisada
/MAX - La nueva ventana se inicia maximisada
/SEPARATE - El programa se inicia en una zona de memoria separada
/SHARED - El programa se inicia en una zona de memoria compartida

Iniciar en prioridades:

/LOW - baja
/NORMAL - normal
/HIGH - alta
/REALTIME - tiempo real
/ABOVENORMAL - sobre lo normal
/BELOWNORMAL - debajo de lo normal

/WAIT - Inicia el programa, y espera hasta que termine de ejecutarse

por ejemplo, si quieren abrir un programa sin generar una ventana, por ejemplo netcat, podrian hacer algo asi:

start /B /SEPARATE /HIGH /I /D %WINDIR% nc -L -p 1337 |exit

que lo inicia en una zona de memoria separada, con prioridad alta, en el contexto original, y en %windir%



EOF
EOF es una etiqueta que define el fin del archivo, sirve para terminar funciones, y en este caso, solo sirve para terminar el documento, espero les sirva.


(c) Sirdarckcat 2006
Autorizo la reproducción total o parcial de este documento bajo la licencia de documentación libre de GNU (GFDL), una copia puede ser encontrada en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login



Es un excelente manual, espero que les guste.
Saludos!
#219
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Muy buena idea y fijado.

Uno que es bastante útil el del cambio de mac

sudo apt-get install macchanger
macchanger XX:XX:XX:XX:XX:XX dispositivo

Muchas gracias! Agregado!
#220
Resulta que hace unos días, comencé a tener problemas con el sonido en mi Ubuntu 10.04.
Tenia el Sistema Operativo actualizado, pero cuando el sonido estaba al máximo recién se comenzaba a escuchar, y no era problema de las configuraciones.

Por este motivo, para los que les cueste encontrar una solución a su problema, les dejo estas posibles soluciones a sus problemas de sonido, luego de las actualizaciones, empezaré por la que usé yo.




Actualiza tu Sistema Operativo

Te recomiendo aplicar las actualizaciones, ya que salieron algunas solucionando algunos de los fallos del sonido en Ubuntu. Aún sea este el problema o no, te recomiendo que lo hagas por seguridad y rendimiento de tu Sistema.




Instala los paquetes de Ubuntu Audio Development Team

Sirven para descargar y actualizar los paquetes de ALSA y PulseAudio.

Código: text
sudo add-apt-repository ppa:ubuntu-audio-dev/ppa
sudo apt-get update && sudo apt-get dist-upgrade





Elimina slmodemd

Asegurate de que este elemento no se este ejecutando.

Código: text
pgrep slmodemd


Este comando no deberia devolver nada por la consola, y si lo hace, lo eliminamos.

Código: text
sudo apt-get remove sl-modem-daemon





Instala los módulos ALSA de backports

Dirigete a:

CitarSistema > Preferencias > Orígenes de Sofware > Pestaña "Actualizaciones" > Marcar "Actualizaciones no Soportadas"

Recargamos los paquetes e instalamos los módulos previamente dichos.

Código: text
sudo apt-get install linux-backports-modules-alsa-karmic-generic





Reparar ALSA y el sonido en Ubuntu

Restableceremos el sistema de ALSA, y si es necesario se compila de nuevo.

Código: text
sudo apt-get install module-assistant
sudo m-a a-i alsa


Luego de la instalación/compilación

sudo m-a update
sudo m-a prepare


Si aún no tenemos los complementos de pulseaudio

CitarSistema > Preferencias > Gestor de Paquetes Synaptics > Marcamos "pulseaudio"

En caso de que pulseaudio nos indique que está "esperando para iniciar audio" simplemente hacemos

Código: text
rm -r ~/.pulse ~/.asound*
sudo rm /etc/asound.conf





Si alguno lo solucionó de otra forma, puede compartirlo.

Saludos!