Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Tino en 19 Septiembre 2016, 02:35 am



Título: MS-DOS Ayuda
Publicado por: Tino en 19 Septiembre 2016, 02:35 am
Hola ElHacker!

Estoy con muchas dudas sobre mi Encryper (Letter Changer)  :huh:

Estoy creando un Ecriptador (Como un changer de letras, Ej: que la letra A se convierta a B)

Y he usado SET A=B
de muchas formas y cuando voy a poner el resultado en el el echo me dice:

Operador no valido
y ECHO esta desactivado
o no se cambia a las letras ordenadas (Ej: Hola se tendría que remplazar a Ipm0)

(http://i.imgur.com/CzGMGdI.png)


Alguien me puede ayudar? O corregir mi código?



CODE:


Código:
@echo off
title Encrypter by TinnahB
echo Encrypter by TinnahB
goto start

:start
cls
set a=b
set b=c
set c=d
set d=e
set e=f
set f=g
set g=h
set h=i
set i=j
set j=k
set k=l
set l=m
set m=n
set n=o
set o=p
set p=q
set q=r
set r=s
set s=t
set t=u
set u=v
set v=w
set w=x
set x=y
set y=z
set a=0
echo Texto para cifrar:
set /p changetext=
echo.
echo Texto cifrado: %changetext%
pause
goto start


Título: Re: MS-DOS Ayuda
Publicado por: [Arg] $triker; en 19 Septiembre 2016, 19:10 pm
¿¿¿¿????

¿¿Qué estás intentando hacer?? Estás haciendo cualquier cosa.
Todo lo que hiciste fue poner el valor de un montón de variables y después hacer un hola mundo con entrada de texto.

Para que una variable se muestre en batch, hay que rodearla entre símbolos de porcentaje: %variable%.
Tendrías que separar cada letra del texto escrito y hacer que ese texto escrito se convierta en el nombre de una variable que a la vez se traduce en su valor, la letra que le sigue.

Esto no se puede hacer en batch.

Te faltan dos cosas para hacer algo como esto: aprender más y usar Python o Ruby.


Título: Re: MS-DOS Ayuda
Publicado por: MCKSys Argentina en 19 Septiembre 2016, 20:25 pm
Esto no se puede hacer en batch.

Si que se puede:

Código:
@echo off

setlocal enabledelayedexpansion

set Alphabet=abcdefghijklmnopqrstuvwxyz

set oText=felicitaciones haz roto el cifrado caesar
set offset=20

call :ENCRYPT %offset% "%oText%"

echo KeySet=%KeySet%

set eText=%outText%

call :DECRYPT %offset% "%eText%"

set dText=%outText%

echo Texto Original:   %oText%
echo Texto Cifrado:    %eText%
echo Texto Descifrado: %dText%

goto :EOF

:ENCRYPT

call :GETKEYSET %1

set _from=%Alphabet%
set _to=%KeySet%

set outText=%~2

for /l %%a in (0, 1, 25) do call :STUFFIT %%a
for /l %%a in (0, 1, 25) do call :PROCESS %%a  

goto :EOF

:DECRYPT

call :GETKEYSET %1

set _from=%KeySet%
set _to=%Alphabet%

set outText=%~2

for /l %%a in (0, 1, 25) do call :STUFFIT %%a
for /l %%a in (0, 1, 25) do call :PROCESS %%a

goto :EOF

:STUFFIT

set fromChar=!_from:~%1,1!

set outText=!outText:%fromChar%=_%fromChar%!

goto :EOF

:PROCESS

set fromChar=!_from:~%1,1!
set toChar=!_to:~%1,1!

set outText=!outText:_%fromChar%=%toChar%!

goto :EOF

:GETKEYSET

set /a idx=%1 %% 26

set KeySet=!Alphabet:~%idx%!

if %idx%==0 goto :EOF

set KeySet=%KeySet%!Alphabet:~0,%idx%!

(http://i.imgur.com/JJ7BTwR.jpg)

Saludos!

EDIT: Si pones la variable offset en 1, hará A=B (lo quequieres hacer).


Título: Re: MS-DOS Ayuda
Publicado por: Tino en 21 Septiembre 2016, 16:36 pm
Muchisimas gracias MCKys ;-)