elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] ¿Como puedo meter variables dentro de variables?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] ¿Como puedo meter variables dentro de variables?  (Leído 3,822 veces)
Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
[BATCH] ¿Como puedo meter variables dentro de variables?
« en: 24 Marzo 2012, 13:48 pm »

Estoy haciendo un programa que te de todas las combinaciones posibles de los caracteres que le metas (En este caso, 37). Pero me ha surgido un problema. El codigo que llevo escrito del programa es mas o menos esto:
Código:
@ECHO OFF
setlocal enabledelayedexpansion
set /A CARACTERES=37+1
set /A CONTADOR=1
set /A CONTADOR2=1
:0
set CLAVE=
IF CONTADOR==1 (goto 1) else goto 3
:1
set CLAVE=
set CLAVE=%CLAVE%%CONTADOR2%
SET CLAVE=%CLAVE:37=Z%
SET CLAVE=%CLAVE:36=Y%
SET CLAVE=%CLAVE:35=X%
SET CLAVE=%CLAVE:34=W%
SET CLAVE=%CLAVE:33=V%
SET CLAVE=%CLAVE:32=U%
SET CLAVE=%CLAVE:31=T%
SET CLAVE=%CLAVE:30=S%
SET CLAVE=%CLAVE:29=R%
SET CLAVE=%CLAVE:28=Q%
SET CLAVE=%CLAVE:27=P%
SET CLAVE=%CLAVE:26=O%
SET CLAVE=%CLAVE:25=Ñ%
SET CLAVE=%CLAVE:24=N%
SET CLAVE=%CLAVE:23=M%
SET CLAVE=%CLAVE:22=L%
SET CLAVE=%CLAVE:21=K%
SET CLAVE=%CLAVE:20=J%
SET CLAVE=%CLAVE:19=I%
SET CLAVE=%CLAVE:18=H%
SET CLAVE=%CLAVE:17=G%
SET CLAVE=%CLAVE:16=F%
SET CLAVE=%CLAVE:15=E%
SET CLAVE=%CLAVE:14=D%
SET CLAVE=%CLAVE:13=C%
SET CLAVE=%CLAVE:12=B%
SET CLAVE=%CLAVE:11=A%
SET CLAVE=%CLAVE:10=0%
SET CLAVE=%CLAVE:9=9%
SET CLAVE=%CLAVE:8=8%
SET CLAVE=%CLAVE:7=7%
SET CLAVE=%CLAVE:6=6%
SET CLAVE=%CLAVE:5=5%
SET CLAVE=%CLAVE:4=4%
SET CLAVE=%CLAVE:3=3%
SET CLAVE=%CLAVE:2=2%
SET CLAVE=%CLAVE:1=1%
echo %CLAVE%
pause >nul
SET /A CONTADOR2=%CONTADOR2%+1
IF %CONTADOR2%==%CARACTERES% (goto 2) else goto 1
:2
SET /A CONTADOR=%CONTADOR%+1
goto 0
:3
SET /A CONTADOR3=1
SET CLAVE=%CLAVE% 1
SET /A CONTADOR3=%CONTADOR3%+1
SET /A CONTADOR4=%CONTADOR%+1
IF %CONTADOR3%==%CONTADOR4% (goto 4) else goto 3
:4
SET CLAVE2=%CLAVE:37=Z%
SET CLAVE2=%CLAVE2:36=Y%
SET CLAVE2=%CLAVE2:35=X%
SET CLAVE2=%CLAVE2:34=W%
SET CLAVE2=%CLAVE2:33=V%
SET CLAVE2=%CLAVE2:32=U%
SET CLAVE2=%CLAVE2:31=T%
SET CLAVE2=%CLAVE2:30=S%
SET CLAVE2=%CLAVE2:29=R%
SET CLAVE2=%CLAVE2:28=Q%
SET CLAVE2=%CLAVE2:27=P%
SET CLAVE2=%CLAVE2:26=O%
SET CLAVE2=%CLAVE2:25=Ñ%
SET CLAVE2=%CLAVE2:24=N%
SET CLAVE2=%CLAVE2:23=M%
SET CLAVE2=%CLAVE2:22=L%
SET CLAVE2=%CLAVE2:21=K%
SET CLAVE2=%CLAVE2:20=J%
SET CLAVE2=%CLAVE2:19=I%
SET CLAVE2=%CLAVE2:18=H%
SET CLAVE2=%CLAVE2:17=G%
SET CLAVE2=%CLAVE2:16=F%
SET CLAVE2=%CLAVE2:15=E%
SET CLAVE2=%CLAVE2:14=D%
SET CLAVE2=%CLAVE2:13=C%
SET CLAVE2=%CLAVE2:12=B%
SET CLAVE2=%CLAVE2:11=A%
SET CLAVE2=%CLAVE2:10=0%
SET CLAVE2=%CLAVE2:9=9%
SET CLAVE2=%CLAVE2:8=8%
SET CLAVE2=%CLAVE2:7=7%
SET CLAVE2=%CLAVE2:6=6%
SET CLAVE2=%CLAVE2:5=5%
SET CLAVE2=%CLAVE2:4=4%
SET CLAVE2=%CLAVE2:3=3%
SET CLAVE2=%CLAVE2:2=2%
SET CLAVE2=%CLAVE2:1=1%
SET CLAVE2=%CLAVE2: =%
echo %CLAVE2%
pause >nul
goto 5
Y ahora viene el problema. Ahora mismo el programa solo podria sacar correctamente las combinaciones de 1 caracter y la primera de dos, 11. Entonces en :5 tendria que separar la variable clave (Que tiene los numeros separados con espacios de esta manera: 1 1, para que no haya problemas al cambiar de numeros a caracteres) en varias variables que tengan el numero y su espacio, para poder operar con cada cifra por separado, y despues tendria que juntar las variables de nuevo en la variable clave. Para ello pense en usar un contador a la que se le va sumando uno, y meter variables dentro de variables. De esta manera, el programa separaria el numero en variables con una palabra fija y el numero del contador en ese ciclo [ 1 1(CLAVE)→ 1(CLAVESEPARADA1) 1(CLAVESEPARADA2)] y asi podria llamar facilmente a todas las variables, ya operadas y para que volviesen a la misma variable, con otro contador y otro ciclo. Pues ahi esta el problema, no se como llamar a las variables que tienen dentro una variable. Si hay algun error en el codigo o en la idea, agradeceria que lo dijeseis.
P.D.: Perdon por el codigo spaghetti.


