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?


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.