맨 아래 파일 있음!!!
라이엇 뱅가드 (Riot Vanguard) 란?
라이엇 안티치트 프로그램으로 2024년 5월 리그 오브 레전드에도 적용되었다. 뭐 요새 끊이지 않는 헬퍼 문제니 핵등 여러 말이 많으니 찬성이다.
하지만 문제는 컴퓨터 실행할 때 마다 자동으로 실행해야 하며 뱅가드를 실행 종료한뒤 다시 롤클라이언트를 시작하려 하면 재부팅 해야 되는 문제, 실행되어 있지 않으면 롤을 플레이 할 수 없게 되었다.
그리고 종료한 후에도 다른 프로그램 실행시 블루스크린 발생 문제와 보안문제 때문에라도 찝찝하여 수동 실행, 종료 할 수 있도록 만들게 되었다.
해결 과정
뱅가드는 거의 대부분 `C:\Program Files\Riot Vanguard` 에 설치되어 있을 것이며 이걸 기준으로 이야기 하겠다.
해당 파일 중 `vgc.exe`와 `vgtray.exe`를 실행되는데, `vgc.exe` 는 뱅가드 프로그램이며 `vgtray.exe`는 뱅가드 실행시 아래 트레이 박스 프로그램이다. 여기서 롤 클라이언트를 실행할때 vgc가 서비스 되어있는지를 판별하고 아닐시 종료시킨다.
윈도우 버튼을 누르고 서비스라 검색할 시 이러한 화면이 뜰 것이다.
그 중 vgc라는 항목이 있는데 이걸 수동 실행해주면 뱅가드를 종료하였더라도 실행 할 수 있다.
하지만 이렇게 수동으로 하면 불편하지 않는가?
그리하여 윈도우 프로그램인 .bat 배치파일을 사용하기로 하였다.
.bat 파일 작성
bat 문법은 간단하다.
@echo off
sc start vgc
::트레이까지 띄우고 싶을 때 ::주석제거
::start /d "C:\Program Files\Riot Vanguard" /b vgtray.exe
여기서 `@echo off` 는 배치 파일 실행 시 명령어 자체를 화면에 표시하지 않겠다는 것이고
`sc start vgc` 는 `vgc` 서비스를 실행시킨다.
메모장에 작성하여 .bat파일로 변환하여 작성하면 다음부턴 이 파일만 실행하면 시작할 수 있다.
서비스 종료도 마찬가지로
@echo off
sc stop vgc
::taskkill /IM vgtray.exe /F
이렇게 하면 된다.
메모장으로 작성 후 마지막 파일명을 .txt 에서 .bat로 바꾸면 된다.
+ 추가적으로
추가적으로 이렇게 하면 그냥 cmd창이 0.1초정도 띄워졌다 사라진다. 시각적으로 이용할 수 있도록 .bat 파일에서 PowerShell을 사용하여 사용자에게 알림을 표시해 보겠다.
@echo off
:: 알림의 이름
set "btitle=Vanguard Start"
:: 알림 내용
set "text=Vanguard has been executed."
:: 알림 아이콘
set "icon=info"
(echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"^)
echo $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon
echo $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information
echo $objNotifyIcon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::%icon%
echo $objNotifyIcon.BalloonTipTitle = "%btitle%"
echo $objNotifyIcon.BalloonTipText = "%text%"
echo $objNotifyIcon.Visible = $True
echo $objNotifyIcon.ShowBalloonTip(5000^)) > "%temp%\notification.ps1"
powershell -WindowStyle Hidden -noprofile -executionpolicy bypass -file "%temp%\notification.ps1"
del /q "%temp%\notification.ps1"
이렇게 작성하면 5초동안 아래와 같은 메세지가 표시되게 된다.
그렇다면 두개 파일 말고 하나의 파일로 실행되었을 때 끄고 꺼져있을때 실행할 순 없을까??
@echo off
sc query vgc | find "RUNNING" > nul
if errorlevel 1 (
echo vgc not start. vgc start.
sc start vgc
) else (
echo vgc already start. vgc stop.
sc stop vgc
)
pause
이렇게 작성하면 된다.
여기서 `sc query vgc | find "RUNNING" ` 명령은 이 명령이 실패하면, `find` 명령이 `RUNNING`을 찾지 못했을 것이다.
이 때 `errorlevel`이 1이 되며, vgc 서비스가 실행 중이 아니라는 뜻이 된다.
잘 작동하는 것 같다..
그렇다면 알림과 모든 기능을 하나로 합쳐보자.
`Running` 상태가 아닐때 실행하고 해당 메세지를 띄우면 되고, 실행상태면 중지시키기만 하면 된다.
@echo off
:: 알림 아이콘 (error, info, none, warning 중 선택)
set "icon=info"
sc query vgc | find "RUNNING" > nul
if errorlevel 1 (
set "btitle=Vanguard Start"
set "text=Vanguard has been executed."
set "action=start"
) else (
set "btitle=Vanguard Stop"
set "text=Vanguard has been stopped."
set "action=stop"
)
(echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"^)
echo $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon
echo $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information
echo $objNotifyIcon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::%icon%
echo $objNotifyIcon.BalloonTipTitle = "%btitle%"
echo $objNotifyIcon.BalloonTipText = "%text%"
echo $objNotifyIcon.Visible = $True
echo $objNotifyIcon.ShowBalloonTip(5000^)) > "%temp%\notification.ps1"
powershell -WindowStyle Hidden -noprofile -executionpolicy bypass -file "%temp%\notification.ps1"
del /q "%temp%\notification.ps1"
sc %action% vgc
최대한 중복을 제거하고 `%변수%` 를 사용하여 해보았다.
잘 작동되는것 같다.
++ 뇌절까지
가만두고 보니 이 .bat 파일 너무 못생겼다.
아이콘 변경도 안되고 이참에 .exe 파일로 변환해보기로 했다.
해당 프로그램은 Bat To Exe Converter 이며 프리웨어이다. https://github.com/tokyoneon/B2E
GitHub - tokyoneon/B2E: Bat To Exe Converter can convert BAT (.bat) script files to the EXE (.exe) format.
Bat To Exe Converter can convert BAT (.bat) script files to the EXE (.exe) format. - tokyoneon/B2E
github.com
근데 또 난관이... 뱅가드 아이콘이 없다. (뇌절 2스택)
이 까무잡잡한 아이콘이 아닌 우리가 아는 빨간색 뱅가드 아이콘이 필요하다. 그리하여...
iconsext라는 .exe에서 아이콘이미지를 추출하는 프로그램을 설치하게 되었다.
다운로드 : https://www.nirsoft.net/utils/iconsext.html
IconsExtract - Extract icon/cursor stored in EXE, DLL, OCX, CPL files
IconsExtract v1.47 - EXE/DLL/OCX/CPL icon grabber/extractor Copyright (c) 2003 - 2010 Nir Sofer Related Utilities Description The IconsExtract utility scans the files and folders on your computer, and extract the icons and cursors stored in EXE, DLL,
www.nirsoft.net
드디어 원하는 기능과 아이콘을 가진 .exe 파일을 만들게 되었다.
파일
해당 파일 첨부하겠다. 이 파일은 언제든 (라이엇 정책 변경시) 막힐 수 있으며 각 사용자 환경마다 작동이 안될 수 있다.
문제가 있다면 댓글로 알려주면 감사하겠다..
만약 .exe파일이 보안충돌을 일으킨다면 .bat 파일도 함께 올려두었으니 이걸로 대신 사용하길 바란다.
마무리
이제 쓸일 없으니 작업관리자 -> 시작프로그램에서 사용안함 체크까지 하면 마무리다.
서비스에 들어가서 vgc도 수동으로 바꾸도록 하자.
현재는 실행중이 아니더라도 롤을 실행하면 자동실행되는 경우도 있는듯하다. 종료할때 사용하자!
후기
뱅가드가 싫어서 수동으로 껐다 켰다 할 수는 없나 라는 생각으로 시작하였다. 창조는 일상에 대한 불편함에서 나온다 하지 않는가. 아무도 시도해보지 않아서 스스로 처음 .bat 문법도 사용해보고 exe프로그램도 제작하게 되었다.
다른 사람도 잘 작동하면 다행이지만 언제든 막힐 수 있으므로.. 잘 사용하시길..
'잡다한' 카테고리의 다른 글
수강신청 및 티켓팅 클릭 매크로 (With Python) (0) | 2023.01.19 |
---|