Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- :: Decoder base64
- :: by Germaniac
- :: Mod by SmarGenius (pure batch instead of using VBS)
- setlocal enableextensions enabledelayedexpansion
- title Decoder base64
- set base64=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
- :input
- cls
- set text=
- set /p text=Input base64 text:
- if defined text call :decoder
- goto :input
- :decoder
- set char.equ=0
- set binario.total=
- set decimal.total=
- echo:Wait...
- call :base64.binario
- for /l %%a in (1 1 %char.equ%) do (
- set binario.total=!binario.total!000000
- set binario.total=!binario.total:~0,-8!)
- call :binario.ocho.bits
- call :decimal.ascii
- echo:Output ascii text:%ascii%
- pause>nul
- goto :eof
- :base64.binario
- set char=%text:~0,1%
- if "!char!" equ "=" (set /a char.equ+=1) else call :char.binario
- set text=%text:~1%
- if not defined text goto :eof
- goto :base64.binario
- :char.binario
- for /l %%a in (0 1 64) do (
- set value=!base64:~%%a,1!
- if "!char!" equ "!value!" (
- call :decimal.binario %%a))
- set binario.total=%binario.total%%binario%
- goto :eof
- :decimal.binario
- set value=%1
- set binario=
- :binario.loop
- set /a mod=value%%2
- set /a value/=2
- set binario=%mod%%binario%
- if %value%==0 (
- call :count.char %binario%
- for /l %%a in (!digit! 1 5) do set binario=0!binario!
- goto :eof)
- goto :binario.loop
- :count.char
- set value=%1
- set digit=1
- :count.loop
- set value=%value:~1%
- if not defined value goto :eof
- set /a digit+=1
- goto :count.loop
- :binario.ocho.bits
- set count=0
- set decimal=0
- set ocho.bits=%binario.total:~0,8%
- call :binario.decimal
- if defined decimal.total (set decimal.total=%decimal.total%,%decimal%) else set decimal.total=%decimal%
- set binario.total=%binario.total:~8%
- if not defined binario.total goto :eof
- goto :binario.ocho.bits
- :binario.decimal
- set bit=%ocho.bits:~-1%
- if "%bit%" equ "1" (
- set /a "add=1<<count"
- set /a decimal+=add)
- set /a count+=1
- set ocho.bits=%ocho.bits:~0,-1%
- if not defined ocho.bits goto :eof
- goto :binario.decimal
- :decimal.ascii
- For %%a in (%decimal.total%) do (
- Cmd /cexit /b %%a
- Set "Ascii=!Ascii!!=ExitCodeAscii!")
- Goto :Eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement