Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
316882bcd0 | ||
|
|
b204e52297 | ||
|
|
f82a63f4c8 | ||
|
|
cb0f2108a4 | ||
|
|
300b7a7a68 | ||
|
|
c3852ca60d | ||
|
|
a5fb735c93 | ||
|
|
d0b04ba84f | ||
|
|
9552742a39 | ||
|
|
8e9bdf6c0c | ||
|
|
818cc48502 | ||
|
|
adc4e28eb8 | ||
|
|
2e3a4d3bf1 | ||
|
|
d9bcac78e7 | ||
|
|
2342947849 | ||
|
|
19204dee8d | ||
|
|
863fa90b80 | ||
|
|
6fdef4a8f1 | ||
|
|
9469ceaa02 | ||
|
|
857f184409 | ||
|
|
a2f4a725f5 | ||
|
|
d12449bbb9 | ||
|
|
a41f4711dd | ||
|
|
3c2b018d49 | ||
|
|
e221a09709 | ||
|
|
26ff4bd843 | ||
|
|
d8e28f384a | ||
|
|
65e68c3cc4 | ||
|
|
7b76ab2a59 | ||
|
|
ae2a01b463 | ||
|
|
cda022a9f4 | ||
|
|
672e48c5f8 | ||
|
|
6fbdb1354f | ||
|
|
79bc7fd443 | ||
|
|
5578dd3339 | ||
|
|
0232dbd196 | ||
|
|
d44e192eaa | ||
|
|
4f12b19cf8 | ||
|
|
392ac1b1c7 | ||
|
|
8ad175aca3 | ||
|
|
6afa58c42b | ||
|
|
8be03cf232 | ||
|
|
23ea53d3ff | ||
|
|
294f40e7ac | ||
|
|
4f5f706ee5 | ||
|
|
27c1a7b4e4 | ||
|
|
cfaa5be6d7 | ||
|
|
a6942280a0 | ||
|
|
159124e6a3 | ||
|
|
6e63293a3c | ||
|
|
9a9dc0d788 | ||
|
|
e201cd074c | ||
|
|
0fd49a6e1c | ||
|
|
6169a85464 | ||
|
|
e583344fee | ||
|
|
dcee00394c | ||
|
|
e48dc99dc0 | ||
|
|
3ba3dda384 | ||
|
|
bbf1ce993c | ||
|
|
56245a8c9b | ||
|
|
4f2e65094c | ||
|
|
0bf456cbc8 | ||
|
|
9213d0da16 | ||
|
|
13f2ece0ff | ||
|
|
45c2a74c94 | ||
|
|
b1b3e90e9b | ||
|
|
90ef841dae | ||
|
|
b46000e8eb | ||
|
|
b24891355d | ||
|
|
14bde5a790 | ||
|
|
d6445f17e3 | ||
|
|
6124c3fe40 | ||
|
|
5531a4b194 | ||
|
|
839a0bbd42 | ||
|
|
1ba6272e4e | ||
|
|
fdd86815ef | ||
|
|
c8091fdc84 | ||
|
|
9d569bd9e3 | ||
|
|
1991664cd1 | ||
|
|
ee7064fafc | ||
|
|
cdaf861485 | ||
|
|
3e962b1da9 | ||
|
|
8398f1706c | ||
|
|
24d2d441b4 | ||
|
|
5700039d42 | ||
|
|
22445c79d4 | ||
|
|
2be05ac76c | ||
|
|
84e397aeed | ||
|
|
bb513b9115 | ||
|
|
01b680e278 | ||
|
|
ef7c1cba2e | ||
|
|
40bbc57c82 | ||
|
|
457e5bebbb | ||
|
|
99abc56177 | ||
|
|
9eeb0b6376 | ||
|
|
0b2da187ee | ||
|
|
06f5410a4d | ||
|
|
2551ada3b7 | ||
|
|
56df08879e | ||
|
|
d41685c86e | ||
|
|
14b942970e | ||
|
|
b6103c845d | ||
|
|
7927f12e84 | ||
|
|
7774ff77b2 | ||
|
|
aaa2ed7eef | ||
|
|
b83674e9b7 | ||
|
|
017356780c | ||
|
|
45916004d2 | ||
|
|
388c8b615e | ||
|
|
4219473632 | ||
|
|
f2283cdb7f | ||
|
|
72ce9cfd6b | ||
|
|
b26375d25a | ||
|
|
a2a823f358 | ||
|
|
62164cf628 | ||
|
|
0b5fc22181 | ||
|
|
0df905f777 | ||
|
|
a539a948f6 | ||
|
|
6bd8364b5f | ||
|
|
70b70bc3e7 | ||
|
|
ac50f8917e | ||
|
|
f935b2c0b6 | ||
|
|
245c9d1119 | ||
|
|
9476313725 | ||
|
|
2d27a74278 | ||
|
|
823a5115eb | ||
|
|
33ab1e1f5e | ||
|
|
8db984d1fd | ||
|
|
a00415657a | ||
|
|
527837cc56 | ||
|
|
ac9ddff8b1 | ||
|
|
4ebae2a167 | ||
|
|
11f1685f42 | ||
|
|
8199101891 | ||
|
|
4f3ce323ae | ||
|
|
76befc7c70 | ||
|
|
8b0ad06676 | ||
|
|
d7f091a3a9 | ||
|
|
679b00229c | ||
|
|
0cfc636fb6 | ||
|
|
bd3c31e150 | ||
|
|
8e9547b75a | ||
|
|
d38ecc0f96 | ||
|
|
85834497e0 | ||
|
|
0d8997db02 | ||
|
|
cb53450ca5 | ||
|
|
f38ae36eb6 | ||
|
|
8218b0c8a6 | ||
|
|
ea036d2d53 | ||
|
|
b163eb2cdb | ||
|
|
ba3568f312 | ||
|
|
80c9976832 | ||
|
|
b6326c25b9 | ||
|
|
35f591cf49 | ||
|
|
67e437bbd7 | ||
|
|
194dae8ce1 | ||
|
|
a89442ceb0 | ||
|
|
24debf6062 | ||
|
|
ff98846c99 | ||
|
|
e3f5a0bca1 | ||
|
|
7278e4f051 | ||
|
|
709a511c1d | ||
|
|
452027f085 | ||
|
|
8574802428 | ||
|
|
79fb044921 | ||
|
|
13ac634fea | ||
|
|
04a68bc262 | ||
|
|
47de15ab68 | ||
|
|
512af24a05 | ||
|
|
e5ff46d3bb | ||
|
|
c7a0979140 | ||
|
|
7fd7245df2 | ||
|
|
026301b011 | ||
|
|
5cc77f90ae | ||
|
|
0d4568ac8a | ||
|
|
a6ed491a39 | ||
|
|
90dfc3f1ae | ||
|
|
36388fb0d7 | ||
|
|
043166d0c8 | ||
|
|
b92d488851 | ||
|
|
d841a04a89 | ||
|
|
d8553baa78 | ||
|
|
8521d5aee3 | ||
|
|
ebe21d9c7f | ||
|
|
3b83abdbd3 | ||
|
|
aead2463c9 | ||
|
|
5cc5676672 | ||
|
|
ecc32ca18d | ||
|
|
661640de79 | ||
|
|
96dfdab7ed | ||
|
|
56bed5fd3b | ||
|
|
3fd3b18406 | ||
|
|
45bac97a16 | ||
|
|
2c6eca4a92 | ||
|
|
8109d59655 | ||
|
|
8a15571cd2 | ||
|
|
a15c8f2e60 | ||
|
|
cec3d6c04d | ||
|
|
d872604855 | ||
|
|
2b6fb933a4 | ||
|
|
1da892e863 | ||
|
|
19bfedd1a3 | ||
|
|
cb87392d9d | ||
|
|
7cd5bc9ec3 | ||
|
|
edcc1a30ab | ||
|
|
6f93f6ab06 | ||
|
|
9de1f44288 | ||
|
|
3d360b0881 | ||
|
|
cf1c415846 | ||
|
|
90133e2444 | ||
|
|
81246046b8 | ||
|
|
20e037ab9e | ||
|
|
bc27036ba7 | ||
|
|
1cd470b90b | ||
|
|
64471e34bc | ||
|
|
f4c5d3de09 | ||
|
|
0dc59405e3 | ||
|
|
7c775bdc9b | ||
|
|
61400ff4d4 | ||
|
|
e119e34ebe | ||
|
|
6f059747bf | ||
|
|
24d72641fa | ||
|
|
b91fca3aa6 | ||
|
|
a6f1947837 | ||
|
|
6919131cef | ||
|
|
9186d801fc | ||
|
|
76e2f200bd | ||
|
|
1400bbd9ce | ||
|
|
fd37628ac2 | ||
|
|
4396d5afc4 | ||
|
|
f5faf80883 | ||
|
|
ba32da97c8 | ||
|
|
ec2de73d3a | ||
|
|
f4d032e5c7 | ||
|
|
4114aac6c3 | ||
|
|
0c43c6bb5f | ||
|
|
7b3c965b88 | ||
|
|
d1035268f6 | ||
|
|
8968f30bf9 | ||
|
|
84c2c29600 | ||
|
|
b2a59f261c | ||
|
|
363a330f8e | ||
|
|
1d2aa059ee | ||
|
|
f2bfa908a1 | ||
|
|
02a8de4696 | ||
|
|
22fa3eff71 | ||
|
|
69361209c3 | ||
|
|
ff0aeaa4ef | ||
|
|
3c461dfd4b | ||
|
|
c6beda383e | ||
|
|
3d59f3befd | ||
|
|
e54f0db239 | ||
|
|
0f877f2749 | ||
|
|
b69ba165d9 | ||
|
|
965076fe52 | ||
|
|
f4d6cb0430 | ||
|
|
19d412188c | ||
|
|
798d85978a | ||
|
|
819742d753 | ||
|
|
9b32fa6219 | ||
|
|
2c93661726 | ||
|
|
bddaca2a1e | ||
|
|
2f06f2e051 | ||
|
|
1d26e46bd9 | ||
|
|
fa0ff826a3 | ||
|
|
e1b3114c83 | ||
|
|
a655f075db | ||
|
|
13d4ebbf6b | ||
|
|
913d10b1ee | ||
|
|
eb541a0104 | ||
|
|
2063186994 | ||
|
|
860d571039 | ||
|
|
c6d79adf9a | ||
|
|
5453900ba1 | ||
|
|
5029ff1e37 | ||
|
|
47fb691339 | ||
|
|
dff9dd17bf | ||
|
|
5bc4a16b90 | ||
|
|
b1918953b0 | ||
|
|
6e89ed7007 | ||
|
|
744e8bc941 | ||
|
|
0b98ce7ffd | ||
|
|
ca8b293b06 | ||
|
|
e28d99a257 | ||
|
|
488feb6108 | ||
|
|
6cdb106f07 | ||
|
|
a7c5ccd27a | ||
|
|
136f9dbf0a | ||
|
|
16b45c3450 | ||
|
|
68330fad52 | ||
|
|
dca167518d | ||
|
|
bcc44422ef | ||
|
|
e080e03466 | ||
|
|
b6e75490de | ||
|
|
196c014576 | ||
|
|
236110df5e | ||
|
|
b2ae192056 | ||
|
|
f080969a62 | ||
|
|
69d969898d | ||
|
|
a21a766926 | ||
|
|
f11fdb6b96 | ||
|
|
c7445df4c6 | ||
|
|
2c45c9bc5b | ||
|
|
ae5ed27cb6 | ||
|
|
11f9fe3c8b | ||
|
|
e93ad3bd33 | ||
|
|
20c26ea0a8 | ||
|
|
5925a80d3b | ||
|
|
56cb95e523 | ||
|
|
a6e101cc5d | ||
|
|
e8292b6f81 | ||
|
|
37a4392c94 | ||
|
|
a897f75ecf | ||
|
|
79055d3779 | ||
|
|
3d39aa7f97 | ||
|
|
2c1d09affc | ||
|
|
4775358a79 | ||
|
|
cb5f8e8191 | ||
|
|
8209b4ff01 | ||
|
|
e110134d24 | ||
|
|
c2248fdd49 | ||
|
|
58fea5b0ca | ||
|
|
7a36946545 | ||
|
|
563d9a8a36 | ||
|
|
bdbd0617b5 | ||
|
|
67006d88cb | ||
|
|
ded2083462 | ||
|
|
87b7d044f8 | ||
|
|
9781cef29b | ||
|
|
52c393148b | ||
|
|
b98d617d6f | ||
|
|
b475573e0e | ||
|
|
ba3c85d5b2 | ||
|
|
410777efb3 | ||
|
|
0b3fb452b4 | ||
|
|
aaff565172 | ||
|
|
dd0786648e | ||
|
|
e145ffa111 | ||
|
|
b322468c1c | ||
|
|
992d8b909c | ||
|
|
d5327c6370 | ||
|
|
0d13bb5f8f | ||
|
|
3ad08a33a9 | ||
|
|
533e0ed736 | ||
|
|
e7ba77b600 | ||
|
|
f3b84b04f7 | ||
|
|
f4c948aca9 | ||
|
|
1507f5df5a | ||
|
|
0562d11a71 | ||
|
|
b3a9f5cce0 | ||
|
|
5974a3c85a | ||
|
|
78c732d2b8 | ||
|
|
d087b2dc16 | ||
|
|
16c5d014aa | ||
|
|
e661ff400f | ||
|
|
b8c8e2d04d | ||
|
|
8fc36f2b20 | ||
|
|
4b73a09a09 | ||
|
|
65c4d5d5b7 | ||
|
|
19d0702aee | ||
|
|
b74e8330de | ||
|
|
334b837d43 | ||
|
|
169cb37f08 | ||
|
|
8f29c3f0da | ||
|
|
bec5cc4a04 | ||
|
|
af627ee202 | ||
|
|
1e091a3e7c | ||
|
|
8840da91d7 | ||
|
|
1f4ff04ed3 | ||
|
|
60974e8f72 | ||
|
|
86f68994c2 | ||
|
|
21c4918486 | ||
|
|
c6a426ec25 | ||
|
|
db75a22c1c | ||
|
|
7e85d22ecd | ||
|
|
67adadc0a4 | ||
|
|
6b78562454 | ||
|
|
4f13afc867 | ||
|
|
c34e8f193f | ||
|
|
4bcb507eae | ||
|
|
a50d457d75 | ||
|
|
9f119265a9 | ||
|
|
0b121a624b | ||
|
|
0f47f5ec8f | ||
|
|
f89896d041 | ||
|
|
5e335fd5e8 | ||
|
|
fd245dec14 | ||
|
|
774cdc5de3 | ||
|
|
633cfad1a8 | ||
|
|
cb7875c320 | ||
|
|
7960a57fc0 | ||
|
|
a23f693921 | ||
|
|
c49cb8bc4a | ||
|
|
02c425cfc0 | ||
|
|
be96ba0a0e | ||
|
|
df5e00977a | ||
|
|
f055650365 | ||
|
|
b0baddda3b | ||
|
|
69359cba05 | ||
|
|
8b0b29e39b | ||
|
|
21ac50667d | ||
|
|
b843a438ba | ||
|
|
441cc30c0b | ||
|
|
85adf5dc80 | ||
|
|
0c48f0981d | ||
|
|
88b646e41c | ||
|
|
dc4c3e0a99 | ||
|
|
262f6d55a0 | ||
|
|
2d68400670 | ||
|
|
8acaae3f0d | ||
|
|
a5cb26528f | ||
|
|
ac2520a03f | ||
|
|
9c15cc7b33 | ||
|
|
c38f460163 | ||
|
|
9bda8c9e77 | ||
|
|
558be68bad | ||
|
|
6b9d27ce9b | ||
|
|
412745eede | ||
|
|
91ea771af1 | ||
|
|
238ab03db3 | ||
|
|
2d63da193d | ||
|
|
fa4c20a241 | ||
|
|
6294fc33d1 | ||
|
|
c4cf48a94b | ||
|
|
2934c7eb57 | ||
|
|
46ce454105 | ||
|
|
9ab06a0ea9 | ||
|
|
e6f742380a | ||
|
|
2686812470 | ||
|
|
cd11b5b7b2 | ||
|
|
aae35dc640 | ||
|
|
f0b669ff85 | ||
|
|
237605bb9f | ||
|
|
1778046581 | ||
|
|
ff10adfabb | ||
|
|
1cb0f8d7ba | ||
|
|
5813bbdcd1 | ||
|
|
b38e5b177e | ||
|
|
9d66cf248c | ||
|
|
ebcf90d426 | ||
|
|
51904db187 | ||
|
|
4fc8755b8d | ||
|
|
7afcbfaa26 | ||
|
|
55cb96d978 | ||
|
|
a1de099974 | ||
|
|
a0238732fe | ||
|
|
6c100b0679 | ||
|
|
e4d159840f | ||
|
|
0375b3ff02 | ||
|
|
746bae5103 | ||
|
|
70eb2c4500 | ||
|
|
69175f3ae1 | ||
|
|
ed5fab2c54 | ||
|
|
1425ff8e6c | ||
|
|
832ab549a1 | ||
|
|
4ec1661c26 | ||
|
|
ea27712b62 | ||
|
|
6f65efe2d8 | ||
|
|
8edcf60baf | ||
|
|
74f6aec367 | ||
|
|
62c65a766a | ||
|
|
acbcaa337e | ||
|
|
f4dbe57244 | ||
|
|
b494c64a2f | ||
|
|
321e086b95 | ||
|
|
fb60d6b867 | ||
|
|
8ff2e2074a | ||
|
|
1151a1c43f | ||
|
|
13bc6cecc4 | ||
|
|
a4ea572458 | ||
|
|
880df4dee9 | ||
|
|
b75e86dd11 | ||
|
|
75c84092ae | ||
|
|
c69db97da8 | ||
|
|
9c2a8892ae | ||
|
|
f92111563c | ||
|
|
0abb3e78cb | ||
|
|
fb83071419 | ||
|
|
f593c6df8b | ||
|
|
9b452b25c2 | ||
|
|
c835fcf99a | ||
|
|
e4373edc54 | ||
|
|
686c05785f | ||
|
|
994358a793 | ||
|
|
b02ca3757c | ||
|
|
164ec25415 | ||
|
|
8ee85cd9ca | ||
|
|
c07bf05754 | ||
|
|
2e2a08a765 | ||
|
|
10be5f442f | ||
|
|
0fcd8565d8 | ||
|
|
e07eee86dd | ||
|
|
f25d5d73c6 | ||
|
|
28b4d00d3c | ||
|
|
c75cf8a539 | ||
|
|
ff7199b857 | ||
|
|
5613fd81b7 | ||
|
|
c1458502f7 | ||
|
|
b2f620bd3d | ||
|
|
0e1030f186 | ||
|
|
ff4ffb8ec5 | ||
|
|
941458a381 | ||
|
|
560eb924b8 | ||
|
|
c3fab9e48b | ||
|
|
fc4dc74f9e | ||
|
|
35f0362910 | ||
|
|
27dfaa5f06 | ||
|
|
cf1866710a | ||
|
|
b3a5d06c4a | ||
|
|
7c904ff331 | ||
|
|
c7855a9dd1 |
No files matched your search
@@ -0,0 +1,34 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
:: Check for permissions
|
||||
>nul 2>&1 "%SYSTEMROOT%\system32\icacls.exe" "%SYSTEMROOT%\system32\config\system"
|
||||
|
||||
if %errorlevel% NEQ 0 goto NoAdmin
|
||||
goto gotAdmin
|
||||
|
||||
:NoAdmin
|
||||
echo You do not have administrator rights, please run this script as administrator.
|
||||
pause
|
||||
exit /B
|
||||
|
||||
:gotAdmin
|
||||
if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs"
|
||||
|
||||
set "script_dir=%~dp0"
|
||||
set "script_dir=%script_dir:~0,-1%"
|
||||
|
||||
bcdedit -debug on
|
||||
bcdedit /set testsigning on
|
||||
bcdedit /deletevalue {current} safeboot
|
||||
|
||||
powershell.exe -ExecutionPolicy Bypass -Command ^
|
||||
"$endDate = (Get-Date).AddYears(100); ^
|
||||
$cert = New-SelfSignedCertificate -DnsName PYAS -CertStoreLocation cert:\LocalMachine\My -Type CodeSigning -NotAfter $endDate; ^
|
||||
$pwd = ConvertTo-SecureString -String 'PYAS' -Force -AsPlainText; ^
|
||||
Export-PfxCertificate -Cert $cert -FilePath '%script_dir%\PYAS.pfx' -Password $pwd;"
|
||||
"%script_dir%\signtool.exe" sign /f "%script_dir%\PYAS.pfx" /p PYAS "%script_dir%\PYAS_Driver.sys"
|
||||
sc create PYAS_Driver type= kernel start= demand binPath= "%script_dir%\PYAS_Driver.sys"
|
||||
|
||||
shutdown -r -t 0
|
||||
endlocal
|
||||
Whitespace-only changes.
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
:: Check for permissions
|
||||
>nul 2>&1 "%SYSTEMROOT%\system32\icacls.exe" "%SYSTEMROOT%\system32\config\system"
|
||||
|
||||
if %errorlevel% NEQ 0 goto NoAdmin
|
||||
goto gotAdmin
|
||||
|
||||
:NoAdmin
|
||||
echo You do not have administrator rights, please run this script as administrator.
|
||||
pause
|
||||
exit /B
|
||||
|
||||
:gotAdmin
|
||||
if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs"
|
||||
|
||||
sc stop PYAS_Driver
|
||||
sc delete PYAS_Driver
|
||||
|
||||
bcdedit /set testsigning off
|
||||
bcdedit -debug off
|
||||
|
||||
shutdown -r -t 0
|
||||
endlocal
|
||||
Binary file not shown.
+1
-1
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020-2023 87owo (PYAS Security)
|
||||
Copyright (c) 2020-2024 87owo (PYAS Security)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"Labels": ["White/Pefile", "White/Script", "Virus/Pefile", "Virus/Script"],
|
||||
|
||||
"Detect": ["Virus/Pefile", "Virus/Script"],
|
||||
|
||||
"Pixels": [224, 224],
|
||||
|
||||
"Values": 95
|
||||
}
|
||||
Binary file not shown.
+111
@@ -0,0 +1,111 @@
|
||||
import os, io, sys, time, json, yara
|
||||
import numpy, pefile, onnxruntime
|
||||
from PIL import Image, ImageShow
|
||||
|
||||
class YRScan:
|
||||
def __init__(self):
|
||||
self.rules = {}
|
||||
self.network = []
|
||||
|
||||
def load_rules(self, file_path):
|
||||
try:
|
||||
ftype = str(f".{file_path.split('.')[-1]}").lower()
|
||||
if ftype in [".yara", ".yar"]:
|
||||
self.rules[file_path] = yara.compile(file_path)
|
||||
elif ftype in [".yc", ".yrc"]:
|
||||
self.rules[file_path] = yara.load(file_path)
|
||||
elif ftype in [".ip", ".ips"]:
|
||||
with open(file_path, "r") as f:
|
||||
self.network += [l.strip() for l in f.readlines()]
|
||||
except:
|
||||
pass
|
||||
|
||||
def yr_scan(self, file_path):
|
||||
try:
|
||||
if isinstance(file_path, str):
|
||||
with open(file_path, "rb") as f:
|
||||
file_path = f.read()
|
||||
for name, rules in self.rules.items():
|
||||
matchs_rules = rules.match(data=file_path)
|
||||
if matchs_rules:
|
||||
return "Virus/Rules", matchs_rules
|
||||
return False, False
|
||||
except:
|
||||
return False, False
|
||||
|
||||
class DLScan:
|
||||
def __init__(self):
|
||||
self.models = {}
|
||||
self.shells = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!o',
|
||||
'cry', 'test', 'ace', 'yg', 'obr', 'tvm', 'dec', 'enc', 'b1_', 'base',
|
||||
'bss', 'clr_uef', 'cursors', 'trs_age', 'engine', 'enigma', 'protect',
|
||||
'nep', 'no_bbt', 'wpp_sf', 'retpol', 'rt', 'rwexec', 'rygs', 'poolmi',
|
||||
's:@', 'pgae', 'proxy', 'wisevec', 'segm', 'transit', 'vmp', 'extjmp',
|
||||
'upx', 'tracesup', 'res', 'lzma', 'malloc_h', 'miniex', 'ndr64', 'be',
|
||||
'mssmixer', 'wow', 'press', 'fio', 'pad', 'hexpthk', 'h~;', 'icapsec',
|
||||
'sanontcp', 'secur', 'asmstub', 'nsys_wr', 'orpc', 'pack', 'wow64svc',
|
||||
'uedbg', 'viahw', 'data', 'zk', 'fothk', 'qihoo']
|
||||
|
||||
def load_model(self, file_path):
|
||||
try:
|
||||
ftype = str(f".{file_path.split('.')[-1]}").lower()
|
||||
if ftype in [".json", ".txt"]:
|
||||
with open(file_path, 'r') as f:
|
||||
self.class_names = json.load(f)
|
||||
elif ftype in [".onnx"]:
|
||||
self.models[file_path] = onnxruntime.InferenceSession(file_path)
|
||||
self.labels = self.class_names['Labels']
|
||||
self.detect = self.class_names['Detect']
|
||||
self.pixels = self.class_names['Pixels']
|
||||
self.values = self.class_names['Values']
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def dl_scan(self, file_data):
|
||||
try:
|
||||
target_size, sim = tuple(self.pixels), {}
|
||||
image = self.preprocess_image(file_data, target_size)
|
||||
image_array = numpy.array(image).astype('float32') / 255.0
|
||||
image_expand = numpy.expand_dims(image_array, axis=0)
|
||||
for model_name, model in self.models.items():
|
||||
input_name = model.get_inputs()[0].name
|
||||
pre_answer = model.run(None, {input_name: image_expand})[0][0]
|
||||
number = numpy.argmax(pre_answer)
|
||||
label = self.labels[number].replace("\n", "")
|
||||
sim[label] = sim.setdefault(label, 0) + pre_answer[number]
|
||||
for local_label, sim_sum in sim.items():
|
||||
if sim_sum > len(self.models) / 2:
|
||||
local_level = sim_sum / len(self.models)
|
||||
print(local_label, local_level * 100)
|
||||
return local_label, local_level * 100
|
||||
return False, False
|
||||
except Exception as e:
|
||||
return False, False
|
||||
|
||||
def get_type(self, file_path):
|
||||
try:
|
||||
match_data = {}
|
||||
ftype = str(f".{file_path.split('.')[-1]}").lower()
|
||||
if ftype in [".exe", ".dll", ".sys", ".scr", ".com"]:
|
||||
with pefile.PE(file_path, fast_load=True) as pe:
|
||||
for section in pe.sections:
|
||||
section_name = section.Name.rstrip(b'\x00').decode('latin1')
|
||||
if (section.Characteristics & 0x00000020 and not
|
||||
any(shell in section_name.lower() for shell in self.shells)):
|
||||
match_data[section_name] = section.get_data()
|
||||
elif ftype in [".bat", ".vbs", ".ps1", ".cmd", ".js"]:
|
||||
with open(file_path, 'rb') as file:
|
||||
match_data[ftype] = file.read()
|
||||
return match_data
|
||||
except:
|
||||
return {}
|
||||
|
||||
def preprocess_image(self, file_data, target_size):
|
||||
file_data = numpy.frombuffer(file_data, dtype=numpy.uint8)
|
||||
data_count = len(file_data)
|
||||
wah = int(numpy.ceil(numpy.sqrt((data_count + 2) // 3)))
|
||||
image_array = numpy.zeros((wah * wah * 3,), dtype=numpy.uint8)
|
||||
image_array[:data_count] = file_data
|
||||
image_array = image_array.reshape((wah, wah, 3))
|
||||
image = Image.fromarray(image_array)
|
||||
return image.resize(target_size, Image.Resampling.LANCZOS)
|
||||
@@ -1,10 +0,0 @@
|
||||
slist = [".exe",".dll",".com",".msi",".scr",
|
||||
".bat",".cmd",".ps1",".vbs",".jar",
|
||||
".js",".elf",".doc",".xls",".xlsx"]
|
||||
|
||||
alist = [".ppt",".pptx",".wps",".txt",".rtf",
|
||||
".pdf",".xls",".xlsx",".doc",".docx",
|
||||
".jpg",".jpeg",".png",".webp",".gif",
|
||||
".mp3",".wav",".aac",".ogg",".flac",
|
||||
".mp4",".avi",".mov",".wmv",".mkv",
|
||||
".zip",".7z",".rar",".tar",".gz"]
|
||||
+254
-270
@@ -29,6 +29,7 @@ class Ui_MainWindow(object):
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.widget = QtWidgets.QWidget(self.centralwidget)
|
||||
self.widget.setGeometry(QtCore.QRect(0, 0, 851, 541))
|
||||
self.widget.setStyleSheet("")
|
||||
self.widget.setObjectName("widget")
|
||||
self.Protection_widget = QtWidgets.QWidget(self.widget)
|
||||
self.Protection_widget.setGeometry(QtCore.QRect(170, 50, 671, 481))
|
||||
@@ -37,7 +38,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Protection_widget.setFont(font)
|
||||
self.Protection_widget.setStyleSheet("background-color:rgba(255, 255, 255,240);")
|
||||
self.Protection_widget.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.Protection_widget.setObjectName("Protection_widget")
|
||||
self.Real_time_Protection_widget = QtWidgets.QWidget(self.Protection_widget)
|
||||
self.Real_time_Protection_widget.setGeometry(QtCore.QRect(40, 10, 591, 91))
|
||||
@@ -87,13 +88,14 @@ class Ui_MainWindow(object):
|
||||
self.Protection_switch_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Protection_switch_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Protection_switch_Button.setCheckable(False)
|
||||
self.Protection_switch_Button.setObjectName("Protection_switch_Button")
|
||||
@@ -145,13 +147,14 @@ class Ui_MainWindow(object):
|
||||
self.Protection_switch_Button_2.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Protection_switch_Button_2.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Protection_switch_Button_2.setCheckable(False)
|
||||
self.Protection_switch_Button_2.setObjectName("Protection_switch_Button_2")
|
||||
@@ -201,13 +204,14 @@ class Ui_MainWindow(object):
|
||||
self.Protection_switch_Button_3.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Protection_switch_Button_3.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Protection_switch_Button_3.setCheckable(False)
|
||||
self.Protection_switch_Button_3.setObjectName("Protection_switch_Button_3")
|
||||
@@ -257,13 +261,14 @@ class Ui_MainWindow(object):
|
||||
self.Protection_switch_Button_4.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Protection_switch_Button_4.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Protection_switch_Button_4.setCheckable(False)
|
||||
self.Protection_switch_Button_4.setObjectName("Protection_switch_Button_4")
|
||||
@@ -313,13 +318,14 @@ class Ui_MainWindow(object):
|
||||
self.Protection_switch_Button_5.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Protection_switch_Button_5.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Protection_switch_Button_5.setCheckable(False)
|
||||
self.Protection_switch_Button_5.setObjectName("Protection_switch_Button_5")
|
||||
@@ -330,14 +336,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Navigation_Bar.setFont(font)
|
||||
self.Navigation_Bar.setStyleSheet("QWidget#Navigation_Bar\n"
|
||||
"{\n"
|
||||
" background-color:rgb(230, 230, 230);\n"
|
||||
" border-top-right-radius:2px;\n"
|
||||
" border-bottom-right-radius:2px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"")
|
||||
self.Navigation_Bar.setStyleSheet("background-color: rgb(230, 230, 230);")
|
||||
self.Navigation_Bar.setObjectName("Navigation_Bar")
|
||||
self.verticalLayoutWidget = QtWidgets.QWidget(self.Navigation_Bar)
|
||||
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 161, 481))
|
||||
@@ -365,8 +364,8 @@ class Ui_MainWindow(object):
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" border-top-left-radius:15px;\n"
|
||||
" border-bottom-left-radius:15px;\n"
|
||||
" border-top-left-radius:10px;\n"
|
||||
" border-bottom-left-radius:10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
@@ -376,7 +375,8 @@ class Ui_MainWindow(object):
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(255, 255, 255,110);\n"
|
||||
"}")
|
||||
"}\n"
|
||||
"")
|
||||
icon1 = QtGui.QIcon()
|
||||
icon1.addPixmap(QtGui.QPixmap(":/icon/State.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.State_Button.setIcon(icon1)
|
||||
@@ -403,8 +403,8 @@ class Ui_MainWindow(object):
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" border-top-left-radius:15px;\n"
|
||||
" border-bottom-left-radius:15px;\n"
|
||||
" border-top-left-radius:10px;\n"
|
||||
" border-bottom-left-radius:10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
@@ -414,7 +414,8 @@ class Ui_MainWindow(object):
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(255, 255, 255,110);\n"
|
||||
"}")
|
||||
"}\n"
|
||||
"")
|
||||
icon2 = QtGui.QIcon()
|
||||
icon2.addPixmap(QtGui.QPixmap(":/icon/Scan.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.Virus_Scan_Button.setIcon(icon2)
|
||||
@@ -444,8 +445,8 @@ class Ui_MainWindow(object):
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" border-top-left-radius:15px;\n"
|
||||
" border-bottom-left-radius:15px;\n"
|
||||
" border-top-left-radius:10px;\n"
|
||||
" border-bottom-left-radius:10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
@@ -455,7 +456,8 @@ class Ui_MainWindow(object):
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(255, 255, 255,110);\n"
|
||||
"}")
|
||||
"}\n"
|
||||
"")
|
||||
icon3 = QtGui.QIcon()
|
||||
icon3.addPixmap(QtGui.QPixmap(":/icon/Tool.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.Tools_Button.setIcon(icon3)
|
||||
@@ -482,8 +484,8 @@ class Ui_MainWindow(object):
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" border-top-left-radius:15px;\n"
|
||||
" border-bottom-left-radius:15px;\n"
|
||||
" border-top-left-radius:10px;\n"
|
||||
" border-bottom-left-radius:10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
@@ -493,7 +495,8 @@ class Ui_MainWindow(object):
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(255, 255, 255,110);\n"
|
||||
"}")
|
||||
"}\n"
|
||||
"")
|
||||
icon4 = QtGui.QIcon()
|
||||
icon4.addPixmap(QtGui.QPixmap(":/icon/Protect.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.Protection_Button.setIcon(icon4)
|
||||
@@ -526,7 +529,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Virus_Scan_widget.setFont(font)
|
||||
self.Virus_Scan_widget.setStyleSheet("background-color:rgba(255, 255, 255,240);")
|
||||
self.Virus_Scan_widget.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.Virus_Scan_widget.setObjectName("Virus_Scan_widget")
|
||||
self.Virus_Scan_title = QtWidgets.QLabel(self.Virus_Scan_widget)
|
||||
self.Virus_Scan_title.setGeometry(QtCore.QRect(45, 30, 281, 41))
|
||||
@@ -550,7 +553,7 @@ class Ui_MainWindow(object):
|
||||
self.Virus_Scan_text.setWordWrap(True)
|
||||
self.Virus_Scan_text.setObjectName("Virus_Scan_text")
|
||||
self.Virus_Scan_choose_Button = QtWidgets.QPushButton(self.Virus_Scan_widget)
|
||||
self.Virus_Scan_choose_Button.setGeometry(QtCore.QRect(480, 35, 141, 31))
|
||||
self.Virus_Scan_choose_Button.setGeometry(QtCore.QRect(490, 35, 131, 31))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
@@ -565,16 +568,8 @@ class Ui_MainWindow(object):
|
||||
self.Virus_Scan_choose_Button.setTabletTracking(False)
|
||||
self.Virus_Scan_choose_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.Virus_Scan_choose_Button.setLayoutDirection(QtCore.Qt.LeftToRight)
|
||||
self.Virus_Scan_choose_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(100,200,100,200);\n"
|
||||
" border-radius: 3px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(100,220,100,200);\n"
|
||||
"}")
|
||||
self.Virus_Scan_choose_Button.setStyleSheet("QPushButton{border:none;background-color:rgb(190,250,190);border-radius: 10px;}QPushButton:hover{background-color:rgb(200,250,200);}\n"
|
||||
"")
|
||||
self.Virus_Scan_choose_Button.setIconSize(QtCore.QSize(10, 10))
|
||||
self.Virus_Scan_choose_Button.setCheckable(False)
|
||||
self.Virus_Scan_choose_Button.setAutoRepeat(False)
|
||||
@@ -585,16 +580,19 @@ class Ui_MainWindow(object):
|
||||
self.Virus_Scan_choose_Button.setFlat(False)
|
||||
self.Virus_Scan_choose_Button.setObjectName("Virus_Scan_choose_Button")
|
||||
self.Virus_Scan_choose_widget = QtWidgets.QWidget(self.Virus_Scan_widget)
|
||||
self.Virus_Scan_choose_widget.setGeometry(QtCore.QRect(480, 67, 141, 31))
|
||||
self.Virus_Scan_choose_widget.setGeometry(QtCore.QRect(490, 67, 131, 31))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.Virus_Scan_choose_widget.sizePolicy().hasHeightForWidth())
|
||||
self.Virus_Scan_choose_widget.setSizePolicy(sizePolicy)
|
||||
self.Virus_Scan_choose_widget.setStyleSheet("background-color:rgba(200, 200, 200,200);")
|
||||
self.Virus_Scan_choose_widget.setStyleSheet("QWidget {\n"
|
||||
" background-color: rgb(230, 230, 230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
" }")
|
||||
self.Virus_Scan_choose_widget.setObjectName("Virus_Scan_choose_widget")
|
||||
self.verticalLayoutWidget_3 = QtWidgets.QWidget(self.Virus_Scan_choose_widget)
|
||||
self.verticalLayoutWidget_3.setGeometry(QtCore.QRect(0, 0, 141, 101))
|
||||
self.verticalLayoutWidget_3.setGeometry(QtCore.QRect(0, 0, 131, 101))
|
||||
self.verticalLayoutWidget_3.setObjectName("verticalLayoutWidget_3")
|
||||
self.Virus_Scan_choose_verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_3)
|
||||
self.Virus_Scan_choose_verticalLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
|
||||
@@ -616,17 +614,18 @@ class Ui_MainWindow(object):
|
||||
self.File_Scan_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 5px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(50, 50, 50,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(50, 50, 50,90);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.File_Scan_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.File_Scan_Button.setCheckable(False)
|
||||
self.File_Scan_Button.setObjectName("File_Scan_Button")
|
||||
@@ -646,17 +645,18 @@ class Ui_MainWindow(object):
|
||||
self.Path_Scan_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 5px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(50, 50, 50,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(50, 50, 50,90);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Path_Scan_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Path_Scan_Button.setCheckable(False)
|
||||
self.Path_Scan_Button.setObjectName("Path_Scan_Button")
|
||||
@@ -676,23 +676,24 @@ class Ui_MainWindow(object):
|
||||
self.Disk_Scan_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 5px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(50, 50, 50,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(50, 50, 50,90);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Disk_Scan_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Disk_Scan_Button.setCheckable(False)
|
||||
self.Disk_Scan_Button.setObjectName("Disk_Scan_Button")
|
||||
self.Virus_Scan_choose_verticalLayout.addWidget(self.Disk_Scan_Button)
|
||||
self.Virus_Scan_Solve_Button = QtWidgets.QPushButton(self.Virus_Scan_widget)
|
||||
self.Virus_Scan_Solve_Button.setGeometry(QtCore.QRect(330, 35, 141, 31))
|
||||
self.Virus_Scan_Solve_Button.setGeometry(QtCore.QRect(350, 35, 131, 31))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
@@ -707,16 +708,8 @@ class Ui_MainWindow(object):
|
||||
self.Virus_Scan_Solve_Button.setTabletTracking(False)
|
||||
self.Virus_Scan_Solve_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.Virus_Scan_Solve_Button.setLayoutDirection(QtCore.Qt.LeftToRight)
|
||||
self.Virus_Scan_Solve_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(230,70,70,200);\n"
|
||||
" border-radius: 3px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(255,70,70,200);\n"
|
||||
"}")
|
||||
self.Virus_Scan_Solve_Button.setStyleSheet("QPushButton{border:none;background-color:rgb(250,190,190);border-radius: 10px;}QPushButton:hover{background-color:rgb(250,200,200);}\n"
|
||||
"")
|
||||
self.Virus_Scan_Solve_Button.setIconSize(QtCore.QSize(10, 10))
|
||||
self.Virus_Scan_Solve_Button.setCheckable(False)
|
||||
self.Virus_Scan_Solve_Button.setAutoRepeat(False)
|
||||
@@ -727,7 +720,7 @@ class Ui_MainWindow(object):
|
||||
self.Virus_Scan_Solve_Button.setFlat(False)
|
||||
self.Virus_Scan_Solve_Button.setObjectName("Virus_Scan_Solve_Button")
|
||||
self.Virus_Scan_Break_Button = QtWidgets.QPushButton(self.Virus_Scan_widget)
|
||||
self.Virus_Scan_Break_Button.setGeometry(QtCore.QRect(480, 35, 141, 31))
|
||||
self.Virus_Scan_Break_Button.setGeometry(QtCore.QRect(490, 35, 131, 31))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
@@ -742,16 +735,8 @@ class Ui_MainWindow(object):
|
||||
self.Virus_Scan_Break_Button.setTabletTracking(False)
|
||||
self.Virus_Scan_Break_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.Virus_Scan_Break_Button.setLayoutDirection(QtCore.Qt.LeftToRight)
|
||||
self.Virus_Scan_Break_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(230,70,70,200);\n"
|
||||
" border-radius: 3px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(255,70,70,200);\n"
|
||||
"}")
|
||||
self.Virus_Scan_Break_Button.setStyleSheet("QPushButton{border:none;background-color:rgb(250,190,190);border-radius: 10px;}QPushButton:hover{background-color:rgb(250,200,200);}\n"
|
||||
"")
|
||||
self.Virus_Scan_Break_Button.setIconSize(QtCore.QSize(10, 10))
|
||||
self.Virus_Scan_Break_Button.setCheckable(False)
|
||||
self.Virus_Scan_Break_Button.setAutoRepeat(False)
|
||||
@@ -800,6 +785,13 @@ class Ui_MainWindow(object):
|
||||
self.Virus_Scan_output.setUniformItemSizes(False)
|
||||
self.Virus_Scan_output.setSelectionRectVisible(False)
|
||||
self.Virus_Scan_output.setObjectName("Virus_Scan_output")
|
||||
self.Virus_Scan_title.raise_()
|
||||
self.Virus_Scan_text.raise_()
|
||||
self.Virus_Scan_choose_widget.raise_()
|
||||
self.Virus_Scan_Solve_Button.raise_()
|
||||
self.Virus_Scan_output.raise_()
|
||||
self.Virus_Scan_Break_Button.raise_()
|
||||
self.Virus_Scan_choose_Button.raise_()
|
||||
self.State_widget = QtWidgets.QWidget(self.widget)
|
||||
self.State_widget.setGeometry(QtCore.QRect(170, 49, 671, 481))
|
||||
font = QtGui.QFont()
|
||||
@@ -807,7 +799,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.State_widget.setFont(font)
|
||||
self.State_widget.setStyleSheet("background-color:rgb(255, 255, 255);")
|
||||
self.State_widget.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.State_widget.setObjectName("State_widget")
|
||||
self.State_title = QtWidgets.QLabel(self.State_widget)
|
||||
self.State_title.setGeometry(QtCore.QRect(50, 210, 571, 41))
|
||||
@@ -823,14 +815,24 @@ class Ui_MainWindow(object):
|
||||
self.State_title.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.State_title.setObjectName("State_title")
|
||||
self.State_icon = QtWidgets.QLabel(self.State_widget)
|
||||
self.State_icon.setGeometry(QtCore.QRect(250, 30, 171, 171))
|
||||
self.State_icon.setGeometry(QtCore.QRect(240, 20, 191, 191))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.State_icon.sizePolicy().hasHeightForWidth())
|
||||
self.State_icon.setSizePolicy(sizePolicy)
|
||||
self.State_icon.setMinimumSize(QtCore.QSize(0, 171))
|
||||
self.State_icon.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(1)
|
||||
font.setStrikeOut(False)
|
||||
font.setKerning(True)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.State_icon.setFont(font)
|
||||
self.State_icon.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
|
||||
self.State_icon.setToolTip("")
|
||||
self.State_icon.setStyleSheet("")
|
||||
self.State_icon.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||
self.State_icon.setLineWidth(1)
|
||||
self.State_icon.setText("")
|
||||
@@ -853,6 +855,8 @@ class Ui_MainWindow(object):
|
||||
self.State_output.setFont(font)
|
||||
self.State_output.setAutoFillBackground(False)
|
||||
self.State_output.setStyleSheet("")
|
||||
self.State_output.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.State_output.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
self.State_output.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
|
||||
self.State_output.setUndoRedoEnabled(True)
|
||||
self.State_output.setTextInteractionFlags(QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
|
||||
@@ -876,7 +880,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.About_widget.setFont(font)
|
||||
self.About_widget.setStyleSheet("background-color:rgba(255, 255, 255,255);")
|
||||
self.About_widget.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.About_widget.setObjectName("About_widget")
|
||||
self.About_Back = QtWidgets.QPushButton(self.About_widget)
|
||||
self.About_Back.setGeometry(QtCore.QRect(20, 10, 101, 41))
|
||||
@@ -891,17 +895,7 @@ class Ui_MainWindow(object):
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.About_Back.setFont(font)
|
||||
self.About_Back.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.About_Back.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" color:rgba(60,60,60,200);\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" color:rgba(60,60,60,255);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.About_Back.setStyleSheet("QPushButton{border:none; background-color:rgba(0,0,0,0); color:rgba(60,60,60,200);} QPushButton:hover{ color:rgba(60,60,60,255);}")
|
||||
icon5 = QtGui.QIcon()
|
||||
icon5.addPixmap(QtGui.QPixmap(":/icon/Back.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.About_Back.setIcon(icon5)
|
||||
@@ -1026,7 +1020,13 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
self.License_terms.setFont(font)
|
||||
self.License_terms.setStyleSheet("")
|
||||
self.License_terms.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
||||
self.License_terms.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
|
||||
self.License_terms.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
|
||||
self.License_terms.setTabChangesFocus(False)
|
||||
self.License_terms.setLineWrapColumnOrWidth(0)
|
||||
self.License_terms.setReadOnly(True)
|
||||
self.License_terms.setOverwriteMode(False)
|
||||
self.License_terms.setObjectName("License_terms")
|
||||
self.License_terms_title = QtWidgets.QLabel(self.About_widget)
|
||||
self.License_terms_title.setGeometry(QtCore.QRect(45, 260, 581, 31))
|
||||
@@ -1046,10 +1046,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Window_widget.setFont(font)
|
||||
self.Window_widget.setStyleSheet("QWidget#Window_widget\n"
|
||||
"{\n"
|
||||
"background-color:rgb(240, 240, 240);\n"
|
||||
"}")
|
||||
self.Window_widget.setStyleSheet("background-color: rgb(240, 240, 240);")
|
||||
self.Window_widget.setObjectName("Window_widget")
|
||||
self.Close_Button = QtWidgets.QPushButton(self.Window_widget)
|
||||
self.Close_Button.setGeometry(QtCore.QRect(790, 5, 31, 31))
|
||||
@@ -1172,7 +1169,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Process_widget.setFont(font)
|
||||
self.Process_widget.setStyleSheet("background-color:rgba(255, 255, 255,240);")
|
||||
self.Process_widget.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.Process_widget.setObjectName("Process_widget")
|
||||
self.Process_Tools_Back = QtWidgets.QPushButton(self.Process_widget)
|
||||
self.Process_Tools_Back.setGeometry(QtCore.QRect(20, 10, 101, 41))
|
||||
@@ -1187,17 +1184,7 @@ class Ui_MainWindow(object):
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Process_Tools_Back.setFont(font)
|
||||
self.Process_Tools_Back.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.Process_Tools_Back.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" color:rgba(60,60,60,200);\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" color:rgba(60,60,60,255);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Process_Tools_Back.setStyleSheet("QPushButton{border:none; background-color:rgba(0,0,0,0); color:rgba(60,60,60,200);} QPushButton:hover{ color:rgba(60,60,60,255);}")
|
||||
self.Process_Tools_Back.setIcon(icon5)
|
||||
self.Process_Tools_Back.setIconSize(QtCore.QSize(20, 20))
|
||||
self.Process_Tools_Back.setCheckable(False)
|
||||
@@ -1265,7 +1252,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Tools_widget.setFont(font)
|
||||
self.Tools_widget.setStyleSheet("background-color:rgba(255, 255, 255,240);")
|
||||
self.Tools_widget.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.Tools_widget.setObjectName("Tools_widget")
|
||||
self.More_Tools_Back_Button = QtWidgets.QPushButton(self.Tools_widget)
|
||||
self.More_Tools_Back_Button.setGeometry(QtCore.QRect(20, 10, 101, 41))
|
||||
@@ -1280,13 +1267,7 @@ class Ui_MainWindow(object):
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.More_Tools_Back_Button.setFont(font)
|
||||
self.More_Tools_Back_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.More_Tools_Back_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" color:rgba(60,60,60,200);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.More_Tools_Back_Button.setStyleSheet("QPushButton{border:none; background-color:rgba(0,0,0,0); color:rgba(60,60,60,200);} QPushButton:hover{ color:rgba(60,60,60,255);}")
|
||||
self.More_Tools_Back_Button.setIconSize(QtCore.QSize(20, 20))
|
||||
self.More_Tools_Back_Button.setCheckable(False)
|
||||
self.More_Tools_Back_Button.setObjectName("More_Tools_Back_Button")
|
||||
@@ -1312,17 +1293,18 @@ class Ui_MainWindow(object):
|
||||
self.System_Process_Manage_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,70);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.System_Process_Manage_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.System_Process_Manage_Button.setCheckable(False)
|
||||
self.System_Process_Manage_Button.setObjectName("System_Process_Manage_Button")
|
||||
@@ -1342,17 +1324,18 @@ class Ui_MainWindow(object):
|
||||
self.Clean_System_Files_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,70);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Clean_System_Files_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Clean_System_Files_Button.setCheckable(False)
|
||||
self.Clean_System_Files_Button.setObjectName("Clean_System_Files_Button")
|
||||
@@ -1372,17 +1355,18 @@ class Ui_MainWindow(object):
|
||||
self.Repair_System_Files_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,70);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Repair_System_Files_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Repair_System_Files_Button.setCheckable(False)
|
||||
self.Repair_System_Files_Button.setObjectName("Repair_System_Files_Button")
|
||||
@@ -1402,17 +1386,18 @@ class Ui_MainWindow(object):
|
||||
self.Repair_System_Network_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,70);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Repair_System_Network_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Repair_System_Network_Button.setCheckable(False)
|
||||
self.Repair_System_Network_Button.setObjectName("Repair_System_Network_Button")
|
||||
@@ -1432,25 +1417,22 @@ class Ui_MainWindow(object):
|
||||
self.Window_Block_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"QPushButton:pressed\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,70);\n"
|
||||
"}")
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Window_Block_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Window_Block_Button.setCheckable(False)
|
||||
self.Window_Block_Button.setObjectName("Window_Block_Button")
|
||||
self.System_verticalLayout.addWidget(self.Window_Block_Button)
|
||||
self.widget_2 = QtWidgets.QWidget(self.widget)
|
||||
self.widget_2.setGeometry(QtCore.QRect(170, 50, 671, 481))
|
||||
self.widget_2.setStyleSheet("background-color:rgb(255, 255, 255);")
|
||||
self.widget_2.setObjectName("widget_2")
|
||||
self.Setting_widget = QtWidgets.QWidget(self.widget)
|
||||
self.Setting_widget.setGeometry(QtCore.QRect(10, 50, 831, 481))
|
||||
font = QtGui.QFont()
|
||||
@@ -1458,7 +1440,7 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Setting_widget.setFont(font)
|
||||
self.Setting_widget.setStyleSheet("background-color:rgba(255, 255, 255,255);")
|
||||
self.Setting_widget.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.Setting_widget.setObjectName("Setting_widget")
|
||||
self.Show_high_sensitivity = QtWidgets.QWidget(self.Setting_widget)
|
||||
self.Show_high_sensitivity.setGeometry(QtCore.QRect(30, 50, 781, 81))
|
||||
@@ -1505,13 +1487,14 @@ class Ui_MainWindow(object):
|
||||
self.high_sensitivity_switch_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.high_sensitivity_switch_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.high_sensitivity_switch_Button.setCheckable(False)
|
||||
self.high_sensitivity_switch_Button.setObjectName("high_sensitivity_switch_Button")
|
||||
@@ -1559,6 +1542,14 @@ class Ui_MainWindow(object):
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
|
||||
self.gridLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.Language_English = QtWidgets.QRadioButton(self.gridLayoutWidget)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Language_English.setFont(font)
|
||||
self.Language_English.setObjectName("Language_English")
|
||||
self.gridLayout.addWidget(self.Language_English, 1, 2, 1, 1)
|
||||
self.Language_Traditional_Chinese = QtWidgets.QRadioButton(self.gridLayoutWidget)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
@@ -1575,75 +1566,68 @@ class Ui_MainWindow(object):
|
||||
self.Language_Simplified_Chinese.setFont(font)
|
||||
self.Language_Simplified_Chinese.setObjectName("Language_Simplified_Chinese")
|
||||
self.gridLayout.addWidget(self.Language_Simplified_Chinese, 1, 1, 1, 1)
|
||||
self.Language_English = QtWidgets.QRadioButton(self.gridLayoutWidget)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Language_English.setFont(font)
|
||||
self.Language_English.setObjectName("Language_English")
|
||||
self.gridLayout.addWidget(self.Language_English, 1, 2, 1, 1)
|
||||
self.Language_illustrate.raise_()
|
||||
self.Language_Choose_widget.raise_()
|
||||
self.Language_title.raise_()
|
||||
self.Show_cloud_services = QtWidgets.QWidget(self.Setting_widget)
|
||||
self.Show_cloud_services.setGeometry(QtCore.QRect(30, 130, 781, 81))
|
||||
self.Show_cloud_services.setAcceptDrops(False)
|
||||
self.Show_cloud_services.setAutoFillBackground(False)
|
||||
self.Show_cloud_services.setObjectName("Show_cloud_services")
|
||||
self.cloud_services_title = QtWidgets.QLabel(self.Show_cloud_services)
|
||||
self.cloud_services_title.setGeometry(QtCore.QRect(20, 10, 451, 31))
|
||||
self.Show_extension_kit = QtWidgets.QWidget(self.Setting_widget)
|
||||
self.Show_extension_kit.setGeometry(QtCore.QRect(30, 130, 781, 81))
|
||||
self.Show_extension_kit.setAcceptDrops(False)
|
||||
self.Show_extension_kit.setAutoFillBackground(False)
|
||||
self.Show_extension_kit.setObjectName("Show_extension_kit")
|
||||
self.extension_kit_title = QtWidgets.QLabel(self.Show_extension_kit)
|
||||
self.extension_kit_title.setGeometry(QtCore.QRect(20, 10, 451, 31))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(17)
|
||||
font.setBold(False)
|
||||
font.setWeight(50)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.cloud_services_title.setFont(font)
|
||||
self.cloud_services_title.setStyleSheet("color: rgb(70,70,70);")
|
||||
self.cloud_services_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.cloud_services_title.setObjectName("cloud_services_title")
|
||||
self.cloud_services_illustrate = QtWidgets.QLabel(self.Show_cloud_services)
|
||||
self.cloud_services_illustrate.setGeometry(QtCore.QRect(20, 40, 451, 31))
|
||||
self.extension_kit_title.setFont(font)
|
||||
self.extension_kit_title.setStyleSheet("color: rgb(70,70,70);")
|
||||
self.extension_kit_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.extension_kit_title.setObjectName("extension_kit_title")
|
||||
self.extension_kit_illustrate = QtWidgets.QLabel(self.Show_extension_kit)
|
||||
self.extension_kit_illustrate.setGeometry(QtCore.QRect(20, 40, 451, 31))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.cloud_services_illustrate.setFont(font)
|
||||
self.cloud_services_illustrate.setStyleSheet("color: rgb(70,70,70);")
|
||||
self.cloud_services_illustrate.setScaledContents(False)
|
||||
self.cloud_services_illustrate.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.cloud_services_illustrate.setWordWrap(True)
|
||||
self.cloud_services_illustrate.setObjectName("cloud_services_illustrate")
|
||||
self.cloud_services_switch_Button = QtWidgets.QPushButton(self.Show_cloud_services)
|
||||
self.cloud_services_switch_Button.setGeometry(QtCore.QRect(660, 20, 91, 31))
|
||||
self.extension_kit_illustrate.setFont(font)
|
||||
self.extension_kit_illustrate.setStyleSheet("color: rgb(70,70,70);")
|
||||
self.extension_kit_illustrate.setScaledContents(False)
|
||||
self.extension_kit_illustrate.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.extension_kit_illustrate.setWordWrap(True)
|
||||
self.extension_kit_illustrate.setObjectName("extension_kit_illustrate")
|
||||
self.extension_kit_switch_Button = QtWidgets.QPushButton(self.Show_extension_kit)
|
||||
self.extension_kit_switch_Button.setGeometry(QtCore.QRect(660, 20, 91, 31))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.cloud_services_switch_Button.sizePolicy().hasHeightForWidth())
|
||||
self.cloud_services_switch_Button.setSizePolicy(sizePolicy)
|
||||
sizePolicy.setHeightForWidth(self.extension_kit_switch_Button.sizePolicy().hasHeightForWidth())
|
||||
self.extension_kit_switch_Button.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.cloud_services_switch_Button.setFont(font)
|
||||
self.cloud_services_switch_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.cloud_services_switch_Button.setStyleSheet("QPushButton\n"
|
||||
self.extension_kit_switch_Button.setFont(font)
|
||||
self.extension_kit_switch_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.extension_kit_switch_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
self.cloud_services_switch_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.cloud_services_switch_Button.setCheckable(False)
|
||||
self.cloud_services_switch_Button.setObjectName("cloud_services_switch_Button")
|
||||
self.cloud_services_illustrate.raise_()
|
||||
self.cloud_services_switch_Button.raise_()
|
||||
self.cloud_services_title.raise_()
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.extension_kit_switch_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.extension_kit_switch_Button.setCheckable(False)
|
||||
self.extension_kit_switch_Button.setObjectName("extension_kit_switch_Button")
|
||||
self.extension_kit_illustrate.raise_()
|
||||
self.extension_kit_switch_Button.raise_()
|
||||
self.extension_kit_title.raise_()
|
||||
self.Setting_Back = QtWidgets.QPushButton(self.Setting_widget)
|
||||
self.Setting_Back.setGeometry(QtCore.QRect(25, 10, 101, 41))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
@@ -1657,17 +1641,7 @@ class Ui_MainWindow(object):
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Setting_Back.setFont(font)
|
||||
self.Setting_Back.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.Setting_Back.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(0,0,0,0);\n"
|
||||
" color:rgba(60,60,60,200);\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" color:rgba(60,60,60,255);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Setting_Back.setStyleSheet("QPushButton{border:none; background-color:rgba(0,0,0,0); color:rgba(60,60,60,200);} QPushButton:hover{ color:rgba(60,60,60,255);}")
|
||||
self.Setting_Back.setIcon(icon5)
|
||||
self.Setting_Back.setIconSize(QtCore.QSize(20, 20))
|
||||
self.Setting_Back.setCheckable(False)
|
||||
@@ -1717,13 +1691,14 @@ class Ui_MainWindow(object):
|
||||
self.Add_White_list_Button.setStyleSheet("QPushButton\n"
|
||||
"{\n"
|
||||
" border:none;\n"
|
||||
" background-color:rgba(20,20,20,30);\n"
|
||||
" border-radius: 15px;\n"
|
||||
" background-color:rgb(230,230,230);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"QPushButton:hover\n"
|
||||
"{\n"
|
||||
" background-color:rgba(20,20,20,50);\n"
|
||||
"}")
|
||||
" background-color:rgb(220,220,220);\n"
|
||||
"}\n"
|
||||
"")
|
||||
self.Add_White_list_Button.setIconSize(QtCore.QSize(16, 16))
|
||||
self.Add_White_list_Button.setCheckable(False)
|
||||
self.Add_White_list_Button.setObjectName("Add_White_list_Button")
|
||||
@@ -1769,22 +1744,6 @@ class Ui_MainWindow(object):
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
|
||||
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.Theme_Black = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Theme_Black.setFont(font)
|
||||
self.Theme_Black.setObjectName("Theme_Black")
|
||||
self.gridLayout_2.addWidget(self.Theme_Black, 1, 1, 1, 1)
|
||||
self.Theme_White = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Theme_White.setFont(font)
|
||||
self.Theme_White.setObjectName("Theme_White")
|
||||
self.gridLayout_2.addWidget(self.Theme_White, 1, 0, 1, 1)
|
||||
self.Theme_Yellow = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
@@ -1793,13 +1752,37 @@ class Ui_MainWindow(object):
|
||||
self.Theme_Yellow.setFont(font)
|
||||
self.Theme_Yellow.setObjectName("Theme_Yellow")
|
||||
self.gridLayout_2.addWidget(self.Theme_Yellow, 1, 2, 1, 1)
|
||||
self.Theme_Green = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
self.Theme_Green.setFont(font)
|
||||
self.Theme_Green.setObjectName("Theme_Green")
|
||||
self.gridLayout_2.addWidget(self.Theme_Green, 2, 0, 1, 1)
|
||||
self.Theme_Blue = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Theme_Blue.setFont(font)
|
||||
self.Theme_Blue.setObjectName("Theme_Blue")
|
||||
self.gridLayout_2.addWidget(self.Theme_Blue, 2, 0, 1, 1)
|
||||
self.gridLayout_2.addWidget(self.Theme_Blue, 2, 1, 1, 1)
|
||||
self.Theme_Customize = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Theme_Customize.setFont(font)
|
||||
self.Theme_Customize.setObjectName("Theme_Customize")
|
||||
self.gridLayout_2.addWidget(self.Theme_Customize, 2, 2, 1, 1)
|
||||
self.Theme_White = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Theme_White.setFont(font)
|
||||
self.Theme_White.setObjectName("Theme_White")
|
||||
self.gridLayout_2.addWidget(self.Theme_White, 1, 0, 1, 1)
|
||||
self.Theme_Red = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
@@ -1807,27 +1790,23 @@ class Ui_MainWindow(object):
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Theme_Red.setFont(font)
|
||||
self.Theme_Red.setObjectName("Theme_Red")
|
||||
self.gridLayout_2.addWidget(self.Theme_Red, 2, 1, 1, 1)
|
||||
self.Theme_Green = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Microsoft YaHei")
|
||||
font.setPointSize(11)
|
||||
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
||||
self.Theme_Green.setFont(font)
|
||||
self.Theme_Green.setObjectName("Theme_Green")
|
||||
self.gridLayout_2.addWidget(self.Theme_Green, 2, 2, 1, 1)
|
||||
self.gridLayout_2.addWidget(self.Theme_Red, 1, 1, 1, 1)
|
||||
self.Theme_illustrate.raise_()
|
||||
self.Language_Choose_widget_2.raise_()
|
||||
self.Theme_title.raise_()
|
||||
self.Protection_widget.raise_()
|
||||
self.Setting_widget.raise_()
|
||||
self.About_widget.raise_()
|
||||
self.Tools_widget.raise_()
|
||||
self.widget_2 = QtWidgets.QWidget(self.widget)
|
||||
self.widget_2.setGeometry(QtCore.QRect(170, 50, 671, 481))
|
||||
self.widget_2.setStyleSheet("background-color: rgb(255, 255, 255);")
|
||||
self.widget_2.setObjectName("widget_2")
|
||||
self.widget_2.raise_()
|
||||
self.Setting_widget.raise_()
|
||||
self.Tools_widget.raise_()
|
||||
self.Process_widget.raise_()
|
||||
self.Virus_Scan_widget.raise_()
|
||||
self.About_widget.raise_()
|
||||
self.Protection_widget.raise_()
|
||||
self.Window_widget.raise_()
|
||||
self.Navigation_Bar.raise_()
|
||||
self.Virus_Scan_widget.raise_()
|
||||
self.State_widget.raise_()
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
|
||||
@@ -1873,16 +1852,21 @@ class Ui_MainWindow(object):
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
|
||||
self.State_log.setText(_translate("MainWindow", "日誌:"))
|
||||
self.About_Back.setText(_translate("MainWindow", "返回"))
|
||||
self.PYAS_Version.setText(_translate("MainWindow", "PYAS v2.3.5"))
|
||||
self.PYAS_Version.setText(_translate("MainWindow", "PYAS V0.0.0 (0000-00-00)"))
|
||||
self.GUI_Made_title.setText(_translate("MainWindow", "介面製作:"))
|
||||
self.GUI_Made_Name.setText(_translate("MainWindow", "mtkiao129#3921"))
|
||||
self.GUI_Made_Name.setText(_translate("MainWindow", "mtkiao"))
|
||||
self.Core_Made_title.setText(_translate("MainWindow", "核心製作:"))
|
||||
self.Core_Made_Name.setText(_translate("MainWindow", "PYAS_Dev#0629"))
|
||||
self.Core_Made_Name.setText(_translate("MainWindow", "87owo"))
|
||||
self.Testers_title.setText(_translate("MainWindow", "測試人員:"))
|
||||
self.Testers_Name.setText(_translate("MainWindow", "PYAS_Dev#0629"))
|
||||
self.Testers_Name.setText(_translate("MainWindow", "87owo"))
|
||||
self.PYAS_URL_title.setText(_translate("MainWindow", "官方網站:"))
|
||||
self.PYAS_URL.setText(_translate("MainWindow", "<html><head/><body><p><a href=\"https://xiaomi69ai.wixsite.com/pyas\"><span style=\" text-decoration: underline; color:#0000ff;\">https://xiaomi69ai.wixsite.com/pyas</span></a></p></body></html>"))
|
||||
self.PYAS_CopyRight.setText(_translate("MainWindow", "Copyright© 2020-2022 PYAS Security"))
|
||||
self.PYAS_URL.setText(_translate("MainWindow", "<html><head/><body><p><a href=\"https://github.com/87owo/PYAS\"><span style=\" text-decoration: underline; color:#000000;\">https://github.com/87owo/PYAS</span></a></p></body></html>"))
|
||||
self.PYAS_CopyRight.setText(_translate("MainWindow", "Copyright© 0000-9999 PYAS Security"))
|
||||
self.License_terms.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:11pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
|
||||
self.License_terms_title.setText(_translate("MainWindow", "許可條款:"))
|
||||
self.Window_title.setText(_translate("MainWindow", "PYAS V0.0.0"))
|
||||
self.Process_Tools_Back.setText(_translate("MainWindow", "返回"))
|
||||
@@ -1896,26 +1880,26 @@ class Ui_MainWindow(object):
|
||||
self.high_sensitivity_title.setText(_translate("MainWindow", "高靈敏度模式"))
|
||||
self.high_sensitivity_illustrate.setText(_translate("MainWindow", "啟用此選項可以提高引擎的靈敏度"))
|
||||
self.high_sensitivity_switch_Button.setText(_translate("MainWindow", "已關閉"))
|
||||
self.Language_title.setText(_translate("MainWindow", "語言"))
|
||||
self.Language_title.setText(_translate("MainWindow", "顯示語言"))
|
||||
self.Language_illustrate.setText(_translate("MainWindow", "請選擇語言"))
|
||||
self.Language_English.setText(_translate("MainWindow", "English"))
|
||||
self.Language_Traditional_Chinese.setText(_translate("MainWindow", "繁體中文"))
|
||||
self.Language_Simplified_Chinese.setText(_translate("MainWindow", "简体中文"))
|
||||
self.Language_English.setText(_translate("MainWindow", "English"))
|
||||
self.cloud_services_title.setText(_translate("MainWindow", "高靈敏度模式"))
|
||||
self.cloud_services_illustrate.setText(_translate("MainWindow", "啟用此選項可以提高引擎的靈敏度"))
|
||||
self.cloud_services_switch_Button.setText(_translate("MainWindow", "已關閉"))
|
||||
self.extension_kit_title.setText(_translate("MainWindow", "雲端掃描服務"))
|
||||
self.extension_kit_illustrate.setText(_translate("MainWindow", "啟用此選項可以連接雲端掃描服務"))
|
||||
self.extension_kit_switch_Button.setText(_translate("MainWindow", "已關閉"))
|
||||
self.Setting_Back.setText(_translate("MainWindow", "返回"))
|
||||
self.Add_White_list_title.setText(_translate("MainWindow", "高靈敏度模式"))
|
||||
self.Add_White_list_illustrate.setText(_translate("MainWindow", "啟用此選項可以提高引擎的靈敏度"))
|
||||
self.Add_White_list_title.setText(_translate("MainWindow", "增加到白名單"))
|
||||
self.Add_White_list_illustrate.setText(_translate("MainWindow", "此選項可以選擇檔案並增加到白名單"))
|
||||
self.Add_White_list_Button.setText(_translate("MainWindow", "已關閉"))
|
||||
self.Theme_title.setText(_translate("MainWindow", "顯色主題"))
|
||||
self.Theme_illustrate.setText(_translate("MainWindow", "請選擇主題"))
|
||||
self.Theme_Black.setText(_translate("MainWindow", "黑色主題"))
|
||||
self.Theme_White.setText(_translate("MainWindow", "白色主題"))
|
||||
self.Theme_Yellow.setText(_translate("MainWindow", "粉色主題"))
|
||||
self.Theme_Blue.setText(_translate("MainWindow", "藍色主題"))
|
||||
self.Theme_Red.setText(_translate("MainWindow", "紅色主題"))
|
||||
self.Theme_Yellow.setText(_translate("MainWindow", "黃色主題"))
|
||||
self.Theme_Green.setText(_translate("MainWindow", "綠色主題"))
|
||||
self.Theme_Blue.setText(_translate("MainWindow", "藍色主題"))
|
||||
self.Theme_Customize.setText(_translate("MainWindow", "自訂主題"))
|
||||
self.Theme_White.setText(_translate("MainWindow", "白色主題"))
|
||||
self.Theme_Red.setText(_translate("MainWindow", "紅色主題"))
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
|
||||
+60
-53
@@ -1,53 +1,60 @@
|
||||
translate_dict = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"已開啟","Off":"已關閉"},
|
||||
"zh_CN": {"已開啟":"已开启","已關閉":"已关闭","On":"已开启","Off":"已关闭",
|
||||
"軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于",
|
||||
"錯誤":"错误","實時":"实时","發現":"发现","關閉":"关闭","裝置":"设备",
|
||||
"總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络",
|
||||
"位元":"字节","彈窗":"弹窗","靈敏":"敏感","誤報":"误报","複製":"复制",
|
||||
"訊":"讯","項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保",
|
||||
"鑰":"钥","當":"当","後":"后","護":"护","導":"导","區":"区","復":"复",
|
||||
"攔":"拦","請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选",
|
||||
"啟":"启","監":"监","並":"并","徑":"径","盤":"盘","隱":"隐","動":"动",
|
||||
"狀":"状","誌":"志","這":"这","會":"会","題":"题","擇":"择","語":"语",
|
||||
"無":"无","顯":"显","變":"变","戶":"户","碼":"码","雲":"云","訂":"订",
|
||||
"稱":"称","類":"类","輸":"输","執":"执","數":"数","尋":"寻","網":"网",
|
||||
"詢":"询","製":"制","員":"员","許":"许","條":"条","藍":"蓝","紅":"红",
|
||||
"綠":"绿","態":"态","務":"务","連":"连","檢":"检","測":"测","關":"关",
|
||||
"強":"强","驅":"驱","為":"为","腳":"脚","增":"增","單":"单","開":"开",
|
||||
"惡":"恶",},
|
||||
"en_US": {"已開啟":"On","已關閉":"Off","已开启":"On","已关闭":"Off",",":", ",
|
||||
"立即刪除":"Delete Now","安全模式":"Safe Mode","官方網站":"Website",
|
||||
"惡意檔案":"Virus ","惡意軟體":"Malware ","勒索軟體":"Ransom ",
|
||||
"惡意腳本":"Script ","惡意行為":"Behavior ","可疑軟體":"Suspicious ",
|
||||
"許可條款":"License Terms","惡意":"Malicious","可疑":"Suspicious",
|
||||
"啟用":"Enable ","禁用":"Disable ","正在初始化中":"Initializing ",
|
||||
"正在掃描":"Scanning ","正在刪除":"Deleting ","最小化到":"Minimize To ",
|
||||
"確定要":"Sure Want To ","靈敏度":"Sensitivity ","更新":"Update",
|
||||
"白色主題":"White","黑色主題":"Black","黃色主題":"Yellow","紅色主題":"Red",
|
||||
"藍色主題":"Blue","綠色主題":"Green","語言":"Language ","製作":"Make",
|
||||
"測試人員":"Testers","版本資訊":"Information","通訊":"Communication ",
|
||||
"註冊表":"Registry ","退出":"Quit ","檔案":"File ","當前":"Currently ",
|
||||
"狀態":"State ","掃描":"Scan ","工具":"Tools ","防護":"Protect ",
|
||||
"失敗":"Failed ","請":"Please ","路徑":"Path ","方式":"Method ",
|
||||
"需要":"Need ","病毒":"Virus ","選擇":"Select ","返回":"Back",
|
||||
"受到":"Been ","錯誤":"Error","完成":"Complete ","引擎":"Engine ",
|
||||
"托盤":"Tray ","圖標":"Icon ","不安全":"Unsafe","增強":"Enhanced ",
|
||||
"系統":"System ","雲端":"Cloud ","重啟":"Reboot ","修復":"Repair ",
|
||||
"裝置":"Device ","發現":"Found ","成功":"Success ","清理":"Cleanup ",
|
||||
"確定":"OK","執行":"Execute ","警告":"Warning ","使用":"Use ",
|
||||
"網路":"Network ","變更":"Change ","總數":"Total","結束":"End ",
|
||||
"選項":"Options ","監控":"Monitor ","連接":"Connect ","可以":"To ",
|
||||
"進程":"Process ","攔截":"Block ","引導":"Boot ","刪除":"Delete ",
|
||||
"分區":"Partition ","設定":"Settings","關於":"About","模式":"Mode ",
|
||||
"提高":"Improve ","安全":"Security ","顯色":"Color ","主題":"Themes ",
|
||||
"風險":"Risk ","介面":"GUI ","核心":"Core ","服務":"Services ",
|
||||
"管理":"Manage","所有":"All ","全盤":"Full ","取消":"Cancel ",
|
||||
"垃圾":"Junk ","位元":"byte ","本機":"Computer ","停止":"Stop ",
|
||||
"增加到":"Add File To ","白名單":"White List ","軟體":"Software ",
|
||||
"增加":"Add","移除":"Delete","項目":"Items ","生成":"Create ","稱":"",
|
||||
"開啟":"Open ","您":"You ","此":"This ","並":"And ","未":"Not ",
|
||||
"高":"High ","新":"New ","和":"And ","可能會":"Possible ","會":"Can ",
|
||||
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Drive ",
|
||||
"的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","立即":"",
|
||||
"密鑰":"Key ","檢測":"Detect ","誤報":"False Positive "," ":" ",
|
||||
"複製":"Copy "}}
|
||||
translate_dict = {
|
||||
"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"已開啟","Off":"已關閉"},
|
||||
"zh_CN": {"已開啟":"已开启","已關閉":"已关闭","On":"已开启","Off":"已关闭",
|
||||
"軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于",
|
||||
"錯誤":"错误","實時":"实时","發現":"发现","關閉":"关闭","裝置":"设备",
|
||||
"總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络",
|
||||
"位元":"字节","彈窗":"弹窗","靈敏":"敏感","複製":"复制","開啟":"开启",
|
||||
"訊":"讯","項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保",
|
||||
"鑰":"钥","當":"当","後":"后","護":"护","導":"导","區":"区","復":"复",
|
||||
"攔":"拦","請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选",
|
||||
"啟":"启","監":"监","並":"并","徑":"径","盤":"盘","隱":"隐","動":"动",
|
||||
"狀":"状","誌":"志","這":"这","會":"会","題":"题","擇":"择","語":"语",
|
||||
"無":"无","顯":"显","變":"变","戶":"户","碼":"码","雲":"云","介":"界",
|
||||
"稱":"称","類":"类","輸":"输","執":"执","數":"数","尋":"寻","網":"网",
|
||||
"詢":"询","製":"制","員":"员","許":"许","條":"条","藍":"蓝","紅":"红",
|
||||
"綠":"绿","態":"态","務":"务","連":"连","檢":"检","測":"测","關":"关",
|
||||
"強":"强","驅":"驱","為":"为","腳":"脚","單":"单","開":"开","擴":"扩",
|
||||
"惡":"恶","據":"据","庫":"库","經":"经","敗":"败","謝":"谢","別":"别",
|
||||
"載":"载","誤":"误","報":"报","鏈":"链","竄":"窜","蹤":"踪","記憶體":"内存",},
|
||||
"en_US": {"已開啟":"On","已關閉":"Off","已开启":"On","已关闭":"Off",",":", ",
|
||||
"立即刪除":"Delete Now","安全模式":"Safe Mode","官方網站":"Website ",
|
||||
"腳本":"Script ","鏈式":"Chain ","記憶體":"Memory ","加載":"Load ",
|
||||
"行為":"Behavior ","可疑":"Suspicious ","勒索":"Ransom ",
|
||||
"許可條款":"License Terms ","惡意":"Malicious","可疑":"Suspicious",
|
||||
"啟用":"Enable ","禁用":"Disable ","正在初始化中":"Initializing ",
|
||||
"正在掃描":"Scanning ","正在刪除":"Deleting ","正在追蹤":"Tracking ",
|
||||
"最小化到":"Minimize To ","靈敏度":"Sensitivity ","正在檢查":"Checking ",
|
||||
"確定要":"Sure Want To ","引擎靈敏度":"Sensitivity ","更新":"Update ",
|
||||
"白色主題":"White","黃色主題":"Yellow","紅色主題":"Red","語言":"Language ",
|
||||
"藍色主題":"Blue","綠色主題":"Green","自定主題":"Custom","最新":"Latest ",
|
||||
"特別感謝":"Contributors ","版本資訊":"Information","通訊":"Connect ",
|
||||
"註冊表":"Registry ","退出":"Quit ","檔案":"File ","當前":"Currently ",
|
||||
"狀態":"State ","掃描":"Scan ","工具":"Tools ","防護":"Protect ",
|
||||
"失敗":"Failed ","請":"Please ","路徑":"Path ","方式":"Method ",
|
||||
"需要":"Need ","病毒":"Virus ","選擇":"Select ","返回":"Back",
|
||||
"受到":"Been ","錯誤":"Error","完成":"Complete ","引擎":"Engine ",
|
||||
"托盤":"Tray ","圖標":"Icon ","不安全":"Unsafe","增強":"Enhance ",
|
||||
"系統":"System ","雲端":"Cloud ","重啟":"Reboot ","修復":"Repair ",
|
||||
"裝置":"Device ","發現":"Found ","成功":"Success ","清理":"Cleanup ",
|
||||
"確定":"OK","執行":"Execute ","警告":"Warning ","使用":"Use ",
|
||||
"網路":"Network ","變更":"Change ","總數":"Total","結束":"End ",
|
||||
"選項":"Options ","監控":"Monitor ","連接":"Connect ","可以":"To ",
|
||||
"進程":"Process ","攔截":"Block ","引導":"Boot ","刪除":"Delete ",
|
||||
"分區":"Partition ","設定":"Settings","關於":"About","模式":"Mode ",
|
||||
"提高":"Improve ","安全":"Security ","顯色":"Color ","主題":"Themes ",
|
||||
"風險":"Risk ","介面":"GUI ","核心":"Core ","服務":"Services ",
|
||||
"管理":"Manage","所有":"All ","您":"You ","取消":"Cancel ","未":"Not ",
|
||||
"垃圾":"Junk ","位元":"byte ","本機":"Computer ","停止":"Stop ",
|
||||
"增加到":"Add To ","白名單":"White List ","軟體":"Software ","正在":"",
|
||||
"增加":"Add ","移除":"Delete","項目":"Items ","生成":"Create ","稱":"",
|
||||
"複製":"Copy ","開啟":"Open ","此":"This ","並":"And ","全盤":"Full ",
|
||||
"已經在":"Already ","數據庫":"Database ","誤報":"False Positive ",
|
||||
"高":"High ","新":"New ","和":"And ","可能會":"Possible ","會":"Can ",
|
||||
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Driver ",
|
||||
"的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","立即":"",
|
||||
"密鑰":"Key ","檢測":"Detect ","製作":"Maker ","運行":"Running",
|
||||
"擴展":"Extension ","套件":"Kit ","自動":"Auto ","上報":"Report ",
|
||||
"分析":"Analysis ","自身":"Self ","其他":"Other ","配置":"Config ",
|
||||
"丟失":"Lost ","網站":"Website ","不兼容":"Not Compatible ",
|
||||
"竄改":"Tamper ","第三方":"Other ","與":"With "," ":" "}}
|
||||
+5649
-6472
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,12 @@
|
||||
slist = [".exe",".dll",".sys",".com",".scr",
|
||||
".bat",".ps1",".vbs",".cmd",".js"]
|
||||
|
||||
alist = [".exe",".dll",".sys",".com",".scr",
|
||||
".zip",".7z",".rar",".tar",".gz",
|
||||
".js",".bat",".cmd",".ps1",".vbs",
|
||||
".ppt",".pptx",".wps",".txt",".rtf",
|
||||
".pdf",".xls",".xlsx",".doc",".docx",
|
||||
".jpg",".jpeg",".png",".webp",".gif",
|
||||
".mp3",".wav",".aac",".ogg",".flac",
|
||||
".mp4",".avi",".mov",".wmv",".mkv",
|
||||
".aux",".cur",".mui",".ttf",".efi"]
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
import pyinstaller_versionfile
|
||||
|
||||
pyinstaller_versionfile.create_versionfile(
|
||||
output_file="versionfile.txt",
|
||||
version='2.9.2',
|
||||
version='3.2.1',
|
||||
company_name="PYAS Security",
|
||||
file_description="Python Antivirus Software",
|
||||
internal_name="PYAS",
|
||||
|
||||
@@ -1,22 +1,81 @@
|
||||
# PYAS (Python Antivirus Software)
|
||||

|
||||
|
||||

|
||||
|
||||
## Readme Language
|
||||
|
||||
繁體中文 : https://github.com/87owo/PYAS/blob/main/README_zh_TW.md
|
||||
|
||||
简体中文 : https://github.com/87owo/PYAS/blob/main/README_zh_CN.md
|
||||
|
||||
## Requirements
|
||||
|
||||
```
|
||||
pip install psutil==5.9.5
|
||||
pip install pefile==2023.2.7
|
||||
pip install requests==2.31.0
|
||||
pip install pyperclip==1.8.2
|
||||
pip install pywin32==306
|
||||
pip install PyQt5==5.15.9
|
||||
pip install yara-python==4.5.1
|
||||
pip install numpy==2.1.1
|
||||
pip install onnxruntime==1.18.1
|
||||
pip install pillow==10.4.0
|
||||
```
|
||||
|
||||
## File Information
|
||||
|
||||
```
|
||||
PYAS/
|
||||
├── Driver/
|
||||
│ ├── PYAS_Driver.sys -------> Driver Protect (self protection driver for pyas by 0sha0)
|
||||
│ └── ...
|
||||
│
|
||||
├── Model/
|
||||
│ ├── PYAS_Model.json -------> Virus Database (the database must be in the specified dir)
|
||||
│ └── ...
|
||||
│
|
||||
├── Rules/
|
||||
│ ├── Yara_Rules.yar ---------> Yara Rules (yara rules in plain text format)
|
||||
│ ├── Yara_Rules.yrc ---------> Compile Rules (yara rules in compiled format)
|
||||
│ └── ...
|
||||
│
|
||||
├── PYAS.py ---------------------> Main PYAS Program (including animation, scan, protect functions, ...)
|
||||
├── PYAS_Engine.py -------------> Conversion Database (used to transform profiles and forecast data)
|
||||
├── PYAS_Suffixes.py -----------> File Suffixes (including scanned file suffixes and common suffixes)
|
||||
├── PYAS_Interface.py ----------> PyQt5 Interface (use QT designer, must be matched with the main program)
|
||||
├── PYAS_Resource.py -----------> PyQt5 Resource (status pictures, icon packages, button icons, ...)
|
||||
├── PYAS_Language.py -----------> Translate Dict (Traditional Chinese, Simplified Chinese, English)
|
||||
├── PYAS_Version.py ------------> Pyinstaller (file information, version information, original name, ...)
|
||||
└── ...
|
||||
```
|
||||
|
||||
## Official Website
|
||||
https://pyantivirus.wixsite.com/pyas , https://github.com/87owo/PYAS
|
||||
|
||||
## MIT License
|
||||
https://pyantivirus.wixsite.com/pyas
|
||||
|
||||
https://github.com/87owo/PYAS
|
||||
|
||||
## Microsoft Runtime
|
||||
|
||||
https://github.com/87owo/Microsoft_Runtime/releases
|
||||
|
||||
## PYAS Driver
|
||||
|
||||
https://github.com/0sha0/PYAS_Protection
|
||||
|
||||
## MIT license
|
||||
|
||||
https://github.com/87owo/PYAS/blob/main/LICENSE.md
|
||||
|
||||
## Support System
|
||||
Windows 8.1, 10, 11 (64-bit), Ram 1GB, Rom 1GB or higher
|
||||
|
||||
## Requirements
|
||||
psutil==5.9.5, pefile==2023.2.7, requests==2.31.0, pyperclip==1.8.2, pywin32==306, PyQt5==5.15.9
|
||||
Windows 8.1, 10, 11 (64-bit), Ram 500MB, Rom 200MB or higher
|
||||
|
||||
## Import Module
|
||||
os, gc, sys, time, json, psutil, hashlib, pefile, socket, msvcrt, requests, pyperclip, win32file, win32gui, win32api, win32con, xml, PYAS_Scripts, PYAS_Function, PYAS_Extension, PYAS_Language, PYAS_Interface, threading, PyQt5
|
||||
Other systems may experience software malfunctions or crash
|
||||
|
||||
## Special Thanks
|
||||
360, Wix, VirusShare, mtkiao129, LenStevens
|
||||
|
||||
Copyright© 2020~2023 PYAS Security By 87owo
|
||||
Wix, 0sha0, mtkiao129, AV-T Team of LisectGroup
|
||||
|
||||
Copyright© 2020~2024 PYAS Security By 87owo
|
||||
@@ -0,0 +1,75 @@
|
||||
# PYAS (Python 杀毒软件)
|
||||
|
||||

|
||||
|
||||
## 安装要求
|
||||
|
||||
```
|
||||
pip install psutil==5.9.5
|
||||
pip install pefile==2023.2.7
|
||||
pip install requests==2.31.0
|
||||
pip install pyperclip==1.8.2
|
||||
pip install pywin32==306
|
||||
pip install PyQt5==5.15.9
|
||||
pip install yara-python==4.5.1
|
||||
pip install numpy==2.1.1
|
||||
pip install onnxruntime==1.18.1
|
||||
pip install pillow==10.4.0
|
||||
```
|
||||
|
||||
## 文件信息
|
||||
|
||||
```
|
||||
PYAS/
|
||||
├── Driver/
|
||||
│ ├── PYAS_Driver.sys -------> 驱动程序 (0sha0 为 pyas 提供的自我保护驱动程序)
|
||||
│ └── ...
|
||||
│
|
||||
├── Model/
|
||||
│ ├── PYAS_Model.json -------> 病毒数据库 (数据库必须位于指定目录中)
|
||||
│ └── ...
|
||||
│
|
||||
├── Rules/
|
||||
│ ├── Yara_Rules.yar ---------> Yara 规则 (纯文本格式的 yara 规则)
|
||||
│ ├── Yara_Rules.yrc ---------> 编译规则 (编译格式的 yara 规则)
|
||||
│ └── ...
|
||||
│
|
||||
├── PYAS.py ---------------------> PYAS主程序(包含动画、扫描、保护等功能...)
|
||||
├── PYAS_Engine.py -------------> 转换数据库(用于转换剖面图和预报数据)
|
||||
├── PYAS_Suffixes.py -----------> 文件后缀(包含扫描文件后缀和常用后缀)
|
||||
├── PYAS_Interface.py ----------> PyQt5界面(使用QT设计器,需与主程序搭配使用)
|
||||
├── PYAS_Resource.py -----------> PyQt5资源(状态图片、图标包、按钮图标...)
|
||||
├── PYAS_Language.py -----------> 翻译词典(繁体中文、简体中文、英文)
|
||||
├── PYAS_Version.py ------------> 安裝信息(文件信息、版本信息、原名...)
|
||||
└── ...
|
||||
```
|
||||
|
||||
## 官方网页
|
||||
|
||||
https://pyantivirus.wixsite.com/pyas
|
||||
|
||||
https://github.com/87owo/PYAS
|
||||
|
||||
## 微软运行库
|
||||
|
||||
https://github.com/87owo/Microsoft_Runtime/releases
|
||||
|
||||
## 驱动程序
|
||||
|
||||
https://github.com/0sha0/PYAS_Protection
|
||||
|
||||
## 开源协议
|
||||
|
||||
https://github.com/87owo/PYAS/blob/main/LICENSE.md
|
||||
|
||||
## 支援系统
|
||||
|
||||
Windows 8.1, 10, 11 (64-bit), 内存 500MB, 存储 200MB 或更高
|
||||
|
||||
其他系统或版本可能会遇到软体功能故障或程序崩溃
|
||||
|
||||
## 特别感谢
|
||||
|
||||
360, Wix, VirusShare, mtkiao129, AV-T Team of LisectGroup
|
||||
|
||||
Copyright© 2020~2024 PYAS Security By 87owo
|
||||
@@ -0,0 +1,75 @@
|
||||
# PYAS (Python 防毒軟體)
|
||||
|
||||

|
||||
|
||||
## 安裝要求
|
||||
|
||||
```
|
||||
pip install psutil==5.9.5
|
||||
pip install pefile==2023.2.7
|
||||
pip install requests==2.31.0
|
||||
pip install pyperclip==1.8.2
|
||||
pip install pywin32==306
|
||||
pip install PyQt5==5.15.9
|
||||
pip install yara-python==4.5.1
|
||||
pip install numpy==2.1.1
|
||||
pip install onnxruntime==1.18.1
|
||||
pip install pillow==10.4.0
|
||||
```
|
||||
|
||||
## 檔案資訊
|
||||
|
||||
```
|
||||
PYAS/
|
||||
├── Driver/
|
||||
│ ├── PYAS_Driver.sys -------> 驅動程式 (0sha0 為 pyas 提供的自我保護驅動程式)
|
||||
│ └── ...
|
||||
│
|
||||
├── Model/
|
||||
│ ├── PYAS_Model.json -------> 病毒資料庫 (資料庫必須位於指定目錄)
|
||||
│ └── ...
|
||||
│
|
||||
├── Rules/
|
||||
│ ├── Yara_Rules.yar ---------> Yara 規則 (純文字格式的 yara 規則)
|
||||
│ ├── Yara_Rules.yrc ---------> 編譯規則 (編譯格式的 yara 規則)
|
||||
│ └── ...
|
||||
│
|
||||
├── PYAS.py ---------------------> PYAS主程式(包含動畫、掃描、保護等功能...)
|
||||
├── PYAS_Engine.py -------------> 轉換資料庫(用於轉換剖面圖和預報資料)
|
||||
├── PYAS_Suffixes.py -----------> 文件後綴(包含掃描文件後綴和常用後綴)
|
||||
├── PYAS_Interface.py ----------> PyQt5介面(使用QT設計器,需與主程式搭配使用)
|
||||
├── PYAS_Resource.py -----------> PyQt5資源(狀態圖片、圖示包、按鈕圖示...)
|
||||
├── PYAS_Language.py -----------> 翻譯字典(繁體中文、簡體中文、英文)
|
||||
├── PYAS_Version.py ------------> 安裝資訊(檔案資訊、版本資訊、原名...)
|
||||
└── ...
|
||||
```
|
||||
|
||||
## 官方網頁
|
||||
|
||||
https://pyantivirus.wixsite.com/pyas
|
||||
|
||||
https://github.com/87owo/PYAS
|
||||
|
||||
## 微軟運行庫
|
||||
|
||||
https://github.com/87owo/Microsoft_Runtime/releases
|
||||
|
||||
## 驅動程式
|
||||
|
||||
https://github.com/0sha0/PYAS_Protection
|
||||
|
||||
## 開源協議
|
||||
|
||||
https://github.com/87owo/PYAS/blob/main/LICENSE.md
|
||||
|
||||
## 支援系統
|
||||
|
||||
Windows 8.1, 10, 11 (64-bit),記憶體 500MB, 磁碟容量 200MB 或更高
|
||||
|
||||
其他系統或版本可能會遇到軟體功能故障或程序崩潰
|
||||
|
||||
## 特別感謝
|
||||
|
||||
Wix, 0sha0, mtkiao129, AV-T Team of LisectGroup
|
||||
|
||||
Copyright© 2020~2024 PYAS Security By 87owo
|
||||
File diff suppressed because it is too large.
Load diff
+256387
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user