@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! "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 "%%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 "=(""%%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