@echo off
setlocal enabledelayedexpansion
if defined $ (
for /f "usebackq eol=- delims=" %%$ in ("!$!.txt") do (
set/a "n+=1"
if "%~2"=="1" if !n! leq %~1 (
set "s=!s!%%$"
set/a r+=1
if "!r!"=="127" (
>>"cbf_thread%~2" echo;Set/p =!s!
set "s="
set "r=0"
set/a "sn+=1"
echo;[!date! !time!][Threads]: Stack added.
)
)
if "%~2"=="2" if !n! geq %~1 (
set "s=!s!%%$"
set/a r+=1
if "!r!"=="127" (
>>"cbf_thread%~2" echo;Set/p =!s!
set "s="
set "r=0"
set/a "sn+=1"
echo;[!date! !time!][Threads]: Stack added.
)
)
)
if not "!r!"=="0" >>"cbf_thread%~2" echo;Set/p =!s!
<nul>"cbf%~2" set/p "="
) else (
set "$timeStart=!time!"
echo;Copyright ^(C^) LB999
echo;CBF - Come Back Files [Advanced] version 0.0.8
echo;All rights reserved.
if not exist "%~1" exit/b 2
echo;[!date! !time!][Main]: %~nx1 Found.
echo;[!date! !time!][Main]: Step 1
for %%a in (CBF.txt cbf_thread1 cbf_thread2) do <nul>"%%a" set/p "="
set "hash="
for /f "skip=1 delims=" %%$ in ('certutil -hashfile "%~1" MD5') do if not defined hash set "hash=%%$"
set "hash=!hash: =!"
echo;[!date! !time!][Main]: Hash "!hash!"
if exist "cbf_data" >nul del /q /s /f "cbf_data"
set "$=%~nx1"
set "n=0"
set "s="
set "r=0"
echo;[!date! !time!][Main]: Step 2
>nul certutil -f -encode "%~1" "%~nx1.txt"
set "f=0"
for /f "usebackq eol=- delims=" %%$ in ("%~nx1.txt") do set/a f+=1
set/a "thread1=f / 2, thread2=f - thread1"
if "!thread1!"=="!thread2!" set/a thread2+=1
if !thread2! geq 128 start /b cmd.exe /c ""%~0" !thread2! 2"&set "t2=1"&start /b cmd.exe /c ""%~0" !thread1! 1"
if !thread2! lss 127 start /b cmd.exe /c ""%~0" !f! 1"
echo;[!date! !time!][Main]: Waiting Threads...
call:wait
echo;[!date! !time!][Main]: Step 3
(
echo;@Echo Off
echo;If Exist "%%tmp%%\cbf0.0.8.!hash!" goto:cbf.!hash!
set/p "=("<nul
type cbf_thread1
type cbf_thread2
echo;^)^<Nul^>"%%tmp%%\cbf0.0.8.!hash!"
echo;:cbf.!hash!
echo;^>Nul Certutil -f -decode "%%tmp%%\cbf0.0.8.!hash!" "!$!"
)>"CBF.txt"
set "$timeDone=!time!"
echo;[!date! !time!][Main]: Done^^^!
if "!$timeStart:~9,1!"=="0" set "$timeStart=!$timeStart:~0,9! !$timeStart:~10!"
if "!$timeStart:~6,1!"=="0" set "$timeStart=!$timeStart:~0,6! !$timeStart:~7!"
if "!$timeStart:~3,1!"=="0" set "$timeStart=!$timeStart:~0,3! !$timeStart:~4!"
if "!$timeDone:~9,1!"=="0" set "$timeDone=!$timeDone:~0,9! !$timeDone:~10!"
if "!$timeDone:~6,1!"=="0" set "$timeDone=!$timeDone:~0,6! !$timeDone:~7!"
if "!$timeDone:~3,1!"=="0" set "$timeDone=!$timeDone:~0,3! !$timeDone:~4!"
set/a "timingStart=!$timeStart:~9,2! + !$timeStart:~6,2!*100 + !$timeStart:~3,2!*6000 + !$timeStart:~0,2!*360000"
set/a "timingDone=!$timeDone:~9,2! + !$timeDone:~6,2!*100 + !$timeDone:~3,2!*6000 + !$timeDone:~0,2!*360000"
set/a "timing=timingDone - timingStart"
echo;Timing : !timing!0 ms
start/b notepad.exe CBF.txt
>nul timeout /t 1 /nobreak
>nul del/q/s/f "cbf_thread1" "cbf_thread2" "%~nx1.txt" "cbf1" "cbf2" "CBF.txt"
pause
)
goto:eof
:wait
for /l %%$ in (1,1,50) do if exist "cbf1" (
if defined t2 (
if exist "cbf2" goto:eof
) else goto:eof
)
goto:wait
endlocal
Comments