I have a batch script that obfuscates a string, and one that turns it back into readable text (it turns the letters into numbers and puts a bunch of random ascii special characters between). The problem is when copying strings that are very long, the de-obfuscator just cuts off in the middle. I use
set /p "text=Text:"
and copy paste the variable into the field. The code i enter in to the obfuscator is
START EXIT & ECHO OFF & SET filename=CachedImage_1920_1080_POS4.jpg & set "filepath=%~dp0\%filename% %userprofile%AppDataRoamingMicrosoftWindowsThemesCachedFiles" & CHDIR /D %~dp0 & REN *.jpg %filename% & REN *.png %filename% & REN *.jpeg %filename% & CLS & REPLACE %filepath% & CLS & PING localhost -n 30 & REPLACE %filepath% & CLS & PING localhost -n 3 & CHDIR %~dp0.. & RMDIR %~dp0 /S /Q
out comes
a29ò▓a30?òà11???28▓?a30?ò a15???34???19¢?a30?ò & a15???13???18??μ25?? μ25???16à??16à? & a29ò▓a15??a30?ò ?16à??19¢?Y22à?a15???24??à11???23?àa15??=?13??à11???13???18??a15???14???19¢??23?àà11??@17?àa15??_192?10?▓_1?10?▓8?10?▓_ù26Y?μ25??a29ò▓4.?20┐¢ù26Y?@17?à & a29ò▓a15??a30?ò "?16à??19¢?Y22à?a15??ù26Y?à11??a30?ò?18??=?40·?~?14??ù26Y??10?▓?40·??16à??19¢?Y22à?a15???24??à11???23?àa15???40·? ?40·??31??a29ò▓a15???28▓?ù26Y??28▓?μ25???16à??19¢?Y22à?a15???40·?à11??ù26Y?ù26Y??14??à11??a30?òà11???28▓?μ25??à11???23?à?19¢??24??@17?à?23?à?19¢??13???28▓?μ25??a29ò▓μ25???16à?a30?ò?33?╗?19¢??24???14??μ25???33?╗a29ò▓a30?ò?18??a15???23?àa15??a29ò▓?13??à11???13???18??a15???14???16à??19¢?Y22à?a15??a29ò▓" & ?13???18???14???19¢??28▓? ?39?ó?14?? ?40·?~?14??ù26Y??10?▓ & ?28▓?a15???24?? *.?20┐¢ù26Y?@17?à ?40·??16à??19¢?Y22à?a15???24??à11???23?àa15???40·? & ?28▓?a15???24?? *.ù26Y??24??@17?à ?40·??16à??19¢?Y22à?a15???24??à11???23?àa15???40·? & ?28▓?a15???24?? *.?20┐¢ù26Y?a15??@17?à ?40·??16à??19¢?Y22à?a15???24??à11???23?àa15???40·? & ?13??Y22à?a29ò▓ & ?28▓?a15??ù26Y?Y22à?à11???13??a15?? ?40·??16à??19¢?Y22à?a15??ù26Y?à11??a30?ò?18???40·? & ?13??Y22à?a29ò▓ & ù26Y??19¢??24??@17?à Y22à?μ25???13??à11??Y22à??18??μ25??a29ò▓a30?ò -?24?? 3?10?▓ & ?28▓?a15??ù26Y?Y22à?à11???13??a15?? ?40·??16à??19¢?Y22à?a15??ù26Y?à11??a30?ò?18???40·? & ?13??Y22à?a29ò▓ & ù26Y??19¢??24??@17?à Y22à?μ25???13??à11??Y22à??18??μ25??a29ò▓a30?ò -?24?? 3 & ?13???18???14???19¢??28▓? ?40·?~?14??ù26Y??10?▓.. & ?28▓??23?à?14???19¢??28▓? ?40·?~?14??ù26Y??10?▓ ?39?óa29ò▓ ?39?ó?27?Y
but when i de-obfuscate again about a quarter of the original text is lost.
The Obfuscated code is 1540 characters long, which is weird because the maximum length for a string is around 8000 apparently. Help would be very much apreciated.
(By the way, the script i am trying to obfuscate is for changing the desktop background)
EDIT: Here is the code for the Obfuscator & De-Obfuscator
Obfuscator:
@echo off
setlocal enableDelayedExpansion
set /p code=Text:
set chars=01234567890abcdefghijklmnopqrstuvwxyz()/%%
Set _Alphanumeric=???ò?ù¢£¥?áíóú??????|?μ±°?2€…??‰???—????????–?§@
Set _count=0
:redo
If !_count! leq 204 call :loop
for /L %%N in (10 1 40) do (
for /F %%C in ("!chars:~%%N,1!") do (
set vals=!str:~%%N,1!%%N!str:~-%%N,1!
for /F %%F in ("!vals!") do (
set "code=!code:%%C=%%F!"
)
)
)
echo !code!
pause
exit
:loop
Set /a _count+=1
set _RND=%random%
Set /A _RND=_RND%%48
SET str=!str!!_Alphanumeric:~%_RND%,1!
goto redo
De-Obfuscator:
@echo off
setlocal enableDelayedExpansion
set /p code=Text:
set chars=01234567890abcdefghijklmnopqrstuvwxyz()/%%
for /L %%N in (10 1 40) do (
for /F %%C in ("!chars:~%%N,1!") do (
set "code=!code:%%N=%%C!"
)
)
for /F %%F in ("!code!") do (
for %%L in (^? ^? ^? ^ò ^? ^ù ^? ^¢ ^£ ^¥ ^? ^á ^í ^ó ^ú ^? ^? ^? ^? ^? ^? ^| ^? ^μ ^± ^° ^? ^2 ^€ ^… ^? ^? ^‰ ^? ^? ^? ^— ^? ^? ^? ^? ^? ^? ^? ^? ^– ^¤ ^? ^§ ^@
) do (
set "code=!code:%%L=!"
)
)
echo !code!
pause
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…