En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: [BATCH] ¿Como puedo meter variables dentro de variables?
« Respuesta #1 en: 24 Marzo 2012, 16:48 pm »

Hola Meine programmen

En mi opinion:

Te estás liando demasiado, Incluso me lio yo analizando tu code:

   1º - Serías más productivo y cometerías menos fallos si le pusieras nombres intuitivos a las etiquetas, y no ":0" ":º", eso es un lio para luego correjirlo la verdad. (támpoco estaróa mal que indentases).
   2º - no hace falta crear mil variables a lo loco, no hay que complicar tanto un code, Busca alternativas.

Aparte de eso, Parece que uses cosas sin entender su propósito, Por esjemplo usas setlocal enabledelayedexpansion, Pero no expandes en ninguna parte de tu script. (Si lo crees necesario LEE más tutoriales)

PD: La Ñ es un caracter espacial, No te funcionará así, igual que la Ç trencada, etc....

Respecto a lo de meter variables dentro de variables:

Código
  1. Set var1=hola
  2. Set var2=adios
  3.  
  4. Set var3=%var1% y %Var2%



- Si usas el buscador para documentarte verás que este tema se ha comentado mucho, Y encontrarás tanto información como scripts muy útiles.

[Batch] Aporte Generador Diccionario

[Batch] Ice Gen 1.0 (Generador de Wordlist,Combolist,WEP,WPA,Serial,Cookies,IP)

Generador de diccionarios para bruteforce


- Aparte de los scripts mios y de geormarsh que puedes encontrar en esos enlaces de arriba, Te he querido hacer un generador algo más pequeño con posiilidad de elegir longitud, es un generador de ejemplo para que lo entiendas, Solo funciona desde longitud "1" a "3" no he querido complicarme más.


Código:
@Echo OFF
setlocal enabledelayedexpansion
Set "caracteres=a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9"
set "shift=%caracteres%"
Set "Shift=%SHIFT: =%"
Set MINshift=0
Set MINchar=0

:Menu
Echo longitud?
Set /p longitud=
Echo "%Longitud%"| Findstr "[1-3]"
If not %errorlevel% EQU 0 (Goto :Menu)

:Generador
If "%shift%" EQU "" (Goto :FIN)
if "!shift:~%MINshift%,1!" EQU "" (Goto :FIN)

For %%a in (%Caracteres%) do (
If %Longitud% equ 1 (echo %%a)
If %Longitud% equ 2 (echo !Caracteres:~%MINchar%,1!%%a)
If %Longitud% equ 3 (echo !shift:~%MINshift%,1!!Caracteres:~%MINchar%,1!%%a)
)

If %Longitud% equ 1 (Goto :FIN)

if "!Caracteres:~%MINchar%,1!" EQU "%Caracteres:~-1,1%" (Set /A MINshift+=1& Set MINchar=0& Goto :Generador) ELSE (if "!shift:~%MINshift%,1!" EQU "" (Goto :FIN))
Set /A MINchar+=2
Goto :Generador

:FIN
echo FIN
pause


Salu2.


« Última modificación: 24 Marzo 2012, 16:50 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pasar variables por formulario sin variables globales¿? « 1 2 »
PHP
hardkoo 11 9,185 Último mensaje 22 Noviembre 2006, 12:55 pm
por chicuela66
Variables dentro de variables (batch)
Scripting
MK-Ultra 8 7,395 Último mensaje 6 Febrero 2008, 23:18 pm
por GUN$
Variables batch y vb
Programación Visual Basic
gdegrau 3 2,222 Último mensaje 27 Enero 2009, 20:03 pm
por krackwar
Ayuda, como trabajan las variables dentro de la memoria?
Programación C/C++
Zodiak98 3 2,334 Último mensaje 4 Mayo 2013, 19:08 pm
por amchacon
¿Como crear variables en C# que coincidan con las variables de un servidor sql?
.NET (C#, VB.NET, ASP)
dr4 0 1,874 Último mensaje 22 Mayo 2015, 13:15 pm
por dr4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines