Como posso converter meu script em lote para um executável e ainda executar como um script de morcego?

1

Quando eu tento usar programas simples como battoexe.execonverter meu .batpara .exee executá-lo, ele não funciona como se eu fosse para correr diretamente do arquivo de lote ...

Meu código para o script em lote é o seguinte:

@echo off


:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------



net user administrator /active:yes

pause

Se eu executei o arquivo em lotes, ele realmente habilita a conta de administrador, no entanto, se eu o executei como um .exearquivo, nenhum dos meus códigos neste script funciona ...

Como faço para que funcione ou existe um bom programa que faz isso?

Ryan Ellis
fonte
Eu testo um deles. Mas o conversor bat2exe é ridículo. Eles apenas extraem o arquivo bat na pasta temp e os executam como de costume. Você tem que codificar esse arquivo exe em C ++ / C # ou outro.
Biswapriyo

Respostas:

0

Basta dar uma chance para este arquivo em lotes para codificar seu arquivo com base64 usando o certutilutilitário de comando, arrastando e soltando o arquivo sobre ele:

@echo off
Title Encoding Batch Files With CERTUTIL Utility by Hackoo 2017
color 0A & Mode 80,5
If "%~1"=="" ( 
    color 0C & Mode 80,3
    echo(
    echo       You should drag and drop a file over this batch script to be encoded !
    Timeout /T 5 /nobreak>nul & exit /b
)
@for /f %%i in ("certutil.exe") do if not exist "%%~$path:i" (
  echo CertUtil.exe not found.
  pause
  exit /b
)
>"temp.~b64" echo(//4mY2xzDQo=
set "BOM_File=%~n1"
certutil.exe -f -decode "temp.~b64" "%BOM_File%"
del "temp.~b64"
@Copy "%BOM_File%" /b + "%~1" /b >nul 2>&1

set "TempFile=%Temp%\Temp_b64
set "OutputFile=%BOM_File%_encoded%~x0"
If exist "%OutputFile%" Del "%OutputFile%" >nul 2>&1
echo(
certutil.exe -f -encode "%BOM_File%" "%TempFile%"
(
    echo @echo off 
    echo Title Execution of "%~nx1" by Hackoo 2017
    echo CERTUTIL -f -decode "%%~f0" "%%Temp%%\%~nx1" ^>nul 2^>^&1 
    echo Start "" "%%Temp%%\%~nx1"
    echo Exit
)> "%OutputFile%"

@Copy "%OutputFile%" /b + "%TempFile%" /b >nul 2>&1
If exist "%TempFile%" Del "%TempFile%" >nul 2>&1
If exist "%BOM_File%" Del "%BOM_File%" >nul 2>&1
Timeout /T 2 /NoBreak>nul
Hackoo
fonte