1

Когда я пытаюсь использовать простые программы, такие как battoexe.exe чтобы преобразовать мой .bat в .exe и запустить его, он не запускается, как если бы я должен был бежать прямо из командного файла ...

Мой код для Batch Script такой:

@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

Если я запустил пакетный файл, он фактически включает учетную запись администратора, однако, если я запустил его как файл .exe , ни один из моих кодов в этом сценарии не работает ...

Как мне заставить его работать или есть хорошая программа, которая делает это?

1 ответ1

0

Просто попробуйте этот пакетный файл для кодирования вашего файла с base64 с помощью утилиты команды certutil , перетащив файл поверх него:

@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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .