├── LICENSE
├── README.md
├── Screenshot3.png
└── xraygui
├── all
├── etc
│ └── systemd
│ │ └── user
│ │ ├── xray-swproxy.service
│ │ ├── xray-update.service
│ │ └── xray.service
└── usr
│ ├── bin
│ ├── xray-update
│ └── xraygui
│ └── share
│ ├── applications
│ └── xraygui.desktop
│ ├── doc
│ └── xraygui
│ │ └── repack.txt
│ └── icons
│ └── xraygui.png
├── backup
├── portscan_trd.pas
├── reality_gen.lfm
├── reality_gen.pas
├── start_trd.pas
├── unit1.lfm
├── unit1.pas
├── update_trd.pas
├── xraygui.lpi
├── xraygui.lps
└── xraygui.pas
├── ico
├── copy.png
├── floppy-disk (1).png
├── folder.png
├── reality.png
└── xraygui.png
├── languages
├── lclstrconsts.po
├── lclstrconsts.ru.po
├── xraygui.pot
├── xraygui.ru.mo
└── xraygui.ru.po
├── lib
└── x86_64-linux
│ ├── portscan_trd.o
│ ├── portscan_trd.ppu
│ ├── reality_gen.lfm
│ ├── reality_gen.o
│ ├── reality_gen.ppu
│ ├── start_trd.o
│ ├── start_trd.ppu
│ ├── unit1.lfm
│ ├── unit1.o
│ ├── unit1.ppu
│ ├── unit1.rsj
│ ├── update_trd.o
│ ├── update_trd.ppu
│ ├── vmessgui.compiled
│ ├── vmessgui.o
│ ├── vmessgui.or
│ ├── vmessgui.res
│ ├── xraygui.compiled
│ ├── xraygui.o
│ ├── xraygui.or
│ └── xraygui.res
├── package_project
└── xraygui.prj
├── portscan_trd.pas
├── reality_gen.lfm
├── reality_gen.lrj
├── reality_gen.pas
├── start_trd.pas
├── unit1.lfm
├── unit1.lrj
├── unit1.pas
├── update_trd.pas
├── xraygui
├── xraygui.ico
├── xraygui.lpi
├── xraygui.lps
├── xraygui.pas
└── xraygui.res
/README.md:
--------------------------------------------------------------------------------
1 | # XRayGUI
2 | **Dependencies:** systemd gtk2 p7zip zenity curl lib64proxy-gnome lib64proxy-kde qrencode
3 |
4 | **Ports used:** `SOCKS` - 127.0.0.1:1080 (can be changed), `HTTP` - 127.0.0.1:8889 (fixed)
5 |
6 | A small and nimble GUI for [XRay-core](https://github.com/XTLS/Xray-core): launch, find `VMESS`, `VLESS`, `SS (Shadowsocks)` or `Trojan` configurations on the network, copy to the buffer, paste into `XRayGUI` (`Paste` button) and click `Start`. If the green indicator lights up and the logs run, the connection is established. In the browser, set the SOCKS5 - `127.0.0.1`:`1080` proxy and redirect DNS via proxy (check the box there). The list of configurations can be saved to a file and downloaded from a file (PopUp Menu). You can check your new location here: https://whoer.net
7 |
8 | **Support:**
9 | + Shadowsocks (without obfs)
10 | + VMESS: +TLS, +WS, +WS+TLS, +KCP, +gRPC, +HTTPUpgrade
11 | + VLESS: +TLS, +WS, +WS+TLS, +gRPC, +gRPC+TLS, +KCP, +REALITY, +XHTTP, +HTTPUpgrade
12 | + Trojan: +WS, +gRPC
13 |
14 | Starting with `XRayGUI-v1.6`, support for `XTLS-Reality` and a generator of simple but reliable Client-Server configurations have been introduced ("R" button).
15 |
16 | System-Wide Proxy
17 | --
18 | Starting from `XRayGUI-v1.5`, it became possible to use the connection as a global proxy for the entire system (`SWP` checkbox). This allows you to redirect all traffic through Socks5 without manually interfering with browser settings. The mode is guaranteed to work in GNOME, Budgie, Cinnamon, MATE (package required: `lib64proxy-gnome`) and KDE-5 (package required: `lib64proxy-kde`).
19 |
20 | In Mageia Linux for XFCE, LXDE and LXQt the global proxy is specified in `Mageia Control Center->Network->Proxy`. On other OSes, you can create a file `/etc/profile.d/proxy.sh`. Execute under `su` and relogin:
21 | ```
22 | echo -e "export {http_proxy,https_proxy,ftp_proxy}=http://127.0.0.1:8889\nexport {HTTP_PROXY,HTTPS_PROXY,FTP_PROXY}=\$http_proxy" > /etc/profile.d/proxy.sh; chmod +x /etc/profile.d/proxy.sh
23 | ```
24 | **Note:** Starting with `XRayGUI-v1.1`, the binary `xray-core` removed from the rpm package is downloaded and updated directly from the developer's GitHub to the directory `~/.config/xraygui/xray`.
25 |
26 | 
27 |
28 | Tested in Mageia-9 and Linux Mint.
29 |
--------------------------------------------------------------------------------
/Screenshot3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/Screenshot3.png
--------------------------------------------------------------------------------
/xraygui/all/etc/systemd/user/xray-swproxy.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=XRay Service
3 | Documentation=https://github.com/xtls
4 | After=network.target nss-lookup.target
5 |
6 | [Service]
7 | Type=simple
8 | ExecStart=/bin/bash -c 'cd ~/.config/xraygui; source ./swproxy.sh set'
9 | ExecStop=/bin/bash -c 'cd ~/.config/xraygui; source ./swproxy.sh unset'
10 |
11 | RemainAfterExit=yes
12 |
13 | [Install]
14 | WantedBy=default.target
15 |
--------------------------------------------------------------------------------
/xraygui/all/etc/systemd/user/xray-update.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Xray-Core Update Service
3 |
4 | [Service]
5 | Type=simple
6 | ExecStart=xray-update
7 | KillMode=mixed
8 |
9 | [Install]
10 | WantedBy=default.target
11 |
--------------------------------------------------------------------------------
/xraygui/all/etc/systemd/user/xray.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=XRay Service
3 | Documentation=https://github.com/xtls
4 | After=network.target nss-lookup.target
5 |
6 | [Service]
7 | ExecStart=/bin/bash -c 'cd ~/.config/xraygui/xray && \
8 | ./xray run -config ~/.config/xraygui/config.json > ~/.config/xraygui/xraygui.log'
9 |
10 | Restart=on-failure
11 | RestartPreventExitStatus=23
12 |
13 | [Install]
14 | WantedBy=default.target
15 |
--------------------------------------------------------------------------------
/xraygui/all/usr/bin/xray-update:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # XRay-Core update script
4 | # Dependencies: curl p7zip zenity
5 |
6 | #Если сайт доступен - продолжить
7 | #[[ $(fping github.com) ]] || exit;
8 |
9 | #Language select
10 | case $LANG in
11 | ru_RU.UTF-8)
12 | str=('Обновление XRay-Core' 'Обновить XRay-Core до последней версии?' \
13 | '1. Обновление займёт примерно 10-15 секунд' \
14 | '2. Программа будет открыта после обновления')
15 | ;;
16 | *)
17 | str=('XRay-Core Update' 'Update XRay-Core to the latest version?' \
18 | '1. The update will take about 10-15 seconds' \
19 | '2. The program will be opened after the update')
20 | ;;
21 | esac
22 |
23 | #Запуск обновления без GUI
24 | test -d ~/.config/xraygui/xray || mkdir -p ~/.config/xraygui/xray
25 |
26 | #Версия локального xray
27 | test -f ~/.config/xraygui/xray/xray && lversion=$(~/.config/xraygui/xray/xray --version | head -n1 | awk '{print $2}') || lversion="0"
28 | echo "lversion: Локальная версия: $lversion"
29 | #read a
30 |
31 | #URL новейшего архива Xray-linux-64.zip на GitHub (содержимое latest может быть представлено одной строкой)
32 | cd ~/.config/xraygui; curl -m 10 -OL https://api.github.com/repos/XTLS/Xray-core/releases/latest || exit
33 | #Кол-во попыток доступа к API
34 | if [ "$(grep 'limit exceeded' ./latest)" ]; then cat ./latest; exit; fi
35 |
36 | archurl=$(cat ./latest | tr -d " \n\"{}[]" | tr "," "\n" | \
37 | grep browser_download_url | grep 'Xray-linux-64.zip$' | cut -f2- -d":")
38 | echo "URL архива на гите: $archurl"
39 | #read a
40 |
41 | #Версия Xray-linux-64.zip на гите из URL
42 | rversion=$(echo $archurl | cut -d "/" -f8 | sed 's/[[:alpha:]]*//g')
43 | echo "rversion: Версия на гите: $rversion"
44 | #read a
45 |
46 | #Сравнение локальной версии xray и на гите из URL
47 | if [[ $lversion != $rversion ]]; then
48 | zenity --question --title="${str[0]}" --text="${str[1]}\n\n${str[2]}\n${str[3]}" --no-wrap
49 | if [[ $? -eq 0 ]]; then
50 | killall xraygui; systemctl --user stop xray; killall xray
51 |
52 | cd ~/.config/xraygui/xray
53 | curl -OL $archurl
54 | 7z e -y ./*.zip
55 | rm -f ./*.zip*
56 | sleep 2; if [[ -z $(pidof xraygui) ]]; then xraygui; fi;
57 | fi;
58 | fi;
59 |
60 | exit 0
61 |
--------------------------------------------------------------------------------
/xraygui/all/usr/bin/xraygui:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ -f "/home/$LOGNAME/.config/xraygui/clear" ]; then
4 | #zenity --question --no-wrap --title="Browser Сleaner" \
5 | # --text="Clear the Cache and Cookies of installed Browsers?"
6 |
7 | #if [ "$?" -eq "0" ]; then
8 | # Caches (Mozilla, Chrome, Opera, Chromium, Palemoon)
9 | rm -rf ~/.cache/mozilla/* \
10 | ~/.cache/google-chrome/* \
11 | ~/.cache/opera/* \
12 | ~/.cache/chromium/* \
13 | ~/.cache/moonchild\ productions/*
14 |
15 | # Cookies
16 | rm -f $(find ~/.mozilla/* -type f -name "cookies.sqlite") \
17 | ~/.config/google-chrome/Default/Cookies* \
18 | ~/.config/opera/Cookies* \
19 | ~/.config/chromium/Default/Cookies* \
20 | "$(find ~/.moonchild\ productions/pale\ moon/* -type f -name "cookies.sqlite")"
21 | #fi;
22 | fi;
23 | # ---
24 |
25 | /usr/share/xraygui/xraygui
26 |
27 | exit 0;
28 |
--------------------------------------------------------------------------------
/xraygui/all/usr/share/applications/xraygui.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=XRayGUI (Proxy connector)
3 | Name[ru]=XRayGUI (Прокси коннектор)
4 | Comment=VMESS, VLESS, Shadowsocks
5 | Icon=xraygui
6 | Exec=xraygui
7 | Type=Application
8 | Categories=System;
9 | Terminal=false
10 |
--------------------------------------------------------------------------------
/xraygui/all/usr/share/doc/xraygui/repack.txt:
--------------------------------------------------------------------------------
1 | This repack.txt file was created automatically by RPMCreator v2.2
2 | It contains the necessary information to recreation the program from the source code
3 |
4 | Information about the program:
5 | ---
6 | Name of program: XRayGUI
7 | Version of program: 1.2
8 | Program development tool: Lazarus
9 | Version of program development tool: 2.2.4
10 | URL the sources + binaries of the author: https://github.com/AKotov-dev/XRayGUI
11 |
12 | Information about the rpm-package:
13 | ---
14 | Build method: Portable RPM
15 | Time stamp: 19-3-23 07:49:49
16 |
17 | Name: xraygui
18 | Version: 1.2
19 | Release: 0.mrx9
20 | Group: Applications/System
21 | License: GPLv3
22 | Maintainer: Alex Kotov
23 | Vendor: alex_q_2000 (C) 2022
24 | URL of the copy source codes: https://github.com/AKotov-dev/XRayGUI
25 |
26 | Summary: GUI for XRay
27 |
28 | Description:
29 | ---
30 | A small and nimble GUI for XRay-core
31 | ---
32 | More information: /usr/share/doc/package_name/repack.txt
33 |
34 | Package dependencies:
35 | ---
36 | systemd gtk2 fping wget p7zip zenity
37 |
38 | Additionally information:
39 | ---
40 | v1.2
41 | + Default: "allowInsecure": true
42 | + Default connection: 127.0.0.1:1080
43 | + Improved Сonfiguration building
44 | + Improved startup/update services
45 | + Switching logging to the "warning" level
46 | + RPM packages for Mageia-8 and Mageia-9
47 |
48 | v1.1
49 | + Installing xray-core from the GitHub
50 | + xray-core installation/update directory ~/.config/xraygui/xray
51 | + RPM packages for Mageia-8 and Mageia-9
52 |
53 | v1.0
54 | + Update Xray-core v1.6.0
55 | + Auto-update Xray-Core at GUI startup
56 | + RPM packages for Mageia-8 and Mageia-9
57 |
58 | v0.9
59 | + Improved startup control (xray/port)
60 | + Prevention the launch of the second copy of the program
61 |
62 | v0.8-1
63 | + Update: Xray-core v1.5.9
64 |
65 | v0.8
66 | + Switching to systemd (autostart from the user)
67 | + Correction of the spec file (rpm/deb)
68 | + Autostart testing in Mageia/LUbuntu - passed
69 |
70 | v0.7
71 | + Vless+gRPC and Trojan+gRPC support
72 | + General test:
73 | VMESS TLS - passed
74 | VMESS non TLS - passed
75 |
76 | VLESS TLS - passed
77 | VLESS non TLS - passed
78 | VLESS + WS TLS - passed
79 | VLESS + WS non TLS - passed
80 | VLESS + gRPC - passed
81 |
82 | Trojan - passed
83 | Trojan + WS - passed
84 | Trojan + gRPC - passed
85 |
86 | v0.6
87 | + Trojan protocol support
88 | + Proxy launch control in a separate thread
89 | + Optimization of Vmess/Vless/SS/Trojan configurations
90 |
91 | v0.5
92 | + Supported protocols: VMESS/VLESS (ws, ws+tls) and SS (without obfs)
93 | + Changed the file type of uploading/saving the list of configurations to *.proxy
94 | + Excluded URL insertion from PopUp menu to save duplicate search
95 |
96 | v0.4
97 | + Optimization of log output
98 | + Optimization of general perception (visual load)
99 |
100 | v0.3
101 | + Autostart proxy after reboot
102 | + Disabling xray before updating/deleting rpm/deb (spec)
103 |
104 | v0.2
105 | + PopUp menu: Paste from clipboard
106 | + Cosmetic edits, hints, etc...
107 |
108 | v0.1 - initial release
109 |
--------------------------------------------------------------------------------
/xraygui/all/usr/share/icons/xraygui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/all/usr/share/icons/xraygui.png
--------------------------------------------------------------------------------
/xraygui/backup/portscan_trd.pas:
--------------------------------------------------------------------------------
1 | unit portscan_trd;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, Forms, Controls, SysUtils, Process, Graphics;
9 |
10 | type
11 | PortScan = class(TThread)
12 | private
13 |
14 | { Private declarations }
15 | protected
16 | var
17 | ResultStr: TStringList;
18 |
19 | procedure Execute; override;
20 | procedure ShowStatus;
21 |
22 | end;
23 |
24 | implementation
25 |
26 | uses unit1;
27 |
28 | { TRD }
29 |
30 | procedure PortScan.Execute;
31 | var
32 | ScanProcess: TProcess;
33 | begin
34 | FreeOnTerminate := True; //Уничтожать по завершении
35 |
36 | while not Terminated do
37 | try
38 | ResultStr := TStringList.Create;
39 |
40 | ScanProcess := TProcess.Create(nil);
41 |
42 | ScanProcess.Executable := 'bash';
43 | ScanProcess.Parameters.Add('-c');
44 | ScanProcess.Options := [poUsePipes, poWaitOnExit];
45 |
46 | ScanProcess.Parameters.Add(
47 | 'if [[ $(ss -ltn | grep ' + MainForm.PortEdit.Text +
48 | ') && $(pidof xray) ]]; then echo "yes"; else echo "no"; fi');
49 |
50 | ScanProcess.Execute;
51 |
52 | ResultStr.LoadFromStream(ScanProcess.Output);
53 | Synchronize(@ShowStatus);
54 |
55 | Sleep(1000);
56 | finally
57 | ResultStr.Free;
58 | ScanProcess.Free;
59 | end;
60 | end;
61 |
62 | //Отображение статуса
63 | procedure PortScan.ShowStatus;
64 | begin
65 | with MainForm do
66 | begin
67 | if ResultStr[0] = 'yes' then
68 | begin
69 | Shape1.Brush.Color := clLime;
70 | PortEdit.Enabled := False;
71 | LoadItem.Enabled := False;
72 | end
73 | else
74 | begin
75 | Shape1.Brush.Color := clYellow;
76 | if ConfigBox.Count <> 0 then
77 | PortEdit.Enabled := True;
78 | LoadItem.Enabled := True;
79 | end;
80 |
81 | Shape1.Repaint;
82 | end;
83 | end;
84 |
85 | end.
86 |
--------------------------------------------------------------------------------
/xraygui/backup/reality_gen.lfm:
--------------------------------------------------------------------------------
1 | object RealityForm: TRealityForm
2 | Left = 295
3 | Height = 533
4 | Top = 130
5 | Width = 611
6 | ActiveControl = Edit1
7 | Caption = 'REALITY configurations generator (Client-Server)'
8 | ClientHeight = 533
9 | ClientWidth = 611
10 | OnCreate = FormCreate
11 | Position = poMainFormCenter
12 | SessionProperties = 'ComboBox1.Text;ComboBox2.Text;ComboBox3.Text;Edit1.Text;Edit2.Text;Edit3.Text;Edit4.Text;Edit5.Text;Edit6.Text;Memo1.Lines;SaveDialog1.InitialDir'
13 | LCLVersion = '2.2.4.0'
14 | object Label1: TLabel
15 | AnchorSideLeft.Control = Owner
16 | AnchorSideTop.Side = asrCenter
17 | Left = 8
18 | Height = 17
19 | Top = 18
20 | Width = 66
21 | BorderSpacing.Left = 8
22 | Caption = 'Server:Port'
23 | ParentColor = False
24 | end
25 | object Edit1: TEdit
26 | AnchorSideLeft.Control = Label1
27 | AnchorSideLeft.Side = asrBottom
28 | AnchorSideTop.Control = Label1
29 | AnchorSideTop.Side = asrCenter
30 | Left = 79
31 | Height = 37
32 | Top = 8
33 | Width = 238
34 | BorderSpacing.Left = 5
35 | OnChange = Edit1Change
36 | TabOrder = 0
37 | end
38 | object Label2: TLabel
39 | AnchorSideLeft.Control = Edit1
40 | AnchorSideLeft.Side = asrBottom
41 | AnchorSideTop.Control = Label1
42 | AnchorSideTop.Side = asrCenter
43 | Left = 319
44 | Height = 17
45 | Top = 18
46 | Width = 3
47 | BorderSpacing.Left = 2
48 | Caption = ':'
49 | ParentColor = False
50 | end
51 | object Edit2: TEdit
52 | AnchorSideLeft.Control = Label2
53 | AnchorSideLeft.Side = asrBottom
54 | AnchorSideTop.Control = Label1
55 | AnchorSideTop.Side = asrCenter
56 | Left = 324
57 | Height = 37
58 | Hint = 'Strictly recommended 443'
59 | Top = 8
60 | Width = 82
61 | BorderSpacing.Left = 2
62 | OnChange = Edit1Change
63 | ParentShowHint = False
64 | ShowHint = True
65 | TabOrder = 1
66 | Text = '443'
67 | end
68 | object Label3: TLabel
69 | AnchorSideLeft.Control = Owner
70 | Left = 8
71 | Height = 17
72 | Top = 208
73 | Width = 31
74 | BorderSpacing.Left = 8
75 | Caption = 'UUID'
76 | ParentColor = False
77 | end
78 | object Edit3: TEdit
79 | AnchorSideLeft.Control = Edit5
80 | AnchorSideTop.Control = Label3
81 | AnchorSideTop.Side = asrCenter
82 | AnchorSideRight.Control = SpeedButton1
83 | Left = 81
84 | Height = 37
85 | Top = 198
86 | Width = 434
87 | Anchors = [akTop, akLeft, akRight]
88 | OnChange = Edit1Change
89 | TabOrder = 5
90 | end
91 | object Label4: TLabel
92 | AnchorSideLeft.Control = Owner
93 | Left = 8
94 | Height = 17
95 | Top = 64
96 | Width = 30
97 | BorderSpacing.Left = 8
98 | Caption = 'Flow'
99 | ParentColor = False
100 | end
101 | object ComboBox1: TComboBox
102 | AnchorSideLeft.Control = Label4
103 | AnchorSideLeft.Side = asrBottom
104 | AnchorSideTop.Control = Label4
105 | AnchorSideTop.Side = asrCenter
106 | AnchorSideRight.Control = Edit2
107 | AnchorSideRight.Side = asrBottom
108 | Left = 58
109 | Height = 37
110 | Top = 54
111 | Width = 348
112 | Anchors = [akTop, akLeft, akRight]
113 | BorderSpacing.Left = 20
114 | ItemHeight = 0
115 | ItemIndex = 0
116 | Items.Strings = (
117 | 'xtls-rprx-vision'
118 | 'xtls-rprx-vision-udp443'
119 | )
120 | OnChange = Edit1Change
121 | TabOrder = 2
122 | Text = 'xtls-rprx-vision'
123 | end
124 | object Label5: TLabel
125 | AnchorSideLeft.Control = Owner
126 | Left = 8
127 | Height = 17
128 | Top = 112
129 | Width = 21
130 | BorderSpacing.Left = 8
131 | Caption = 'SNI'
132 | ParentColor = False
133 | end
134 | object ComboBox2: TComboBox
135 | AnchorSideLeft.Control = ComboBox1
136 | AnchorSideTop.Control = Label5
137 | AnchorSideTop.Side = asrCenter
138 | AnchorSideRight.Control = Edit2
139 | AnchorSideRight.Side = asrBottom
140 | Left = 58
141 | Height = 37
142 | Top = 102
143 | Width = 348
144 | Anchors = [akTop, akLeft, akRight]
145 | ItemHeight = 0
146 | ItemIndex = 7
147 | Items.Strings = (
148 | 'www.asus.com'
149 | 'www.bing.com'
150 | 'www.cisco.com'
151 | 'www.linksys.com'
152 | 'www.microsoft.com'
153 | 'www.nvidia.com'
154 | 'www.samsung.com'
155 | 'www.yahoo.com'
156 | )
157 | OnChange = Edit1Change
158 | TabOrder = 3
159 | Text = 'www.yahoo.com'
160 | end
161 | object Label6: TLabel
162 | AnchorSideLeft.Control = Owner
163 | Left = 8
164 | Height = 17
165 | Top = 160
166 | Width = 37
167 | BorderSpacing.Left = 8
168 | Caption = 'FPrint'
169 | ParentColor = False
170 | end
171 | object ComboBox3: TComboBox
172 | AnchorSideLeft.Control = ComboBox1
173 | AnchorSideTop.Control = Label6
174 | AnchorSideTop.Side = asrCenter
175 | AnchorSideRight.Control = Edit2
176 | AnchorSideRight.Side = asrBottom
177 | Left = 58
178 | Height = 37
179 | Top = 150
180 | Width = 348
181 | Anchors = [akTop, akLeft, akRight]
182 | ItemHeight = 0
183 | Items.Strings = (
184 | 'chrome'
185 | 'firefox'
186 | 'edge'
187 | 'safari'
188 | '360'
189 | 'ios'
190 | 'android'
191 | )
192 | OnChange = Edit1Change
193 | TabOrder = 4
194 | Text = 'chrome'
195 | end
196 | object Label7: TLabel
197 | AnchorSideLeft.Control = Owner
198 | Left = 8
199 | Height = 17
200 | Top = 304
201 | Width = 60
202 | BorderSpacing.Left = 8
203 | Caption = 'Public Key'
204 | ParentColor = False
205 | end
206 | object Edit4: TEdit
207 | AnchorSideLeft.Control = Edit5
208 | AnchorSideTop.Control = Label7
209 | AnchorSideTop.Side = asrCenter
210 | AnchorSideRight.Control = SpeedButton2
211 | Left = 81
212 | Height = 37
213 | Top = 294
214 | Width = 434
215 | Anchors = [akTop, akLeft, akRight]
216 | OnChange = Edit1Change
217 | TabOrder = 7
218 | end
219 | object Label8: TLabel
220 | AnchorSideLeft.Control = Owner
221 | Left = 8
222 | Height = 17
223 | Top = 256
224 | Width = 65
225 | BorderSpacing.Left = 8
226 | Caption = 'Private Key'
227 | ParentColor = False
228 | end
229 | object Edit5: TEdit
230 | AnchorSideLeft.Control = Label8
231 | AnchorSideLeft.Side = asrBottom
232 | AnchorSideTop.Control = Label8
233 | AnchorSideTop.Side = asrCenter
234 | AnchorSideRight.Control = SpeedButton2
235 | Left = 81
236 | Height = 37
237 | Top = 246
238 | Width = 434
239 | Anchors = [akTop, akLeft, akRight]
240 | BorderSpacing.Left = 8
241 | OnChange = Edit1Change
242 | TabOrder = 6
243 | end
244 | object SpeedButton1: TSpeedButton
245 | AnchorSideLeft.Control = Edit3
246 | AnchorSideLeft.Side = asrBottom
247 | AnchorSideTop.Control = Edit3
248 | AnchorSideRight.Control = Owner
249 | AnchorSideRight.Side = asrBottom
250 | AnchorSideBottom.Control = Edit3
251 | AnchorSideBottom.Side = asrBottom
252 | Left = 515
253 | Height = 37
254 | Top = 198
255 | Width = 88
256 | Anchors = [akTop, akRight, akBottom]
257 | BorderSpacing.Right = 8
258 | Caption = 'NEW'
259 | OnClick = SpeedButton1Click
260 | end
261 | object SpeedButton2: TSpeedButton
262 | AnchorSideLeft.Control = Edit4
263 | AnchorSideLeft.Side = asrBottom
264 | AnchorSideTop.Control = Edit5
265 | AnchorSideRight.Control = Owner
266 | AnchorSideRight.Side = asrBottom
267 | AnchorSideBottom.Control = Edit4
268 | AnchorSideBottom.Side = asrBottom
269 | Left = 515
270 | Height = 85
271 | Top = 246
272 | Width = 88
273 | Anchors = [akTop, akRight, akBottom]
274 | BorderSpacing.Right = 8
275 | Caption = 'NEW'
276 | OnClick = SpeedButton2Click
277 | end
278 | object Label9: TLabel
279 | AnchorSideLeft.Control = Owner
280 | Left = 8
281 | Height = 17
282 | Top = 352
283 | Width = 20
284 | BorderSpacing.Left = 8
285 | Caption = 'SID'
286 | ParentColor = False
287 | end
288 | object Edit6: TEdit
289 | AnchorSideTop.Control = Label9
290 | AnchorSideTop.Side = asrCenter
291 | AnchorSideRight.Control = Edit2
292 | AnchorSideRight.Side = asrBottom
293 | Left = 40
294 | Height = 37
295 | Top = 342
296 | Width = 366
297 | Anchors = [akTop, akLeft, akRight]
298 | OnChange = Edit1Change
299 | TabOrder = 8
300 | end
301 | object SpeedButton3: TSpeedButton
302 | AnchorSideLeft.Control = Edit6
303 | AnchorSideLeft.Side = asrBottom
304 | AnchorSideTop.Control = Edit6
305 | AnchorSideBottom.Control = Edit6
306 | AnchorSideBottom.Side = asrBottom
307 | Left = 406
308 | Height = 37
309 | Top = 342
310 | Width = 88
311 | Anchors = [akTop, akLeft, akBottom]
312 | Caption = 'NEW'
313 | OnClick = SpeedButton3Click
314 | end
315 | object Memo1: TMemo
316 | AnchorSideLeft.Control = Owner
317 | AnchorSideRight.Control = Owner
318 | AnchorSideRight.Side = asrBottom
319 | AnchorSideBottom.Control = Owner
320 | AnchorSideBottom.Side = asrBottom
321 | Left = 8
322 | Height = 101
323 | Top = 424
324 | Width = 595
325 | Anchors = [akTop, akLeft, akRight, akBottom]
326 | BorderSpacing.Left = 8
327 | BorderSpacing.Right = 8
328 | BorderSpacing.Bottom = 8
329 | Font.Height = -12
330 | Font.Name = 'Monospace'
331 | ParentFont = False
332 | ReadOnly = True
333 | ScrollBars = ssVertical
334 | TabOrder = 9
335 | end
336 | object CopyBtn: TSpeedButton
337 | AnchorSideRight.Control = Memo1
338 | AnchorSideRight.Side = asrBottom
339 | AnchorSideBottom.Control = Memo1
340 | Left = 498
341 | Height = 35
342 | Top = 387
343 | Width = 105
344 | Anchors = [akRight, akBottom]
345 | BorderSpacing.Bottom = 2
346 | Caption = 'Copy'
347 | Enabled = False
348 | OnClick = CopyBtnClick
349 | end
350 | object Label10: TLabel
351 | AnchorSideLeft.Control = Memo1
352 | AnchorSideBottom.Control = CopyBtn
353 | AnchorSideBottom.Side = asrBottom
354 | Left = 8
355 | Height = 17
356 | Top = 405
357 | Width = 325
358 | Anchors = [akLeft, akBottom]
359 | Caption = 'Connection string to insert into XRayGUI via Clipboard'
360 | ParentColor = False
361 | end
362 | object SaveBtn: TSpeedButton
363 | AnchorSideRight.Control = Owner
364 | AnchorSideRight.Side = asrBottom
365 | Left = 434
366 | Height = 64
367 | Top = 8
368 | Width = 169
369 | Anchors = [akTop, akRight]
370 | BorderSpacing.Right = 8
371 | Caption = 'Save server.json'
372 | Enabled = False
373 | OnClick = SaveBtnClick
374 | end
375 | object IniPropStorage1: TIniPropStorage
376 | StoredValues = <>
377 | Left = 456
378 | Top = 104
379 | end
380 | object SaveDialog1: TSaveDialog
381 | DefaultExt = '.*.json'
382 | FileName = 'server.json'
383 | Filter = 'JSON files (*.json)|*.json'
384 | Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
385 | Left = 544
386 | Top = 104
387 | end
388 | end
389 |
--------------------------------------------------------------------------------
/xraygui/backup/reality_gen.pas:
--------------------------------------------------------------------------------
1 | unit reality_gen;
2 |
3 | {$mode ObjFPC}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Process,
9 | StdCtrls, Buttons, IniPropStorage, Clipbrd;
10 |
11 | type
12 |
13 | { TRealityForm }
14 |
15 | TRealityForm = class(TForm)
16 | ComboBox1: TComboBox;
17 | ComboBox2: TComboBox;
18 | ComboBox3: TComboBox;
19 | Edit1: TEdit;
20 | Edit2: TEdit;
21 | Edit3: TEdit;
22 | Edit4: TEdit;
23 | Edit5: TEdit;
24 | Edit6: TEdit;
25 | IniPropStorage1: TIniPropStorage;
26 | Label1: TLabel;
27 | Label10: TLabel;
28 | Label2: TLabel;
29 | Label3: TLabel;
30 | Label4: TLabel;
31 | Label5: TLabel;
32 | Label6: TLabel;
33 | Label7: TLabel;
34 | Label8: TLabel;
35 | Label9: TLabel;
36 | Memo1: TMemo;
37 | SaveDialog1: TSaveDialog;
38 | SpeedButton1: TSpeedButton;
39 | SpeedButton2: TSpeedButton;
40 | SpeedButton3: TSpeedButton;
41 | CopyBtn: TSpeedButton;
42 | SaveBtn: TSpeedButton;
43 | procedure Edit1Change(Sender: TObject);
44 | procedure FormCreate(Sender: TObject);
45 | procedure SpeedButton1Click(Sender: TObject);
46 | procedure SpeedButton2Click(Sender: TObject);
47 | procedure SpeedButton3Click(Sender: TObject);
48 | procedure CopyBtnClick(Sender: TObject);
49 | procedure SaveBtnClick(Sender: TObject);
50 | private
51 |
52 | public
53 |
54 | end;
55 |
56 | var
57 | RealityForm: TRealityForm;
58 |
59 | implementation
60 |
61 | uses unit1;
62 |
63 | {$R *.lfm}
64 |
65 | { TRealityForm }
66 |
67 | //Get UUID
68 | procedure TRealityForm.SpeedButton1Click(Sender: TObject);
69 | var
70 | S: ansistring;
71 | begin
72 | if RunCommand('bash', ['-c', '~/.config/xraygui/xray/xray uuid'], S) then
73 | Edit3.Text := Trim(S);
74 | end;
75 |
76 | //Get Pub/Priv Keys
77 | procedure TRealityForm.SpeedButton2Click(Sender: TObject);
78 | var
79 | S: ansistring;
80 | begin
81 | //Список ключей
82 | if RunCommand('/bin/bash', ['-c',
83 | '~/.config/xraygui/xray/xray x25519 | cut -f2 -d":"'], S) then
84 | begin
85 | //Private Key
86 | Edit5.Text := Trim(Copy(S, 0, Pos(#10, S) - 1));
87 | //Public Key
88 | Edit4.Text := Trim(Copy(S, Pos(#10, S), Length(S)));
89 | end;
90 | end;
91 |
92 | //Get Sid
93 | procedure TRealityForm.SpeedButton3Click(Sender: TObject);
94 | var
95 | S: ansistring;
96 | begin
97 | if RunCommand('/bin/bash', ['-c', 'openssl rand -hex 8'], S) then
98 | Edit6.Text := Trim(S);
99 | end;
100 |
101 | //Однострочная конфигурация клиента в Буфер
102 | procedure TRealityForm.CopyBtnClick(Sender: TObject);
103 | begin
104 | Clipboard.AsText := Memo1.Text;
105 | end;
106 |
107 | //Save server.json
108 | procedure TRealityForm.SaveBtnClick(Sender: TObject);
109 | var
110 | S: TStringList;
111 | begin
112 | try
113 | S := TStringList.Create;
114 | if SaveDialog1.Execute then
115 | begin
116 | S.Add('{');
117 | S.Add(' "log": {');
118 | S.Add(' "loglevel": "warning"');
119 | S.Add(' },');
120 | S.Add(' "routing": {');
121 | S.Add(' "rules": [],');
122 | S.Add(' "domainStrategy": "AsIs"');
123 | S.Add(' },');
124 | S.Add(' "inbounds": [');
125 | S.Add(' {');
126 | S.Add(' "port": ' + Edit2.Text + ',');
127 | S.Add(' "protocol": "vless",');
128 | S.Add(' "tag": "vless_tls",');
129 | S.Add(' "settings": {');
130 | S.Add(' "clients": [');
131 | S.Add(' {');
132 | S.Add(' "id": "' + Edit3.Text + '",');
133 | S.Add(' "email": "user1@myserver",');
134 | S.Add(' "flow": "' + ComboBox1.Text + '"');
135 | S.Add(' }');
136 | S.Add(' ],');
137 | S.Add(' "decryption": "none"');
138 | S.Add(' },');
139 | S.Add(' "streamSettings": {');
140 | S.Add(' "network": "tcp",');
141 | S.Add(' "security": "reality",');
142 | S.Add(' "realitySettings": {');
143 | S.Add(' "show": false,');
144 | S.Add(' "dest": "' + ComboBox2.Text + ':443",');
145 | S.Add(' "serverNames": [');
146 | S.Add(' "' + ComboBox2.Text + '"');
147 | S.Add(' ],');
148 | S.Add(' "privateKey": "' + Edit5.Text + '",');
149 | S.Add(' "shortIds": [');
150 | S.Add(' "' + Edit6.Text + '"');
151 | S.Add(' ]');
152 | S.Add(' }');
153 | S.Add(' },');
154 | S.Add(' "sniffing": {');
155 | S.Add(' "enabled": true,');
156 | S.Add(' "destOverride": [');
157 | S.Add(' "http",');
158 | S.Add(' "tls",');
159 | S.Add(' "quic"');
160 | S.Add(' ]');
161 | S.Add(' }');
162 | S.Add(' }');
163 | S.Add(' ],');
164 | S.Add(' "outbounds": [');
165 | S.Add(' {');
166 | S.Add(' "protocol": "freedom",');
167 | S.Add(' "tag": "direct"');
168 | S.Add(' },');
169 | S.Add(' {');
170 | S.Add(' "protocol": "blackhole",');
171 | S.Add(' "tag": "block"');
172 | S.Add(' }');
173 | S.Add(' ]');
174 | S.Add('}');
175 | S.Add('');
176 |
177 | S.SaveToFile(SaveDialog1.FileName);
178 | end;
179 |
180 | finally
181 | S.Free;
182 | end;
183 | end;
184 |
185 | procedure TRealityForm.FormCreate(Sender: TObject);
186 | begin
187 | IniPropStorage1.IniFileName := MainForm.IniPropStorage1.IniFileName;
188 | end;
189 |
190 | //Пересоздаём однострочную конфигурацию клиента
191 | procedure TRealityForm.Edit1Change(Sender: TObject);
192 | begin
193 | if Edit2.Text <> '443' then Edit2.Font.Color := clRed
194 | else
195 | Edit2.Font.Color := clDefault;
196 |
197 | if ComboBox1.Text <> 'xtls-rprx-vision' then ComboBox1.Font.Color := clRed
198 | else
199 | ComboBox1.Font.Color := clDefault;
200 |
201 | //Кнопки Save и Copy
202 | if (Edit1.Text = '') or (Edit2.Text = '') or (Edit3.Text = '') or
203 | (Edit4.Text = '') or (Edit5.Text = '') or (Edit6.Text = '') or
204 | (ComboBox1.Text = '') or (ComboBox2.Text = '') or (ComboBox3.Text = '') then
205 | begin
206 | SaveBtn.Enabled := False;
207 | CopyBtn.Enabled := False;
208 | end
209 | else
210 | begin
211 | SaveBtn.Enabled := True;
212 | CopyBtn.Enabled := True;
213 | end;
214 |
215 | Memo1.Text := 'vless://' + Edit3.Text + '@' + Edit1.Text + ':' +
216 | Edit2.Text + '?encryption=none&flow=' + ComboBox1.Text +
217 | '&security=reality&sni=' + ComboBox2.Text + '&fp=' + ComboBox3.Text +
218 | '&pbk=' + Edit4.Text + '&sid=' + Edit6.Text +
219 | '&type=tcp&headerType=none#VLESS%20West';
220 | end;
221 |
222 | end.
223 |
--------------------------------------------------------------------------------
/xraygui/backup/start_trd.pas:
--------------------------------------------------------------------------------
1 | unit start_trd;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, Process;
9 |
10 | type
11 | ShowLogTRD = class(TThread)
12 | private
13 |
14 | { Private declarations }
15 | protected
16 | var
17 | Result: TStringList;
18 |
19 | procedure Execute; override;
20 |
21 | procedure ShowLog;
22 | procedure StartTrd;
23 |
24 | end;
25 |
26 | implementation
27 |
28 | uses Unit1;
29 |
30 | { TRD }
31 |
32 |
33 | procedure ShowLogTRD.Execute;
34 | var
35 | ExProcess: TProcess;
36 | begin
37 | try //Старт вывода
38 | Synchronize(@StartTRD);
39 |
40 | FreeOnTerminate := True; //Уничтожить по завершении
41 | Result := TStringList.Create;
42 |
43 | //Рабочий процесс
44 | ExProcess := TProcess.Create(nil);
45 |
46 | ExProcess.Executable := 'bash';
47 | ExProcess.Parameters.Add('-c');
48 |
49 | //Если файл лога отсутствует - создаём пустой и читаем до Terminate
50 | ExProcess.Parameters.Add('[[ -f ~/.config/xraygui/xraygui.log ]] || touch ' +
51 | '~/.config/xraygui/xraygui.log && tail -n 100 -f ~/.config/xraygui/xraygui.log 2> >(grep -v truncated >&2)');
52 |
53 | ExProcess.Options := [poUsePipes, poStderrToOutPut];
54 | //, poWaitOnExit (синхронный вывод)
55 |
56 | ExProcess.Execute;
57 |
58 | //Выводим лог динамически
59 | while ExProcess.Running do
60 | begin
61 | Result.LoadFromStream(ExProcess.Output);
62 |
63 | //Выводим лог
64 | if Result.Count <> 0 then
65 | Synchronize(@ShowLog);
66 | end;
67 |
68 | finally
69 | Result.Free;
70 | ExProcess.Free;
71 | Terminate;
72 | end;
73 | end;
74 |
75 | { БЛОК ОТОБРАЖЕНИЯ ЛОГА }
76 |
77 | //Старт вывода
78 | procedure ShowLogTRD.StartTRD;
79 | begin
80 | //Промотать список вниз (до вывода tail)
81 | MainForm.LogMemo.SelStart := Length(MainForm.LogMemo.Text);
82 | MainForm.LogMemo.SelLength := 0;
83 | end;
84 |
85 | //Вывод лога
86 | procedure ShowLogTRD.ShowLog;
87 | var
88 | i: integer;
89 | begin
90 | //Вывод построчно
91 | for i := 0 to Result.Count - 1 do
92 | MainForm.LogMemo.Lines.Append(' ' + Result[i]);
93 |
94 | //Выводим последние записи минус 100
95 | if MainForm.LogMemo.Lines.Count > 500 then
96 | for i := 0 to 500 do
97 | MainForm.LogMemo.Lines.Delete(i);
98 |
99 | //Промотать список вниз
100 | MainForm.LogMemo.SelStart := Length(MainForm.LogMemo.Text);
101 | MainForm.LogMemo.SelLength := 0;
102 | end;
103 |
104 | end.
105 |
--------------------------------------------------------------------------------
/xraygui/backup/unit1.lfm:
--------------------------------------------------------------------------------
1 | object MainForm: TMainForm
2 | Left = 299
3 | Height = 722
4 | Top = 110
5 | Width = 1003
6 | ActiveControl = Panel1
7 | Caption = 'XRayGUI'
8 | ClientHeight = 722
9 | ClientWidth = 1003
10 | OnClose = FormClose
11 | OnCreate = FormCreate
12 | OnShow = FormShow
13 | SessionProperties = 'ConfigBox.ItemIndex;GroupBox1.Width;Height;Left;OpenDialog1.InitialDir;Panel1.Height;PortEdit.Value;SaveDialog1.InitialDir;Top;Width;DomainBox.Text'
14 | LCLVersion = '3.6.0.0'
15 | object GroupBox1: TGroupBox
16 | Left = 0
17 | Height = 702
18 | Top = 0
19 | Width = 272
20 | Align = alLeft
21 | Caption = 'Configurations [vmess/vless/ss/trojan]'
22 | ClientHeight = 684
23 | ClientWidth = 270
24 | TabOrder = 0
25 | object Panel1: TPanel
26 | Left = 0
27 | Height = 54
28 | Top = 0
29 | Width = 270
30 | Align = alTop
31 | BevelOuter = bvNone
32 | ClientHeight = 54
33 | ClientWidth = 270
34 | TabOrder = 0
35 | OnResize = Panel1Resize
36 | object DeleteBtn: TSpeedButton
37 | AnchorSideRight.Side = asrBottom
38 | Left = 6
39 | Height = 36
40 | Top = 8
41 | Width = 85
42 | Caption = 'Delete'
43 | OnClick = DeleteBtnClick
44 | ShowHint = True
45 | ParentShowHint = False
46 | end
47 | object SelAllBtn: TSpeedButton
48 | AnchorSideLeft.Control = DeleteBtn
49 | AnchorSideLeft.Side = asrBottom
50 | Left = 92
51 | Height = 36
52 | Hint = 'Select all'
53 | Top = 8
54 | Width = 36
55 | BorderSpacing.Left = 1
56 | Caption = '*'
57 | OnClick = SelAllBtnClick
58 | ShowHint = True
59 | ParentShowHint = False
60 | end
61 | object PasteBtn: TSpeedButton
62 | AnchorSideRight.Side = asrBottom
63 | Left = 178
64 | Height = 36
65 | Hint = 'Paste from clipboard'
66 | Top = 8
67 | Width = 85
68 | Anchors = [akTop, akRight]
69 | BorderSpacing.Right = 5
70 | Caption = 'Paste'
71 | OnClick = PasteBtnClick
72 | ShowHint = True
73 | ParentShowHint = False
74 | end
75 | end
76 | object Splitter2: TSplitter
77 | Cursor = crVSplit
78 | Left = 0
79 | Height = 6
80 | Top = 54
81 | Width = 270
82 | Align = alTop
83 | ResizeAnchor = akTop
84 | end
85 | object ConfigBox: TCheckListBox
86 | AnchorSideBottom.Control = Image1
87 | Left = 0
88 | Height = 474
89 | Top = 60
90 | Width = 270
91 | Align = alTop
92 | Anchors = [akTop, akLeft, akRight, akBottom]
93 | Font.Height = -13
94 | Font.Name = 'Monospace'
95 | ItemHeight = 0
96 | MultiSelect = True
97 | ParentFont = False
98 | PopupMenu = PopupMenu1
99 | TabOrder = 2
100 | TopIndex = -1
101 | OnClick = ConfigBoxClick
102 | OnClickCheck = ConfigBoxClickCheck
103 | OnDblClick = StartBtnClick
104 | end
105 | object Image1: TImage
106 | AnchorSideLeft.Control = GroupBox1
107 | AnchorSideLeft.Side = asrCenter
108 | AnchorSideBottom.Control = GroupBox1
109 | AnchorSideBottom.Side = asrBottom
110 | Left = 60
111 | Height = 150
112 | Top = 534
113 | Width = 150
114 | Anchors = [akLeft, akBottom]
115 | Stretch = True
116 | end
117 | end
118 | object Splitter1: TSplitter
119 | Left = 272
120 | Height = 702
121 | Top = 0
122 | Width = 4
123 | end
124 | object GroupBox2: TGroupBox
125 | Left = 276
126 | Height = 702
127 | Top = 0
128 | Width = 727
129 | Align = alClient
130 | Caption = 'Management/Logging'
131 | ClientHeight = 684
132 | ClientWidth = 725
133 | TabOrder = 2
134 | object Panel2: TPanel
135 | Left = 0
136 | Height = 54
137 | Top = 0
138 | Width = 725
139 | Align = alTop
140 | BevelOuter = bvNone
141 | ClientHeight = 54
142 | ClientWidth = 725
143 | TabOrder = 0
144 | OnResize = Panel2Resize
145 | object Shape1: TShape
146 | AnchorSideLeft.Side = asrBottom
147 | AnchorSideTop.Control = StopBtn
148 | AnchorSideTop.Side = asrCenter
149 | Left = 8
150 | Height = 12
151 | Top = 20
152 | Width = 12
153 | BorderSpacing.Left = 10
154 | Brush.Color = clYellow
155 | Shape = stCircle
156 | end
157 | object PortEdit: TSpinEdit
158 | AnchorSideLeft.Side = asrBottom
159 | AnchorSideTop.Control = StopBtn
160 | AnchorSideTop.Side = asrCenter
161 | AnchorSideRight.Control = DomainBox
162 | AnchorSideBottom.Side = asrBottom
163 | Left = 105
164 | Height = 37
165 | Hint = '127.0.0.1:Port (SOCKS)'#10'127.0.0.1:8889 (HTTP)'
166 | Top = 8
167 | Width = 91
168 | Anchors = [akTop, akRight]
169 | BorderSpacing.Right = 5
170 | MinValue = 1000
171 | ParentShowHint = False
172 | ShowHint = True
173 | TabOrder = 0
174 | Value = 1080
175 | end
176 | object StopBtn: TSpeedButton
177 | AnchorSideRight.Control = StartBtn
178 | Left = 547
179 | Height = 36
180 | Top = 8
181 | Width = 85
182 | Anchors = [akTop, akRight]
183 | BorderSpacing.Right = 1
184 | Caption = 'Stop'
185 | OnClick = StopBtnClick
186 | end
187 | object StartBtn: TSpeedButton
188 | AnchorSideRight.Side = asrBottom
189 | Left = 633
190 | Height = 36
191 | Top = 8
192 | Width = 85
193 | Anchors = [akTop, akRight]
194 | BorderSpacing.Right = 5
195 | Caption = 'Start'
196 | OnClick = StartBtnClick
197 | end
198 | object ClearBox: TCheckBox
199 | AnchorSideLeft.Control = Shape1
200 | AnchorSideTop.Control = StopBtn
201 | AnchorSideTop.Side = asrCenter
202 | AnchorSideRight.Control = RealityBtn
203 | Left = 416
204 | Height = 32
205 | Hint = 'Clearing Cookies after starting the GUI (Mageia only)'
206 | Top = 10
207 | Width = 66
208 | Anchors = [akTop, akRight]
209 | BorderSpacing.Right = 5
210 | Caption = 'Clear'
211 | ParentShowHint = False
212 | ShowHint = True
213 | TabOrder = 4
214 | OnChange = ClearBoxChange
215 | end
216 | object Label1: TLabel
217 | AnchorSideTop.Control = StopBtn
218 | AnchorSideTop.Side = asrCenter
219 | AnchorSideRight.Control = PortEdit
220 | Left = 73
221 | Height = 17
222 | Top = 18
223 | Width = 29
224 | Anchors = [akTop, akRight]
225 | BorderSpacing.Right = 3
226 | Caption = 'Port:'
227 | ParentColor = False
228 | end
229 | object AutoStartBox: TCheckBox
230 | AnchorSideTop.Control = StopBtn
231 | AnchorSideTop.Side = asrCenter
232 | AnchorSideRight.Control = ClearBox
233 | Left = 349
234 | Height = 32
235 | Hint = 'AutoStart proxy after reboot'
236 | Top = 10
237 | Width = 62
238 | Anchors = [akTop, akRight]
239 | BorderSpacing.Right = 5
240 | Caption = 'Auto'
241 | ParentShowHint = False
242 | ShowHint = True
243 | TabOrder = 3
244 | OnChange = AutoStartBoxChange
245 | end
246 | object SWPBox: TCheckBox
247 | AnchorSideTop.Control = StopBtn
248 | AnchorSideTop.Side = asrCenter
249 | AnchorSideRight.Control = AutoStartBox
250 | Left = 282
251 | Height = 32
252 | Hint = 'System-Wide Proxy:'#10'Budgie, GNOME, Cinnamon, KDE, MATE'
253 | Top = 10
254 | Width = 62
255 | Anchors = [akTop, akRight]
256 | BorderSpacing.Right = 5
257 | Caption = 'SWP'
258 | ParentShowHint = False
259 | ShowHint = True
260 | TabOrder = 2
261 | OnChange = SWPBoxChange
262 | end
263 | object RealityBtn: TSpeedButton
264 | AnchorSideTop.Control = StopBtn
265 | AnchorSideRight.Control = StopBtn
266 | AnchorSideBottom.Control = StopBtn
267 | AnchorSideBottom.Side = asrBottom
268 | Left = 487
269 | Height = 36
270 | Hint = 'REALITY configurations generator (Client-Server)'
271 | Top = 8
272 | Width = 50
273 | Anchors = [akTop, akRight, akBottom]
274 | BorderSpacing.Right = 10
275 | Glyph.Data = {
276 | 360C0000424D360C000000000000360000002800000020000000180000000100
277 | 200000000000000C000064000000640000000000000000000000000000000000
278 | 0000000000000000000000000000000000000000000000000000000000000000
279 | 000000000000B7651F00B7651F0BB7651FC3B6641EFFB6641EFFB5631DFFB463
280 | 1DFFB4631D9FA8531400B3621D00B0611C00B0601A00B0601A32AF601AE5AF5F
281 | 19FFAE5F19FFAD5E18FFAD5E18FFAC5D17D8AB5D1725AB5D1700000000000000
282 | 0000000000000000000000000000000000000000000000000000000000000000
283 | 000000000000B8651F00B8651F0AB8651FC2B7651FFFB6641EFFB6641EFFB563
284 | 1DFFB4631D9FA4510300B4621C00B1611B00B2621C04B1611B98B0601AFFAF60
285 | 1AFFAF5F19FFAE5F19FFAD5E18FBAD5E186CAE5F1900AC5D1700000000000000
286 | 00000000000000000000000000000000000000000000A6A09E00A9A3A400A8A2
287 | A107A7A2A123A6A1A148A79B9472B66E31E0B8651EFFB7651FFFB6641EFFB663
288 | 1DFFB0713BD0A19B9B6EA09A9A499EA0A720B0682941B2611BEBB1611BFFB060
289 | 1AFFAF601AFFAF5F19FFAE5F19BCAD5E1812AE5E180000000000000000000000
290 | 0000000000000000000000000000ABA5A500ABA5A502AAA5A425A9A4A36DA8A3
291 | A2B4A8A2A2E2A7A2A1F8A79E9BFFB5743EFFB9651EFFB8651FFFB7651FFFB763
292 | 1CFFAE794DFFA29C9BFFA19B9BFAA19997E1AE713DDEB2611AFFB2611BFFB161
293 | 1BFFB0601AFFAF601AF1AF5F194AAF5F1900AE5F190000000000000000000000
294 | 000000000000ADA8A600AEAAA800ACA7A628ACA6A58CABA5A5E0AAA5A4FEA9A4
295 | A3FFA9A3A2FFA8A3A2FFA89F9CFFB5753FFFB9651EFFB86620FFB8651FFFB764
296 | 1DFFB07849F0A29D9DD9A19D9EE0A78B77F6B26624FFB3621CFFB2621CFFB261
297 | 1BFFB1601AFFB15F1899B15A0E05B15C11000000000000000000000000000000
298 | 0000AFAAA900AFAAA909AEA9A867ADA8A7DCACA7A6FFACA6A6FFABA6A5FFAAA5
299 | A4FFAAA4A4FFA9A4A3F6A9A09CD0B77138ECBA6620FFB96620FFB86620FFB865
300 | 1FFFB66825ACA98C7624AD7E5849B3692ADAB4631DFFB4631DFFB3621CFFB261
301 | 1BFFAF692DFEA5866E8298ACC6079E9B9D00000000000000000000000000B0AB
302 | AA00B0ABAA11AFABA993AFAAA9F8AEA9A8FFADA8A7FFADA8A7FFACA7A6FFABA6
303 | A5F6AAA5A4B1A9A5A54EB08E741DBB6822C3BB6721FFBA6721FFB96620FFB866
304 | 20FFB8651FE9B7651EC3B7641DDAB6641DFEB5631DFFB4631DFFB4631DF5B361
305 | 1BB7A88162969F9999E29F9999959F9898119F98980000000000B2ADAC00B2AD
306 | AC0CB1ACAB99B0ACAAFDB0ABAAFFAFAAA9FFAEA9A8FFAEA9A8FFADA8A7DDACA7
307 | A65FABA6A50AB4845D00BC68220BBC6822C2BB6822FFBB6721FFBA6721FFB966
308 | 20FFB86620FFB8651FFFB7651FFFB6641EFFB6641EFFB5641EFFB4631DEBB463
309 | 1D96B3652239A09896469F999AD49F99999C9F99990C9F999900C6C4C300B3AE
310 | AD74B2ADACFBB1ADABFFB1ACABFFB0ABAAFFAFAAA9FFAFAAA9D6AEA9A83BB0AB
311 | AA00AEA8A700BD692300BD69230BBD6923C3BC6822FFBB6822FFBB6721FFBA67
312 | 21FFB96620FFB96620FFB8651FFFB7651FFFB6641EFFB6641EFFB5631DFFB463
313 | 1DFFB4631CECB4601875A2948E45A09A9AE0A0999975A1989400B4B0AE33B4AF
314 | AEE0B3AEADFFB2AEACFFB2ADACFFB1ACABFFB0ABAAEFB0ABAA4DB0ACAA00AFAA
315 | A90000000000BD692300BD69230BBD6923C3BD6923FFBC6822FFBB6822FFBB67
316 | 21FFBA6721FCB96620F6B86620F6B8651FF6B7651FFBB6641EFFB6641EFFB563
317 | 1DFFB4631DFFB4631CF7B4611A60A09B9C81A09A9AE1A09A9A33B5B1AF93B5B0
318 | AFFFB4AFAEFFB3AFADFFB3AEADFFB2ADACFFB1ADABA6B0ABAA05B1ACAB000000
319 | 000000000000BE6A2400BE6A240BBE6A24C3BD6923FFBD6923FFBC6822FFBB68
320 | 22FFBB6721BEBA672141B966203FB866203FB7651F5FB7651FDBB6641EFFB664
321 | 1EFFB5641EFFB4631DFFB4621BC0A58F8043A19B9BEDA19B9A94B6B2B0DAB6B1
322 | B0FFB5B1AFFFB4B0AEFFB4AFAEFFB3AEADFFB2AEAD66B3AEAD00B2ADAB000000
323 | 000000000000BF6A2400BF6A240BBF6A24C3BE6A24FFBD6923FFBD6923FFBC68
324 | 22FFBB6822A9BA682202BB682200B7651F00B8651F00B8651F88B7651FFFB664
325 | 1EFFB6641EFFB5641EFFB4631CE7AE784B40A29D9DD6A29C9BDDB7B3B1F9B7B2
326 | B1FFB6B2B0FFB5B1AFFFB5B0AFFFB4AFAEFDB4AFAE56B4AFAE00000000000000
327 | 000000000000C06B2500C06B250BBF6B25C3BF6A24FFBE6A24FFBD6923FFBD69
328 | 23FFBC6822AABB672105BA672103BA672103BA67210DB86620A6B8651FFFB765
329 | 1FFFB6641EFFB6641EFFB5631DEEB0733F43A39E9FCDA39D9CFCB8B4B2FCB8B3
330 | B2FFB7B3B1FFB6B2B0FFB6B1B0FFB5B0AFFFB4B0AF76B4B0AF00B5B0AF000000
331 | 000000000000C16B2500C16B250BC06B25C3BF6B25FFBF6A24FFBE6A24FFBD69
332 | 23FFBD6923E3BC6822ADBB6822ADBB6721ADBA6721C2B96620F7B96620FFB865
333 | 1FFFB7651FFFB6641EFFB6641DDFAD7F5A3FA49F9FDCA49E9DFEB9B5B3E6B9B5
334 | B3FFB8B4B2FFB7B3B1FFB7B2B1FFB6B2B0FFB5B1B0C2B5B1B012B5B1B0000000
335 | 000000000000C16C2600C16C260BC16B25C3C06B25FFBF6B25FFBF6A24FFBE6A
336 | 24FFBD6923FFBD6923FFBC6822FFBB6822FFBB6721FFBA6721FFB96620FFB966
337 | 20FFB8651FFFB7651FFFB7631CA3A79B964EA5A09FF7A59F9EE7BAB6B4ABBAB6
338 | B4FFB9B5B3FFB8B4B2FFB8B3B2FFB7B3B1FFB6B2B0FBB6B2B07BB6B2AF03B6B2
339 | B00000000000C26C2600C26C260BC16C26C3C16C26FFC06B25FFBF6B25FFBF6A
340 | 24FFBE6A24FFBD6923FFBD6923FFBC6822FFBB6822FFBB6721FFBA6721FFB966
341 | 20FFB96620FFB8651FD4B56C2F3AA7A2A3A3A6A1A0FFA6A09FABBBB7B54DBAB7
342 | B5EFBAB6B4FFB9B5B4FFB8B4B3FFB8B4B2FFB7B3B1FFB7B2B1F2B6B2B073B6B2
343 | B009B6B2B000C36D2700C36D270AC26C26BEC26C26FCC16C26F9C06B25F9BF6B
344 | 25F9BF6A24F9BE6A24F9BD6923F9BD6923F9BC6822F9BB6822F9BB6721F6BA67
345 | 21E1B9661F9DB868242FA8A4A56DA8A2A2F7A7A2A1EFA7A1A04DBBB7B607BBB7
346 | B699BBB7B5FFBAB6B5FFB9B6B4FFB9B5B3FFB8B4B2FFB7B3B2FFB7B3B1F7B6B2
347 | B1A2B6B2B02FB4B7BA02C5651803C36C2536C26C2648C16C2647C16B2547C06B
348 | 2547BF6A2447BE6A2447BE692347BD692347BC682247BC672147BC651C3DBC5F
349 | 111EAD9E941AAAA6A780A9A4A3F2A9A3A3FFA8A3A299A7A1A107BCB8B600BCB8
350 | B61FBCB8B6C2BBB7B6FFBAB7B5FFBAB6B4FFB9B5B3FFB8B4B3FFB8B4B2FFB7B3
351 | B1FFB7B2B1E5B6B2B096B6B1B045B3BCC3129DFFFF01A8E3F800000000000000
352 | 00000000000000000000000000007DFFFF00B89AAD00A7C6DB06ACAFB526ACA9
353 | A96CACA7A6CAABA6A5FCAAA5A4FFAAA4A4C2A9A4A31FA9A4A300BDB8B700BCB8
354 | B700BCB8B72BBCB8B6C2BBB8B6FFBBB7B5FFBAB6B4FFB9B5B4FFB9B5B3FFB8B4
355 | B2FFB7B3B2FFB7B3B1FFB6B2B0F5B6B1B0D2B5B1AFA6B4B0AF7EB4AFAE62B3AF
356 | AD52B3AEAD4EB2ADAC52B1ACAB5EB0ACAB73B0ABAA94AFAAA9BEAEA9A8E7ADA8
357 | A7FDADA8A7FFACA7A6FFABA6A5C2ABA5A52BABA6A500ABA5A50000000000BCBA
358 | B900BCB8B700BCB9B71EBCB8B79DBCB8B6F6BBB7B6FFBAB7B5FFBAB6B4FFB9B5
359 | B3FFB8B4B3FFB8B4B2FFB7B3B1FFB6B2B1FFB6B1B0FFB5B1AFFFB4B0AFFEB4AF
360 | AEFCB3AFADFBB2AEADFCB2ADACFEB1ACABFFB0ACAAFFB0ABAAFFAFAAA9FFAEAA
361 | A8FFAEA9A8F6ADA8A79EACA7A61FACA7A600ACA7A60000000000000000000000
362 | 000000000000BCB9B700BDB9B709BCB9B756BCB8B6C3BBB8B6F9BBB7B5FFBAB6
363 | B4FFB9B5B4FFB9B5B3FFB8B4B2FFB7B3B2FFB7B3B1FFB6B2B0FFB5B1B0FFB5B0
364 | AFFFB4B0AEFFB3AFAEFFB3AEADFFB2ADACFFB1ADACFFB1ACABFFB0ABAAF9AFAA
365 | A9C4AFAAA957AEA9A809AEA9A800AEBCB2000000000000000000000000000000
366 | 00000000000000000000BCBAB800BCB7B600BCB9B711BCB8B655BCB8B6A8BBB7
367 | B5E0BAB7B5F9BAB6B4FFB9B5B3FFB8B4B3FFB8B4B2FFB7B3B1FFB6B2B1FFB6B1
368 | B0FFB5B1AFFFB4B0AFFFB4AFAEFFB3AFADFAB2AEACE1B2ADACA8B1ACAB56B0AB
369 | AA12B1ACAB00AFABA90000000000000000000000000000000000000000000000
370 | 000000000000000000000000000000000000C0B8B600BCB8B600BCB8B606BBB8
371 | B629BBB7B560BAB7B597BAB6B4C2B9B5B4DFB9B5B3F0B8B4B2F7B7B3B2F7B7B2
372 | B1F0B6B2B0DFB5B1AFC3B4B0AF97B4AFAE60B3AEAD29B2AEAD06B2AEAC00B8B2
373 | B300000000000000000000000000000000000000000000000000
374 | }
375 | OnClick = RealityBtnClick
376 | ShowHint = True
377 | ParentShowHint = False
378 | end
379 | object DomainBox: TComboBox
380 | AnchorSideTop.Control = StopBtn
381 | AnchorSideTop.Side = asrCenter
382 | AnchorSideRight.Control = SWPBox
383 | AnchorSideBottom.Side = asrBottom
384 | Left = 201
385 | Height = 37
386 | Hint = 'Bypassing domain zones'
387 | Top = 8
388 | Width = 76
389 | Anchors = [akTop, akRight]
390 | BorderSpacing.Right = 5
391 | Font.Height = -13
392 | Font.Name = 'Sans'
393 | Font.Style = [fsBold]
394 | ItemHeight = 0
395 | Items.Strings = (
396 | 'by'
397 | 'cn'
398 | 'er'
399 | 'ir'
400 | 'pk'
401 | 'ru'
402 | 'sa'
403 | 'so'
404 | 'tm'
405 | 'tr'
406 | 'ua'
407 | 'uz'
408 | )
409 | ParentFont = False
410 | ParentShowHint = False
411 | ShowHint = True
412 | TabOrder = 1
413 | Text = 'cn'
414 | end
415 | end
416 | object Splitter3: TSplitter
417 | Cursor = crVSplit
418 | Left = 0
419 | Height = 6
420 | Top = 54
421 | Width = 725
422 | Align = alTop
423 | ResizeAnchor = akTop
424 | end
425 | object LogMemo: TMemo
426 | Left = 0
427 | Height = 624
428 | Top = 60
429 | Width = 725
430 | Align = alClient
431 | Font.Height = -12
432 | Font.Name = 'Monospace'
433 | ParentFont = False
434 | ReadOnly = True
435 | ScrollBars = ssVertical
436 | TabOrder = 2
437 | WantReturns = False
438 | end
439 | end
440 | object StaticText1: TStaticText
441 | Left = 0
442 | Height = 20
443 | Top = 702
444 | Width = 1003
445 | Align = alBottom
446 | Caption = 'License: GPLv3 Author: alex_q_2000 (C) 2023 URL: https://github.com/AKotov-dev'
447 | Font.Color = clGray
448 | Font.Height = -11
449 | Font.Name = 'Sans'
450 | ParentFont = False
451 | TabOrder = 3
452 | end
453 | object IniPropStorage1: TIniPropStorage
454 | StoredValues = <
455 | item
456 | Name = 'findex'
457 | Value = '100'
458 | end>
459 | OnRestoreProperties = IniPropStorage1RestoreProperties
460 | Left = 320
461 | Top = 104
462 | end
463 | object PopupMenu1: TPopupMenu
464 | Images = ImageList1
465 | OnPopup = PopupMenu1Popup
466 | Left = 121
467 | Top = 104
468 | object CopyItem: TMenuItem
469 | Caption = 'Copy'
470 | ImageIndex = 0
471 | OnClick = CopyItemClick
472 | end
473 | object Separator1: TMenuItem
474 | Caption = '-'
475 | end
476 | object SaveItem: TMenuItem
477 | Caption = 'Save to file'
478 | ImageIndex = 2
479 | OnClick = SaveItemClick
480 | end
481 | object LoadItem: TMenuItem
482 | Caption = 'Load from file'
483 | ImageIndex = 1
484 | OnClick = LoadItemClick
485 | end
486 | end
487 | object OpenDialog1: TOpenDialog
488 | DefaultExt = '.*.proxy'
489 | Filter = 'XRayGUI files (*.proxy)|*.proxy'
490 | Options = [ofNoNetworkButton, ofEnableSizing]
491 | Left = 64
492 | Top = 176
493 | end
494 | object SaveDialog1: TSaveDialog
495 | DefaultExt = '.*.proxy'
496 | Filter = 'XRayGUI file (*.proxy)|*.proxy'
497 | Options = [ofOverwritePrompt, ofEnableSizing]
498 | Left = 168
499 | Top = 176
500 | end
501 | object ImageList1: TImageList
502 | Left = 208
503 | Top = 104
504 | Bitmap = {
505 | 4C7A030000001000000010000000130400000000000078DAEDD35D4C93571807
506 | F03772B5C2EDB6645920CB2E77B5AB99E904C1AA14615268295018938F02A515
507 | 65F413280205DAD2A201943A758EB81951B74874C28C37F225149A6D0AE342F0
508 | 6250966CC1AC74A55936FF7BCE5B31B016292C4BB6646FF24F9B3CE7779E73DE
509 | 735E8E0B7DBA12B8984E6194A8431825091756B3EDE7A2B98DECBE1D331DFB76
510 | 60934C879B83EFCBEAFBB937B80D1E56E3C7244625FFB576531B6F603578867B
511 | D76571F032168655406F143F07F3B417F61F5D2FC7A0334E848E58C9FCC977BA
512 | 5D86B77EC6BDDA91E7196B1DC70F777DF00C81CDB1D6076DEC0C59BC305D6FCE
513 | F273D03AD6F9605F1A13B7E17E598D1F73DFE2627B59E769CDACC66DF2F09EED
514 | E55FE0D79EDF563C3B9735F767CA99CA09B6E2D9D9DED4EC31B2BEAB776F4BEB
515 | A7B161CE2639E2F3A3B12135DBABD1549BDEF4FE74C44EC1F99A20ECFCFC1C71
516 | ABEF324CA84663B87FE011D8164C94A5F5F1DC8AB1FDF84A84FE0E05A1F17804
517 | 6D0BE705D679E74689B6CF2731FF7AE722CCC35ED8C796230A1BCB0CD981971C
518 | 8B7725FD5EB87FC196C20CB3821BBFB9A30780EDE499BDB35DFFCCFEEFFFC35E
519 | 300013FD2E6D27CCFEDDEFB7A8405ADF502D0F588D721C5715C3DA6C82C55C87
520 | D6A65AB434D6C07CC280A67A3D1A4D3A545614E2884CF87B7AEA5E35008EA551
521 | 230FF8278EE2A7A10A384F9F84CFE75B178F67013D179CE8FBF22A6E7FD5877E
522 | 67061C5AD1D3C329F12AE6DBEBF31170931F54A2FB747B881F1D1DC439B31806
523 | B514B76FF5E1EBB362F847E468D31C7C7AE8C0AE0A87298FBC9A7C39BABBC2F8
524 | 91415C3F2581E918F337781F18CD857F3807EA82F83F1C75E42755E4CB70A6D3
525 | 1EE2DD13E3D0948A50A5CC0D7A673AEF5746B2612C4B84BD4ECE7BBF4B0963D5
526 | 8798A4F133D3539487F87E8AE50126C646E09E1C8741A3C2F41752F239E46541
527 | 5F9B4BBE02810925E6FA8BD07B2A1B97EC325C6A93A2C79A891E4B063E6D4DC7
528 | C596F731DA9319EC3D9A4D3E0B86D2BD68ABC921AF245F8E80AB945242294660
529 | BC1081B123940204EE7F40C9E36DB0F7AA4F087AEA6DD1CB70B1BD129F38D4B8
530 | 6057E1BC4D8973D6727C6C29C3D956059C2DC5E86E2EC2197321AD5B88956129
531 | F48A78D88CD97C6F87291F8FAF1FC6E36B6998BB9A8AB95E11E6AE2463F6CA01
532 | CC5E165292F0E8F3443CFA2C010D9587C84BA02FD9435E46BE0CCDFA7C3C597C
533 | 88279ED53C0866E13B2CF1F93698F96FA02B4FE1BD8EBCD590C57BB32EEFF999
534 | 2D2F2FBF30DA32E633A12B7E0F563D7997024D5A79449685DD8795A10C688B76
535 | D37B93F2EFBC499B1B91F77ABDD02892C98BC9EF8251255EF975AC048D9ADC88
536 | 7A335FAD3808DF3D3114593BFD3999A21ABD326DA5282F8DFF461BEA34385153
537 | 0D93F123D4198EA356770C35DAA3306AD4D057ABA0AB52429CF22E4A653BFD49
538 | BBDFAEFA13A9CD7CB4
539 | }
540 | end
541 | object GetQR: TAsyncProcess
542 | Active = False
543 | Executable = 'bash'
544 | Parameters.Strings = (
545 | ''
546 | )
547 | Options = [poWaitOnExit]
548 | Priority = ppNormal
549 | StartupOptions = []
550 | ShowWindow = swoNone
551 | WindowColumns = 0
552 | WindowHeight = 0
553 | WindowLeft = 0
554 | WindowRows = 0
555 | WindowTop = 0
556 | WindowWidth = 0
557 | FillAttribute = 0
558 | Left = 320
559 | Top = 176
560 | end
561 | end
562 |
--------------------------------------------------------------------------------
/xraygui/backup/update_trd.pas:
--------------------------------------------------------------------------------
1 | unit update_trd;
2 |
3 | {$mode ObjFPC}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, Forms, Controls, SysUtils, Process;
9 |
10 | type
11 | CheckUpdate = class(TThread)
12 | private
13 |
14 | { Private declarations }
15 | protected
16 | S: TStringList;
17 |
18 | procedure Execute; override;
19 | procedure StopUpdate;
20 |
21 | end;
22 |
23 | implementation
24 |
25 | uses unit1;
26 |
27 | { TRD }
28 |
29 | procedure CheckUpdate.Execute;
30 | var
31 | UpdateProcess: TProcess;
32 | begin
33 | S := TStringList.Create;
34 | FreeOnTerminate := True; //Уничтожать по завершении
35 | try
36 | UpdateProcess := TProcess.Create(nil);
37 |
38 | UpdateProcess.Executable := 'bash';
39 | UpdateProcess.Parameters.Add('-c');
40 | UpdateProcess.Options := [poUsePipes, poWaitOnExit];
41 |
42 | UpdateProcess.Parameters.Add(
43 | '[[ $(systemctl is-active xray-update) == active ]] || systemctl --user start xray-update');
44 |
45 | UpdateProcess.Execute;
46 |
47 | //Если регистрация пройдена запустить Update
48 | { if Registered then UpdateProcess.Execute;
49 |
50 | //Показать версию WARP
51 | UpdateProcess.Parameters.Delete(1);
52 | UpdateProcess.Parameters.Add('warp-cli --version');
53 | UpdateProcess.Execute;
54 |
55 | S.LoadFromStream(UpdateProcess.Output);
56 | Synchronize(@StopUpdate); }
57 | finally
58 | S.Free;
59 | UpdateProcess.Free;
60 | end;
61 | end;
62 |
63 | //Останов обновления
64 | procedure CheckUpdate.StopUpdate;
65 | begin
66 | //Перечитываем версию в подсказке
67 | // MainForm.StartBtn.Hint := Trim(S[0]);
68 | end;
69 |
70 | end.
71 |
--------------------------------------------------------------------------------
/xraygui/backup/xraygui.lpi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | -
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | -
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | -
128 |
129 |
130 | -
131 |
132 |
133 | -
134 |
135 |
136 |
137 |
138 |
139 |
--------------------------------------------------------------------------------
/xraygui/backup/xraygui.lps:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | -
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
--------------------------------------------------------------------------------
/xraygui/backup/xraygui.pas:
--------------------------------------------------------------------------------
1 | program xraygui;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | uses
6 | {$IFDEF UNIX}
7 | cthreads,
8 | {$ENDIF} {$IFDEF HASAMIGA}
9 | athreads,
10 | {$ENDIF}
11 | Process,
12 | Classes,
13 | Dialogs,
14 | Interfaces, // this includes the LCL widgetset
15 | Forms,
16 | Unit1,
17 | start_trd,
18 | portscan_trd,
19 | update_trd { you can add units after this };
20 |
21 | {$R *.res}
22 |
23 | //--- Определяем, запущена ли копия программы
24 | var
25 | PID: TStringList;
26 | ExProcess: TProcess;
27 |
28 | begin
29 | ExProcess := TProcess.Create(nil);
30 | PID := TStringList.Create;
31 | try
32 | ExProcess.Executable := 'bash';
33 | ExProcess.Parameters.Add('-c');
34 | ExProcess.Parameters.Add('pidof xraygui'); //Имя приложения
35 | ExProcess.Options := ExProcess.Options + [poUsePipes];
36 |
37 | ExProcess.Execute;
38 | PID.LoadFromStream(ExProcess.Output);
39 |
40 | finally
41 | ExProcess.Free;
42 | end;
43 |
44 | //Количество запущенных копий > 1 = не запускать новый экземпляр
45 | if Pos(' ', PID.Text) <> 0 then //пробел = более одного pid
46 | begin
47 | MessageDlg(SAppRunning, mtWarning, [mbOK], 0);
48 | PID.Free;
49 | Application.Free;
50 | Halt(1);
51 | end;
52 | PID.Free;
53 |
54 | //---
55 |
56 | RequireDerivedFormResource := True;
57 | Application.Title:='XRayGUI v1.5';
58 | Application.Scaled:=True;
59 | Application.Initialize;
60 | Application.CreateForm(TMainForm, MainForm);
61 | Application.Run;
62 | end.
63 |
--------------------------------------------------------------------------------
/xraygui/ico/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/ico/copy.png
--------------------------------------------------------------------------------
/xraygui/ico/floppy-disk (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/ico/floppy-disk (1).png
--------------------------------------------------------------------------------
/xraygui/ico/folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/ico/folder.png
--------------------------------------------------------------------------------
/xraygui/ico/reality.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/ico/reality.png
--------------------------------------------------------------------------------
/xraygui/ico/xraygui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/ico/xraygui.png
--------------------------------------------------------------------------------
/xraygui/languages/xraygui.pot:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr "Content-Type: text/plain; charset=UTF-8"
3 |
4 | #: tmainform.autostartbox.caption
5 | msgid "Auto"
6 | msgstr ""
7 |
8 | #: tmainform.autostartbox.hint
9 | msgid "AutoStart proxy after reboot"
10 | msgstr ""
11 |
12 | #: tmainform.caption
13 | msgid "XRayGUI"
14 | msgstr ""
15 |
16 | #: tmainform.clearbox.caption
17 | msgid "Clear"
18 | msgstr ""
19 |
20 | #: tmainform.clearbox.hint
21 | msgid "Clearing Cookies after starting the GUI (Mageia only)"
22 | msgstr ""
23 |
24 | #: tmainform.copyitem.caption
25 | msgctxt "tmainform.copyitem.caption"
26 | msgid "Copy"
27 | msgstr ""
28 |
29 | #: tmainform.deletebtn.caption
30 | msgid "Delete"
31 | msgstr ""
32 |
33 | #: tmainform.domainbox.hint
34 | msgid "Bypassing domain zones"
35 | msgstr ""
36 |
37 | #: tmainform.domainbox.text
38 | msgctxt "tmainform.domainbox.text"
39 | msgid "cn"
40 | msgstr ""
41 |
42 | #: tmainform.groupbox1.caption
43 | msgid "Configurations [vmess/vless/ss/trojan]"
44 | msgstr ""
45 |
46 | #: tmainform.groupbox2.caption
47 | msgid "Management/Logging"
48 | msgstr ""
49 |
50 | #: tmainform.label1.caption
51 | msgid "Port:"
52 | msgstr ""
53 |
54 | #: tmainform.loaditem.caption
55 | msgctxt "tmainform.loaditem.caption"
56 | msgid "Load from file"
57 | msgstr ""
58 |
59 | #: tmainform.pastebtn.caption
60 | msgid "Paste"
61 | msgstr ""
62 |
63 | #: tmainform.pastebtn.hint
64 | msgctxt "tmainform.pastebtn.hint"
65 | msgid "Paste from clipboard"
66 | msgstr ""
67 |
68 | #: tmainform.portedit.hint
69 | msgid ""
70 | "127.0.0.1:Port (SOCKS)\n"
71 | "127.0.0.1:8889 (HTTP)"
72 | msgstr ""
73 |
74 | #: tmainform.realitybtn.hint
75 | msgctxt "tmainform.realitybtn.hint"
76 | msgid "REALITY configurations generator (Client-Server)"
77 | msgstr ""
78 |
79 | #: tmainform.saveitem.caption
80 | msgctxt "tmainform.saveitem.caption"
81 | msgid "Save to file"
82 | msgstr ""
83 |
84 | #: tmainform.selallbtn.caption
85 | msgid "*"
86 | msgstr ""
87 |
88 | #: tmainform.selallbtn.hint
89 | msgid "Select all"
90 | msgstr ""
91 |
92 | #: tmainform.startbtn.caption
93 | msgid "Start"
94 | msgstr ""
95 |
96 | #: tmainform.statictext1.caption
97 | msgid "License: GPLv3 Author: alex_q_2000 (C) 2023 URL: https://github.com/AKotov-dev"
98 | msgstr ""
99 |
100 | #: tmainform.stopbtn.caption
101 | msgid "Stop"
102 | msgstr ""
103 |
104 | #: tmainform.swpbox.caption
105 | msgid "SWP"
106 | msgstr ""
107 |
108 | #: tmainform.swpbox.hint
109 | msgid ""
110 | "System-Wide Proxy:\n"
111 | "Budgie, GNOME, Cinnamon, KDE, MATE"
112 | msgstr ""
113 |
114 | #: trealityform.caption
115 | msgctxt "trealityform.caption"
116 | msgid "REALITY configurations generator (Client-Server)"
117 | msgstr ""
118 |
119 | #: trealityform.combobox1.text
120 | msgid "xtls-rprx-vision"
121 | msgstr ""
122 |
123 | #: trealityform.combobox2.text
124 | msgid "www.yahoo.com"
125 | msgstr ""
126 |
127 | #: trealityform.combobox3.text
128 | msgid "chrome"
129 | msgstr ""
130 |
131 | #: trealityform.copybtn.caption
132 | msgctxt "trealityform.copybtn.caption"
133 | msgid "Copy"
134 | msgstr ""
135 |
136 | #: trealityform.edit2.hint
137 | msgid "Strictly recommended 443"
138 | msgstr ""
139 |
140 | #: trealityform.edit2.text
141 | msgid "443"
142 | msgstr ""
143 |
144 | #: trealityform.label1.caption
145 | msgid "Server:Port"
146 | msgstr ""
147 |
148 | #: trealityform.label10.caption
149 | msgid "Connection string to insert into XRayGUI via Clipboard"
150 | msgstr ""
151 |
152 | #: trealityform.label2.caption
153 | msgid ":"
154 | msgstr ""
155 |
156 | #: trealityform.label3.caption
157 | msgid "UUID"
158 | msgstr ""
159 |
160 | #: trealityform.label4.caption
161 | msgid "Flow"
162 | msgstr ""
163 |
164 | #: trealityform.label5.caption
165 | msgid "SNI"
166 | msgstr ""
167 |
168 | #: trealityform.label6.caption
169 | msgid "FPrint"
170 | msgstr ""
171 |
172 | #: trealityform.label7.caption
173 | msgid "Public Key"
174 | msgstr ""
175 |
176 | #: trealityform.label8.caption
177 | msgid "Private Key"
178 | msgstr ""
179 |
180 | #: trealityform.label9.caption
181 | msgid "SID"
182 | msgstr ""
183 |
184 | #: trealityform.savebtn.caption
185 | msgctxt "trealityform.savebtn.caption"
186 | msgid "Save server.json"
187 | msgstr ""
188 |
189 | #: trealityform.speedbutton1.caption
190 | msgctxt "trealityform.speedbutton1.caption"
191 | msgid "NEW"
192 | msgstr ""
193 |
194 | #: trealityform.speedbutton2.caption
195 | msgctxt "trealityform.speedbutton2.caption"
196 | msgid "NEW"
197 | msgstr ""
198 |
199 | #: trealityform.speedbutton3.caption
200 | msgctxt "trealityform.speedbutton3.caption"
201 | msgid "NEW"
202 | msgstr ""
203 |
204 | #: unit1.sapprunning
205 | msgid "The program is already running!"
206 | msgstr ""
207 |
208 | #: unit1.sdeletemsg
209 | msgid "Delete the selected configurations?"
210 | msgstr ""
211 |
212 | #: unit1.snotvalidmsg
213 | msgid "The file is not valid!"
214 | msgstr ""
215 |
216 | #: unit1.svmessonlymsg
217 | msgid ""
218 | "Supported protocols:\n"
219 | "vmess, vless, ss (without obfs) and trojan!"
220 | msgstr ""
221 |
222 |
--------------------------------------------------------------------------------
/xraygui/languages/xraygui.ru.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/languages/xraygui.ru.mo
--------------------------------------------------------------------------------
/xraygui/languages/xraygui.ru.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: \n"
4 | "POT-Creation-Date: \n"
5 | "PO-Revision-Date: \n"
6 | "Last-Translator: alex_q_2000\n"
7 | "Language-Team: \n"
8 | "Language: ru\n"
9 | "MIME-Version: 1.0\n"
10 | "Content-Type: text/plain; charset=UTF-8\n"
11 | "Content-Transfer-Encoding: 8bit\n"
12 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
13 | "X-Generator: Poedit 3.5\n"
14 |
15 | #: tmainform.autostartbox.caption
16 | msgid "Auto"
17 | msgstr ""
18 |
19 | #: tmainform.autostartbox.hint
20 | msgid "AutoStart proxy after reboot"
21 | msgstr "Автостарт прокси после перезагрузки"
22 |
23 | #: tmainform.caption
24 | msgid "XRayGUI"
25 | msgstr ""
26 |
27 | #: tmainform.clearbox.caption
28 | msgctxt "tmainform.clearbox.caption"
29 | msgid "Clear"
30 | msgstr ""
31 |
32 | #: tmainform.clearbox.hint
33 | msgid "Clearing Cookies after starting the GUI (Mageia only)"
34 | msgstr "Очистить Cookies при старте GUI (только Mageia)"
35 |
36 | #: tmainform.copyitem.caption
37 | msgctxt "tmainform.copyitem.caption"
38 | msgid "Copy"
39 | msgstr "Копировать"
40 |
41 | #: tmainform.deletebtn.caption
42 | msgid "Delete"
43 | msgstr "Удалить"
44 |
45 | #: tmainform.domainbox.hint
46 | msgid "Bypassing domain zones"
47 | msgstr "Обход доменных зон"
48 |
49 | #: tmainform.domainbox.text
50 | msgctxt "tmainform.domainbox.text"
51 | msgid "cn"
52 | msgstr ""
53 |
54 | #: tmainform.groupbox1.caption
55 | msgid "Configurations [vmess/vless/ss/trojan]"
56 | msgstr "Конфигурации [vmess/vless/ss/trojan]"
57 |
58 | #: tmainform.groupbox2.caption
59 | msgid "Management/Logging"
60 | msgstr "Управление/Логирование"
61 |
62 | #: tmainform.label1.caption
63 | msgid "Port:"
64 | msgstr "Порт:"
65 |
66 | #: tmainform.loaditem.caption
67 | msgctxt "tmainform.loaditem.caption"
68 | msgid "Load from file"
69 | msgstr "Загрузить из файла"
70 |
71 | #: tmainform.pastebtn.caption
72 | msgid "Paste"
73 | msgstr "Вставить"
74 |
75 | #: tmainform.pastebtn.hint
76 | msgctxt "tmainform.pastebtn.hint"
77 | msgid "Paste from clipboard"
78 | msgstr "Вставить из буфера"
79 |
80 | #: tmainform.portedit.hint
81 | msgid ""
82 | "127.0.0.1:Port (SOCKS)\n"
83 | "127.0.0.1:8889 (HTTP)"
84 | msgstr ""
85 | "127.0.0.1:Порт (SOCKS)\n"
86 | "127.0.0.1:8889 (HTTP)"
87 |
88 | #: tmainform.realitybtn.hint
89 | msgctxt "tmainform.realitybtn.hint"
90 | msgid "REALITY configurations generator (Client-Server)"
91 | msgstr "Генератор конфигураций REALITY (Клиент-Сервер)"
92 |
93 | #: tmainform.saveitem.caption
94 | msgctxt "tmainform.saveitem.caption"
95 | msgid "Save to file"
96 | msgstr "Сохранить в файл"
97 |
98 | #: tmainform.selallbtn.caption
99 | msgid "*"
100 | msgstr ""
101 |
102 | #: tmainform.selallbtn.hint
103 | msgid "Select all"
104 | msgstr "Выбрать все"
105 |
106 | #: tmainform.startbtn.caption
107 | msgid "Start"
108 | msgstr "Старт"
109 |
110 | #: tmainform.statictext1.caption
111 | msgid "License: GPLv3 Author: alex_q_2000 (C) 2023 URL: https://github.com/AKotov-dev"
112 | msgstr "Лицензия: GPLv3 Автор: alex_q_2000 (C) 2023 URL: https://github.com/AKotov-dev"
113 |
114 | #: tmainform.stopbtn.caption
115 | msgid "Stop"
116 | msgstr "Стоп"
117 |
118 | #: tmainform.swpbox.caption
119 | msgid "SWP"
120 | msgstr ""
121 |
122 | #: tmainform.swpbox.hint
123 | msgid ""
124 | "System-Wide Proxy:\n"
125 | "Budgie, GNOME, Cinnamon, KDE, MATE"
126 | msgstr ""
127 | "System-Wide Прокси:\n"
128 | "Budgie, GNOME, Cinnamon, KDE, MATE"
129 |
130 | #: trealityform.caption
131 | msgctxt "trealityform.caption"
132 | msgid "REALITY configurations generator (Client-Server)"
133 | msgstr "Генератор конфигураций REALITY (Клиент-Сервер)"
134 |
135 | #: trealityform.combobox1.text
136 | msgid "xtls-rprx-vision"
137 | msgstr ""
138 |
139 | #: trealityform.combobox2.text
140 | msgid "www.yahoo.com"
141 | msgstr ""
142 |
143 | #: trealityform.combobox3.text
144 | msgid "chrome"
145 | msgstr ""
146 |
147 | #: trealityform.copybtn.caption
148 | msgctxt "trealityform.copybtn.caption"
149 | msgid "Copy"
150 | msgstr "Копировать"
151 |
152 | #: trealityform.edit2.hint
153 | msgid "Strictly recommended 443"
154 | msgstr "Строго рекомендуется 443"
155 |
156 | #: trealityform.edit2.text
157 | msgid "443"
158 | msgstr ""
159 |
160 | #: trealityform.label1.caption
161 | msgid "Server:Port"
162 | msgstr ""
163 |
164 | #: trealityform.label10.caption
165 | msgid "Connection string to insert into XRayGUI via Clipboard"
166 | msgstr "Строка подключения для вставки в XRayGUI через буфер обмена"
167 |
168 | #: trealityform.label2.caption
169 | msgid ":"
170 | msgstr ""
171 |
172 | #: trealityform.label3.caption
173 | msgid "UUID"
174 | msgstr ""
175 |
176 | #: trealityform.label4.caption
177 | msgid "Flow"
178 | msgstr ""
179 |
180 | #: trealityform.label5.caption
181 | msgid "SNI"
182 | msgstr ""
183 |
184 | #: trealityform.label6.caption
185 | msgid "FPrint"
186 | msgstr ""
187 |
188 | #: trealityform.label7.caption
189 | msgid "Public Key"
190 | msgstr ""
191 |
192 | #: trealityform.label8.caption
193 | msgid "Private Key"
194 | msgstr ""
195 |
196 | #: trealityform.label9.caption
197 | msgid "SID"
198 | msgstr ""
199 |
200 | #: trealityform.savebtn.caption
201 | msgctxt "trealityform.savebtn.caption"
202 | msgid "Save server.json"
203 | msgstr "Сохранить server.json"
204 |
205 | #: trealityform.speedbutton1.caption
206 | msgctxt "trealityform.speedbutton1.caption"
207 | msgid "NEW"
208 | msgstr ""
209 |
210 | #: trealityform.speedbutton2.caption
211 | msgctxt "trealityform.speedbutton2.caption"
212 | msgid "NEW"
213 | msgstr ""
214 |
215 | #: trealityform.speedbutton3.caption
216 | msgctxt "trealityform.speedbutton3.caption"
217 | msgid "NEW"
218 | msgstr ""
219 |
220 | #: unit1.sapprunning
221 | msgid "The program is already running!"
222 | msgstr "Программа уже запущена!"
223 |
224 | #: unit1.sdeletemsg
225 | msgid "Delete the selected configurations?"
226 | msgstr "Удалить выбранные конфигурации?"
227 |
228 | #: unit1.snotvalidmsg
229 | msgid "The file is not valid!"
230 | msgstr "Невалидный файл!"
231 |
232 | #: unit1.svmessonlymsg
233 | msgid ""
234 | "Supported protocols:\n"
235 | "vmess, vless, ss (without obfs) and trojan!"
236 | msgstr ""
237 | "Поддерживаемые протоколы:\n"
238 | "vmess, vless, ss (без obfs) и trojan!"
239 |
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/portscan_trd.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/portscan_trd.o
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/portscan_trd.ppu:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/portscan_trd.ppu
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/reality_gen.lfm:
--------------------------------------------------------------------------------
1 | object RealityForm: TRealityForm
2 | Left = 295
3 | Height = 533
4 | Top = 130
5 | Width = 611
6 | ActiveControl = Edit1
7 | Caption = 'REALITY configurations generator (Client-Server)'
8 | ClientHeight = 533
9 | ClientWidth = 611
10 | OnCreate = FormCreate
11 | Position = poMainFormCenter
12 | SessionProperties = 'ComboBox1.Text;ComboBox2.Text;ComboBox3.Text;Edit1.Text;Edit2.Text;Edit3.Text;Edit4.Text;Edit5.Text;Edit6.Text;Memo1.Lines;SaveDialog1.InitialDir'
13 | LCLVersion = '2.2.4.0'
14 | object Label1: TLabel
15 | AnchorSideLeft.Control = Owner
16 | AnchorSideTop.Side = asrCenter
17 | Left = 8
18 | Height = 17
19 | Top = 18
20 | Width = 66
21 | BorderSpacing.Left = 8
22 | Caption = 'Server:Port'
23 | ParentColor = False
24 | end
25 | object Edit1: TEdit
26 | AnchorSideLeft.Control = Label1
27 | AnchorSideLeft.Side = asrBottom
28 | AnchorSideTop.Control = Label1
29 | AnchorSideTop.Side = asrCenter
30 | Left = 79
31 | Height = 37
32 | Top = 8
33 | Width = 238
34 | BorderSpacing.Left = 5
35 | OnChange = Edit1Change
36 | TabOrder = 0
37 | end
38 | object Label2: TLabel
39 | AnchorSideLeft.Control = Edit1
40 | AnchorSideLeft.Side = asrBottom
41 | AnchorSideTop.Control = Label1
42 | AnchorSideTop.Side = asrCenter
43 | Left = 319
44 | Height = 17
45 | Top = 18
46 | Width = 3
47 | BorderSpacing.Left = 2
48 | Caption = ':'
49 | ParentColor = False
50 | end
51 | object Edit2: TEdit
52 | AnchorSideLeft.Control = Label2
53 | AnchorSideLeft.Side = asrBottom
54 | AnchorSideTop.Control = Label1
55 | AnchorSideTop.Side = asrCenter
56 | Left = 324
57 | Height = 37
58 | Hint = 'Strictly recommended 443'
59 | Top = 8
60 | Width = 82
61 | BorderSpacing.Left = 2
62 | OnChange = Edit1Change
63 | ParentShowHint = False
64 | ShowHint = True
65 | TabOrder = 1
66 | Text = '443'
67 | end
68 | object Label3: TLabel
69 | AnchorSideLeft.Control = Owner
70 | Left = 8
71 | Height = 17
72 | Top = 208
73 | Width = 31
74 | BorderSpacing.Left = 8
75 | Caption = 'UUID'
76 | ParentColor = False
77 | end
78 | object Edit3: TEdit
79 | AnchorSideLeft.Control = Edit5
80 | AnchorSideTop.Control = Label3
81 | AnchorSideTop.Side = asrCenter
82 | AnchorSideRight.Control = SpeedButton1
83 | Left = 81
84 | Height = 37
85 | Top = 198
86 | Width = 434
87 | Anchors = [akTop, akLeft, akRight]
88 | OnChange = Edit1Change
89 | TabOrder = 5
90 | end
91 | object Label4: TLabel
92 | AnchorSideLeft.Control = Owner
93 | Left = 8
94 | Height = 17
95 | Top = 64
96 | Width = 30
97 | BorderSpacing.Left = 8
98 | Caption = 'Flow'
99 | ParentColor = False
100 | end
101 | object ComboBox1: TComboBox
102 | AnchorSideLeft.Control = Label4
103 | AnchorSideLeft.Side = asrBottom
104 | AnchorSideTop.Control = Label4
105 | AnchorSideTop.Side = asrCenter
106 | AnchorSideRight.Control = Edit2
107 | AnchorSideRight.Side = asrBottom
108 | Left = 58
109 | Height = 37
110 | Top = 54
111 | Width = 348
112 | Anchors = [akTop, akLeft, akRight]
113 | BorderSpacing.Left = 20
114 | ItemHeight = 0
115 | ItemIndex = 0
116 | Items.Strings = (
117 | 'xtls-rprx-vision'
118 | 'xtls-rprx-vision-udp443'
119 | )
120 | OnChange = Edit1Change
121 | TabOrder = 2
122 | Text = 'xtls-rprx-vision'
123 | end
124 | object Label5: TLabel
125 | AnchorSideLeft.Control = Owner
126 | Left = 8
127 | Height = 17
128 | Top = 112
129 | Width = 21
130 | BorderSpacing.Left = 8
131 | Caption = 'SNI'
132 | ParentColor = False
133 | end
134 | object ComboBox2: TComboBox
135 | AnchorSideLeft.Control = ComboBox1
136 | AnchorSideTop.Control = Label5
137 | AnchorSideTop.Side = asrCenter
138 | AnchorSideRight.Control = Edit2
139 | AnchorSideRight.Side = asrBottom
140 | Left = 58
141 | Height = 37
142 | Top = 102
143 | Width = 348
144 | Anchors = [akTop, akLeft, akRight]
145 | ItemHeight = 0
146 | ItemIndex = 7
147 | Items.Strings = (
148 | 'www.asus.com'
149 | 'www.bing.com'
150 | 'www.cisco.com'
151 | 'www.linksys.com'
152 | 'www.microsoft.com'
153 | 'www.nvidia.com'
154 | 'www.samsung.com'
155 | 'www.yahoo.com'
156 | )
157 | OnChange = Edit1Change
158 | TabOrder = 3
159 | Text = 'www.yahoo.com'
160 | end
161 | object Label6: TLabel
162 | AnchorSideLeft.Control = Owner
163 | Left = 8
164 | Height = 17
165 | Top = 160
166 | Width = 37
167 | BorderSpacing.Left = 8
168 | Caption = 'FPrint'
169 | ParentColor = False
170 | end
171 | object ComboBox3: TComboBox
172 | AnchorSideLeft.Control = ComboBox1
173 | AnchorSideTop.Control = Label6
174 | AnchorSideTop.Side = asrCenter
175 | AnchorSideRight.Control = Edit2
176 | AnchorSideRight.Side = asrBottom
177 | Left = 58
178 | Height = 37
179 | Top = 150
180 | Width = 348
181 | Anchors = [akTop, akLeft, akRight]
182 | ItemHeight = 0
183 | Items.Strings = (
184 | 'android'
185 | 'chrome'
186 | 'edge'
187 | 'firefox'
188 | 'ios'
189 | 'safari'
190 | '360'
191 | )
192 | OnChange = Edit1Change
193 | TabOrder = 4
194 | Text = 'chrome'
195 | end
196 | object Label7: TLabel
197 | AnchorSideLeft.Control = Owner
198 | Left = 8
199 | Height = 17
200 | Top = 304
201 | Width = 60
202 | BorderSpacing.Left = 8
203 | Caption = 'Public Key'
204 | ParentColor = False
205 | end
206 | object Edit4: TEdit
207 | AnchorSideLeft.Control = Edit5
208 | AnchorSideTop.Control = Label7
209 | AnchorSideTop.Side = asrCenter
210 | AnchorSideRight.Control = SpeedButton2
211 | Left = 81
212 | Height = 37
213 | Top = 294
214 | Width = 434
215 | Anchors = [akTop, akLeft, akRight]
216 | OnChange = Edit1Change
217 | TabOrder = 7
218 | end
219 | object Label8: TLabel
220 | AnchorSideLeft.Control = Owner
221 | Left = 8
222 | Height = 17
223 | Top = 256
224 | Width = 65
225 | BorderSpacing.Left = 8
226 | Caption = 'Private Key'
227 | ParentColor = False
228 | end
229 | object Edit5: TEdit
230 | AnchorSideLeft.Control = Label8
231 | AnchorSideLeft.Side = asrBottom
232 | AnchorSideTop.Control = Label8
233 | AnchorSideTop.Side = asrCenter
234 | AnchorSideRight.Control = SpeedButton2
235 | Left = 81
236 | Height = 37
237 | Top = 246
238 | Width = 434
239 | Anchors = [akTop, akLeft, akRight]
240 | BorderSpacing.Left = 8
241 | OnChange = Edit1Change
242 | TabOrder = 6
243 | end
244 | object SpeedButton1: TSpeedButton
245 | AnchorSideLeft.Control = Edit3
246 | AnchorSideLeft.Side = asrBottom
247 | AnchorSideTop.Control = Edit3
248 | AnchorSideRight.Control = Owner
249 | AnchorSideRight.Side = asrBottom
250 | AnchorSideBottom.Control = Edit3
251 | AnchorSideBottom.Side = asrBottom
252 | Left = 515
253 | Height = 37
254 | Top = 198
255 | Width = 88
256 | Anchors = [akTop, akRight, akBottom]
257 | BorderSpacing.Right = 8
258 | Caption = 'NEW'
259 | OnClick = SpeedButton1Click
260 | end
261 | object SpeedButton2: TSpeedButton
262 | AnchorSideLeft.Control = Edit4
263 | AnchorSideLeft.Side = asrBottom
264 | AnchorSideTop.Control = Edit5
265 | AnchorSideRight.Control = Owner
266 | AnchorSideRight.Side = asrBottom
267 | AnchorSideBottom.Control = Edit4
268 | AnchorSideBottom.Side = asrBottom
269 | Left = 515
270 | Height = 85
271 | Top = 246
272 | Width = 88
273 | Anchors = [akTop, akRight, akBottom]
274 | BorderSpacing.Right = 8
275 | Caption = 'NEW'
276 | OnClick = SpeedButton2Click
277 | end
278 | object Label9: TLabel
279 | AnchorSideLeft.Control = Owner
280 | Left = 8
281 | Height = 17
282 | Top = 352
283 | Width = 20
284 | BorderSpacing.Left = 8
285 | Caption = 'SID'
286 | ParentColor = False
287 | end
288 | object Edit6: TEdit
289 | AnchorSideTop.Control = Label9
290 | AnchorSideTop.Side = asrCenter
291 | AnchorSideRight.Control = Edit2
292 | AnchorSideRight.Side = asrBottom
293 | Left = 40
294 | Height = 37
295 | Top = 342
296 | Width = 366
297 | Anchors = [akTop, akLeft, akRight]
298 | OnChange = Edit1Change
299 | TabOrder = 8
300 | end
301 | object SpeedButton3: TSpeedButton
302 | AnchorSideLeft.Control = Edit6
303 | AnchorSideLeft.Side = asrBottom
304 | AnchorSideTop.Control = Edit6
305 | AnchorSideBottom.Control = Edit6
306 | AnchorSideBottom.Side = asrBottom
307 | Left = 406
308 | Height = 37
309 | Top = 342
310 | Width = 88
311 | Anchors = [akTop, akLeft, akBottom]
312 | Caption = 'NEW'
313 | OnClick = SpeedButton3Click
314 | end
315 | object Memo1: TMemo
316 | AnchorSideLeft.Control = Owner
317 | AnchorSideRight.Control = Owner
318 | AnchorSideRight.Side = asrBottom
319 | AnchorSideBottom.Control = Owner
320 | AnchorSideBottom.Side = asrBottom
321 | Left = 8
322 | Height = 101
323 | Top = 424
324 | Width = 595
325 | Anchors = [akTop, akLeft, akRight, akBottom]
326 | BorderSpacing.Left = 8
327 | BorderSpacing.Right = 8
328 | BorderSpacing.Bottom = 8
329 | Font.Height = -12
330 | Font.Name = 'Monospace'
331 | ParentFont = False
332 | ReadOnly = True
333 | ScrollBars = ssVertical
334 | TabOrder = 9
335 | end
336 | object CopyBtn: TSpeedButton
337 | AnchorSideRight.Control = Memo1
338 | AnchorSideRight.Side = asrBottom
339 | AnchorSideBottom.Control = Memo1
340 | Left = 498
341 | Height = 35
342 | Top = 387
343 | Width = 105
344 | Anchors = [akRight, akBottom]
345 | BorderSpacing.Bottom = 2
346 | Caption = 'Copy'
347 | Enabled = False
348 | OnClick = CopyBtnClick
349 | end
350 | object Label10: TLabel
351 | AnchorSideLeft.Control = Memo1
352 | AnchorSideBottom.Control = CopyBtn
353 | AnchorSideBottom.Side = asrBottom
354 | Left = 8
355 | Height = 17
356 | Top = 405
357 | Width = 325
358 | Anchors = [akLeft, akBottom]
359 | Caption = 'Connection string to insert into XRayGUI via Clipboard'
360 | ParentColor = False
361 | end
362 | object SaveBtn: TSpeedButton
363 | AnchorSideRight.Control = Owner
364 | AnchorSideRight.Side = asrBottom
365 | Left = 434
366 | Height = 64
367 | Top = 8
368 | Width = 169
369 | Anchors = [akTop, akRight]
370 | BorderSpacing.Right = 8
371 | Caption = 'Save server.json'
372 | Enabled = False
373 | OnClick = SaveBtnClick
374 | end
375 | object IniPropStorage1: TIniPropStorage
376 | StoredValues = <>
377 | Left = 456
378 | Top = 104
379 | end
380 | object SaveDialog1: TSaveDialog
381 | DefaultExt = '.*.json'
382 | FileName = 'server.json'
383 | Filter = 'JSON files (*.json)|*.json'
384 | Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
385 | Left = 544
386 | Top = 104
387 | end
388 | end
389 |
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/reality_gen.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/reality_gen.o
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/reality_gen.ppu:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/reality_gen.ppu
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/start_trd.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/start_trd.o
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/start_trd.ppu:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/start_trd.ppu
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/unit1.lfm:
--------------------------------------------------------------------------------
1 | object MainForm: TMainForm
2 | Left = 299
3 | Height = 722
4 | Top = 110
5 | Width = 1003
6 | ActiveControl = Panel1
7 | Caption = 'XRayGUI'
8 | ClientHeight = 722
9 | ClientWidth = 1003
10 | OnClose = FormClose
11 | OnCreate = FormCreate
12 | OnShow = FormShow
13 | SessionProperties = 'ConfigBox.ItemIndex;GroupBox1.Width;Height;Left;OpenDialog1.InitialDir;Panel1.Height;PortEdit.Value;SaveDialog1.InitialDir;Top;Width;DomainBox.Text'
14 | LCLVersion = '3.6.0.0'
15 | object GroupBox1: TGroupBox
16 | Left = 0
17 | Height = 702
18 | Top = 0
19 | Width = 272
20 | Align = alLeft
21 | Caption = 'Configurations [vmess/vless/ss/trojan]'
22 | ClientHeight = 684
23 | ClientWidth = 270
24 | TabOrder = 0
25 | object Panel1: TPanel
26 | Left = 0
27 | Height = 54
28 | Top = 0
29 | Width = 270
30 | Align = alTop
31 | BevelOuter = bvNone
32 | ClientHeight = 54
33 | ClientWidth = 270
34 | TabOrder = 0
35 | OnResize = Panel1Resize
36 | object DeleteBtn: TSpeedButton
37 | AnchorSideRight.Side = asrBottom
38 | Left = 6
39 | Height = 36
40 | Top = 8
41 | Width = 85
42 | Caption = 'Delete'
43 | OnClick = DeleteBtnClick
44 | ShowHint = True
45 | ParentShowHint = False
46 | end
47 | object SelAllBtn: TSpeedButton
48 | AnchorSideLeft.Control = DeleteBtn
49 | AnchorSideLeft.Side = asrBottom
50 | Left = 92
51 | Height = 36
52 | Hint = 'Select all'
53 | Top = 8
54 | Width = 36
55 | BorderSpacing.Left = 1
56 | Caption = '*'
57 | OnClick = SelAllBtnClick
58 | ShowHint = True
59 | ParentShowHint = False
60 | end
61 | object PasteBtn: TSpeedButton
62 | AnchorSideRight.Side = asrBottom
63 | Left = 178
64 | Height = 36
65 | Hint = 'Paste from clipboard'
66 | Top = 8
67 | Width = 85
68 | Anchors = [akTop, akRight]
69 | BorderSpacing.Right = 5
70 | Caption = 'Paste'
71 | OnClick = PasteBtnClick
72 | ShowHint = True
73 | ParentShowHint = False
74 | end
75 | end
76 | object Splitter2: TSplitter
77 | Cursor = crVSplit
78 | Left = 0
79 | Height = 6
80 | Top = 54
81 | Width = 270
82 | Align = alTop
83 | ResizeAnchor = akTop
84 | end
85 | object ConfigBox: TCheckListBox
86 | AnchorSideBottom.Control = Image1
87 | Left = 0
88 | Height = 474
89 | Top = 60
90 | Width = 270
91 | Align = alTop
92 | Anchors = [akTop, akLeft, akRight, akBottom]
93 | Font.Height = -13
94 | Font.Name = 'Monospace'
95 | ItemHeight = 0
96 | MultiSelect = True
97 | ParentFont = False
98 | PopupMenu = PopupMenu1
99 | TabOrder = 2
100 | TopIndex = -1
101 | OnClick = ConfigBoxClick
102 | OnClickCheck = ConfigBoxClickCheck
103 | OnDblClick = StartBtnClick
104 | end
105 | object Image1: TImage
106 | AnchorSideLeft.Control = GroupBox1
107 | AnchorSideLeft.Side = asrCenter
108 | AnchorSideBottom.Control = GroupBox1
109 | AnchorSideBottom.Side = asrBottom
110 | Left = 60
111 | Height = 150
112 | Top = 534
113 | Width = 150
114 | Anchors = [akLeft, akBottom]
115 | Stretch = True
116 | end
117 | end
118 | object Splitter1: TSplitter
119 | Left = 272
120 | Height = 702
121 | Top = 0
122 | Width = 4
123 | end
124 | object GroupBox2: TGroupBox
125 | Left = 276
126 | Height = 702
127 | Top = 0
128 | Width = 727
129 | Align = alClient
130 | Caption = 'Management/Logging'
131 | ClientHeight = 684
132 | ClientWidth = 725
133 | TabOrder = 2
134 | object Panel2: TPanel
135 | Left = 0
136 | Height = 54
137 | Top = 0
138 | Width = 725
139 | Align = alTop
140 | BevelOuter = bvNone
141 | ClientHeight = 54
142 | ClientWidth = 725
143 | TabOrder = 0
144 | OnResize = Panel2Resize
145 | object Shape1: TShape
146 | AnchorSideLeft.Side = asrBottom
147 | AnchorSideTop.Control = StopBtn
148 | AnchorSideTop.Side = asrCenter
149 | Left = 8
150 | Height = 12
151 | Top = 20
152 | Width = 12
153 | BorderSpacing.Left = 10
154 | Brush.Color = clYellow
155 | Shape = stCircle
156 | end
157 | object PortEdit: TSpinEdit
158 | AnchorSideLeft.Side = asrBottom
159 | AnchorSideTop.Control = StopBtn
160 | AnchorSideTop.Side = asrCenter
161 | AnchorSideRight.Control = DomainBox
162 | AnchorSideBottom.Side = asrBottom
163 | Left = 105
164 | Height = 37
165 | Hint = '127.0.0.1:Port (SOCKS)'#10'127.0.0.1:8889 (HTTP)'
166 | Top = 8
167 | Width = 91
168 | Anchors = [akTop, akRight]
169 | BorderSpacing.Right = 5
170 | MinValue = 1000
171 | ParentShowHint = False
172 | ShowHint = True
173 | TabOrder = 0
174 | Value = 1080
175 | end
176 | object StopBtn: TSpeedButton
177 | AnchorSideRight.Control = StartBtn
178 | Left = 547
179 | Height = 36
180 | Top = 8
181 | Width = 85
182 | Anchors = [akTop, akRight]
183 | BorderSpacing.Right = 1
184 | Caption = 'Stop'
185 | OnClick = StopBtnClick
186 | end
187 | object StartBtn: TSpeedButton
188 | AnchorSideRight.Side = asrBottom
189 | Left = 633
190 | Height = 36
191 | Top = 8
192 | Width = 85
193 | Anchors = [akTop, akRight]
194 | BorderSpacing.Right = 5
195 | Caption = 'Start'
196 | OnClick = StartBtnClick
197 | end
198 | object ClearBox: TCheckBox
199 | AnchorSideLeft.Control = Shape1
200 | AnchorSideTop.Control = StopBtn
201 | AnchorSideTop.Side = asrCenter
202 | AnchorSideRight.Control = RealityBtn
203 | Left = 416
204 | Height = 32
205 | Hint = 'Clearing Cookies after starting the GUI (Mageia only)'
206 | Top = 10
207 | Width = 66
208 | Anchors = [akTop, akRight]
209 | BorderSpacing.Right = 5
210 | Caption = 'Clear'
211 | ParentShowHint = False
212 | ShowHint = True
213 | TabOrder = 4
214 | OnChange = ClearBoxChange
215 | end
216 | object Label1: TLabel
217 | AnchorSideTop.Control = StopBtn
218 | AnchorSideTop.Side = asrCenter
219 | AnchorSideRight.Control = PortEdit
220 | Left = 73
221 | Height = 17
222 | Top = 18
223 | Width = 29
224 | Anchors = [akTop, akRight]
225 | BorderSpacing.Right = 3
226 | Caption = 'Port:'
227 | ParentColor = False
228 | end
229 | object AutoStartBox: TCheckBox
230 | AnchorSideTop.Control = StopBtn
231 | AnchorSideTop.Side = asrCenter
232 | AnchorSideRight.Control = ClearBox
233 | Left = 349
234 | Height = 32
235 | Hint = 'AutoStart proxy after reboot'
236 | Top = 10
237 | Width = 62
238 | Anchors = [akTop, akRight]
239 | BorderSpacing.Right = 5
240 | Caption = 'Auto'
241 | ParentShowHint = False
242 | ShowHint = True
243 | TabOrder = 3
244 | OnChange = AutoStartBoxChange
245 | end
246 | object SWPBox: TCheckBox
247 | AnchorSideTop.Control = StopBtn
248 | AnchorSideTop.Side = asrCenter
249 | AnchorSideRight.Control = AutoStartBox
250 | Left = 282
251 | Height = 32
252 | Hint = 'System-Wide Proxy:'#10'Budgie, GNOME, Cinnamon, KDE, MATE'
253 | Top = 10
254 | Width = 62
255 | Anchors = [akTop, akRight]
256 | BorderSpacing.Right = 5
257 | Caption = 'SWP'
258 | ParentShowHint = False
259 | ShowHint = True
260 | TabOrder = 2
261 | OnChange = SWPBoxChange
262 | end
263 | object RealityBtn: TSpeedButton
264 | AnchorSideTop.Control = StopBtn
265 | AnchorSideRight.Control = StopBtn
266 | AnchorSideBottom.Control = StopBtn
267 | AnchorSideBottom.Side = asrBottom
268 | Left = 487
269 | Height = 36
270 | Hint = 'REALITY configurations generator (Client-Server)'
271 | Top = 8
272 | Width = 50
273 | Anchors = [akTop, akRight, akBottom]
274 | BorderSpacing.Right = 10
275 | Glyph.Data = {
276 | 360C0000424D360C000000000000360000002800000020000000180000000100
277 | 200000000000000C000064000000640000000000000000000000000000000000
278 | 0000000000000000000000000000000000000000000000000000000000000000
279 | 000000000000B7651F00B7651F0BB7651FC3B6641EFFB6641EFFB5631DFFB463
280 | 1DFFB4631D9FA8531400B3621D00B0611C00B0601A00B0601A32AF601AE5AF5F
281 | 19FFAE5F19FFAD5E18FFAD5E18FFAC5D17D8AB5D1725AB5D1700000000000000
282 | 0000000000000000000000000000000000000000000000000000000000000000
283 | 000000000000B8651F00B8651F0AB8651FC2B7651FFFB6641EFFB6641EFFB563
284 | 1DFFB4631D9FA4510300B4621C00B1611B00B2621C04B1611B98B0601AFFAF60
285 | 1AFFAF5F19FFAE5F19FFAD5E18FBAD5E186CAE5F1900AC5D1700000000000000
286 | 00000000000000000000000000000000000000000000A6A09E00A9A3A400A8A2
287 | A107A7A2A123A6A1A148A79B9472B66E31E0B8651EFFB7651FFFB6641EFFB663
288 | 1DFFB0713BD0A19B9B6EA09A9A499EA0A720B0682941B2611BEBB1611BFFB060
289 | 1AFFAF601AFFAF5F19FFAE5F19BCAD5E1812AE5E180000000000000000000000
290 | 0000000000000000000000000000ABA5A500ABA5A502AAA5A425A9A4A36DA8A3
291 | A2B4A8A2A2E2A7A2A1F8A79E9BFFB5743EFFB9651EFFB8651FFFB7651FFFB763
292 | 1CFFAE794DFFA29C9BFFA19B9BFAA19997E1AE713DDEB2611AFFB2611BFFB161
293 | 1BFFB0601AFFAF601AF1AF5F194AAF5F1900AE5F190000000000000000000000
294 | 000000000000ADA8A600AEAAA800ACA7A628ACA6A58CABA5A5E0AAA5A4FEA9A4
295 | A3FFA9A3A2FFA8A3A2FFA89F9CFFB5753FFFB9651EFFB86620FFB8651FFFB764
296 | 1DFFB07849F0A29D9DD9A19D9EE0A78B77F6B26624FFB3621CFFB2621CFFB261
297 | 1BFFB1601AFFB15F1899B15A0E05B15C11000000000000000000000000000000
298 | 0000AFAAA900AFAAA909AEA9A867ADA8A7DCACA7A6FFACA6A6FFABA6A5FFAAA5
299 | A4FFAAA4A4FFA9A4A3F6A9A09CD0B77138ECBA6620FFB96620FFB86620FFB865
300 | 1FFFB66825ACA98C7624AD7E5849B3692ADAB4631DFFB4631DFFB3621CFFB261
301 | 1BFFAF692DFEA5866E8298ACC6079E9B9D00000000000000000000000000B0AB
302 | AA00B0ABAA11AFABA993AFAAA9F8AEA9A8FFADA8A7FFADA8A7FFACA7A6FFABA6
303 | A5F6AAA5A4B1A9A5A54EB08E741DBB6822C3BB6721FFBA6721FFB96620FFB866
304 | 20FFB8651FE9B7651EC3B7641DDAB6641DFEB5631DFFB4631DFFB4631DF5B361
305 | 1BB7A88162969F9999E29F9999959F9898119F98980000000000B2ADAC00B2AD
306 | AC0CB1ACAB99B0ACAAFDB0ABAAFFAFAAA9FFAEA9A8FFAEA9A8FFADA8A7DDACA7
307 | A65FABA6A50AB4845D00BC68220BBC6822C2BB6822FFBB6721FFBA6721FFB966
308 | 20FFB86620FFB8651FFFB7651FFFB6641EFFB6641EFFB5641EFFB4631DEBB463
309 | 1D96B3652239A09896469F999AD49F99999C9F99990C9F999900C6C4C300B3AE
310 | AD74B2ADACFBB1ADABFFB1ACABFFB0ABAAFFAFAAA9FFAFAAA9D6AEA9A83BB0AB
311 | AA00AEA8A700BD692300BD69230BBD6923C3BC6822FFBB6822FFBB6721FFBA67
312 | 21FFB96620FFB96620FFB8651FFFB7651FFFB6641EFFB6641EFFB5631DFFB463
313 | 1DFFB4631CECB4601875A2948E45A09A9AE0A0999975A1989400B4B0AE33B4AF
314 | AEE0B3AEADFFB2AEACFFB2ADACFFB1ACABFFB0ABAAEFB0ABAA4DB0ACAA00AFAA
315 | A90000000000BD692300BD69230BBD6923C3BD6923FFBC6822FFBB6822FFBB67
316 | 21FFBA6721FCB96620F6B86620F6B8651FF6B7651FFBB6641EFFB6641EFFB563
317 | 1DFFB4631DFFB4631CF7B4611A60A09B9C81A09A9AE1A09A9A33B5B1AF93B5B0
318 | AFFFB4AFAEFFB3AFADFFB3AEADFFB2ADACFFB1ADABA6B0ABAA05B1ACAB000000
319 | 000000000000BE6A2400BE6A240BBE6A24C3BD6923FFBD6923FFBC6822FFBB68
320 | 22FFBB6721BEBA672141B966203FB866203FB7651F5FB7651FDBB6641EFFB664
321 | 1EFFB5641EFFB4631DFFB4621BC0A58F8043A19B9BEDA19B9A94B6B2B0DAB6B1
322 | B0FFB5B1AFFFB4B0AEFFB4AFAEFFB3AEADFFB2AEAD66B3AEAD00B2ADAB000000
323 | 000000000000BF6A2400BF6A240BBF6A24C3BE6A24FFBD6923FFBD6923FFBC68
324 | 22FFBB6822A9BA682202BB682200B7651F00B8651F00B8651F88B7651FFFB664
325 | 1EFFB6641EFFB5641EFFB4631CE7AE784B40A29D9DD6A29C9BDDB7B3B1F9B7B2
326 | B1FFB6B2B0FFB5B1AFFFB5B0AFFFB4AFAEFDB4AFAE56B4AFAE00000000000000
327 | 000000000000C06B2500C06B250BBF6B25C3BF6A24FFBE6A24FFBD6923FFBD69
328 | 23FFBC6822AABB672105BA672103BA672103BA67210DB86620A6B8651FFFB765
329 | 1FFFB6641EFFB6641EFFB5631DEEB0733F43A39E9FCDA39D9CFCB8B4B2FCB8B3
330 | B2FFB7B3B1FFB6B2B0FFB6B1B0FFB5B0AFFFB4B0AF76B4B0AF00B5B0AF000000
331 | 000000000000C16B2500C16B250BC06B25C3BF6B25FFBF6A24FFBE6A24FFBD69
332 | 23FFBD6923E3BC6822ADBB6822ADBB6721ADBA6721C2B96620F7B96620FFB865
333 | 1FFFB7651FFFB6641EFFB6641DDFAD7F5A3FA49F9FDCA49E9DFEB9B5B3E6B9B5
334 | B3FFB8B4B2FFB7B3B1FFB7B2B1FFB6B2B0FFB5B1B0C2B5B1B012B5B1B0000000
335 | 000000000000C16C2600C16C260BC16B25C3C06B25FFBF6B25FFBF6A24FFBE6A
336 | 24FFBD6923FFBD6923FFBC6822FFBB6822FFBB6721FFBA6721FFB96620FFB966
337 | 20FFB8651FFFB7651FFFB7631CA3A79B964EA5A09FF7A59F9EE7BAB6B4ABBAB6
338 | B4FFB9B5B3FFB8B4B2FFB8B3B2FFB7B3B1FFB6B2B0FBB6B2B07BB6B2AF03B6B2
339 | B00000000000C26C2600C26C260BC16C26C3C16C26FFC06B25FFBF6B25FFBF6A
340 | 24FFBE6A24FFBD6923FFBD6923FFBC6822FFBB6822FFBB6721FFBA6721FFB966
341 | 20FFB96620FFB8651FD4B56C2F3AA7A2A3A3A6A1A0FFA6A09FABBBB7B54DBAB7
342 | B5EFBAB6B4FFB9B5B4FFB8B4B3FFB8B4B2FFB7B3B1FFB7B2B1F2B6B2B073B6B2
343 | B009B6B2B000C36D2700C36D270AC26C26BEC26C26FCC16C26F9C06B25F9BF6B
344 | 25F9BF6A24F9BE6A24F9BD6923F9BD6923F9BC6822F9BB6822F9BB6721F6BA67
345 | 21E1B9661F9DB868242FA8A4A56DA8A2A2F7A7A2A1EFA7A1A04DBBB7B607BBB7
346 | B699BBB7B5FFBAB6B5FFB9B6B4FFB9B5B3FFB8B4B2FFB7B3B2FFB7B3B1F7B6B2
347 | B1A2B6B2B02FB4B7BA02C5651803C36C2536C26C2648C16C2647C16B2547C06B
348 | 2547BF6A2447BE6A2447BE692347BD692347BC682247BC672147BC651C3DBC5F
349 | 111EAD9E941AAAA6A780A9A4A3F2A9A3A3FFA8A3A299A7A1A107BCB8B600BCB8
350 | B61FBCB8B6C2BBB7B6FFBAB7B5FFBAB6B4FFB9B5B3FFB8B4B3FFB8B4B2FFB7B3
351 | B1FFB7B2B1E5B6B2B096B6B1B045B3BCC3129DFFFF01A8E3F800000000000000
352 | 00000000000000000000000000007DFFFF00B89AAD00A7C6DB06ACAFB526ACA9
353 | A96CACA7A6CAABA6A5FCAAA5A4FFAAA4A4C2A9A4A31FA9A4A300BDB8B700BCB8
354 | B700BCB8B72BBCB8B6C2BBB8B6FFBBB7B5FFBAB6B4FFB9B5B4FFB9B5B3FFB8B4
355 | B2FFB7B3B2FFB7B3B1FFB6B2B0F5B6B1B0D2B5B1AFA6B4B0AF7EB4AFAE62B3AF
356 | AD52B3AEAD4EB2ADAC52B1ACAB5EB0ACAB73B0ABAA94AFAAA9BEAEA9A8E7ADA8
357 | A7FDADA8A7FFACA7A6FFABA6A5C2ABA5A52BABA6A500ABA5A50000000000BCBA
358 | B900BCB8B700BCB9B71EBCB8B79DBCB8B6F6BBB7B6FFBAB7B5FFBAB6B4FFB9B5
359 | B3FFB8B4B3FFB8B4B2FFB7B3B1FFB6B2B1FFB6B1B0FFB5B1AFFFB4B0AFFEB4AF
360 | AEFCB3AFADFBB2AEADFCB2ADACFEB1ACABFFB0ACAAFFB0ABAAFFAFAAA9FFAEAA
361 | A8FFAEA9A8F6ADA8A79EACA7A61FACA7A600ACA7A60000000000000000000000
362 | 000000000000BCB9B700BDB9B709BCB9B756BCB8B6C3BBB8B6F9BBB7B5FFBAB6
363 | B4FFB9B5B4FFB9B5B3FFB8B4B2FFB7B3B2FFB7B3B1FFB6B2B0FFB5B1B0FFB5B0
364 | AFFFB4B0AEFFB3AFAEFFB3AEADFFB2ADACFFB1ADACFFB1ACABFFB0ABAAF9AFAA
365 | A9C4AFAAA957AEA9A809AEA9A800AEBCB2000000000000000000000000000000
366 | 00000000000000000000BCBAB800BCB7B600BCB9B711BCB8B655BCB8B6A8BBB7
367 | B5E0BAB7B5F9BAB6B4FFB9B5B3FFB8B4B3FFB8B4B2FFB7B3B1FFB6B2B1FFB6B1
368 | B0FFB5B1AFFFB4B0AFFFB4AFAEFFB3AFADFAB2AEACE1B2ADACA8B1ACAB56B0AB
369 | AA12B1ACAB00AFABA90000000000000000000000000000000000000000000000
370 | 000000000000000000000000000000000000C0B8B600BCB8B600BCB8B606BBB8
371 | B629BBB7B560BAB7B597BAB6B4C2B9B5B4DFB9B5B3F0B8B4B2F7B7B3B2F7B7B2
372 | B1F0B6B2B0DFB5B1AFC3B4B0AF97B4AFAE60B3AEAD29B2AEAD06B2AEAC00B8B2
373 | B300000000000000000000000000000000000000000000000000
374 | }
375 | OnClick = RealityBtnClick
376 | ShowHint = True
377 | ParentShowHint = False
378 | end
379 | object DomainBox: TComboBox
380 | AnchorSideTop.Control = StopBtn
381 | AnchorSideTop.Side = asrCenter
382 | AnchorSideRight.Control = SWPBox
383 | AnchorSideBottom.Side = asrBottom
384 | Left = 201
385 | Height = 37
386 | Hint = 'Bypassing domain zones'
387 | Top = 8
388 | Width = 76
389 | Anchors = [akTop, akRight]
390 | BorderSpacing.Right = 5
391 | Font.Height = -13
392 | Font.Name = 'Sans'
393 | Font.Style = [fsBold]
394 | ItemHeight = 0
395 | Items.Strings = (
396 | 'by'
397 | 'cn'
398 | 'er'
399 | 'ir'
400 | 'pk'
401 | 'ru'
402 | 'sa'
403 | 'so'
404 | 'tm'
405 | 'tr'
406 | 'ua'
407 | 'uz'
408 | )
409 | ParentFont = False
410 | ParentShowHint = False
411 | ShowHint = True
412 | TabOrder = 1
413 | Text = 'cn'
414 | end
415 | end
416 | object Splitter3: TSplitter
417 | Cursor = crVSplit
418 | Left = 0
419 | Height = 6
420 | Top = 54
421 | Width = 725
422 | Align = alTop
423 | ResizeAnchor = akTop
424 | end
425 | object LogMemo: TMemo
426 | Left = 0
427 | Height = 624
428 | Top = 60
429 | Width = 725
430 | Align = alClient
431 | Font.Height = -12
432 | Font.Name = 'Monospace'
433 | ParentFont = False
434 | ReadOnly = True
435 | ScrollBars = ssVertical
436 | TabOrder = 2
437 | WantReturns = False
438 | end
439 | end
440 | object StaticText1: TStaticText
441 | Left = 0
442 | Height = 20
443 | Top = 702
444 | Width = 1003
445 | Align = alBottom
446 | Caption = 'License: GPLv3 Author: alex_q_2000 (C) 2023 URL: https://github.com/AKotov-dev'
447 | Font.Color = clGray
448 | Font.Height = -11
449 | Font.Name = 'Sans'
450 | ParentFont = False
451 | TabOrder = 3
452 | end
453 | object IniPropStorage1: TIniPropStorage
454 | StoredValues = <
455 | item
456 | Name = 'findex'
457 | Value = '100'
458 | end>
459 | OnRestoreProperties = IniPropStorage1RestoreProperties
460 | Left = 320
461 | Top = 104
462 | end
463 | object PopupMenu1: TPopupMenu
464 | Images = ImageList1
465 | OnPopup = PopupMenu1Popup
466 | Left = 121
467 | Top = 104
468 | object CopyItem: TMenuItem
469 | Caption = 'Copy'
470 | ImageIndex = 0
471 | OnClick = CopyItemClick
472 | end
473 | object Separator1: TMenuItem
474 | Caption = '-'
475 | end
476 | object SaveItem: TMenuItem
477 | Caption = 'Save to file'
478 | ImageIndex = 2
479 | OnClick = SaveItemClick
480 | end
481 | object LoadItem: TMenuItem
482 | Caption = 'Load from file'
483 | ImageIndex = 1
484 | OnClick = LoadItemClick
485 | end
486 | end
487 | object OpenDialog1: TOpenDialog
488 | DefaultExt = '.*.proxy'
489 | Filter = 'XRayGUI files (*.proxy)|*.proxy'
490 | Options = [ofNoNetworkButton, ofEnableSizing]
491 | Left = 64
492 | Top = 176
493 | end
494 | object SaveDialog1: TSaveDialog
495 | DefaultExt = '.*.proxy'
496 | Filter = 'XRayGUI file (*.proxy)|*.proxy'
497 | Options = [ofOverwritePrompt, ofEnableSizing]
498 | Left = 168
499 | Top = 176
500 | end
501 | object ImageList1: TImageList
502 | Left = 208
503 | Top = 104
504 | Bitmap = {
505 | 4C7A030000001000000010000000130400000000000078DAEDD35D4C93571807
506 | F03772B5C2EDB6645920CB2E77B5AB99E904C1AA14615268295018938F02A515
507 | 65F413280205DAD2A201943A758EB81951B74874C28C37F225149A6D0AE342F0
508 | 6250966CC1AC74A55936FF7BCE5B31B016292C4BB6646FF24F9B3CE7779E73DE
509 | 735E8E0B7DBA12B8984E6194A8431825091756B3EDE7A2B98DECBE1D331DFB76
510 | 60934C879B83EFCBEAFBB937B80D1E56E3C7244625FFB576531B6F603578867B
511 | D76571F032168655406F143F07F3B417F61F5D2FC7A0334E848E58C9FCC977BA
512 | 5D86B77EC6BDDA91E7196B1DC70F777DF00C81CDB1D6076DEC0C59BC305D6FCE
513 | F273D03AD6F9605F1A13B7E17E598D1F73DFE2627B59E769CDACC66DF2F09EED
514 | E55FE0D79EDF563C3B9735F767CA99CA09B6E2D9D9DED4EC31B2BEAB776F4BEB
515 | A7B161CE2639E2F3A3B12135DBABD1549BDEF4FE74C44EC1F99A20ECFCFC1C71
516 | ABEF324CA84663B87FE011D8164C94A5F5F1DC8AB1FDF84A84FE0E05A1F17804
517 | 6D0BE705D679E74689B6CF2731FF7AE722CCC35ED8C796230A1BCB0CD981971C
518 | 8B7725FD5EB87FC196C20CB3821BBFB9A30780EDE499BDB35DFFCCFEEFFFC35E
519 | 300013FD2E6D27CCFEDDEFB7A8405ADF502D0F588D721C5715C3DA6C82C55C87
520 | D6A65AB434D6C07CC280A67A3D1A4D3A545614E2884CF87B7AEA5E35008EA551
521 | 230FF8278EE2A7A10A384F9F84CFE75B178F67013D179CE8FBF22A6E7FD5877E
522 | 67061C5AD1D3C329F12AE6DBEBF31170931F54A2FB747B881F1D1DC439B31806
523 | B514B76FF5E1EBB362F847E468D31C7C7AE8C0AE0A87298FBC9A7C39BABBC2F8
524 | 91415C3F2581E918F337781F18CD857F3807EA82F83F1C75E42755E4CB70A6D3
525 | 1EE2DD13E3D0948A50A5CC0D7A673AEF5746B2612C4B84BD4ECE7BBF4B0963D5
526 | 8798A4F133D3539487F87E8AE50126C646E09E1C8741A3C2F41752F239E46541
527 | 5F9B4BBE02810925E6FA8BD07B2A1B97EC325C6A93A2C79A891E4B063E6D4DC7
528 | C596F731DA9319EC3D9A4D3E0B86D2BD68ABC921AF245F8E80AB945242294660
529 | BC1081B123940204EE7F40C9E36DB0F7AA4F087AEA6DD1CB70B1BD129F38D4B8
530 | 6057E1BC4D8973D6727C6C29C3D956059C2DC5E86E2EC2197321AD5B88956129
531 | F48A78D88CD97C6F87291F8FAF1FC6E36B6998BB9A8AB95E11E6AE2463F6CA01
532 | CC5E165292F0E8F3443CFA2C010D9587C84BA02FD9435E46BE0CCDFA7C3C597C
533 | 88279ED53C0866E13B2CF1F93698F96FA02B4FE1BD8EBCD590C57BB32EEFF999
534 | 2D2F2FBF30DA32E633A12B7E0F563D7997024D5A79449685DD8795A10C688B76
535 | D37B93F2EFBC499B1B91F77ABDD02892C98BC9EF8251255EF975AC048D9ADC88
536 | 7A335FAD3808DF3D3114593BFD3999A21ABD326DA5282F8DFF461BEA34385153
537 | 0D93F123D4198EA356770C35DAA3306AD4D057ABA0AB52429CF22E4A653BFD49
538 | BBDFAEFA13A9CD7CB4
539 | }
540 | end
541 | object GetQR: TAsyncProcess
542 | Active = False
543 | Executable = 'bash'
544 | Parameters.Strings = (
545 | ''
546 | )
547 | Options = [poWaitOnExit]
548 | Priority = ppNormal
549 | StartupOptions = []
550 | ShowWindow = swoNone
551 | WindowColumns = 0
552 | WindowHeight = 0
553 | WindowLeft = 0
554 | WindowRows = 0
555 | WindowTop = 0
556 | WindowWidth = 0
557 | FillAttribute = 0
558 | Left = 320
559 | Top = 176
560 | end
561 | end
562 |
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/unit1.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/unit1.o
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/unit1.ppu:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/unit1.ppu
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/unit1.rsj:
--------------------------------------------------------------------------------
1 | {"version":1,"strings":[
2 | {"hash":7788545,"name":"unit1.sapprunning","sourcebytes":[84,104,101,32,112,114,111,103,114,97,109,32,105,115,32,97,108,114,101,97,100,121,32,114,117,110,110,105,110,103,33],"value":"The program is already running!"},
3 | {"hash":40838129,"name":"unit1.svmessonlymsg","sourcebytes":[83,117,112,112,111,114,116,101,100,32,112,114,111,116,111,99,111,108,115,58,10,118,109,101,115,115,44,32,118,108,101,115,115,44,32,115,115,32,40,119,105,116,104,111,117,116,32,111,98,102,115,41,32,97,110,100,32,116,114,111,106,97,110,33],"value":"Supported protocols:\nvmess, vless, ss (without obfs) and trojan!"},
4 | {"hash":192063167,"name":"unit1.sdeletemsg","sourcebytes":[68,101,108,101,116,101,32,116,104,101,32,115,101,108,101,99,116,101,100,32,99,111,110,102,105,103,117,114,97,116,105,111,110,115,63],"value":"Delete the selected configurations?"},
5 | {"hash":22736929,"name":"unit1.snotvalidmsg","sourcebytes":[84,104,101,32,102,105,108,101,32,105,115,32,110,111,116,32,118,97,108,105,100,33],"value":"The file is not valid!"}
6 | ]}
7 |
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/update_trd.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/update_trd.o
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/update_trd.ppu:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/update_trd.ppu
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/vmessgui.compiled:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/vmessgui.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/vmessgui.o
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/vmessgui.or:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/vmessgui.or
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/vmessgui.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/vmessgui.res
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/xraygui.compiled:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/xraygui.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/xraygui.o
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/xraygui.or:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/xraygui.or
--------------------------------------------------------------------------------
/xraygui/lib/x86_64-linux/xraygui.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/lib/x86_64-linux/xraygui.res
--------------------------------------------------------------------------------
/xraygui/package_project/xraygui.prj:
--------------------------------------------------------------------------------
1 | [NAME]
2 | name=xraygui
3 |
4 | [VERSION]
5 | version=2.5
6 |
7 | [RELEASE]
8 | release=0.mrx9
9 |
10 | [GROUP]
11 | group=Applications/System
12 |
13 | [DESCRIPTION]
14 | 0=A small and nimble GUI for XRay-core
15 | 1=---
16 | 2=More information: /usr/share/doc/package_name/repack.txt
17 |
18 | [MAINTAINER]
19 | maintainer=Alex Kotov
20 |
21 | [VENDOR]
22 | vendor=alex_q_2000 (C) 2023
23 |
24 | [SUMMARY]
25 | summary=A small and nimble GUI for XRay-core
26 |
27 | [URLCOPY]
28 | urlcopy=https://github.com/AKotov-dev/XRayGUI
29 |
30 | [LICENSE]
31 | license=GPLv3
32 |
33 | [DEPS]
34 | deps=systemd zenity curl p7zip qrencode gtk2 lib64proxy-gnome lib64proxy-kde
35 |
36 | [META]
37 | meta=0
38 |
39 | [NOARCH]
40 | noarch=0
41 |
42 | [DEB]
43 | deb=1
44 |
45 | [FILES]
46 | 0=/usr/share/xraygui/
47 | 1=/usr/share/doc/xraygui/
48 | 2=/usr/bin/xraygui
49 | 3=/usr/bin/xray-update
50 | 4=/usr/share/icons/xraygui.png
51 | 5=/etc/systemd/user/xray.service
52 | 6=/etc/systemd/user/xray-update.service
53 | 7=/usr/share/applications/xraygui.desktop
54 | 8=/etc/systemd/user/xray-swproxy.service
55 |
56 | [AFTERINSTALL]
57 | 0=#!/bin/bash
58 | 1=
59 | 2=systemctl daemon-reload
60 |
61 | [AFTERREMOVE]
62 | 0=#!/bin/bash
63 | 1=
64 | 2=systemctl daemon-reload
65 |
66 | [BEFOREREMOVE]
67 | 0=#!/bin/bash
68 | 1=
69 | 2=#Окончательное удаление
70 | 3=if [ $1 -eq 0 ]; then
71 | 4=if [[ $(pidof xray) ]]; then killall xray; fi
72 | 5=systemctl daemon-reload
73 | 6=fi
74 |
75 | [URL32]
76 | url32=https://github.com/AKotov-dev/XRayGUI
77 |
78 | [PROGRAMNAME]
79 | programname=XRayGUI
80 |
81 | [DEVTOOL]
82 | devtool=Lazarus
83 |
84 | [TOOLVERSION]
85 | toolversion=3.6
86 |
87 | [INFO]
88 | 0=V2.5
89 | 1=+ Recompiling to Lazarus-3.6
90 | 2=+ VMESS/VLESS `HTTPUpgrade` support
91 | 3=+ Packages for Mageia-9 and Ubuntu
92 | 4=
93 | 5=v2.4
94 | 6=+ XHTTP support
95 | 7=+ Fix xhttpSettings: hostname/host
96 | 8=+ Packages for Mageia-9 and Ubuntu
97 | 9=
98 | 10=v2.3.3
99 | 11=+ XHTTP support
100 | 12=+ Automatic update is enabled
101 | 13=+ VLESS REALITY "flow" correction
102 | 14=+ Packages for Mageia-9 and Ubuntu
103 | 15=
104 | 16=v2.3.2
105 | 17=+ Temporary freeze, Pre-release
106 | 18=+ VLESS REALITY "flow" correction
107 | 19=
108 | 20=v2.3.1
109 | 21=+ [RU]
110 | 22=Начиная с Xray-core v24.12.18 и переходом на новый протокол XHTTP разработчики предлагают переписывать конфигурационные файлы клиентов и серверов. В целях сохранения совместимости уже существующих подключений разработка XRayGUI временно заморожена + автоматическое обновление Xray-core отключено.
111 | 23=+ [EN]
112 | 24=Starting with Xray-core v24.12.18 and the transition to the new XHTTP protocol, the developers suggest rewriting the configuration files of clients and servers. In order to maintain compatibility of existing connections, the development of XRayGUI is temporarily frozen + automatic updating of Xray-core is disabled.
113 | 25=
114 | 26=v2.3
115 | 27=+ Added VMESS+TLS+gRPC
116 | 28=+ Packages for Mageia-8/9 and Ubuntu
117 | 29=
118 | 30=v2.2
119 | 31=+ Fix vless-grpc configuration (serviceName)
120 | 32=+ Correction of [xtls-rprx-direct/xtls-rprx-vision](https://github.com/wulabing/Xray_onekey/issues/445)
121 | 33=+ Correction of deleting configurations in Connected mode
122 | 34=+ Correcting the pointer setting in the list of configurations at the first start
123 | 35=+ Packages for Mageia-8/9 and Ubuntu
124 | 36=
125 | 37=v2.1
126 | 38=+ /usr/bin/xray-update: switching to curl
127 | 39=+ Removing wget and fping from dependencies (spec)
128 | 40=+ Packages for Mageia-8/9 and Ubuntu
129 | 41=
130 | 42=v2.0
131 | 43=+ Improved /usr/bin/xray-update
132 | 44=+ Packages for Mageia-8/9 and Ubuntu
133 | 45=
134 | 46=v1.9
135 | 47=+ Recompilation in Lazarus-3.2
136 | 48=+ Added qrencode dependency
137 | 49=+ Display QR code for connections
138 | 50=+ Packages for Mageia-8/9 and Ubuntu
139 | 51=
140 | 52=Note: The QR code simplifies the procedure for connecting your smartphone by scanning it in the client application. Test for LG Q6 + NekoBox-1.3.1 passed.
141 | 53=
142 | 54=v1.8
143 | 55=+ Bypassing domain zones (cn, ru, by, ir, ...)
144 | 56=+ Improved /etc/systemd/user/xray.service
145 | 57=+ Packages for Mageia-9 and Ubuntu
146 | 58=
147 | 59=v1.7
148 | 60=+ Reality generator: SNI list expanded
149 | 61=+ Comsetic edits, code optimization
150 | 62=+ Packages for Mageia-9 and Ubuntu
151 | 63=
152 | 64=v1.6
153 | 65=+ REALITY support
154 | 66=+ Simple REALITY configurator (Client-Server)
155 | 67=+ Packages for Mageia-9 and Ubuntu
156 | 68=
157 | 69=v1.5
158 | 70=+ System-Wide Proxy (SWP)
159 | 71=+ Additional port 8889 (HTTP/HTTPS/FTP)
160 | 72=+ Correction of tags for reading connection logs
161 | 73=+ Dependencies: lib64proxy-gnome lib64proxy-kde
162 | 74=+ Packages for Mageia-9 and Ubuntu
163 | 75=
164 | 76=**Note:** System-Wide Proxy supported in Budgie, GNOME, Cinnamon, MATE, KDE-5. [Read more...](https://github.com/AKotov-dev/XRayGUI)
165 | 77=
166 | 78=v1.4
167 | 79=+ Support VLESS + KCP
168 | 80=+ Packages for Mageia-9 and Ubuntu
169 | 81=
170 | 82=v1.2
171 | 83=+ Default: "allowInsecure": true
172 | 84=+ Default connection: 127.0.0.1:1080
173 | 85=+ Improved Сonfiguration building
174 | 86=+ Improved startup/update services
175 | 87=+ Switching logging to the "warning" level
176 | 88=+ RPM packages for Mageia-8 and Mageia-9
177 | 89=
178 | 90=v1.1
179 | 91=+ Installing xray-core from the GitHub
180 | 92=+ xray-core installation/update directory ~/.config/xraygui/xray
181 | 93=+ RPM packages for Mageia-8 and Mageia-9
182 | 94=
183 | 95=v1.0
184 | 96=+ Update Xray-core v1.6.0
185 | 97=+ Auto-update Xray-Core at GUI startup
186 | 98=+ RPM packages for Mageia-8 and Mageia-9
187 | 99=
188 | 100=v0.9
189 | 101=+ Improved startup control (xray/port)
190 | 102=+ Prevention the launch of the second copy of the program
191 | 103=
192 | 104=v0.8-1
193 | 105=+ Update: Xray-core v1.5.9
194 | 106=
195 | 107=v0.8
196 | 108=+ Switching to systemd (autostart from the user)
197 | 109=+ Correction of the spec file (rpm/deb)
198 | 110=+ Autostart testing in Mageia/LUbuntu - passed
199 | 111=
200 | 112=v0.7
201 | 113=+ Vless+gRPC and Trojan+gRPC support
202 | 114=+ General test:
203 | 115=VMESS TLS - passed
204 | 116=VMESS non TLS - passed
205 | 117=
206 | 118=VLESS TLS - passed
207 | 119=VLESS non TLS - passed
208 | 120=VLESS + WS TLS - passed
209 | 121=VLESS + WS non TLS - passed
210 | 122=VLESS + gRPC - passed
211 | 123=
212 | 124=Trojan - passed
213 | 125=Trojan + WS - passed
214 | 126=Trojan + gRPC - passed
215 | 127=
216 | 128=v0.6
217 | 129=+ Trojan protocol support
218 | 130=+ Proxy launch control in a separate thread
219 | 131=+ Optimization of Vmess/Vless/SS/Trojan configurations
220 | 132=
221 | 133=v0.5
222 | 134=+ Supported protocols: VMESS/VLESS (ws, ws+tls) and SS (without obfs)
223 | 135=+ Changed the file type of uploading/saving the list of configurations to *.proxy
224 | 136=+ Excluded URL insertion from PopUp menu to save duplicate search
225 | 137=
226 | 138=v0.4
227 | 139=+ Optimization of log output
228 | 140=+ Optimization of general perception (visual load)
229 | 141=
230 | 142=v0.3
231 | 143=+ Autostart proxy after reboot
232 | 144=+ Disabling xray before updating/deleting rpm/deb (spec)
233 | 145=
234 | 146=v0.2
235 | 147=+ PopUp menu: Paste from clipboard
236 | 148=+ Cosmetic edits, hints, etc...
237 | 149=
238 | 150=v0.1 - initial release
239 |
--------------------------------------------------------------------------------
/xraygui/portscan_trd.pas:
--------------------------------------------------------------------------------
1 | unit portscan_trd;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, Forms, Controls, SysUtils, Process, Graphics;
9 |
10 | type
11 | PortScan = class(TThread)
12 | private
13 |
14 | { Private declarations }
15 | protected
16 | var
17 | ResultStr: TStringList;
18 |
19 | procedure Execute; override;
20 | procedure ShowStatus;
21 |
22 | end;
23 |
24 | implementation
25 |
26 | uses unit1;
27 |
28 | { TRD }
29 |
30 | procedure PortScan.Execute;
31 | var
32 | ScanProcess: TProcess;
33 | begin
34 | FreeOnTerminate := True; //Уничтожать по завершении
35 |
36 | while not Terminated do
37 | try
38 | ResultStr := TStringList.Create;
39 |
40 | ScanProcess := TProcess.Create(nil);
41 |
42 | ScanProcess.Executable := 'bash';
43 | ScanProcess.Parameters.Add('-c');
44 | ScanProcess.Options := [poUsePipes, poWaitOnExit];
45 |
46 | ScanProcess.Parameters.Add(
47 | 'if [[ $(ss -ltn | grep ' + MainForm.PortEdit.Text +
48 | ') && $(pidof xray) ]]; then echo "yes"; else echo "no"; fi');
49 |
50 | ScanProcess.Execute;
51 |
52 | ResultStr.LoadFromStream(ScanProcess.Output);
53 | Synchronize(@ShowStatus);
54 |
55 | Sleep(1000);
56 | finally
57 | ResultStr.Free;
58 | ScanProcess.Free;
59 | end;
60 | end;
61 |
62 | //Отображение статуса
63 | procedure PortScan.ShowStatus;
64 | begin
65 | with MainForm do
66 | begin
67 | if ResultStr[0] = 'yes' then
68 | begin
69 | Shape1.Brush.Color := clLime;
70 | PortEdit.Enabled := False;
71 | DomainBox.Enabled := False;
72 | LoadItem.Enabled := False;
73 | end
74 | else
75 | begin
76 | Shape1.Brush.Color := clYellow;
77 | if ConfigBox.Count <> 0 then
78 | begin
79 | PortEdit.Enabled := True;
80 | DomainBox.Enabled := True;
81 | end;
82 | LoadItem.Enabled := True;
83 | end;
84 |
85 | Shape1.Repaint;
86 | end;
87 | end;
88 |
89 | end.
90 |
--------------------------------------------------------------------------------
/xraygui/reality_gen.lfm:
--------------------------------------------------------------------------------
1 | object RealityForm: TRealityForm
2 | Left = 295
3 | Height = 533
4 | Top = 130
5 | Width = 611
6 | ActiveControl = Edit1
7 | Caption = 'REALITY configurations generator (Client-Server)'
8 | ClientHeight = 533
9 | ClientWidth = 611
10 | OnCreate = FormCreate
11 | Position = poMainFormCenter
12 | SessionProperties = 'ComboBox1.Text;ComboBox2.Text;ComboBox3.Text;Edit1.Text;Edit2.Text;Edit3.Text;Edit4.Text;Edit5.Text;Edit6.Text;Memo1.Lines;SaveDialog1.InitialDir'
13 | LCLVersion = '2.2.4.0'
14 | object Label1: TLabel
15 | AnchorSideLeft.Control = Owner
16 | AnchorSideTop.Side = asrCenter
17 | Left = 8
18 | Height = 17
19 | Top = 18
20 | Width = 66
21 | BorderSpacing.Left = 8
22 | Caption = 'Server:Port'
23 | ParentColor = False
24 | end
25 | object Edit1: TEdit
26 | AnchorSideLeft.Control = Label1
27 | AnchorSideLeft.Side = asrBottom
28 | AnchorSideTop.Control = Label1
29 | AnchorSideTop.Side = asrCenter
30 | Left = 79
31 | Height = 37
32 | Top = 8
33 | Width = 238
34 | BorderSpacing.Left = 5
35 | OnChange = Edit1Change
36 | TabOrder = 0
37 | end
38 | object Label2: TLabel
39 | AnchorSideLeft.Control = Edit1
40 | AnchorSideLeft.Side = asrBottom
41 | AnchorSideTop.Control = Label1
42 | AnchorSideTop.Side = asrCenter
43 | Left = 319
44 | Height = 17
45 | Top = 18
46 | Width = 3
47 | BorderSpacing.Left = 2
48 | Caption = ':'
49 | ParentColor = False
50 | end
51 | object Edit2: TEdit
52 | AnchorSideLeft.Control = Label2
53 | AnchorSideLeft.Side = asrBottom
54 | AnchorSideTop.Control = Label1
55 | AnchorSideTop.Side = asrCenter
56 | Left = 324
57 | Height = 37
58 | Hint = 'Strictly recommended 443'
59 | Top = 8
60 | Width = 82
61 | BorderSpacing.Left = 2
62 | OnChange = Edit1Change
63 | ParentShowHint = False
64 | ShowHint = True
65 | TabOrder = 1
66 | Text = '443'
67 | end
68 | object Label3: TLabel
69 | AnchorSideLeft.Control = Owner
70 | Left = 8
71 | Height = 17
72 | Top = 208
73 | Width = 31
74 | BorderSpacing.Left = 8
75 | Caption = 'UUID'
76 | ParentColor = False
77 | end
78 | object Edit3: TEdit
79 | AnchorSideLeft.Control = Edit5
80 | AnchorSideTop.Control = Label3
81 | AnchorSideTop.Side = asrCenter
82 | AnchorSideRight.Control = SpeedButton1
83 | Left = 81
84 | Height = 37
85 | Top = 198
86 | Width = 434
87 | Anchors = [akTop, akLeft, akRight]
88 | OnChange = Edit1Change
89 | TabOrder = 5
90 | end
91 | object Label4: TLabel
92 | AnchorSideLeft.Control = Owner
93 | Left = 8
94 | Height = 17
95 | Top = 64
96 | Width = 30
97 | BorderSpacing.Left = 8
98 | Caption = 'Flow'
99 | ParentColor = False
100 | end
101 | object ComboBox1: TComboBox
102 | AnchorSideLeft.Control = Label4
103 | AnchorSideLeft.Side = asrBottom
104 | AnchorSideTop.Control = Label4
105 | AnchorSideTop.Side = asrCenter
106 | AnchorSideRight.Control = Edit2
107 | AnchorSideRight.Side = asrBottom
108 | Left = 58
109 | Height = 37
110 | Top = 54
111 | Width = 348
112 | Anchors = [akTop, akLeft, akRight]
113 | BorderSpacing.Left = 20
114 | ItemHeight = 0
115 | ItemIndex = 0
116 | Items.Strings = (
117 | 'xtls-rprx-vision'
118 | 'xtls-rprx-vision-udp443'
119 | )
120 | OnChange = Edit1Change
121 | TabOrder = 2
122 | Text = 'xtls-rprx-vision'
123 | end
124 | object Label5: TLabel
125 | AnchorSideLeft.Control = Owner
126 | Left = 8
127 | Height = 17
128 | Top = 112
129 | Width = 21
130 | BorderSpacing.Left = 8
131 | Caption = 'SNI'
132 | ParentColor = False
133 | end
134 | object ComboBox2: TComboBox
135 | AnchorSideLeft.Control = ComboBox1
136 | AnchorSideTop.Control = Label5
137 | AnchorSideTop.Side = asrCenter
138 | AnchorSideRight.Control = Edit2
139 | AnchorSideRight.Side = asrBottom
140 | Left = 58
141 | Height = 37
142 | Top = 102
143 | Width = 348
144 | Anchors = [akTop, akLeft, akRight]
145 | ItemHeight = 0
146 | ItemIndex = 7
147 | Items.Strings = (
148 | 'www.asus.com'
149 | 'www.bing.com'
150 | 'www.cisco.com'
151 | 'www.linksys.com'
152 | 'www.microsoft.com'
153 | 'www.nvidia.com'
154 | 'www.samsung.com'
155 | 'www.yahoo.com'
156 | )
157 | OnChange = Edit1Change
158 | TabOrder = 3
159 | Text = 'www.yahoo.com'
160 | end
161 | object Label6: TLabel
162 | AnchorSideLeft.Control = Owner
163 | Left = 8
164 | Height = 17
165 | Top = 160
166 | Width = 37
167 | BorderSpacing.Left = 8
168 | Caption = 'FPrint'
169 | ParentColor = False
170 | end
171 | object ComboBox3: TComboBox
172 | AnchorSideLeft.Control = ComboBox1
173 | AnchorSideTop.Control = Label6
174 | AnchorSideTop.Side = asrCenter
175 | AnchorSideRight.Control = Edit2
176 | AnchorSideRight.Side = asrBottom
177 | Left = 58
178 | Height = 37
179 | Top = 150
180 | Width = 348
181 | Anchors = [akTop, akLeft, akRight]
182 | ItemHeight = 0
183 | Items.Strings = (
184 | 'android'
185 | 'chrome'
186 | 'edge'
187 | 'firefox'
188 | 'ios'
189 | 'safari'
190 | '360'
191 | )
192 | OnChange = Edit1Change
193 | TabOrder = 4
194 | Text = 'chrome'
195 | end
196 | object Label7: TLabel
197 | AnchorSideLeft.Control = Owner
198 | Left = 8
199 | Height = 17
200 | Top = 304
201 | Width = 60
202 | BorderSpacing.Left = 8
203 | Caption = 'Public Key'
204 | ParentColor = False
205 | end
206 | object Edit4: TEdit
207 | AnchorSideLeft.Control = Edit5
208 | AnchorSideTop.Control = Label7
209 | AnchorSideTop.Side = asrCenter
210 | AnchorSideRight.Control = SpeedButton2
211 | Left = 81
212 | Height = 37
213 | Top = 294
214 | Width = 434
215 | Anchors = [akTop, akLeft, akRight]
216 | OnChange = Edit1Change
217 | TabOrder = 7
218 | end
219 | object Label8: TLabel
220 | AnchorSideLeft.Control = Owner
221 | Left = 8
222 | Height = 17
223 | Top = 256
224 | Width = 65
225 | BorderSpacing.Left = 8
226 | Caption = 'Private Key'
227 | ParentColor = False
228 | end
229 | object Edit5: TEdit
230 | AnchorSideLeft.Control = Label8
231 | AnchorSideLeft.Side = asrBottom
232 | AnchorSideTop.Control = Label8
233 | AnchorSideTop.Side = asrCenter
234 | AnchorSideRight.Control = SpeedButton2
235 | Left = 81
236 | Height = 37
237 | Top = 246
238 | Width = 434
239 | Anchors = [akTop, akLeft, akRight]
240 | BorderSpacing.Left = 8
241 | OnChange = Edit1Change
242 | TabOrder = 6
243 | end
244 | object SpeedButton1: TSpeedButton
245 | AnchorSideLeft.Control = Edit3
246 | AnchorSideLeft.Side = asrBottom
247 | AnchorSideTop.Control = Edit3
248 | AnchorSideRight.Control = Owner
249 | AnchorSideRight.Side = asrBottom
250 | AnchorSideBottom.Control = Edit3
251 | AnchorSideBottom.Side = asrBottom
252 | Left = 515
253 | Height = 37
254 | Top = 198
255 | Width = 88
256 | Anchors = [akTop, akRight, akBottom]
257 | BorderSpacing.Right = 8
258 | Caption = 'NEW'
259 | OnClick = SpeedButton1Click
260 | end
261 | object SpeedButton2: TSpeedButton
262 | AnchorSideLeft.Control = Edit4
263 | AnchorSideLeft.Side = asrBottom
264 | AnchorSideTop.Control = Edit5
265 | AnchorSideRight.Control = Owner
266 | AnchorSideRight.Side = asrBottom
267 | AnchorSideBottom.Control = Edit4
268 | AnchorSideBottom.Side = asrBottom
269 | Left = 515
270 | Height = 85
271 | Top = 246
272 | Width = 88
273 | Anchors = [akTop, akRight, akBottom]
274 | BorderSpacing.Right = 8
275 | Caption = 'NEW'
276 | OnClick = SpeedButton2Click
277 | end
278 | object Label9: TLabel
279 | AnchorSideLeft.Control = Owner
280 | Left = 8
281 | Height = 17
282 | Top = 352
283 | Width = 20
284 | BorderSpacing.Left = 8
285 | Caption = 'SID'
286 | ParentColor = False
287 | end
288 | object Edit6: TEdit
289 | AnchorSideTop.Control = Label9
290 | AnchorSideTop.Side = asrCenter
291 | AnchorSideRight.Control = Edit2
292 | AnchorSideRight.Side = asrBottom
293 | Left = 40
294 | Height = 37
295 | Top = 342
296 | Width = 366
297 | Anchors = [akTop, akLeft, akRight]
298 | OnChange = Edit1Change
299 | TabOrder = 8
300 | end
301 | object SpeedButton3: TSpeedButton
302 | AnchorSideLeft.Control = Edit6
303 | AnchorSideLeft.Side = asrBottom
304 | AnchorSideTop.Control = Edit6
305 | AnchorSideBottom.Control = Edit6
306 | AnchorSideBottom.Side = asrBottom
307 | Left = 406
308 | Height = 37
309 | Top = 342
310 | Width = 88
311 | Anchors = [akTop, akLeft, akBottom]
312 | Caption = 'NEW'
313 | OnClick = SpeedButton3Click
314 | end
315 | object Memo1: TMemo
316 | AnchorSideLeft.Control = Owner
317 | AnchorSideRight.Control = Owner
318 | AnchorSideRight.Side = asrBottom
319 | AnchorSideBottom.Control = Owner
320 | AnchorSideBottom.Side = asrBottom
321 | Left = 8
322 | Height = 101
323 | Top = 424
324 | Width = 595
325 | Anchors = [akTop, akLeft, akRight, akBottom]
326 | BorderSpacing.Left = 8
327 | BorderSpacing.Right = 8
328 | BorderSpacing.Bottom = 8
329 | Font.Height = -12
330 | Font.Name = 'Monospace'
331 | ParentFont = False
332 | ReadOnly = True
333 | ScrollBars = ssVertical
334 | TabOrder = 9
335 | end
336 | object CopyBtn: TSpeedButton
337 | AnchorSideRight.Control = Memo1
338 | AnchorSideRight.Side = asrBottom
339 | AnchorSideBottom.Control = Memo1
340 | Left = 498
341 | Height = 35
342 | Top = 387
343 | Width = 105
344 | Anchors = [akRight, akBottom]
345 | BorderSpacing.Bottom = 2
346 | Caption = 'Copy'
347 | Enabled = False
348 | OnClick = CopyBtnClick
349 | end
350 | object Label10: TLabel
351 | AnchorSideLeft.Control = Memo1
352 | AnchorSideBottom.Control = CopyBtn
353 | AnchorSideBottom.Side = asrBottom
354 | Left = 8
355 | Height = 17
356 | Top = 405
357 | Width = 325
358 | Anchors = [akLeft, akBottom]
359 | Caption = 'Connection string to insert into XRayGUI via Clipboard'
360 | ParentColor = False
361 | end
362 | object SaveBtn: TSpeedButton
363 | AnchorSideRight.Control = Owner
364 | AnchorSideRight.Side = asrBottom
365 | Left = 434
366 | Height = 64
367 | Top = 8
368 | Width = 169
369 | Anchors = [akTop, akRight]
370 | BorderSpacing.Right = 8
371 | Caption = 'Save server.json'
372 | Enabled = False
373 | OnClick = SaveBtnClick
374 | end
375 | object IniPropStorage1: TIniPropStorage
376 | StoredValues = <>
377 | Left = 456
378 | Top = 104
379 | end
380 | object SaveDialog1: TSaveDialog
381 | DefaultExt = '.*.json'
382 | FileName = 'server.json'
383 | Filter = 'JSON files (*.json)|*.json'
384 | Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
385 | Left = 544
386 | Top = 104
387 | end
388 | end
389 |
--------------------------------------------------------------------------------
/xraygui/reality_gen.lrj:
--------------------------------------------------------------------------------
1 | {"version":1,"strings":[
2 | {"hash":84010505,"name":"trealityform.caption","sourcebytes":[82,69,65,76,73,84,89,32,99,111,110,102,105,103,117,114,97,116,105,111,110,115,32,103,101,110,101,114,97,116,111,114,32,40,67,108,105,101,110,116,45,83,101,114,118,101,114,41],"value":"REALITY configurations generator (Client-Server)"},
3 | {"hash":201768788,"name":"trealityform.label1.caption","sourcebytes":[83,101,114,118,101,114,58,80,111,114,116],"value":"Server:Port"},
4 | {"hash":58,"name":"trealityform.label2.caption","sourcebytes":[58],"value":":"},
5 | {"hash":6486579,"name":"trealityform.edit2.hint","sourcebytes":[83,116,114,105,99,116,108,121,32,114,101,99,111,109,109,101,110,100,101,100,32,52,52,51],"value":"Strictly recommended 443"},
6 | {"hash":14195,"name":"trealityform.edit2.text","sourcebytes":[52,52,51],"value":"443"},
7 | {"hash":371156,"name":"trealityform.label3.caption","sourcebytes":[85,85,73,68],"value":"UUID"},
8 | {"hash":316263,"name":"trealityform.label4.caption","sourcebytes":[70,108,111,119],"value":"Flow"},
9 | {"hash":43917054,"name":"trealityform.combobox1.text","sourcebytes":[120,116,108,115,45,114,112,114,120,45,118,105,115,105,111,110],"value":"xtls-rprx-vision"},
10 | {"hash":22569,"name":"trealityform.label5.caption","sourcebytes":[83,78,73],"value":"SNI"},
11 | {"hash":30152541,"name":"trealityform.combobox2.text","sourcebytes":[119,119,119,46,121,97,104,111,111,46,99,111,109],"value":"www.yahoo.com"},
12 | {"hash":79138900,"name":"trealityform.label6.caption","sourcebytes":[70,80,114,105,110,116],"value":"FPrint"},
13 | {"hash":111121973,"name":"trealityform.combobox3.text","sourcebytes":[99,104,114,111,109,101],"value":"chrome"},
14 | {"hash":49302105,"name":"trealityform.label7.caption","sourcebytes":[80,117,98,108,105,99,32,75,101,121],"value":"Public Key"},
15 | {"hash":150003977,"name":"trealityform.label8.caption","sourcebytes":[80,114,105,118,97,116,101,32,75,101,121],"value":"Private Key"},
16 | {"hash":21159,"name":"trealityform.speedbutton1.caption","sourcebytes":[78,69,87],"value":"NEW"},
17 | {"hash":21159,"name":"trealityform.speedbutton2.caption","sourcebytes":[78,69,87],"value":"NEW"},
18 | {"hash":22484,"name":"trealityform.label9.caption","sourcebytes":[83,73,68],"value":"SID"},
19 | {"hash":21159,"name":"trealityform.speedbutton3.caption","sourcebytes":[78,69,87],"value":"NEW"},
20 | {"hash":304761,"name":"trealityform.copybtn.caption","sourcebytes":[67,111,112,121],"value":"Copy"},
21 | {"hash":186454372,"name":"trealityform.label10.caption","sourcebytes":[67,111,110,110,101,99,116,105,111,110,32,115,116,114,105,110,103,32,116,111,32,105,110,115,101,114,116,32,105,110,116,111,32,88,82,97,121,71,85,73,32,118,105,97,32,67,108,105,112,98,111,97,114,100],"value":"Connection string to insert into XRayGUI via Clipboard"},
22 | {"hash":189352286,"name":"trealityform.savebtn.caption","sourcebytes":[83,97,118,101,32,115,101,114,118,101,114,46,106,115,111,110],"value":"Save server.json"}
23 | ]}
24 |
--------------------------------------------------------------------------------
/xraygui/reality_gen.pas:
--------------------------------------------------------------------------------
1 | unit reality_gen;
2 |
3 | {$mode ObjFPC}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Process,
9 | StdCtrls, Buttons, IniPropStorage, Clipbrd;
10 |
11 | type
12 |
13 | { TRealityForm }
14 |
15 | TRealityForm = class(TForm)
16 | ComboBox1: TComboBox;
17 | ComboBox2: TComboBox;
18 | ComboBox3: TComboBox;
19 | Edit1: TEdit;
20 | Edit2: TEdit;
21 | Edit3: TEdit;
22 | Edit4: TEdit;
23 | Edit5: TEdit;
24 | Edit6: TEdit;
25 | IniPropStorage1: TIniPropStorage;
26 | Label1: TLabel;
27 | Label10: TLabel;
28 | Label2: TLabel;
29 | Label3: TLabel;
30 | Label4: TLabel;
31 | Label5: TLabel;
32 | Label6: TLabel;
33 | Label7: TLabel;
34 | Label8: TLabel;
35 | Label9: TLabel;
36 | Memo1: TMemo;
37 | SaveDialog1: TSaveDialog;
38 | SpeedButton1: TSpeedButton;
39 | SpeedButton2: TSpeedButton;
40 | SpeedButton3: TSpeedButton;
41 | CopyBtn: TSpeedButton;
42 | SaveBtn: TSpeedButton;
43 | procedure Edit1Change(Sender: TObject);
44 | procedure FormCreate(Sender: TObject);
45 | procedure SpeedButton1Click(Sender: TObject);
46 | procedure SpeedButton2Click(Sender: TObject);
47 | procedure SpeedButton3Click(Sender: TObject);
48 | procedure CopyBtnClick(Sender: TObject);
49 | procedure SaveBtnClick(Sender: TObject);
50 | private
51 |
52 | public
53 |
54 | end;
55 |
56 | var
57 | RealityForm: TRealityForm;
58 |
59 | implementation
60 |
61 | uses unit1;
62 |
63 | {$R *.lfm}
64 |
65 | { TRealityForm }
66 |
67 | //Get UUID
68 | procedure TRealityForm.SpeedButton1Click(Sender: TObject);
69 | var
70 | S: ansistring;
71 | begin
72 | if RunCommand('bash', ['-c', '~/.config/xraygui/xray/xray uuid'], S) then
73 | Edit3.Text := Trim(S);
74 | end;
75 |
76 | //Get Pub/Priv Keys
77 | procedure TRealityForm.SpeedButton2Click(Sender: TObject);
78 | var
79 | S: ansistring;
80 | begin
81 | //Список ключей
82 | if RunCommand('/bin/bash', ['-c',
83 | '~/.config/xraygui/xray/xray x25519 | cut -f2 -d":"'], S) then
84 | begin
85 | //Private Key
86 | Edit5.Text := Trim(Copy(S, 0, Pos(#10, S) - 1));
87 | //Public Key
88 | Edit4.Text := Trim(Copy(S, Pos(#10, S), Length(S)));
89 | end;
90 | end;
91 |
92 | //Get Sid
93 | procedure TRealityForm.SpeedButton3Click(Sender: TObject);
94 | var
95 | S: ansistring;
96 | begin
97 | if RunCommand('/bin/bash', ['-c', 'openssl rand -hex 8'], S) then
98 | Edit6.Text := Trim(S);
99 | end;
100 |
101 | //Однострочная конфигурация клиента в Буфер
102 | procedure TRealityForm.CopyBtnClick(Sender: TObject);
103 | begin
104 | Clipboard.AsText := Memo1.Text;
105 | end;
106 |
107 | //Save server.json
108 | procedure TRealityForm.SaveBtnClick(Sender: TObject);
109 | var
110 | S: TStringList;
111 | begin
112 | try
113 | S := TStringList.Create;
114 | if SaveDialog1.Execute then
115 | begin
116 | S.Add('{');
117 | S.Add(' "log": {');
118 | S.Add(' "loglevel": "warning"');
119 | S.Add(' },');
120 | S.Add(' "routing": {');
121 | S.Add(' "rules": [],');
122 | S.Add(' "domainStrategy": "AsIs"');
123 | S.Add(' },');
124 | S.Add(' "inbounds": [');
125 | S.Add(' {');
126 | S.Add(' "port": ' + Edit2.Text + ',');
127 | S.Add(' "protocol": "vless",');
128 | S.Add(' "tag": "vless_tls",');
129 | S.Add(' "settings": {');
130 | S.Add(' "clients": [');
131 | S.Add(' {');
132 | S.Add(' "id": "' + Edit3.Text + '",');
133 | S.Add(' "email": "user1@myserver",');
134 | S.Add(' "flow": "' + ComboBox1.Text + '"');
135 | S.Add(' }');
136 | S.Add(' ],');
137 | S.Add(' "decryption": "none"');
138 | S.Add(' },');
139 | S.Add(' "streamSettings": {');
140 | S.Add(' "network": "tcp",');
141 | S.Add(' "security": "reality",');
142 | S.Add(' "realitySettings": {');
143 | S.Add(' "show": false,');
144 | S.Add(' "dest": "' + ComboBox2.Text + ':443",');
145 | S.Add(' "serverNames": [');
146 | S.Add(' "' + ComboBox2.Text + '"');
147 | S.Add(' ],');
148 | S.Add(' "privateKey": "' + Edit5.Text + '",');
149 | S.Add(' "shortIds": [');
150 | S.Add(' "' + Edit6.Text + '"');
151 | S.Add(' ]');
152 | S.Add(' }');
153 | S.Add(' },');
154 | S.Add(' "sniffing": {');
155 | S.Add(' "enabled": true,');
156 | S.Add(' "destOverride": [');
157 | S.Add(' "http",');
158 | S.Add(' "tls",');
159 | S.Add(' "quic"');
160 | S.Add(' ]');
161 | S.Add(' }');
162 | S.Add(' }');
163 | S.Add(' ],');
164 | S.Add(' "outbounds": [');
165 | S.Add(' {');
166 | S.Add(' "protocol": "freedom",');
167 | S.Add(' "tag": "direct"');
168 | S.Add(' },');
169 | S.Add(' {');
170 | S.Add(' "protocol": "blackhole",');
171 | S.Add(' "tag": "block"');
172 | S.Add(' }');
173 | S.Add(' ]');
174 | S.Add('}');
175 | S.Add('');
176 |
177 | S.SaveToFile(SaveDialog1.FileName);
178 | end;
179 |
180 | finally
181 | S.Free;
182 | end;
183 | end;
184 |
185 | procedure TRealityForm.FormCreate(Sender: TObject);
186 | begin
187 | IniPropStorage1.IniFileName := MainForm.IniPropStorage1.IniFileName;
188 | end;
189 |
190 | //Пересоздаём однострочную конфигурацию клиента
191 | procedure TRealityForm.Edit1Change(Sender: TObject);
192 | begin
193 | if Edit2.Text <> '443' then Edit2.Font.Color := clRed
194 | else
195 | Edit2.Font.Color := clDefault;
196 |
197 | if ComboBox1.Text <> 'xtls-rprx-vision' then ComboBox1.Font.Color := clRed
198 | else
199 | ComboBox1.Font.Color := clDefault;
200 |
201 | //Кнопки Save и Copy
202 | if (Edit1.Text = '') or (Edit2.Text = '') or (Edit3.Text = '') or
203 | (Edit4.Text = '') or (Edit5.Text = '') or (Edit6.Text = '') or
204 | (ComboBox1.Text = '') or (ComboBox2.Text = '') or (ComboBox3.Text = '') then
205 | begin
206 | SaveBtn.Enabled := False;
207 | CopyBtn.Enabled := False;
208 | end
209 | else
210 | begin
211 | SaveBtn.Enabled := True;
212 | CopyBtn.Enabled := True;
213 | end;
214 |
215 | Memo1.Text := 'vless://' + Edit3.Text + '@' + Edit1.Text + ':' +
216 | Edit2.Text + '?encryption=none&flow=' + ComboBox1.Text +
217 | '&security=reality&sni=' + ComboBox2.Text + '&fp=' + ComboBox3.Text +
218 | '&pbk=' + Edit4.Text + '&sid=' + Edit6.Text +
219 | '&type=tcp&headerType=none#VLESS%20West';
220 | end;
221 |
222 | end.
223 |
--------------------------------------------------------------------------------
/xraygui/start_trd.pas:
--------------------------------------------------------------------------------
1 | unit start_trd;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, Process;
9 |
10 | type
11 | ShowLogTRD = class(TThread)
12 | private
13 |
14 | { Private declarations }
15 | protected
16 | var
17 | Result: TStringList;
18 |
19 | procedure Execute; override;
20 |
21 | procedure ShowLog;
22 | procedure StartTrd;
23 |
24 | end;
25 |
26 | implementation
27 |
28 | uses Unit1;
29 |
30 | { TRD }
31 |
32 |
33 | procedure ShowLogTRD.Execute;
34 | var
35 | ExProcess: TProcess;
36 | begin
37 | try //Старт вывода
38 | Synchronize(@StartTRD);
39 |
40 | FreeOnTerminate := True; //Уничтожить по завершении
41 | Result := TStringList.Create;
42 |
43 | //Рабочий процесс
44 | ExProcess := TProcess.Create(nil);
45 |
46 | ExProcess.Executable := 'bash';
47 | ExProcess.Parameters.Add('-c');
48 |
49 | //Если файл лога отсутствует - создаём пустой и читаем до Terminate
50 | ExProcess.Parameters.Add('[[ -f ~/.config/xraygui/xraygui.log ]] || touch ' +
51 | '~/.config/xraygui/xraygui.log && tail -n 100 -f ~/.config/xraygui/xraygui.log 2> >(grep -v truncated >&2)');
52 |
53 | ExProcess.Options := [poUsePipes, poStderrToOutPut];
54 | //, poWaitOnExit (синхронный вывод)
55 |
56 | ExProcess.Execute;
57 |
58 | //Выводим лог динамически
59 | while ExProcess.Running do
60 | begin
61 | Result.LoadFromStream(ExProcess.Output);
62 |
63 | //Выводим лог
64 | if Result.Count <> 0 then
65 | Synchronize(@ShowLog);
66 | end;
67 |
68 | finally
69 | Result.Free;
70 | ExProcess.Free;
71 | Terminate;
72 | end;
73 | end;
74 |
75 | { БЛОК ОТОБРАЖЕНИЯ ЛОГА }
76 |
77 | //Старт вывода
78 | procedure ShowLogTRD.StartTRD;
79 | begin
80 | //Промотать список вниз (до вывода tail)
81 | MainForm.LogMemo.SelStart := Length(MainForm.LogMemo.Text);
82 | MainForm.LogMemo.SelLength := 0;
83 | end;
84 |
85 | //Вывод лога
86 | procedure ShowLogTRD.ShowLog;
87 | var
88 | i: integer;
89 | begin
90 | //Вывод построчно
91 | for i := 0 to Result.Count - 1 do
92 | MainForm.LogMemo.Lines.Append(' ' + Result[i]);
93 |
94 | //Выводим последние записи минус "n"
95 | if MainForm.LogMemo.Lines.Count > 500 then
96 | for i := 0 to 500 do
97 | MainForm.LogMemo.Lines.Delete(i);
98 |
99 | //Промотать список вниз
100 | MainForm.LogMemo.SelStart := Length(MainForm.LogMemo.Text);
101 | MainForm.LogMemo.SelLength := 0;
102 | end;
103 |
104 | end.
105 |
--------------------------------------------------------------------------------
/xraygui/unit1.lfm:
--------------------------------------------------------------------------------
1 | object MainForm: TMainForm
2 | Left = 299
3 | Height = 722
4 | Top = 110
5 | Width = 1003
6 | ActiveControl = Panel1
7 | Caption = 'XRayGUI'
8 | ClientHeight = 722
9 | ClientWidth = 1003
10 | OnClose = FormClose
11 | OnCreate = FormCreate
12 | OnShow = FormShow
13 | SessionProperties = 'ConfigBox.ItemIndex;GroupBox1.Width;Height;Left;OpenDialog1.InitialDir;Panel1.Height;PortEdit.Value;SaveDialog1.InitialDir;Top;Width;DomainBox.Text'
14 | LCLVersion = '3.6.0.0'
15 | object GroupBox1: TGroupBox
16 | Left = 0
17 | Height = 702
18 | Top = 0
19 | Width = 272
20 | Align = alLeft
21 | Caption = 'Configurations [vmess/vless/ss/trojan]'
22 | ClientHeight = 684
23 | ClientWidth = 270
24 | TabOrder = 0
25 | object Panel1: TPanel
26 | Left = 0
27 | Height = 54
28 | Top = 0
29 | Width = 270
30 | Align = alTop
31 | BevelOuter = bvNone
32 | ClientHeight = 54
33 | ClientWidth = 270
34 | TabOrder = 0
35 | OnResize = Panel1Resize
36 | object DeleteBtn: TSpeedButton
37 | AnchorSideRight.Side = asrBottom
38 | Left = 6
39 | Height = 36
40 | Top = 8
41 | Width = 85
42 | Caption = 'Delete'
43 | OnClick = DeleteBtnClick
44 | ShowHint = True
45 | ParentShowHint = False
46 | end
47 | object SelAllBtn: TSpeedButton
48 | AnchorSideLeft.Control = DeleteBtn
49 | AnchorSideLeft.Side = asrBottom
50 | Left = 92
51 | Height = 36
52 | Hint = 'Select all'
53 | Top = 8
54 | Width = 36
55 | BorderSpacing.Left = 1
56 | Caption = '*'
57 | OnClick = SelAllBtnClick
58 | ShowHint = True
59 | ParentShowHint = False
60 | end
61 | object PasteBtn: TSpeedButton
62 | AnchorSideRight.Side = asrBottom
63 | Left = 178
64 | Height = 36
65 | Hint = 'Paste from clipboard'
66 | Top = 8
67 | Width = 85
68 | Anchors = [akTop, akRight]
69 | BorderSpacing.Right = 5
70 | Caption = 'Paste'
71 | OnClick = PasteBtnClick
72 | ShowHint = True
73 | ParentShowHint = False
74 | end
75 | end
76 | object Splitter2: TSplitter
77 | Cursor = crVSplit
78 | Left = 0
79 | Height = 6
80 | Top = 54
81 | Width = 270
82 | Align = alTop
83 | ResizeAnchor = akTop
84 | end
85 | object ConfigBox: TCheckListBox
86 | AnchorSideBottom.Control = Image1
87 | Left = 0
88 | Height = 474
89 | Top = 60
90 | Width = 270
91 | Align = alTop
92 | Anchors = [akTop, akLeft, akRight, akBottom]
93 | Font.Height = -13
94 | Font.Name = 'Monospace'
95 | ItemHeight = 0
96 | MultiSelect = True
97 | ParentFont = False
98 | PopupMenu = PopupMenu1
99 | TabOrder = 2
100 | TopIndex = -1
101 | OnClick = ConfigBoxClick
102 | OnClickCheck = ConfigBoxClickCheck
103 | OnDblClick = StartBtnClick
104 | end
105 | object Image1: TImage
106 | AnchorSideLeft.Control = GroupBox1
107 | AnchorSideLeft.Side = asrCenter
108 | AnchorSideBottom.Control = GroupBox1
109 | AnchorSideBottom.Side = asrBottom
110 | Left = 60
111 | Height = 150
112 | Top = 534
113 | Width = 150
114 | Anchors = [akLeft, akBottom]
115 | Stretch = True
116 | end
117 | end
118 | object Splitter1: TSplitter
119 | Left = 272
120 | Height = 702
121 | Top = 0
122 | Width = 4
123 | end
124 | object GroupBox2: TGroupBox
125 | Left = 276
126 | Height = 702
127 | Top = 0
128 | Width = 727
129 | Align = alClient
130 | Caption = 'Management/Logging'
131 | ClientHeight = 684
132 | ClientWidth = 725
133 | TabOrder = 2
134 | object Panel2: TPanel
135 | Left = 0
136 | Height = 54
137 | Top = 0
138 | Width = 725
139 | Align = alTop
140 | BevelOuter = bvNone
141 | ClientHeight = 54
142 | ClientWidth = 725
143 | TabOrder = 0
144 | OnResize = Panel2Resize
145 | object Shape1: TShape
146 | AnchorSideLeft.Side = asrBottom
147 | AnchorSideTop.Control = StopBtn
148 | AnchorSideTop.Side = asrCenter
149 | Left = 8
150 | Height = 12
151 | Top = 20
152 | Width = 12
153 | BorderSpacing.Left = 10
154 | Brush.Color = clYellow
155 | Shape = stCircle
156 | end
157 | object PortEdit: TSpinEdit
158 | AnchorSideLeft.Side = asrBottom
159 | AnchorSideTop.Control = StopBtn
160 | AnchorSideTop.Side = asrCenter
161 | AnchorSideRight.Control = DomainBox
162 | AnchorSideBottom.Side = asrBottom
163 | Left = 105
164 | Height = 37
165 | Hint = '127.0.0.1:Port (SOCKS)'#10'127.0.0.1:8889 (HTTP)'
166 | Top = 8
167 | Width = 91
168 | Anchors = [akTop, akRight]
169 | BorderSpacing.Right = 5
170 | MinValue = 1000
171 | ParentShowHint = False
172 | ShowHint = True
173 | TabOrder = 0
174 | Value = 1080
175 | end
176 | object StopBtn: TSpeedButton
177 | AnchorSideRight.Control = StartBtn
178 | Left = 547
179 | Height = 36
180 | Top = 8
181 | Width = 85
182 | Anchors = [akTop, akRight]
183 | BorderSpacing.Right = 1
184 | Caption = 'Stop'
185 | OnClick = StopBtnClick
186 | end
187 | object StartBtn: TSpeedButton
188 | AnchorSideRight.Side = asrBottom
189 | Left = 633
190 | Height = 36
191 | Top = 8
192 | Width = 85
193 | Anchors = [akTop, akRight]
194 | BorderSpacing.Right = 5
195 | Caption = 'Start'
196 | OnClick = StartBtnClick
197 | end
198 | object ClearBox: TCheckBox
199 | AnchorSideLeft.Control = Shape1
200 | AnchorSideTop.Control = StopBtn
201 | AnchorSideTop.Side = asrCenter
202 | AnchorSideRight.Control = RealityBtn
203 | Left = 416
204 | Height = 32
205 | Hint = 'Clearing Cookies after starting the GUI (Mageia only)'
206 | Top = 10
207 | Width = 66
208 | Anchors = [akTop, akRight]
209 | BorderSpacing.Right = 5
210 | Caption = 'Clear'
211 | ParentShowHint = False
212 | ShowHint = True
213 | TabOrder = 4
214 | OnChange = ClearBoxChange
215 | end
216 | object Label1: TLabel
217 | AnchorSideTop.Control = StopBtn
218 | AnchorSideTop.Side = asrCenter
219 | AnchorSideRight.Control = PortEdit
220 | Left = 73
221 | Height = 17
222 | Top = 18
223 | Width = 29
224 | Anchors = [akTop, akRight]
225 | BorderSpacing.Right = 3
226 | Caption = 'Port:'
227 | ParentColor = False
228 | end
229 | object AutoStartBox: TCheckBox
230 | AnchorSideTop.Control = StopBtn
231 | AnchorSideTop.Side = asrCenter
232 | AnchorSideRight.Control = ClearBox
233 | Left = 349
234 | Height = 32
235 | Hint = 'AutoStart proxy after reboot'
236 | Top = 10
237 | Width = 62
238 | Anchors = [akTop, akRight]
239 | BorderSpacing.Right = 5
240 | Caption = 'Auto'
241 | ParentShowHint = False
242 | ShowHint = True
243 | TabOrder = 3
244 | OnChange = AutoStartBoxChange
245 | end
246 | object SWPBox: TCheckBox
247 | AnchorSideTop.Control = StopBtn
248 | AnchorSideTop.Side = asrCenter
249 | AnchorSideRight.Control = AutoStartBox
250 | Left = 282
251 | Height = 32
252 | Hint = 'System-Wide Proxy:'#10'Budgie, GNOME, Cinnamon, KDE, MATE'
253 | Top = 10
254 | Width = 62
255 | Anchors = [akTop, akRight]
256 | BorderSpacing.Right = 5
257 | Caption = 'SWP'
258 | ParentShowHint = False
259 | ShowHint = True
260 | TabOrder = 2
261 | OnChange = SWPBoxChange
262 | end
263 | object RealityBtn: TSpeedButton
264 | AnchorSideTop.Control = StopBtn
265 | AnchorSideRight.Control = StopBtn
266 | AnchorSideBottom.Control = StopBtn
267 | AnchorSideBottom.Side = asrBottom
268 | Left = 487
269 | Height = 36
270 | Hint = 'REALITY configurations generator (Client-Server)'
271 | Top = 8
272 | Width = 50
273 | Anchors = [akTop, akRight, akBottom]
274 | BorderSpacing.Right = 10
275 | Glyph.Data = {
276 | 360C0000424D360C000000000000360000002800000020000000180000000100
277 | 200000000000000C000064000000640000000000000000000000000000000000
278 | 0000000000000000000000000000000000000000000000000000000000000000
279 | 000000000000B7651F00B7651F0BB7651FC3B6641EFFB6641EFFB5631DFFB463
280 | 1DFFB4631D9FA8531400B3621D00B0611C00B0601A00B0601A32AF601AE5AF5F
281 | 19FFAE5F19FFAD5E18FFAD5E18FFAC5D17D8AB5D1725AB5D1700000000000000
282 | 0000000000000000000000000000000000000000000000000000000000000000
283 | 000000000000B8651F00B8651F0AB8651FC2B7651FFFB6641EFFB6641EFFB563
284 | 1DFFB4631D9FA4510300B4621C00B1611B00B2621C04B1611B98B0601AFFAF60
285 | 1AFFAF5F19FFAE5F19FFAD5E18FBAD5E186CAE5F1900AC5D1700000000000000
286 | 00000000000000000000000000000000000000000000A6A09E00A9A3A400A8A2
287 | A107A7A2A123A6A1A148A79B9472B66E31E0B8651EFFB7651FFFB6641EFFB663
288 | 1DFFB0713BD0A19B9B6EA09A9A499EA0A720B0682941B2611BEBB1611BFFB060
289 | 1AFFAF601AFFAF5F19FFAE5F19BCAD5E1812AE5E180000000000000000000000
290 | 0000000000000000000000000000ABA5A500ABA5A502AAA5A425A9A4A36DA8A3
291 | A2B4A8A2A2E2A7A2A1F8A79E9BFFB5743EFFB9651EFFB8651FFFB7651FFFB763
292 | 1CFFAE794DFFA29C9BFFA19B9BFAA19997E1AE713DDEB2611AFFB2611BFFB161
293 | 1BFFB0601AFFAF601AF1AF5F194AAF5F1900AE5F190000000000000000000000
294 | 000000000000ADA8A600AEAAA800ACA7A628ACA6A58CABA5A5E0AAA5A4FEA9A4
295 | A3FFA9A3A2FFA8A3A2FFA89F9CFFB5753FFFB9651EFFB86620FFB8651FFFB764
296 | 1DFFB07849F0A29D9DD9A19D9EE0A78B77F6B26624FFB3621CFFB2621CFFB261
297 | 1BFFB1601AFFB15F1899B15A0E05B15C11000000000000000000000000000000
298 | 0000AFAAA900AFAAA909AEA9A867ADA8A7DCACA7A6FFACA6A6FFABA6A5FFAAA5
299 | A4FFAAA4A4FFA9A4A3F6A9A09CD0B77138ECBA6620FFB96620FFB86620FFB865
300 | 1FFFB66825ACA98C7624AD7E5849B3692ADAB4631DFFB4631DFFB3621CFFB261
301 | 1BFFAF692DFEA5866E8298ACC6079E9B9D00000000000000000000000000B0AB
302 | AA00B0ABAA11AFABA993AFAAA9F8AEA9A8FFADA8A7FFADA8A7FFACA7A6FFABA6
303 | A5F6AAA5A4B1A9A5A54EB08E741DBB6822C3BB6721FFBA6721FFB96620FFB866
304 | 20FFB8651FE9B7651EC3B7641DDAB6641DFEB5631DFFB4631DFFB4631DF5B361
305 | 1BB7A88162969F9999E29F9999959F9898119F98980000000000B2ADAC00B2AD
306 | AC0CB1ACAB99B0ACAAFDB0ABAAFFAFAAA9FFAEA9A8FFAEA9A8FFADA8A7DDACA7
307 | A65FABA6A50AB4845D00BC68220BBC6822C2BB6822FFBB6721FFBA6721FFB966
308 | 20FFB86620FFB8651FFFB7651FFFB6641EFFB6641EFFB5641EFFB4631DEBB463
309 | 1D96B3652239A09896469F999AD49F99999C9F99990C9F999900C6C4C300B3AE
310 | AD74B2ADACFBB1ADABFFB1ACABFFB0ABAAFFAFAAA9FFAFAAA9D6AEA9A83BB0AB
311 | AA00AEA8A700BD692300BD69230BBD6923C3BC6822FFBB6822FFBB6721FFBA67
312 | 21FFB96620FFB96620FFB8651FFFB7651FFFB6641EFFB6641EFFB5631DFFB463
313 | 1DFFB4631CECB4601875A2948E45A09A9AE0A0999975A1989400B4B0AE33B4AF
314 | AEE0B3AEADFFB2AEACFFB2ADACFFB1ACABFFB0ABAAEFB0ABAA4DB0ACAA00AFAA
315 | A90000000000BD692300BD69230BBD6923C3BD6923FFBC6822FFBB6822FFBB67
316 | 21FFBA6721FCB96620F6B86620F6B8651FF6B7651FFBB6641EFFB6641EFFB563
317 | 1DFFB4631DFFB4631CF7B4611A60A09B9C81A09A9AE1A09A9A33B5B1AF93B5B0
318 | AFFFB4AFAEFFB3AFADFFB3AEADFFB2ADACFFB1ADABA6B0ABAA05B1ACAB000000
319 | 000000000000BE6A2400BE6A240BBE6A24C3BD6923FFBD6923FFBC6822FFBB68
320 | 22FFBB6721BEBA672141B966203FB866203FB7651F5FB7651FDBB6641EFFB664
321 | 1EFFB5641EFFB4631DFFB4621BC0A58F8043A19B9BEDA19B9A94B6B2B0DAB6B1
322 | B0FFB5B1AFFFB4B0AEFFB4AFAEFFB3AEADFFB2AEAD66B3AEAD00B2ADAB000000
323 | 000000000000BF6A2400BF6A240BBF6A24C3BE6A24FFBD6923FFBD6923FFBC68
324 | 22FFBB6822A9BA682202BB682200B7651F00B8651F00B8651F88B7651FFFB664
325 | 1EFFB6641EFFB5641EFFB4631CE7AE784B40A29D9DD6A29C9BDDB7B3B1F9B7B2
326 | B1FFB6B2B0FFB5B1AFFFB5B0AFFFB4AFAEFDB4AFAE56B4AFAE00000000000000
327 | 000000000000C06B2500C06B250BBF6B25C3BF6A24FFBE6A24FFBD6923FFBD69
328 | 23FFBC6822AABB672105BA672103BA672103BA67210DB86620A6B8651FFFB765
329 | 1FFFB6641EFFB6641EFFB5631DEEB0733F43A39E9FCDA39D9CFCB8B4B2FCB8B3
330 | B2FFB7B3B1FFB6B2B0FFB6B1B0FFB5B0AFFFB4B0AF76B4B0AF00B5B0AF000000
331 | 000000000000C16B2500C16B250BC06B25C3BF6B25FFBF6A24FFBE6A24FFBD69
332 | 23FFBD6923E3BC6822ADBB6822ADBB6721ADBA6721C2B96620F7B96620FFB865
333 | 1FFFB7651FFFB6641EFFB6641DDFAD7F5A3FA49F9FDCA49E9DFEB9B5B3E6B9B5
334 | B3FFB8B4B2FFB7B3B1FFB7B2B1FFB6B2B0FFB5B1B0C2B5B1B012B5B1B0000000
335 | 000000000000C16C2600C16C260BC16B25C3C06B25FFBF6B25FFBF6A24FFBE6A
336 | 24FFBD6923FFBD6923FFBC6822FFBB6822FFBB6721FFBA6721FFB96620FFB966
337 | 20FFB8651FFFB7651FFFB7631CA3A79B964EA5A09FF7A59F9EE7BAB6B4ABBAB6
338 | B4FFB9B5B3FFB8B4B2FFB8B3B2FFB7B3B1FFB6B2B0FBB6B2B07BB6B2AF03B6B2
339 | B00000000000C26C2600C26C260BC16C26C3C16C26FFC06B25FFBF6B25FFBF6A
340 | 24FFBE6A24FFBD6923FFBD6923FFBC6822FFBB6822FFBB6721FFBA6721FFB966
341 | 20FFB96620FFB8651FD4B56C2F3AA7A2A3A3A6A1A0FFA6A09FABBBB7B54DBAB7
342 | B5EFBAB6B4FFB9B5B4FFB8B4B3FFB8B4B2FFB7B3B1FFB7B2B1F2B6B2B073B6B2
343 | B009B6B2B000C36D2700C36D270AC26C26BEC26C26FCC16C26F9C06B25F9BF6B
344 | 25F9BF6A24F9BE6A24F9BD6923F9BD6923F9BC6822F9BB6822F9BB6721F6BA67
345 | 21E1B9661F9DB868242FA8A4A56DA8A2A2F7A7A2A1EFA7A1A04DBBB7B607BBB7
346 | B699BBB7B5FFBAB6B5FFB9B6B4FFB9B5B3FFB8B4B2FFB7B3B2FFB7B3B1F7B6B2
347 | B1A2B6B2B02FB4B7BA02C5651803C36C2536C26C2648C16C2647C16B2547C06B
348 | 2547BF6A2447BE6A2447BE692347BD692347BC682247BC672147BC651C3DBC5F
349 | 111EAD9E941AAAA6A780A9A4A3F2A9A3A3FFA8A3A299A7A1A107BCB8B600BCB8
350 | B61FBCB8B6C2BBB7B6FFBAB7B5FFBAB6B4FFB9B5B3FFB8B4B3FFB8B4B2FFB7B3
351 | B1FFB7B2B1E5B6B2B096B6B1B045B3BCC3129DFFFF01A8E3F800000000000000
352 | 00000000000000000000000000007DFFFF00B89AAD00A7C6DB06ACAFB526ACA9
353 | A96CACA7A6CAABA6A5FCAAA5A4FFAAA4A4C2A9A4A31FA9A4A300BDB8B700BCB8
354 | B700BCB8B72BBCB8B6C2BBB8B6FFBBB7B5FFBAB6B4FFB9B5B4FFB9B5B3FFB8B4
355 | B2FFB7B3B2FFB7B3B1FFB6B2B0F5B6B1B0D2B5B1AFA6B4B0AF7EB4AFAE62B3AF
356 | AD52B3AEAD4EB2ADAC52B1ACAB5EB0ACAB73B0ABAA94AFAAA9BEAEA9A8E7ADA8
357 | A7FDADA8A7FFACA7A6FFABA6A5C2ABA5A52BABA6A500ABA5A50000000000BCBA
358 | B900BCB8B700BCB9B71EBCB8B79DBCB8B6F6BBB7B6FFBAB7B5FFBAB6B4FFB9B5
359 | B3FFB8B4B3FFB8B4B2FFB7B3B1FFB6B2B1FFB6B1B0FFB5B1AFFFB4B0AFFEB4AF
360 | AEFCB3AFADFBB2AEADFCB2ADACFEB1ACABFFB0ACAAFFB0ABAAFFAFAAA9FFAEAA
361 | A8FFAEA9A8F6ADA8A79EACA7A61FACA7A600ACA7A60000000000000000000000
362 | 000000000000BCB9B700BDB9B709BCB9B756BCB8B6C3BBB8B6F9BBB7B5FFBAB6
363 | B4FFB9B5B4FFB9B5B3FFB8B4B2FFB7B3B2FFB7B3B1FFB6B2B0FFB5B1B0FFB5B0
364 | AFFFB4B0AEFFB3AFAEFFB3AEADFFB2ADACFFB1ADACFFB1ACABFFB0ABAAF9AFAA
365 | A9C4AFAAA957AEA9A809AEA9A800AEBCB2000000000000000000000000000000
366 | 00000000000000000000BCBAB800BCB7B600BCB9B711BCB8B655BCB8B6A8BBB7
367 | B5E0BAB7B5F9BAB6B4FFB9B5B3FFB8B4B3FFB8B4B2FFB7B3B1FFB6B2B1FFB6B1
368 | B0FFB5B1AFFFB4B0AFFFB4AFAEFFB3AFADFAB2AEACE1B2ADACA8B1ACAB56B0AB
369 | AA12B1ACAB00AFABA90000000000000000000000000000000000000000000000
370 | 000000000000000000000000000000000000C0B8B600BCB8B600BCB8B606BBB8
371 | B629BBB7B560BAB7B597BAB6B4C2B9B5B4DFB9B5B3F0B8B4B2F7B7B3B2F7B7B2
372 | B1F0B6B2B0DFB5B1AFC3B4B0AF97B4AFAE60B3AEAD29B2AEAD06B2AEAC00B8B2
373 | B300000000000000000000000000000000000000000000000000
374 | }
375 | OnClick = RealityBtnClick
376 | ShowHint = True
377 | ParentShowHint = False
378 | end
379 | object DomainBox: TComboBox
380 | AnchorSideTop.Control = StopBtn
381 | AnchorSideTop.Side = asrCenter
382 | AnchorSideRight.Control = SWPBox
383 | AnchorSideBottom.Side = asrBottom
384 | Left = 201
385 | Height = 37
386 | Hint = 'Bypassing domain zones'
387 | Top = 8
388 | Width = 76
389 | Anchors = [akTop, akRight]
390 | BorderSpacing.Right = 5
391 | Font.Height = -13
392 | Font.Name = 'Sans'
393 | Font.Style = [fsBold]
394 | ItemHeight = 0
395 | Items.Strings = (
396 | 'by'
397 | 'cn'
398 | 'er'
399 | 'ir'
400 | 'pk'
401 | 'ru'
402 | 'sa'
403 | 'so'
404 | 'tm'
405 | 'tr'
406 | 'ua'
407 | 'uz'
408 | )
409 | ParentFont = False
410 | ParentShowHint = False
411 | ShowHint = True
412 | TabOrder = 1
413 | Text = 'cn'
414 | end
415 | end
416 | object Splitter3: TSplitter
417 | Cursor = crVSplit
418 | Left = 0
419 | Height = 6
420 | Top = 54
421 | Width = 725
422 | Align = alTop
423 | ResizeAnchor = akTop
424 | end
425 | object LogMemo: TMemo
426 | Left = 0
427 | Height = 624
428 | Top = 60
429 | Width = 725
430 | Align = alClient
431 | Font.Height = -12
432 | Font.Name = 'Monospace'
433 | ParentFont = False
434 | ReadOnly = True
435 | ScrollBars = ssVertical
436 | TabOrder = 2
437 | WantReturns = False
438 | end
439 | end
440 | object StaticText1: TStaticText
441 | Left = 0
442 | Height = 20
443 | Top = 702
444 | Width = 1003
445 | Align = alBottom
446 | Caption = 'License: GPLv3 Author: alex_q_2000 (C) 2023 URL: https://github.com/AKotov-dev'
447 | Font.Color = clGray
448 | Font.Height = -11
449 | Font.Name = 'Sans'
450 | ParentFont = False
451 | TabOrder = 3
452 | end
453 | object IniPropStorage1: TIniPropStorage
454 | StoredValues = <
455 | item
456 | Name = 'findex'
457 | Value = '100'
458 | end>
459 | OnRestoreProperties = IniPropStorage1RestoreProperties
460 | Left = 320
461 | Top = 104
462 | end
463 | object PopupMenu1: TPopupMenu
464 | Images = ImageList1
465 | OnPopup = PopupMenu1Popup
466 | Left = 121
467 | Top = 104
468 | object CopyItem: TMenuItem
469 | Caption = 'Copy'
470 | ImageIndex = 0
471 | OnClick = CopyItemClick
472 | end
473 | object Separator1: TMenuItem
474 | Caption = '-'
475 | end
476 | object SaveItem: TMenuItem
477 | Caption = 'Save to file'
478 | ImageIndex = 2
479 | OnClick = SaveItemClick
480 | end
481 | object LoadItem: TMenuItem
482 | Caption = 'Load from file'
483 | ImageIndex = 1
484 | OnClick = LoadItemClick
485 | end
486 | end
487 | object OpenDialog1: TOpenDialog
488 | DefaultExt = '.*.proxy'
489 | Filter = 'XRayGUI files (*.proxy)|*.proxy'
490 | Options = [ofNoNetworkButton, ofEnableSizing]
491 | Left = 64
492 | Top = 176
493 | end
494 | object SaveDialog1: TSaveDialog
495 | DefaultExt = '.*.proxy'
496 | Filter = 'XRayGUI file (*.proxy)|*.proxy'
497 | Options = [ofOverwritePrompt, ofEnableSizing]
498 | Left = 168
499 | Top = 176
500 | end
501 | object ImageList1: TImageList
502 | Left = 208
503 | Top = 104
504 | Bitmap = {
505 | 4C7A030000001000000010000000130400000000000078DAEDD35D4C93571807
506 | F03772B5C2EDB6645920CB2E77B5AB99E904C1AA14615268295018938F02A515
507 | 65F413280205DAD2A201943A758EB81951B74874C28C37F225149A6D0AE342F0
508 | 6250966CC1AC74A55936FF7BCE5B31B016292C4BB6646FF24F9B3CE7779E73DE
509 | 735E8E0B7DBA12B8984E6194A8431825091756B3EDE7A2B98DECBE1D331DFB76
510 | 60934C879B83EFCBEAFBB937B80D1E56E3C7244625FFB576531B6F603578867B
511 | D76571F032168655406F143F07F3B417F61F5D2FC7A0334E848E58C9FCC977BA
512 | 5D86B77EC6BDDA91E7196B1DC70F777DF00C81CDB1D6076DEC0C59BC305D6FCE
513 | F273D03AD6F9605F1A13B7E17E598D1F73DFE2627B59E769CDACC66DF2F09EED
514 | E55FE0D79EDF563C3B9735F767CA99CA09B6E2D9D9DED4EC31B2BEAB776F4BEB
515 | A7B161CE2639E2F3A3B12135DBABD1549BDEF4FE74C44EC1F99A20ECFCFC1C71
516 | ABEF324CA84663B87FE011D8164C94A5F5F1DC8AB1FDF84A84FE0E05A1F17804
517 | 6D0BE705D679E74689B6CF2731FF7AE722CCC35ED8C796230A1BCB0CD981971C
518 | 8B7725FD5EB87FC196C20CB3821BBFB9A30780EDE499BDB35DFFCCFEEFFFC35E
519 | 300013FD2E6D27CCFEDDEFB7A8405ADF502D0F588D721C5715C3DA6C82C55C87
520 | D6A65AB434D6C07CC280A67A3D1A4D3A545614E2884CF87B7AEA5E35008EA551
521 | 230FF8278EE2A7A10A384F9F84CFE75B178F67013D179CE8FBF22A6E7FD5877E
522 | 67061C5AD1D3C329F12AE6DBEBF31170931F54A2FB747B881F1D1DC439B31806
523 | B514B76FF5E1EBB362F847E468D31C7C7AE8C0AE0A87298FBC9A7C39BABBC2F8
524 | 91415C3F2581E918F337781F18CD857F3807EA82F83F1C75E42755E4CB70A6D3
525 | 1EE2DD13E3D0948A50A5CC0D7A673AEF5746B2612C4B84BD4ECE7BBF4B0963D5
526 | 8798A4F133D3539487F87E8AE50126C646E09E1C8741A3C2F41752F239E46541
527 | 5F9B4BBE02810925E6FA8BD07B2A1B97EC325C6A93A2C79A891E4B063E6D4DC7
528 | C596F731DA9319EC3D9A4D3E0B86D2BD68ABC921AF245F8E80AB945242294660
529 | BC1081B123940204EE7F40C9E36DB0F7AA4F087AEA6DD1CB70B1BD129F38D4B8
530 | 6057E1BC4D8973D6727C6C29C3D956059C2DC5E86E2EC2197321AD5B88956129
531 | F48A78D88CD97C6F87291F8FAF1FC6E36B6998BB9A8AB95E11E6AE2463F6CA01
532 | CC5E165292F0E8F3443CFA2C010D9587C84BA02FD9435E46BE0CCDFA7C3C597C
533 | 88279ED53C0866E13B2CF1F93698F96FA02B4FE1BD8EBCD590C57BB32EEFF999
534 | 2D2F2FBF30DA32E633A12B7E0F563D7997024D5A79449685DD8795A10C688B76
535 | D37B93F2EFBC499B1B91F77ABDD02892C98BC9EF8251255EF975AC048D9ADC88
536 | 7A335FAD3808DF3D3114593BFD3999A21ABD326DA5282F8DFF461BEA34385153
537 | 0D93F123D4198EA356770C35DAA3306AD4D057ABA0AB52429CF22E4A653BFD49
538 | BBDFAEFA13A9CD7CB4
539 | }
540 | end
541 | object GetQR: TAsyncProcess
542 | Active = False
543 | Executable = 'bash'
544 | Parameters.Strings = (
545 | ''
546 | )
547 | Options = [poWaitOnExit]
548 | Priority = ppNormal
549 | StartupOptions = []
550 | ShowWindow = swoNone
551 | WindowColumns = 0
552 | WindowHeight = 0
553 | WindowLeft = 0
554 | WindowRows = 0
555 | WindowTop = 0
556 | WindowWidth = 0
557 | FillAttribute = 0
558 | Left = 320
559 | Top = 176
560 | end
561 | end
562 |
--------------------------------------------------------------------------------
/xraygui/unit1.lrj:
--------------------------------------------------------------------------------
1 | {"version":1,"strings":[
2 | {"hash":227073225,"name":"tmainform.caption","sourcebytes":[88,82,97,121,71,85,73],"value":"XRayGUI"},
3 | {"hash":66249581,"name":"tmainform.groupbox1.caption","sourcebytes":[67,111,110,102,105,103,117,114,97,116,105,111,110,115,32,91,118,109,101,115,115,47,118,108,101,115,115,47,115,115,47,116,114,111,106,97,110,93],"value":"Configurations [vmess/vless/ss/trojan]"},
4 | {"hash":78392485,"name":"tmainform.deletebtn.caption","sourcebytes":[68,101,108,101,116,101],"value":"Delete"},
5 | {"hash":195296268,"name":"tmainform.selallbtn.hint","sourcebytes":[83,101,108,101,99,116,32,97,108,108],"value":"Select all"},
6 | {"hash":42,"name":"tmainform.selallbtn.caption","sourcebytes":[42],"value":"*"},
7 | {"hash":27149092,"name":"tmainform.pastebtn.hint","sourcebytes":[80,97,115,116,101,32,102,114,111,109,32,99,108,105,112,98,111,97,114,100],"value":"Paste from clipboard"},
8 | {"hash":5671589,"name":"tmainform.pastebtn.caption","sourcebytes":[80,97,115,116,101],"value":"Paste"},
9 | {"hash":240766647,"name":"tmainform.groupbox2.caption","sourcebytes":[77,97,110,97,103,101,109,101,110,116,47,76,111,103,103,105,110,103],"value":"Management/Logging"},
10 | {"hash":178241657,"name":"tmainform.portedit.hint","sourcebytes":[49,50,55,46,48,46,48,46,49,58,80,111,114,116,32,40,83,79,67,75,83,41,10,49,50,55,46,48,46,48,46,49,58,56,56,56,57,32,40,72,84,84,80,41],"value":"127.0.0.1:Port (SOCKS)\n127.0.0.1:8889 (HTTP)"},
11 | {"hash":371552,"name":"tmainform.stopbtn.caption","sourcebytes":[83,116,111,112],"value":"Stop"},
12 | {"hash":5941396,"name":"tmainform.startbtn.caption","sourcebytes":[83,116,97,114,116],"value":"Start"},
13 | {"hash":138424089,"name":"tmainform.clearbox.hint","sourcebytes":[67,108,101,97,114,105,110,103,32,67,111,111,107,105,101,115,32,97,102,116,101,114,32,115,116,97,114,116,105,110,103,32,116,104,101,32,71,85,73,32,40,77,97,103,101,105,97,32,111,110,108,121,41],"value":"Clearing Cookies after starting the GUI (Mageia only)"},
14 | {"hash":4860802,"name":"tmainform.clearbox.caption","sourcebytes":[67,108,101,97,114],"value":"Clear"},
15 | {"hash":5728634,"name":"tmainform.label1.caption","sourcebytes":[80,111,114,116,58],"value":"Port:"},
16 | {"hash":35738692,"name":"tmainform.autostartbox.hint","sourcebytes":[65,117,116,111,83,116,97,114,116,32,112,114,111,120,121,32,97,102,116,101,114,32,114,101,98,111,111,116],"value":"AutoStart proxy after reboot"},
17 | {"hash":298159,"name":"tmainform.autostartbox.caption","sourcebytes":[65,117,116,111],"value":"Auto"},
18 | {"hash":177896581,"name":"tmainform.swpbox.hint","sourcebytes":[83,121,115,116,101,109,45,87,105,100,101,32,80,114,111,120,121,58,10,66,117,100,103,105,101,44,32,71,78,79,77,69,44,32,67,105,110,110,97,109,111,110,44,32,75,68,69,44,32,77,65,84,69],"value":"System-Wide Proxy:\nBudgie, GNOME, Cinnamon, KDE, MATE"},
19 | {"hash":22720,"name":"tmainform.swpbox.caption","sourcebytes":[83,87,80],"value":"SWP"},
20 | {"hash":84010505,"name":"tmainform.realitybtn.hint","sourcebytes":[82,69,65,76,73,84,89,32,99,111,110,102,105,103,117,114,97,116,105,111,110,115,32,103,101,110,101,114,97,116,111,114,32,40,67,108,105,101,110,116,45,83,101,114,118,101,114,41],"value":"REALITY configurations generator (Client-Server)"},
21 | {"hash":242882515,"name":"tmainform.domainbox.hint","sourcebytes":[66,121,112,97,115,115,105,110,103,32,100,111,109,97,105,110,32,122,111,110,101,115],"value":"Bypassing domain zones"},
22 | {"hash":1694,"name":"tmainform.domainbox.text","sourcebytes":[99,110],"value":"cn"},
23 | {"hash":250918134,"name":"tmainform.statictext1.caption","sourcebytes":[76,105,99,101,110,115,101,58,32,71,80,76,118,51,32,32,32,65,117,116,104,111,114,58,32,97,108,101,120,95,113,95,50,48,48,48,32,40,67,41,32,50,48,50,51,32,32,32,85,82,76,58,32,104,116,116,112,115,58,47,47,103,105,116,104,117,98,46,99,111,109,47,65,75,111,116,111,118,45,100,101,118],"value":"License: GPLv3 Author: alex_q_2000 (C) 2023 URL: https://github.com/AKotov-dev"},
24 | {"hash":304761,"name":"tmainform.copyitem.caption","sourcebytes":[67,111,112,121],"value":"Copy"},
25 | {"hash":9308581,"name":"tmainform.saveitem.caption","sourcebytes":[83,97,118,101,32,116,111,32,102,105,108,101],"value":"Save to file"},
26 | {"hash":8431845,"name":"tmainform.loaditem.caption","sourcebytes":[76,111,97,100,32,102,114,111,109,32,102,105,108,101],"value":"Load from file"}
27 | ]}
28 |
--------------------------------------------------------------------------------
/xraygui/update_trd.pas:
--------------------------------------------------------------------------------
1 | unit update_trd;
2 |
3 | {$mode ObjFPC}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, Forms, Controls, SysUtils, Process;
9 |
10 | type
11 | CheckUpdate = class(TThread)
12 | private
13 |
14 | { Private declarations }
15 | protected
16 | S: TStringList;
17 |
18 | procedure Execute; override;
19 |
20 | end;
21 |
22 | implementation
23 |
24 | uses unit1;
25 |
26 | { TRD }
27 |
28 | procedure CheckUpdate.Execute;
29 | var
30 | UpdateProcess: TProcess;
31 | begin
32 | S := TStringList.Create;
33 | FreeOnTerminate := True; //Уничтожать по завершении
34 | try
35 | UpdateProcess := TProcess.Create(nil);
36 |
37 | UpdateProcess.Executable := 'bash';
38 | UpdateProcess.Parameters.Add('-c');
39 | UpdateProcess.Options := [poUsePipes, poWaitOnExit];
40 |
41 | UpdateProcess.Parameters.Add(
42 | '[[ $(systemctl is-active xray-update) == active ]] || systemctl --user start xray-update');
43 |
44 | UpdateProcess.Execute;
45 | finally
46 | S.Free;
47 | UpdateProcess.Free;
48 | end;
49 | end;
50 |
51 | end.
52 |
--------------------------------------------------------------------------------
/xraygui/xraygui:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/xraygui
--------------------------------------------------------------------------------
/xraygui/xraygui.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/xraygui.ico
--------------------------------------------------------------------------------
/xraygui/xraygui.lpi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | -
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | -
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | -
128 |
129 |
130 | -
131 |
132 |
133 | -
134 |
135 |
136 |
137 |
138 |
139 |
--------------------------------------------------------------------------------
/xraygui/xraygui.lps:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | -
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
--------------------------------------------------------------------------------
/xraygui/xraygui.pas:
--------------------------------------------------------------------------------
1 | program xraygui;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | uses
6 | {$IFDEF UNIX}
7 | cthreads,
8 | {$ENDIF} {$IFDEF HASAMIGA}
9 | athreads,
10 | {$ENDIF}
11 | Process,
12 | Classes,
13 | Dialogs,
14 | Interfaces, // this includes the LCL widgetset
15 | Forms,
16 | Unit1,
17 | start_trd,
18 | portscan_trd,
19 | update_trd, reality_gen { you can add units after this };
20 |
21 | {$R *.res}
22 |
23 | //--- Определяем, запущена ли копия программы
24 | var
25 | PID: TStringList;
26 | ExProcess: TProcess;
27 |
28 | begin
29 | ExProcess := TProcess.Create(nil);
30 | PID := TStringList.Create;
31 | try
32 | ExProcess.Executable := 'bash';
33 | ExProcess.Parameters.Add('-c');
34 | ExProcess.Parameters.Add('pidof xraygui'); //Имя приложения
35 | ExProcess.Options := ExProcess.Options + [poUsePipes];
36 |
37 | ExProcess.Execute;
38 | PID.LoadFromStream(ExProcess.Output);
39 |
40 | finally
41 | ExProcess.Free;
42 | end;
43 |
44 | //Количество запущенных копий > 1 = не запускать новый экземпляр
45 | if Pos(' ', PID.Text) <> 0 then //пробел = более одного pid
46 | begin
47 | MessageDlg(SAppRunning, mtWarning, [mbOK], 0);
48 | PID.Free;
49 | Application.Free;
50 | Halt(1);
51 | end;
52 | PID.Free;
53 |
54 | //---
55 |
56 | RequireDerivedFormResource := True;
57 | Application.Title:='XRayGUI v2.5';
58 | Application.Scaled:=True;
59 | Application.Initialize;
60 | Application.CreateForm(TMainForm, MainForm);
61 | Application.CreateForm(TRealityForm, RealityForm);
62 | Application.Run;
63 | end.
64 |
--------------------------------------------------------------------------------
/xraygui/xraygui.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AKotov-dev/XRayGUI/1944bdfb038195e55c72eb1bae131e26e841a31e/xraygui/xraygui.res
--------------------------------------------------------------------------------