Compare commits

...
286 Commits
Author SHA1 Message Date
PYDT cb7875c320 Add files via upload 2024-01-04 10:08:12 +08:00
PYDT 7960a57fc0 Add files via upload 2024-01-03 23:08:28 +08:00
PYDT a23f693921 Delete PYAS_Function.zip 2024-01-03 22:55:51 +08:00
PYDT c49cb8bc4a Delete PYAS_Compress.py 2024-01-03 22:55:39 +08:00
PYDT 02c425cfc0 Add files via upload 2024-01-03 11:50:11 +08:00
PYDT be96ba0a0e Add files via upload 2024-01-02 11:19:37 +08:00
PYDT df5e00977a Add files via upload 2024-01-02 07:53:56 +08:00
PYDT f055650365 Add files via upload 2024-01-02 07:21:14 +08:00
PYDT b0baddda3b Delete PYAS_Function.7z 2024-01-02 07:20:32 +08:00
PYDT 69359cba05 Delete PYAS_Function_Virus.7z 2024-01-02 00:16:56 +08:00
PYDT 8b0b29e39b Delete PYAS_Function_Safe.7z 2024-01-02 00:16:45 +08:00
PYDT 21ac50667d Add files via upload 2024-01-02 00:16:07 +08:00
PYDT b843a438ba Add files via upload 2024-01-01 03:59:04 +08:00
PYDT 441cc30c0b Add files via upload 2024-01-01 03:42:15 +08:00
PYDT 85adf5dc80 Add files via upload 2023-12-31 20:55:32 +08:00
PYDT 0c48f0981d Delete PYML.py 2023-12-31 17:30:22 +08:00
PYDT 88b646e41c Delete PYAS_Database.7z 2023-12-31 17:30:03 +08:00
PYDT dc4c3e0a99 Add files via upload 2023-12-31 17:29:47 +08:00
PYDT 262f6d55a0 Add files via upload 2023-12-29 11:22:07 +08:00
PYDT 2d68400670 Delete PYAS_Function.7z 2023-12-29 09:42:48 +08:00
PYDT 8acaae3f0d Add files via upload 2023-12-29 09:42:10 +08:00
PYDT a5cb26528f Add files via upload 2023-12-15 08:58:39 +08:00
PYDT ac2520a03f Add files via upload 2023-12-15 08:43:04 +08:00
PYDT 9c15cc7b33 Add files via upload 2023-12-14 22:49:20 +08:00
PYDT c38f460163 Add files via upload 2023-12-14 22:25:15 +08:00
PYDT 9bda8c9e77 Add files via upload 2023-12-14 15:48:01 +08:00
PYDT 558be68bad Add files via upload 2023-12-14 15:25:36 +08:00
PYDT 6b9d27ce9b Add files via upload 2023-12-14 09:57:22 +08:00
PYDT 412745eede Add files via upload 2023-12-14 09:44:59 +08:00
PYDT 91ea771af1 Add files via upload 2023-12-14 07:17:45 +08:00
PYDT 238ab03db3 Add files via upload 2023-12-14 07:16:10 +08:00
PYDT 2d63da193d Add files via upload 2023-12-13 09:31:18 +08:00
PYDT fa4c20a241 Add files via upload 2023-12-12 18:00:47 +08:00
PYDT 6294fc33d1 Add files via upload 2023-12-11 18:17:39 +08:00
PYDT c4cf48a94b Add files via upload 2023-12-11 09:12:24 +08:00
PYDT 2934c7eb57 Add files via upload 2023-12-11 07:53:44 +08:00
PYDT 46ce454105 Add files via upload 2023-12-10 18:02:52 +08:00
PYDT 9ab06a0ea9 Add files via upload 2023-12-10 12:33:37 +08:00
PYDT e6f742380a Add files via upload 2023-12-09 17:43:10 +08:00
PYDT 2686812470 Add files via upload 2023-12-09 17:01:08 +08:00
PYDT cd11b5b7b2 Add files via upload 2023-12-08 21:28:06 +08:00
PYDT aae35dc640 Add files via upload 2023-12-08 18:21:31 +08:00
PYDT f0b669ff85 Add files via upload 2023-12-08 08:18:32 +08:00
PYDT 237605bb9f Add files via upload 2023-12-07 16:17:34 +08:00
PYDT 1778046581 Add files via upload 2023-12-07 09:45:20 +08:00
PYDT ff10adfabb Add files via upload 2023-12-06 14:35:52 +08:00
PYDT 1cb0f8d7ba Add files via upload 2023-12-06 14:29:34 +08:00
PYDT 5813bbdcd1 Add files via upload 2023-12-06 09:52:59 +08:00
PYDT b38e5b177e Add files via upload 2023-12-06 09:08:11 +08:00
PYDT 9d66cf248c Add files via upload 2023-12-06 06:37:25 +08:00
PYDT ebcf90d426 Add files via upload 2023-12-05 15:58:41 +08:00
PYDT 51904db187 Add files via upload 2023-12-05 15:15:21 +08:00
PYDT 4fc8755b8d Add files via upload 2023-12-05 11:27:36 +08:00
PYDT 7afcbfaa26 Add files via upload 2023-12-05 09:16:49 +08:00
PYDT 55cb96d978 Add files via upload 2023-12-05 08:44:24 +08:00
PYDT a1de099974 Add files via upload 2023-12-04 21:24:39 +08:00
PYDT a0238732fe Add files via upload 2023-12-04 19:59:48 +08:00
PYDT 6c100b0679 Add files via upload 2023-12-04 19:25:29 +08:00
PYDT e4d159840f Add files via upload 2023-12-04 19:25:10 +08:00
PYDT 0375b3ff02 Add files via upload 2023-12-04 17:01:02 +08:00
PYDT 746bae5103 Add files via upload 2023-12-04 14:10:23 +08:00
PYDT 70eb2c4500 Add files via upload 2023-12-03 23:18:21 +08:00
PYDT 69175f3ae1 Add files via upload 2023-12-02 20:21:07 +08:00
PYDT ed5fab2c54 Add files via upload 2023-12-01 22:26:39 +08:00
PYDT 1425ff8e6c Add files via upload 2023-12-01 19:43:30 +08:00
PYDT 832ab549a1 Add files via upload 2023-12-01 09:25:11 +08:00
PYDT 4ec1661c26 Add files via upload 2023-12-01 08:26:16 +08:00
PYDT ea27712b62 Add files via upload 2023-12-01 08:25:59 +08:00
PYDT 6f65efe2d8 Add files via upload 2023-11-30 21:11:48 +08:00
PYDT 8edcf60baf Add files via upload 2023-11-30 17:23:46 +08:00
PYDT 74f6aec367 Add files via upload 2023-11-30 16:02:10 +08:00
PYDT 62c65a766a Add files via upload 2023-11-30 15:09:35 +08:00
PYDT acbcaa337e Add files via upload 2023-11-30 08:21:54 +08:00
PYDT f4dbe57244 Add files via upload 2023-11-30 00:07:59 +08:00
PYDT b494c64a2f Add files via upload 2023-11-29 22:28:22 +08:00
PYDT 321e086b95 Add files via upload 2023-11-29 15:12:49 +08:00
PYDT fb60d6b867 Add files via upload 2023-11-29 13:08:38 +08:00
PYDT 8ff2e2074a Delete PYAS_Function_Safe.7z 2023-11-28 18:45:40 +08:00
PYDT 1151a1c43f Add files via upload 2023-11-28 18:45:16 +08:00
PYDT 13bc6cecc4 Add files via upload 2023-11-28 13:29:09 +08:00
PYDT a4ea572458 Add files via upload 2023-11-28 01:02:21 +08:00
PYDT 880df4dee9 Add files via upload 2023-11-27 19:31:39 +08:00
PYDT b75e86dd11 Add files via upload 2023-11-27 18:08:54 +08:00
PYDT 75c84092ae Add files via upload 2023-11-27 12:42:50 +08:00
PYDT c69db97da8 Add files via upload 2023-11-27 12:16:53 +08:00
PYDT 9c2a8892ae Add files via upload 2023-11-27 06:39:02 +08:00
PYDT f92111563c Add files via upload 2023-11-26 22:01:51 +08:00
PYDT 0abb3e78cb Add files via upload 2023-11-26 15:51:40 +08:00
PYDT fb83071419 Add files via upload 2023-11-26 12:56:33 +08:00
PYDT f593c6df8b Add files via upload 2023-11-26 12:51:13 +08:00
PYDT 9b452b25c2 Add files via upload 2023-11-25 21:47:21 +08:00
PYDT c835fcf99a Add files via upload 2023-11-25 20:23:47 +08:00
PYDT e4373edc54 Add files via upload 2023-11-25 19:59:51 +08:00
PYDT 686c05785f Add files via upload 2023-11-25 17:12:59 +08:00
PYDT 994358a793 Add files via upload 2023-11-25 16:58:41 +08:00
PYDT b02ca3757c Add files via upload 2023-11-25 16:14:41 +08:00
PYDT 164ec25415 Add files via upload 2023-11-25 14:58:27 +08:00
PYDT 8ee85cd9ca Add files via upload 2023-11-25 14:20:24 +08:00
PYDT c07bf05754 Add files via upload 2023-11-25 13:09:25 +08:00
PYDT 2e2a08a765 Add files via upload 2023-11-24 23:30:33 +08:00
PYDT 10be5f442f Add files via upload 2023-11-24 20:21:25 +08:00
PYDT 0fcd8565d8 Add files via upload 2023-11-24 12:08:55 +08:00
PYDT e07eee86dd Add files via upload 2023-11-24 09:09:49 +08:00
PYDT f25d5d73c6 Add files via upload 2023-11-23 23:31:26 +08:00
PYDT 28b4d00d3c Add files via upload 2023-11-23 22:48:46 +08:00
PYDT c75cf8a539 Add files via upload 2023-11-23 20:08:54 +08:00
PYDT ff7199b857 Add files via upload 2023-11-23 17:58:09 +08:00
PYDT 5613fd81b7 Update README.md 2023-11-23 16:00:46 +08:00
PYDT c1458502f7 Update README.md 2023-11-23 15:56:19 +08:00
PYDT b2f620bd3d Add files via upload 2023-11-23 15:07:41 +08:00
PYDT 0e1030f186 Add files via upload 2023-11-23 14:55:15 +08:00
PYDT ff4ffb8ec5 Add files via upload 2023-11-23 14:34:25 +08:00
PYDT 941458a381 Add files via upload 2023-11-22 14:49:09 +08:00
PYDT 560eb924b8 Add files via upload 2023-11-21 20:48:57 +08:00
PYDT c3fab9e48b Add files via upload 2023-11-21 20:31:50 +08:00
PYDT fc4dc74f9e Add files via upload 2023-11-21 20:16:16 +08:00
PYDT 35f0362910 Update README.md 2023-11-21 14:59:18 +08:00
PYDT 27dfaa5f06 Add files via upload 2023-11-21 14:52:06 +08:00
PYDT cf1866710a Delete PYAS_Function.zip 2023-11-21 14:51:37 +08:00
PYDT b3a5d06c4a Add files via upload 2023-11-21 14:40:38 +08:00
PYDT 7c904ff331 Add files via upload 2023-11-16 14:25:47 +08:00
PYDT c7855a9dd1 Add files via upload 2023-11-16 13:40:33 +08:00
PYDT 5faee6a05f Add files via upload 2023-11-16 11:41:33 +08:00
PYDT 9213f9f54f Add files via upload 2023-11-16 10:39:56 +08:00
PYDT c5e8351d76 Delete PYAS_Rules.py 2023-11-16 10:39:12 +08:00
PYDT e8e245ac0b Add files via upload 2023-11-15 12:49:31 +08:00
PYDT 2d8d6851d1 Add files via upload 2023-11-15 11:39:51 +08:00
PYDT 54f3e2ceda Add files via upload 2023-11-15 00:27:26 +08:00
PYDT 81d98917c3 Add files via upload 2023-11-14 21:10:40 +08:00
PYDT 8651f1e5d6 Add files via upload 2023-11-10 16:14:39 +08:00
PYDT db1a26424d Add files via upload 2023-11-10 15:20:38 +08:00
PYDT 16405810dd Add files via upload 2023-11-10 10:07:45 +08:00
PYDT f4f7fc1b0c Add files via upload 2023-11-09 22:02:06 +08:00
PYDT e1145a743a Add files via upload 2023-11-09 21:33:02 +08:00
PYDT 6e5b54bbfe Add files via upload 2023-11-09 21:21:20 +08:00
PYDT a948219e1a Add files via upload 2023-11-09 10:45:41 +08:00
PYDT 5675e926d5 Add files via upload 2023-11-09 09:19:56 +08:00
PYDT cb7f8bbaab Add files via upload 2023-11-09 09:14:14 +08:00
PYDT 61e7fd8f40 Add files via upload 2023-11-08 19:49:30 +08:00
PYDT 76fab2671a Add files via upload 2023-11-08 09:33:31 +08:00
PYDT dbc2bd2d62 Add files via upload 2023-11-07 23:48:08 +08:00
PYDT 73e62935ff Add files via upload 2023-11-07 14:35:09 +08:00
PYDT c9e28b5482 Add files via upload 2023-11-07 11:15:32 +08:00
PYDT 6bf58eae4a Add files via upload 2023-11-07 07:26:43 +08:00
PYDT 3e09574b3c Add files via upload 2023-11-06 16:23:59 +08:00
PYDT a7a00b9ca6 Add files via upload 2023-11-06 08:24:54 +08:00
PYDT 7a62e2df27 Add files via upload 2023-11-05 17:49:37 +08:00
PYDT 317f1ccae7 Add files via upload 2023-11-05 17:38:51 +08:00
PYDT 884631409a Add files via upload 2023-11-05 14:44:08 +08:00
PYDT 14dca5e2cb Add files via upload 2023-11-04 13:38:04 +08:00
PYDT 3a0b856d47 Add files via upload 2023-11-03 20:36:21 +08:00
PYDT e66f8af022 Add files via upload 2023-11-03 18:02:13 +08:00
PYDT 13e4560d86 Add files via upload 2023-11-03 08:20:39 +08:00
PYDT 5ea789df7f Add files via upload 2023-11-03 08:14:52 +08:00
PYDT debda9ec11 Add files via upload 2023-11-02 20:36:42 +08:00
PYDT b3f126181b Add files via upload 2023-11-02 14:35:57 +08:00
PYDT 6bd110cae7 Add files via upload 2023-11-02 14:30:26 +08:00
PYDT 635f4ccde3 Add files via upload 2023-11-02 10:52:47 +08:00
PYDT 01da2685a5 Add files via upload 2023-11-02 10:51:45 +08:00
PYDT b040aad8d1 Add files via upload 2023-11-02 08:47:53 +08:00
PYDT 84a0f08618 Add files via upload 2023-11-01 19:44:29 +08:00
PYDT 1f64c0d672 Add files via upload 2023-11-01 12:55:25 +08:00
PYDT 5bfff87e21 Add files via upload 2023-11-01 11:19:25 +08:00
PYDT 47db0e1c46 Delete PYAS_Scripts.py 2023-10-31 15:02:10 +08:00
PYDT 9a9fdc418f Delete PYAS_Function_Safe.zip 2023-10-31 15:01:31 +08:00
PYDT c30c89ed40 Add files via upload 2023-10-31 15:01:01 +08:00
PYDT d7bb89968f Add files via upload 2023-10-30 21:05:07 +08:00
PYDT f9b431d158 Add files via upload 2023-10-30 20:56:16 +08:00
PYDT a1364896af Add files via upload 2023-10-30 20:07:24 +08:00
PYDT 2870a999a2 Add files via upload 2023-10-30 20:05:04 +08:00
PYDT 98646a6bd9 Add files via upload 2023-10-29 15:47:10 +08:00
PYDT 8ec894f576 Add files via upload 2023-10-29 13:15:09 +08:00
PYDT 254a67b9a8 Add files via upload 2023-10-29 12:13:14 +08:00
PYDT eebfb79c27 Add files via upload 2023-10-29 11:56:02 +08:00
PYDT 1a1d7ec783 Add files via upload 2023-10-29 08:25:17 +08:00
PYDT 4482144b4d Add files via upload 2023-10-28 18:25:08 +08:00
PYDT 827279c9a8 Add files via upload 2023-10-28 15:32:10 +08:00
PYDT b1d3488842 Add files via upload 2023-10-27 18:57:00 +08:00
PYDT 90112ae1ae Add files via upload 2023-10-27 15:48:25 +08:00
PYDT 1f4b9390b9 Add files via upload 2023-10-27 10:53:02 +08:00
PYDT cc142aca40 Add files via upload 2023-10-27 08:28:38 +08:00
PYDT 89513b2c0d Add files via upload 2023-10-27 00:33:05 +08:00
PYDT bfcd00acec Add files via upload 2023-10-27 00:26:21 +08:00
PYDT 9833b28a50 Add files via upload 2023-10-27 00:03:41 +08:00
PYDT d0404dd29c Add files via upload 2023-10-26 20:52:20 +08:00
PYDT 9d3761e7f6 Add files via upload 2023-10-26 20:14:54 +08:00
PYDT 03515acc68 Add files via upload 2023-10-26 18:06:31 +08:00
PYDT f8413f4cfb Add files via upload 2023-10-26 17:50:39 +08:00
PYDT 24f7f67e63 Add files via upload 2023-10-26 14:29:49 +08:00
PYDT 85129cdfe1 Add files via upload 2023-10-25 15:58:42 +08:00
PYDT 6d4f8b2731 Add files via upload 2023-10-25 13:39:48 +08:00
PYDT 24a0efcce1 Add files via upload 2023-10-24 21:28:11 +08:00
PYDT ce6be1b4d5 Add files via upload 2023-10-24 19:53:41 +08:00
PYDT 723ac47c48 Add files via upload 2023-10-24 19:52:58 +08:00
PYDT 720d163bdb Add files via upload 2023-10-24 13:15:05 +08:00
PYDT a74047d4e5 Add files via upload 2023-10-24 13:12:21 +08:00
PYDT f6538f93c7 Add files via upload 2023-10-24 13:08:41 +08:00
PYDT 49cb0b3ef5 Add files via upload 2023-10-24 09:40:15 +08:00
PYDT c81845ba3a Add files via upload 2023-10-24 09:23:43 +08:00
PYDT 053ae64008 Add files via upload 2023-10-24 09:16:11 +08:00
PYDT 48989840b8 Add files via upload 2023-10-23 20:47:18 +08:00
PYDT 36c7bcd87f Add files via upload 2023-10-23 18:56:42 +08:00
PYDT a50eca1600 Add files via upload 2023-10-22 15:38:01 +08:00
PYDT f70dc8eb46 Add files via upload 2023-10-22 15:09:01 +08:00
PYDT f13d816c5b Add files via upload 2023-10-21 23:46:01 +08:00
PYDT 3429e658b6 Add files via upload 2023-10-21 10:46:45 +08:00
PYDT 0c6f9d6041 Add files via upload 2023-10-20 11:21:47 +08:00
PYDT 4a668499b0 Add files via upload 2023-10-20 07:29:21 +08:00
PYDT f1057252b3 Add files via upload 2023-10-19 19:56:21 +08:00
PYDT 4e3c866536 Add files via upload 2023-10-19 13:42:22 +08:00
PYDT c585cb370c Add files via upload 2023-10-19 12:04:53 +08:00
PYDT 2211a2b1d4 Add files via upload 2023-10-18 10:15:49 +08:00
PYDT 42069e2aac Add files via upload 2023-10-18 09:17:55 +08:00
PYDT fd499a17fe Add files via upload 2023-10-18 06:25:51 +08:00
PYDT 0cc56d3da7 Add files via upload 2023-10-17 16:08:49 +08:00
PYDT 2096f55ce8 Add files via upload 2023-10-17 15:56:09 +08:00
PYDT a4afe0ac10 Add files via upload 2023-10-17 15:24:15 +08:00
PYDT d523b66970 Add files via upload 2023-10-17 15:17:25 +08:00
PYDT 192335249c Add files via upload 2023-10-17 14:07:09 +08:00
PYDT e02879b3d7 Add files via upload 2023-10-17 13:01:37 +08:00
PYDT bf7157fb3e Add files via upload 2023-10-17 11:22:52 +08:00
PYDT 7c2ae87c73 Add files via upload 2023-10-17 10:14:09 +08:00
PYDT c1357bb2e1 Add files via upload 2023-10-16 08:32:32 +08:00
PYDT c298c3773e Add files via upload 2023-10-15 21:10:07 +08:00
PYDT 7d09c6501c Add files via upload 2023-10-15 21:00:37 +08:00
PYDT 1a051d42af Add files via upload 2023-10-15 18:25:43 +08:00
PYDT 22bbcc5217 Add files via upload 2023-10-15 18:23:10 +08:00
PYDT 017f153002 Add files via upload 2023-10-15 14:37:23 +08:00
PYDT cf4762ad04 Add files via upload 2023-10-15 09:17:04 +08:00
PYDT 6ba920e26a Add files via upload 2023-10-14 17:07:00 +08:00
PYDT a66acf0ef9 Delete requirements.txt 2023-10-14 17:01:56 +08:00
PYDT 8ab982ac38 Update README.md 2023-10-14 17:00:02 +08:00
PYDT 0c32a126a9 Update README.md 2023-10-14 16:56:45 +08:00
PYDT fd47881f88 Update README.md 2023-10-14 16:53:26 +08:00
PYDT 61298235fd Add files via upload 2023-10-14 12:24:43 +08:00
PYDT 4a38277c3e Add files via upload 2023-10-14 00:05:34 +08:00
PYDT fd7912f631 Add files via upload 2023-10-13 21:04:42 +08:00
mtkiao129 4f1b0e99e4 Add files via upload
add Python module list
2023-10-13 20:57:16 +08:00
PYDT 086e375cea Add files via upload 2023-10-13 20:00:57 +08:00
PYDT f90b132ccb Add files via upload 2023-10-13 18:42:29 +08:00
PYDT f4bd217445 Add files via upload 2023-10-13 18:28:58 +08:00
PYDT 5524e2f689 Add files via upload 2023-10-13 17:38:57 +08:00
PYDT 42b8201f37 Add files via upload 2023-10-13 15:15:19 +08:00
PYDT f71c821128 Add files via upload 2023-10-13 12:47:20 +08:00
PYDT 28330d3ad6 Add files via upload 2023-10-13 09:01:57 +08:00
PYDT 5afd576a3c Add files via upload 2023-10-12 11:39:03 +08:00
PYDT edcf82d139 Add files via upload 2023-10-12 09:50:21 +08:00
PYDT 69e5143a27 Add files via upload 2023-10-11 20:43:54 +08:00
PYDT 215d0faa53 Add files via upload 2023-10-11 20:11:28 +08:00
PYDT 470142a640 Add files via upload 2023-10-11 11:54:56 +08:00
PYDT 8e67a8d679 Add files via upload 2023-10-11 11:52:38 +08:00
PYDT be5baf9c87 Add files via upload 2023-10-11 11:04:42 +08:00
PYDT 7a05e42f3f Delete PYAS_Function_Full.zip 2023-10-11 11:04:19 +08:00
PYDT 34240ec01f Delete PYAS_Function.py 2023-10-11 11:03:55 +08:00
PYDT 0bf6eccb8b Add files via upload 2023-10-11 11:03:09 +08:00
PYDT 1f3b694231 Add files via upload 2023-10-10 14:17:48 +08:00
PYDT 470358585d Add files via upload 2023-10-10 00:44:40 +08:00
PYDT 4c69b555ae Add files via upload 2023-10-10 00:13:21 +08:00
PYDT aef60afcd8 Update README.md 2023-10-09 22:13:23 +08:00
PYDT ec753c50a5 Add files via upload 2023-10-09 22:07:11 +08:00
PYDT cbebe878aa Add files via upload 2023-10-09 21:41:34 +08:00
PYDT e9d930507e Add files via upload 2023-10-08 22:26:15 +08:00
PYDT 3eba768d06 Add files via upload 2023-10-08 02:00:53 +08:00
PYDT 76a5732997 Add files via upload 2023-10-08 01:54:58 +08:00
PYDT 32987c1274 Add files via upload 2023-10-07 14:10:49 +08:00
PYDT 8990b97a32 Add files via upload 2023-10-05 20:33:33 +08:00
PYDT 65b427121f Add files via upload 2023-10-05 06:57:23 +08:00
PYDT 81dd259672 Add files via upload 2023-10-05 01:35:34 +08:00
PYDT 05c2031d47 Add files via upload 2023-10-05 01:30:52 +08:00
PYDT 2b2de7550f Add files via upload 2023-10-05 00:48:22 +08:00
PYDT f9a8244086 Add files via upload 2023-10-05 00:47:28 +08:00
PYDT 86f3904b8a Add files via upload 2023-10-04 12:35:15 +08:00
PYDT 017aab4b0a Add files via upload 2023-10-04 10:55:51 +08:00
PYDT e33777c961 Add files via upload 2023-10-03 11:42:22 +08:00
PYDT ac14acd042 Add files via upload 2023-10-03 02:06:29 +08:00
PYDT e9f07df010 Add files via upload 2023-10-03 01:32:50 +08:00
PYDT 5d3855cdfa Add files via upload 2023-10-03 01:22:47 +08:00
PYDT 938e76fb4a Add files via upload 2023-10-02 17:49:09 +08:00
PYDT c0f6722c18 Add files via upload 2023-10-02 12:42:00 +08:00
PYDT 54e8922bc3 Add files via upload 2023-10-02 11:37:21 +08:00
PYDT 81b47dbf45 Add files via upload 2023-10-01 23:32:22 +08:00
PYDT 312401d80f Add files via upload 2023-09-26 19:27:47 +08:00
PYDT 8927ab7e36 Add files via upload 2023-09-26 17:50:21 +08:00
PYDT 6d99576e36 Add files via upload 2023-09-26 17:14:38 +08:00
PYDT 5618cd19cb Add files via upload 2023-09-26 06:41:25 +08:00
PYDT da11c6f5b6 Add files via upload 2023-09-25 10:00:56 +08:00
10 changed files with 346 additions and 280 deletions

No files matched your search

+231 -190
View File
@@ -1,11 +1,11 @@
import os, gc, sys, time, json, psutil
import subprocess, requests, msvcrt
import win32gui, win32api, win32con
import hashlib, pefile, win32file
import hashlib, pefile, socket, msvcrt
import xml.etree.ElementTree as xmlet
from PYAS_Scripts import scripts_list
from PYAS_Function import function_list
import requests, pyperclip, win32file
import win32gui, win32api, win32con
from PYAS_Extension import slist, alist
from PYAS_Function_Safe import func_safe
from PYAS_Function_Virus import func_virus
from PYAS_Language import translate_dict
from PYAS_Interface import Ui_MainWindow
from threading import Thread
@@ -19,16 +19,17 @@ class MainWindow_Controller(QMainWindow):
self.setAttribute(Qt.WA_TranslucentBackground)
self.setWindowFlags(Qt.FramelessWindowHint)
self.pyas = str(sys.argv[0]).replace("\\", "/")
self.pyas_version = "2.8.4"
self.pyas_version = "2.9.8"
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.init_tray_icon()
self.init_virus_list()
self.init_state_safe()
self.init_config_path()
self.init_config_read()
self.init_config_json()
self.init_config_list()
self.init_config_boot()
self.init_config_json()
self.init_config_qtui()
self.init_change_lang()
self.init_control()
@@ -40,7 +41,7 @@ class MainWindow_Controller(QMainWindow):
self.protect_file_init()
self.protect_boot_init()
self.protect_reg_init()
self.protect_enh_init()
self.protect_net_init()
self.block_window_init()
def init_tray_icon(self):
@@ -51,14 +52,14 @@ class MainWindow_Controller(QMainWindow):
def init_config_path(self):
try:
if not os.path.exists("C:/Windows/SysWOW64/PYAS"):
os.makedirs("C:/Windows/SysWOW64/PYAS")
if not os.path.exists("C:/ProgramData/PYAS"):
os.makedirs("C:/ProgramData/PYAS")
except Exception as e:
self.bug_event(e)
def write_config(self, config):
try:
with open("C:/Windows/SysWOW64/PYAS/PYAS.json", "w", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/PYAS.json", "w", encoding="utf-8") as f:
f.write(json.dumps(config, indent=4, ensure_ascii=False))
except:
pass
@@ -74,12 +75,12 @@ class MainWindow_Controller(QMainWindow):
def init_config_list(self):
try:
self.whitelist = []
if os.path.exists("C:/Windows/SysWOW64/PYAS/Whitelist.txt"):
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "r", encoding="utf-8") as f:
if os.path.exists("C:/ProgramData/PYAS/Whitelist.ini"):
with open("C:/ProgramData/PYAS/Whitelist.ini", "r", encoding="utf-8") as f:
self.whitelist = [line.strip() for line in f.readlines()]
self.blocklist = []
if os.path.exists("C:/Windows/SysWOW64/PYAS/Blocklist.txt"):
with open("C:/Windows/SysWOW64/PYAS/Blocklist.txt", "r", encoding="utf-8") as f:
if os.path.exists("C:/ProgramData/PYAS/Blocklist.ini"):
with open("C:/ProgramData/PYAS/Blocklist.ini", "r", encoding="utf-8") as f:
self.blocklist = [line.strip() for line in f.readlines()]
except:
pass
@@ -93,11 +94,18 @@ class MainWindow_Controller(QMainWindow):
except:
self.mbr_value = False
def init_config_json(self):
if not os.path.exists("C:/Windows/SysWOW64/PYAS/PYAS.json"):
def init_config_read(self):
try:
if not os.path.exists("C:/ProgramData/PYAS/PYAS.json"):
self.write_config({"language":"en_US","high_sensitivity":0,"cloud_services":1})
with open("C:/ProgramData/PYAS/PYAS.json", "r", encoding="utf-8") as f:
self.json = json.load(f)
except:
self.write_config({"language":"en_US","high_sensitivity":0,"cloud_services":1})
with open("C:/Windows/SysWOW64/PYAS/PYAS.json", "r", encoding="utf-8") as f:
self.json = json.load(f)
with open("C:/ProgramData/PYAS/PYAS.json", "r", encoding="utf-8") as f:
self.json = json.load(f)
def init_config_json(self):
self.high_sensitivity = self.json.get("high_sensitivity", 0)
if self.high_sensitivity == 1:
self.ui.high_sensitivity_switch_Button.setText(self.trans("已開啟"))
@@ -127,6 +135,8 @@ class MainWindow_Controller(QMainWindow):
self.ui.Tools_Button.clicked.connect(self.change_tools_widget)
self.ui.Virus_Scan_Button.clicked.connect(self.change_scan_widget)
self.ui.Protection_Button.clicked.connect(self.change_protect_widget)
self.ui.Virus_Scan_output.setContextMenuPolicy(Qt.CustomContextMenu)
self.ui.Virus_Scan_output.customContextMenuRequested.connect(self.Virus_Scan_output_menu)
self.ui.System_Process_Manage_Button.clicked.connect(lambda:self.change_tools(self.ui.Process_widget))
self.ui.Process_Tools_Back.clicked.connect(lambda:self.back_to_tools(self.ui.Process_widget))
self.ui.Virus_Scan_Solve_Button.clicked.connect(self.virus_solve)
@@ -147,7 +157,7 @@ class MainWindow_Controller(QMainWindow):
self.ui.Protection_switch_Button_2.clicked.connect(self.protect_file_init)
self.ui.Protection_switch_Button_3.clicked.connect(self.protect_boot_init)
self.ui.Protection_switch_Button_4.clicked.connect(self.protect_reg_init)
self.ui.Protection_switch_Button_5.clicked.connect(self.protect_enh_init)
self.ui.Protection_switch_Button_5.clicked.connect(self.protect_net_init)
self.ui.high_sensitivity_switch_Button.clicked.connect(self.change_sensitive)
self.ui.cloud_services_switch_Button.clicked.connect(self.change_cloud_service)
self.ui.Add_White_list_Button.clicked.connect(self.add_white_list)
@@ -196,19 +206,19 @@ class MainWindow_Controller(QMainWindow):
self.ui.Process_widget.hide()
self.ui.Setting_widget.hide()
self.ui.About_widget.hide()
self.ui.State_output.style().polish(self.ui.State_output.verticalScrollBar())
self.ui.Virus_Scan_output.style().polish(self.ui.Virus_Scan_output.verticalScrollBar())
def init_change_lang(self):
try:
self.ui.State_output.clear()
if self.ui.Language_Traditional_Chinese.isChecked():
self.json["language"] = "zh_TW"
self.write_config(self.json)
elif self.ui.Language_Simplified_Chinese.isChecked():
self.json["language"] = "zh_CN"
self.write_config(self.json)
else:
elif self.ui.Language_English.isChecked():
self.json["language"] = "en_US"
self.write_config(self.json)
self.write_config(self.json)
self.init_lang_text()
except Exception as e:
self.bug_event(e)
@@ -248,8 +258,8 @@ class MainWindow_Controller(QMainWindow):
self.ui.Protection_title_4.setText(self.trans("註冊表防護"))
self.ui.Protection_illustrate_4.setText(self.trans("啟用此選項可以修復註冊表項目"))
self.ui.Protection_switch_Button_4.setText(self.trans(self.ui.Protection_switch_Button_4.text()))
self.ui.Protection_title_5.setText(self.trans("增強防護"))
self.ui.Protection_illustrate_5.setText(self.trans("啟用此選項可以增強系統防護"))
self.ui.Protection_title_5.setText(self.trans("網路防護"))
self.ui.Protection_illustrate_5.setText(self.trans("啟用此選項可以監控網路通訊"))
self.ui.Protection_switch_Button_5.setText(self.trans(self.ui.Protection_switch_Button_5.text()))
self.ui.State_log.setText(self.trans("日誌:"))
self.ui.More_Tools_Back_Button.setText(self.trans("工具>"))
@@ -295,21 +305,21 @@ class MainWindow_Controller(QMainWindow):
if self.ui.Theme_White.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(240,240,240);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(230,230,230);}""")
elif self.ui.Theme_Red.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(255,150,150);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(255,140,140);}""")
elif self.ui.Theme_Black.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(150,150,150);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(140,140,140);}""")
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(230,230,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(220,220,220);}""")
elif self.ui.Theme_Red.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(250,230,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(250,220,220);}""")
elif self.ui.Theme_Green.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(150,255,150);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(130,255,130);}""")
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(230,250,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(220,250,220);}""")
elif self.ui.Theme_Yellow.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(255,255,150);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(240,240,140);}""")
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(250,250,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(250,250,220);}""")
elif self.ui.Theme_Blue.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(0,200,255);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(0,190,255);}""")
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(230,250,250);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(220,250,250);}""")
def change_animation(self,widget):
x, y = 170, widget.pos().y()
@@ -348,7 +358,7 @@ class MainWindow_Controller(QMainWindow):
widget.setAutoFillBackground(True)
self.timer = QTimer()
self.timer.timeout.connect(self.timeout)
self.timer.start(0)
self.timer.start(2)
def timeout(self):
if self.opacity.i < 1:
@@ -455,7 +465,7 @@ class MainWindow_Controller(QMainWindow):
self.timer.stop()
x, y = event.x(), event.y()
if event.button()==Qt.LeftButton and x >= 10 and x <= 841 and y >= 10 and y <= 49:
self.m_flag=True
self.m_flag = True
self.m_Position=event.globalPos()-self.pos()
event.accept()
self.timer = QTimer()
@@ -478,7 +488,7 @@ class MainWindow_Controller(QMainWindow):
self.setWindowOpacity(self.pyas_opacity/100)
else:
self.timer.stop()
self.m_flag=False
self.m_flag = False
self.setCursor(QCursor(Qt.ArrowCursor))
self.timer = QTimer()
self.timer.timeout.connect(update_opacity)
@@ -497,45 +507,54 @@ class MainWindow_Controller(QMainWindow):
pat2.drawRoundedRect(rect, 1, 1)
def show_pyas_ui(self):
def update_opacity():
if self.pyas_opacity <= 100:
self.pyas_opacity += 1
self.setWindowOpacity(self.pyas_opacity/100)
else:
self.timer.stop()
self.show()
self.pyas_opacity = 0
while self.pyas_opacity < 100:
time.sleep(0.001)
self.pyas_opacity += 1
self.setWindowOpacity(self.pyas_opacity/100)
QApplication.processEvents()
self.timer = QTimer()
self.timer.timeout.connect(update_opacity)
self.timer.start(2)
def hide_pyas_ui(self):
while self.pyas_opacity > 0:
time.sleep(0.001)
self.pyas_opacity -= 1
self.setWindowOpacity(self.pyas_opacity/100)
QApplication.processEvents()
self.hide()
def update_opacity():
if self.pyas_opacity >= 0:
self.pyas_opacity -= 1
self.setWindowOpacity(self.pyas_opacity/100)
else:
self.timer.stop()
self.hide()
self.timer = QTimer()
self.timer.timeout.connect(update_opacity)
self.timer.start(2)
def showMinimized(self):
self.hide_pyas_ui()
self.send_notify(self.trans("PYAS 已最小化到系統托盤圖標"))
if self.block_window:
self.hide_pyas_ui()
self.send_notify(self.trans("PYAS 已最小化到系統托盤圖標"))
def closeEvent(self, event):
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要退出 PYAS 和所有防護嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.hide_pyas_ui()
self.virus_scan_break()
event.accept()
else:
event.ignore()
def bug_event(self, error):
def bug_event(self, text):
try:
print(f"[Error] {error}")
QMessageBox.critical(self,self.trans("錯誤"),error,QMessageBox.Ok)
print(f"[Error] {text}")
QMessageBox.critical(self,self.trans("錯誤"), text, QMessageBox.Ok)
except:
pass
def send_notify(self,text):
def send_notify(self, text):
try:
now_time = time.strftime('%Y/%m/%d %H:%M:%S')
self.ui.State_output.append(f"[{now_time}] {text}")
self.tray_icon.showMessage(now_time, text, 5000)
QMetaObject.invokeMethod(self.ui.State_output, "append", Qt.QueuedConnection, Q_ARG(str, f"[{now_time}] {text}"))
except:
pass
@@ -619,52 +638,74 @@ class MainWindow_Controller(QMainWindow):
self.ui.Virus_Scan_text.setText(self.trans("正在初始化中"))
QApplication.processEvents()
for file in self.virus_list:
try:
msvcrt.locking(self.virus_lock[file], msvcrt.LK_UNLCK, 0)
os.close(self.virus_lock[file])
del self.virus_lock[file]
except:
continue
self.unlock_file(file)
self.scan_file = True
self.init_virus_list()
self.ui.Virus_Scan_Solve_Button.hide()
self.ui.Virus_Scan_choose_widget.hide()
self.ui.Virus_Scan_choose_Button.hide()
self.ui.Virus_Scan_Break_Button.show()
self.virus_list_output = QStringListModel()
self.virus_list_output.setStringList(self.virus_list)
self.ui.Virus_Scan_output.setModel(self.virus_list_output)
self.ui.Virus_Scan_output.clear()
except Exception as e:
self.bug_event(e)
def Virus_Scan_output_menu(self, point):
def copyPathFunc():
item_row = False
for i in self.ui.Virus_Scan_output.selectedIndexes():
item_row = self.virus_list[i.row()]
if item_row:
pyperclip.copy(item_row)
menu = QMenu()
copyPath = menu.addAction(self.trans("複製路徑"))
copyPath.triggered.connect(lambda: copyPathFunc())
menu.exec_(self.ui.Virus_Scan_output.mapToGlobal(point))
def lock_file(self, file):
try:
self.virus_lock[file] = os.open(file, os.O_RDWR)
msvcrt.locking(self.virus_lock[file], msvcrt.LK_NBLCK, 0)
except:
pass
def unlock_file(self, file):
try:
msvcrt.locking(self.virus_lock[file], msvcrt.LK_UNLCK, 0)
os.close(self.virus_lock[file])
except:
pass
def virus_solve(self):
try:
self.ui.Virus_Scan_Solve_Button.hide()
for file in self.virus_list:
try:
self.ui.Virus_Scan_text.setText(self.trans("正在刪除: ")+file)
QApplication.processEvents()
msvcrt.locking(self.virus_lock[file], msvcrt.LK_UNLCK, 0)
os.close(self.virus_lock[file])
os.remove(file)
if self.ui.Virus_Scan_output.findItems(file, Qt.MatchContains)[0].checkState() == Qt.Checked:
self.ui.Virus_Scan_text.setText(self.trans("正在刪除: ")+file)
QApplication.processEvents()
self.unlock_file(file)
os.remove(file)
else:
self.unlock_file(file)
except:
continue
self.init_state_safe()
self.init_virus_list()
self.virus_list_output.setStringList(self.virus_list)
self.ui.Virus_Scan_output.setModel(self.virus_list_output)
self.ui.Virus_Scan_output.clear()
self.ui.Virus_Scan_text.setText(self.trans("成功: 刪除成功"))
except Exception as e:
self.bug_event(e)
def write_scan(self, state, file):
try:
self.lock_file(file)
self.virus_list.append(file)
self.virus_list_ui.append(f"[{state}] {file}")
self.virus_list_output.setStringList(self.virus_list_ui)
self.ui.Virus_Scan_output.setModel(self.virus_list_output)
self.virus_lock[file] = os.open(file, os.O_RDWR)
msvcrt.locking(self.virus_lock[file], msvcrt.LK_NBLCK, 0)
item = QListWidgetItem()
item.setText(f"[{state}] {file}")
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
item.setCheckState(Qt.Checked)
self.ui.Virus_Scan_output.addItem(item)
except:
pass
@@ -702,7 +743,7 @@ class MainWindow_Controller(QMainWindow):
def file_scan(self):
try:
file = str(QFileDialog.getOpenFileName(self,self.trans("病毒掃描"),"C:/")[0])
if file and file != self.pyas:
if file and file not in self.whitelist:
self.init_scan()
self.start_scan(file)
self.answer_scan()
@@ -735,20 +776,16 @@ class MainWindow_Controller(QMainWindow):
def start_scan(self, file):
try:
file_type = str(f".{file.split('.')[-1]}").lower()
if self.high_sensitivity == 1:
if self.high_sensitivity and file != self.pyas:
if self.api_scan(file):
self.write_scan(self.trans("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.trans("可疑"),file)
elif self.scr_scan(file):
self.write_scan(self.trans("可疑"),file)
elif file_type in slist and self.sign_scan(file):
elif file_type in slist and file != self.pyas:
if self.api_scan(file):
self.write_scan(self.trans("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.trans("可疑"),file)
elif self.scr_scan(file):
self.write_scan(self.trans("可疑"),file)
except:
pass
@@ -757,27 +794,29 @@ class MainWindow_Controller(QMainWindow):
try:
file = str(os.path.join(path,fd)).replace("\\", "/")
if self.scan_file == False:
return
elif file in self.whitelist or ":/Windows" in file:
break
elif ":/Windows" in file:
continue
elif os.path.isdir(file):
self.traverse_path(file)
elif file != self.pyas:
elif file not in self.whitelist:
self.ui.Virus_Scan_text.setText(self.trans(f"正在掃描: ")+file)
QApplication.processEvents()
self.start_scan(file)
gc.collect()
gc.collect()
except:
continue
pass
def api_scan(self, file):
try:
if self.cloud_services == 1:
with open(file, "rb") as f:
text = str(hashlib.md5(f.read()).hexdigest())
QApplication.processEvents()
strBody = f'-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="md5s"\r\n\r\n{text}\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="format"\r\n\r\nXML\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="product"\r\n\r\n360zip\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="combo"\r\n\r\n360zip_main\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="v"\r\n\r\n2\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="osver"\r\n\r\n5.1\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="vk"\r\n\r\na03bc211\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="mid"\r\n\r\n8a40d9eff408a78fe9ec10a0e7e60f62\r\n-------------------------------7d83e2d7a141e--'
response = requests.post('http://qup.f.360.cn/file_health_info.php', data=strBody, timeout=3)
return response.status_code == 200 and float(xmlet.fromstring(response.text).find('.//e_level').text) > 50
return False
except:
return False
@@ -788,15 +827,6 @@ class MainWindow_Controller(QMainWindow):
except:
return True
def scr_scan(self, text):
try:
if os.path.isfile(text):
with open(text, "r", encoding="utf-8") as f:
text = f.read()
return any(sn in text for sn in scripts_list)
except:
return False
def pe_scan(self, file):
try:
fn = []
@@ -807,7 +837,28 @@ class MainWindow_Controller(QMainWindow):
fn.append(str(func.name, "utf-8"))
except:
pass
return fn in function_list
max_vfl = []
for vfl in func_virus:
QApplication.processEvents()
max_vfl.append(len(set(fn)&set(vfl))/len(set(fn)|set(vfl)))
max_sfl = []
for sfl in func_safe:
QApplication.processEvents()
max_sfl.append(len(set(fn)&set(sfl))/len(set(fn)|set(sfl)))
if self.high_sensitivity:
return max(max_vfl) >= max(max_sfl)
return max(max_vfl) - max(max_sfl) >= 0.1
except:
return False
def proc_scan(self, pid):
try:
for entry in psutil.Process(pid).memory_maps():
file = entry.path.replace("\\", "/")
if ":/Windows" not in file and ":/Program" not in file:
if self.api_scan(file) or self.pe_scan(file):
return True
return False
except:
return False
@@ -815,7 +866,6 @@ class MainWindow_Controller(QMainWindow):
try:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要修復系統檔案嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.repair_system_wallpaper()
self.repair_system_explorer()
self.repair_system_restrict()
self.repair_system_file_type()
self.repair_system_file_icon()
@@ -831,14 +881,14 @@ class MainWindow_Controller(QMainWindow):
except:
pass
try:
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\exefile', 0, win32con.KEY_ALL_ACCESS)
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, r'SOFTWARE\Classes\exefile', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(key, 'DefaultIcon', win32con.REG_SZ, '%1')
except:
pass
def repair_system_image(self):
try:
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options',0,win32con.KEY_ALL_ACCESS | win32con.WRITE_OWNER)
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options',0,win32con.KEY_ALL_ACCESS | win32con.WRITE_OWNER)
count = win32api.RegQueryInfoKey(key)[0]
while count >= 0:
try:
@@ -853,11 +903,11 @@ class MainWindow_Controller(QMainWindow):
def repair_system_file_type(self):
try:
data = [('.exe', 'exefile'),('exefile', 'Application')]
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, r'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)
for ext, value in data:
win32api.RegSetValue(key, ext, win32con.REG_SZ, value)
win32api.RegCloseKey(key)
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, 'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, r'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)
for ext, value in data:
try:
win32api.RegSetValue(key, ext, win32con.REG_SZ, value)
@@ -867,7 +917,7 @@ class MainWindow_Controller(QMainWindow):
except:
pass
win32api.RegCloseKey(key)
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts', 0, win32con.KEY_ALL_ACCESS)
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(key, '.exe', win32con.REG_SZ, '')
win32api.RegCloseKey(key)
key = win32api.RegOpenKey(win32con.HKEY_CLASSES_ROOT, None, 0, win32con.KEY_ALL_ACCESS)
@@ -892,27 +942,29 @@ class MainWindow_Controller(QMainWindow):
"NoFavoritesMenu", "NoRecentDocsHistory", "NoSetTaskbar", "NoSMHelp", "NoTrayContextMenu", "NoViewContextMenu", "NoWindowsUpdate",
"NoWinKeys", "StartMenuLogOff", "NoSimpleNetlDList", "NoLowDiskSpaceChecks", "DisableLockWorkstation", "NoManageMyComputerVerb",
"DisableTaskMgr", "DisableRegistryTools", "DisableChangePassword", "Wallpaper", "NoComponents", "NoAddingComponents", "Restrict_Run"]
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"Explorer")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"Explorer")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"ActiveDesktop")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"SOFTWARE\Policies\Microsoft\Windows",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Policies\Microsoft\Windows",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"Software\Policies\Microsoft",0,win32con.KEY_ALL_ACCESS),"MMC")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"Software\Policies\Microsoft\MMC",0,win32con.KEY_ALL_ACCESS),"{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}")
keys = [win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"SOFTWARE\Policies\Microsoft\Windows\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,"SOFTWARE\Policies\Microsoft\Windows\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,"Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}",0,win32con.KEY_ALL_ACCESS)]
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"Explorer")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"Explorer")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",0,win32con.KEY_ALL_ACCESS),"ActiveDesktop")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"SOFTWARE\Policies\Microsoft\Windows",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Policies\Microsoft\Windows",0,win32con.KEY_ALL_ACCESS),"System")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"Software\Policies\Microsoft",0,win32con.KEY_ALL_ACCESS),"MMC")
win32api.RegCreateKey(win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"Software\Policies\Microsoft\MMC",0,win32con.KEY_ALL_ACCESS),"{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}")
keys = [win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"SOFTWARE\Policies\Microsoft\Windows\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,r"SOFTWARE\Policies\Microsoft\Windows\System",0,win32con.KEY_ALL_ACCESS),
win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r"Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}",0,win32con.KEY_ALL_ACCESS)]
for key in keys:
for i in Permission:
try:
win32api.RegDeleteValue(key,i)
self.proc.kill()
self.send_notify(self.trans("惡意行為攔截: ")+self.proc.name().replace("\\", "/"))
except:
pass
win32api.RegCloseKey(key)
@@ -921,26 +973,13 @@ class MainWindow_Controller(QMainWindow):
def repair_system_wallpaper(self):
try:
key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)
key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, r"Control Panel\Desktop", 0, win32con.KEY_SET_VALUE)
win32api.RegSetValueEx(key, "Wallpaper", 0, win32con.REG_SZ, 'C:/Windows/web/wallpaper/windows/img0.jpg')
win32api.RegCloseKey(key)
win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, 'C:/Windows/web/wallpaper/windows/img0.jpg', win32con.SPIF_SENDCHANGE)
except:
pass
def repair_system_explorer(self):
try:
if not self.is_process_running("explorer.exe"):
subprocess.run("explorer.exe", check=True)
except:
pass
def is_process_running(self, name):
for proc in psutil.process_iter():
if p.name() == name:
return True
return False
def clean_system(self):
try:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要清理系統垃圾嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
@@ -972,12 +1011,12 @@ class MainWindow_Controller(QMainWindow):
if file and file not in self.whitelist:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.whitelist.append(file)
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "a+", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Whitelist.ini", "a+", encoding="utf-8") as f:
f.write(f"{file}\n")
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功增加到白名單: ")+file,QMessageBox.Ok)
elif file and QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要取消增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.whitelist.remove(file)
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "w", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Whitelist.ini", "w", encoding="utf-8") as f:
for white_file in self.whitelist:
f.write(f'{white_file}\n')
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功取消增加到白名單: ")+file,QMessageBox.Ok)
@@ -995,12 +1034,12 @@ class MainWindow_Controller(QMainWindow):
if window_name not in self.blocklist:
if QMessageBox.warning(self,self.trans("警告"),self.trans(f"您確定要攔截 {window_name} 嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.blocklist.append(window_name)
with open("C:/Windows/SysWOW64/PYAS/Blocklist.txt", "a+", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Blocklist.ini", "a+", encoding="utf-8") as f:
f.write(f'{window_name}\n')
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功增加到彈窗攔截: ")+window_name,QMessageBox.Ok)
elif QMessageBox.warning(self,self.trans("警告"),self.trans(f"您確定要取消攔截 {window_name} 嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.blocklist.remove(window_name)
with open("C:/Windows/SysWOW64/PYAS/Blocklist.txt", "w", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Blocklist.ini", "w", encoding="utf-8") as f:
for block_name in self.blocklist:
f.write(f'{block_name}\n')
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功取消彈窗攔截: ")+window_name,QMessageBox.Ok)
@@ -1016,18 +1055,18 @@ class MainWindow_Controller(QMainWindow):
def block_software_window(self):
while self.block_window:
try:
time.sleep(0.2)
time.sleep(0.5)
for window_name in self.blocklist:
win32gui.PostMessage(win32gui.FindWindow(None, window_name), win32con.WM_SYSCOMMAND, win32con.SC_CLOSE, 0)
win32gui.PostMessage(win32gui.FindWindow(None, window_name), 274, 61536, 0)
except:
pass
def repair_network(self):
try:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要修復系統網路嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
subprocess.run("netsh winsock reset", check=True)
os.system("netsh winsock reset")
if QMessageBox.warning(self,self.trans("警告"),self.trans("使用此選項需要重啟,您確定要重啟嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
subprocess.run("shutdown -r -t 0", check=True)
os.system("shutdown -r -t 0")
except Exception as e:
self.bug_event(e)
@@ -1129,19 +1168,20 @@ class MainWindow_Controller(QMainWindow):
QPushButton:hover{background-color:rgba(20,200,20,120);}""")
Thread(target=self.protect_reg_thread, daemon=True).start()
def protect_enh_init(self):
def protect_net_init(self):
if self.ui.Protection_switch_Button_5.text() == self.trans("已開啟"):
self.enh_protect = False
self.net_protect = False
self.ui.Protection_switch_Button_5.setText(self.trans("已關閉"))
self.ui.Protection_switch_Button_5.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,20,20,30);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,20,20,50);}""")
else:
self.enh_protect = True
self.net_protect = True
self.ui.Protection_switch_Button_5.setText(self.trans("已開啟"))
self.ui.Protection_switch_Button_5.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,200,20,100);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,200,20,120);}""")
Thread(target=self.protect_net_thread, daemon=True).start()
def protect_proc_thread(self):
existing_processes = set()
@@ -1149,82 +1189,83 @@ class MainWindow_Controller(QMainWindow):
if p.pid not in existing_processes:
existing_processes.add(p.pid)
while self.proc_protect:
time.sleep(0.1)
time.sleep(0.05)
for p in psutil.process_iter():
try:
if p.pid not in existing_processes:
existing_processes.add(p.pid)
name, file, cmd = p.name(), p.exe().replace("\\", "/"), p.cmdline()
if ":/Windows" in file and self.enh_protect:
if file != self.pyas and file not in self.whitelist:
psutil.Process(p.pid).suspend()
if "powershell" in name and self.api_scan(cmd[-1].split("'")[-2]):
p.kill()
self.send_notify(self.trans("惡意腳本攔截: ")+name)
self.send_notify(self.trans("惡意腳本攔截: ")+str(cmd[-1].split("'")[-2]))
elif "cmd.exe" in name and self.api_scan(" ".join(cmd[2:])):
p.kill()
self.send_notify(self.trans("惡意腳本攔截: ")+name)
elif self.api_scan(cmd[-1]) or self.scr_scan(cmd):
self.send_notify(self.trans("惡意腳本攔截: ")+str(" ".join(cmd[2:])))
elif ":/Windows" in file and self.api_scan(cmd[-1]):
p.kill()
self.send_notify(self.trans("惡意軟體攔截: ")+name)
elif ":/Program" in file and self.enh_protect:
if self.sign_scan(file) and self.api_scan(file):
self.send_notify(self.trans("惡意軟體攔截: ")+str(cmd[-1]))
elif self.proc_scan(p.pid):
p.kill()
self.send_notify(self.trans("惡意軟體攔截: ")+name)
elif file != self.pyas and file not in self.whitelist:
self.proc = p
if self.api_scan(file) or self.pe_scan(file):
p.kill()
self.send_notify(self.trans("惡意軟體攔截: ")+name)
gc.collect()
self.send_notify(self.trans("惡意軟體攔截: ")+file)
elif self.sign_scan(file):
self.proc = p
psutil.Process(p.pid).resume()
gc.collect()
except:
pass
def protect_file_thread(self):
hDir = win32file.CreateFile("C:/Users/",win32con.GENERIC_READ,win32con.FILE_SHARE_READ|win32con.FILE_SHARE_WRITE|win32con.FILE_SHARE_DELETE,None,win32con.OPEN_EXISTING,win32con.FILE_FLAG_BACKUP_SEMANTICS,None)
self.ransom_block = False
while self.file_protect:
for action, file in win32file.ReadDirectoryChangesW(hDir,1024,True,win32con.FILE_NOTIFY_CHANGE_FILE_NAME|win32con.FILE_NOTIFY_CHANGE_DIR_NAME|win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES|win32con.FILE_NOTIFY_CHANGE_SIZE|win32con.FILE_NOTIFY_CHANGE_LAST_WRITE|win32con.FILE_NOTIFY_CHANGE_SECURITY,None,None):
for action, file in win32file.ReadDirectoryChangesW(hDir,1048576,True,win32con.FILE_NOTIFY_CHANGE_FILE_NAME|win32con.FILE_NOTIFY_CHANGE_DIR_NAME|win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES|win32con.FILE_NOTIFY_CHANGE_SIZE|win32con.FILE_NOTIFY_CHANGE_LAST_WRITE|win32con.FILE_NOTIFY_CHANGE_SECURITY,None,None):
try:
if action and "AppData" not in file:
if action == 1 and str(f".{file.split('.')[-2]}").lower() in alist:
self.proc.kill()
self.send_notify(self.trans("勒索軟體攔截: ")+self.proc.name())
elif action == 2 and str(f".{file.split('.')[-1]}").lower() in alist:
if self.ransom_block:
self.proc.kill()
self.ransom_block = False
self.send_notify(self.trans("勒索軟體攔截: ")+self.proc.name())
else:
self.ransom_block = True
gc.collect()
full_path = str(f"C:/Users/{file}").replace("\\", "/")
file_type = str(f".{full_path.split('.')[-1]}").lower()
if action == 3 and file_type in slist and os.path.getsize(full_path) <= 20971520:
if os.path.isfile(full_path) and self.api_scan(full_path):
os.remove(full_path)
self.send_notify(self.trans("惡意軟體刪除: ")+full_path)
except:
pass
def protect_boot_thread(self):
while self.mbr_protect and self.mbr_value:
try:
time.sleep(0.2)
time.sleep(0.5)
with open(r"\\.\PhysicalDrive0", "r+b") as f:
if self.mbr_value[510:512] == b'\x55\xAA':
if f.read(512) != self.mbr_value:
f.seek(0)
f.write(self.mbr_value)
self.proc.kill()
self.send_notify(self.trans("惡意行為攔截: ")+self.proc.name())
else:
if self.mbr_value[510:512] != b'\x55\xAA':
self.proc.kill()
self.send_notify(self.trans("惡意行為攔截: ")+self.proc.name())
self.init_config_boot()
self.send_notify(self.trans("惡意行為攔截: ")+self.proc.exe().replace("\\", "/"))
elif f.read(512) != self.mbr_value:
f.seek(0)
f.write(self.mbr_value)
self.proc.kill()
self.send_notify(self.trans("惡意行為攔截: ")+self.proc.exe().replace("\\", "/"))
except:
pass
def protect_reg_thread(self):
while self.reg_protect:
try:
time.sleep(0.2)
time.sleep(0.5)
self.repair_system_image()
self.repair_system_restrict()
self.repair_system_file_type()
self.repair_system_file_icon()
self.repair_system_image()
except:
pass
def protect_net_thread(self):
while self.net_protect:
try:
time.sleep(0.5)
local = socket.gethostbyname(socket.gethostname())
for conn in self.proc.connections():
if conn.laddr.ip == local:
self.proc.kill()
self.send_notify(self.trans("網路通訊攔截: ")+self.proc.exe().replace("\\", "/"))
except:
pass
+2 -2
View File
@@ -1,9 +1,9 @@
slist = [".exe",".dll",".com",".msi",".scr",
".bat",".cmd",".ps1",".vbs",".js"]
".js",".bat",".cmd",".ps1",".vbs"]
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",".exe",".dll"]
".zip",".7z",".rar",".tar",".gz"]
-1
View File
@@ -1 +0,0 @@
function_list = [['LoadLibraryA', 'GetProcAddress', 'SetUnhandledExceptionFilter', 'GetCurrentProcess', 'TerminateProcess', 'IsProcessorFeaturePresent', 'QueryPerformanceCounter', 'GetCurrentProcessId', 'GetCurrentThreadId', 'GetSystemTimeAsFileTime', 'InitializeSListHead', 'IsDebuggerPresent', 'GetModuleHandleW', 'UnhandledExceptionFilter', 'GetDC', '?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ', '?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z', '?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ', '?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z', '??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ', '?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ', '?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z', '?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ', '?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ', '?unshift@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PAD1AAPAD@Z', '?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z', '?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ', '?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z', '??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ', '??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z', '?in@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z', '?out@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z', '?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z', '?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ', '?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ', '?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBE_JXZ', '?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z', '?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ', '?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z', '?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z', '?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ', '??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ', '?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JXZ', '?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPAD_J@Z', '?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPBD_J@Z', '??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ', '??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z', '??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ', '?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z', '?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@_JH@Z', '?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@U_Mbstatet@@@2@XZ', '?width@ios_base@std@@QAE_J_J@Z', '?width@ios_base@std@@QBE_JXZ', '?flags@ios_base@std@@QBEHXZ', '?good@ios_base@std@@QBE_NXZ', '?always_noconv@codecvt_base@std@@QBE_NXZ', '??Bid@locale@std@@QAEIXZ', '?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE_JPBD_J@Z', '??1_Lockit@std@@QAE@XZ', '??0_Lockit@std@@QAE@H@Z', '?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A', '?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ', '?uncaught_exception@std@@YA_NXZ', '?_Xout_of_range@std@@YAXPBD@Z', '?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A', '?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z', '?_Xlength_error@std@@YAXPBD@Z', '?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBE_JXZ', '_CxxThrowException', '__current_exception_context', '__std_exception_copy', '__std_exception_destroy', '__CxxFrameHandler3', 'memcpy', '__current_exception', 'memset', '_except_handler4_common', 'memmove', '_fseeki64', '__p__commode', 'fsetpos', 'ungetc', 'setvbuf', 'fgetpos', 'fwrite', '_set_fmode', '_get_stream_buffer_pointers', '__stdio_common_vfprintf', 'fgetc', 'fclose', 'fflush', '__acrt_iob_func', 'fputc', 'fread', '_lock_file', '_unlock_file', 'exit', '_exit', '_configure_narrow_argv', '__p___argc', '_initterm_e', '_cexit', '_c_exit', '_register_thread_local_exe_atexit_callback', '_initterm', '_set_app_type', '_get_initial_narrow_environment', '_seh_filter_exe', '_initialize_onexit_table', '_register_onexit_function', '_crt_atexit', '_controlfp_s', 'terminate', '_initialize_narrow_environment', '_invalid_parameter_noinfo_noreturn', '__p___argv', 'free', '_set_new_mode', 'malloc', '_callnewh', '__setusermatherr', '_configthreadlocale'], ['GetCurrentProcess', 'FindNextFileA', 'FindClose', 'GetSystemDirectoryA', 'DeleteFileA', 'SetFileAttributesA', 'ExitProcess', 'FLine truncated
Binary file not shown.
Binary file not shown.
+51 -27
View File
@@ -584,30 +584,6 @@ class Ui_MainWindow(object):
self.Virus_Scan_choose_Button.setDefault(False)
self.Virus_Scan_choose_Button.setFlat(False)
self.Virus_Scan_choose_Button.setObjectName("Virus_Scan_choose_Button")
self.Virus_Scan_output = QtWidgets.QListView(self.Virus_Scan_widget)
self.Virus_Scan_output.setEnabled(True)
self.Virus_Scan_output.setGeometry(QtCore.QRect(45, 150, 581, 301))
font = QtGui.QFont()
font.setPointSize(9)
self.Virus_Scan_output.setFont(font)
self.Virus_Scan_output.setStyleSheet("QWidget::item\n"
"{\n"
"background-color: rgba(50,50,50,30);\n"
"color:black;\n"
"border: transparent;\n"
"border-bottom: 1px solid #dbdbdb;\n"
"padding: 5px;\n"
"}\n"
"QWidget::item:hover\n"
"{\n"
"background-color: rgba(50,50,50,40);\n"
"}\n"
"QListView\n"
"{\n"
"outline: none;\n"
"}")
self.Virus_Scan_output.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.Virus_Scan_output.setObjectName("Virus_Scan_output")
self.Virus_Scan_choose_widget = QtWidgets.QWidget(self.Virus_Scan_widget)
self.Virus_Scan_choose_widget.setGeometry(QtCore.QRect(480, 67, 141, 31))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
@@ -785,6 +761,45 @@ class Ui_MainWindow(object):
self.Virus_Scan_Break_Button.setDefault(False)
self.Virus_Scan_Break_Button.setFlat(False)
self.Virus_Scan_Break_Button.setObjectName("Virus_Scan_Break_Button")
self.Virus_Scan_output = QtWidgets.QListWidget(self.Virus_Scan_widget)
self.Virus_Scan_output.setGeometry(QtCore.QRect(45, 150, 581, 301))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(9)
self.Virus_Scan_output.setFont(font)
self.Virus_Scan_output.setStyleSheet("QWidget::item\n"
"{\n"
"background-color: rgba(50,50,50,30);\n"
"color:black;\n"
"border: transparent;\n"
"border-bottom: 1px solid #dbdbdb;\n"
"padding: 5px;\n"
"}\n"
"QWidget::item:hover\n"
"{\n"
"background-color: rgba(50,50,50,40);\n"
"}\n"
"QListView\n"
"{\n"
"outline: none;\n"
"}")
self.Virus_Scan_output.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.Virus_Scan_output.setTabKeyNavigation(False)
self.Virus_Scan_output.setProperty("showDropIndicator", True)
self.Virus_Scan_output.setDefaultDropAction(QtCore.Qt.CopyAction)
self.Virus_Scan_output.setAlternatingRowColors(False)
self.Virus_Scan_output.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)
self.Virus_Scan_output.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectItems)
self.Virus_Scan_output.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerItem)
self.Virus_Scan_output.setHorizontalScrollMode(QtWidgets.QAbstractItemView.ScrollPerItem)
self.Virus_Scan_output.setMovement(QtWidgets.QListView.Static)
self.Virus_Scan_output.setProperty("isWrapping", False)
self.Virus_Scan_output.setResizeMode(QtWidgets.QListView.Fixed)
self.Virus_Scan_output.setLayoutMode(QtWidgets.QListView.SinglePass)
self.Virus_Scan_output.setViewMode(QtWidgets.QListView.ListMode)
self.Virus_Scan_output.setUniformItemSizes(False)
self.Virus_Scan_output.setSelectionRectVisible(False)
self.Virus_Scan_output.setObjectName("Virus_Scan_output")
self.State_widget = QtWidgets.QWidget(self.widget)
self.State_widget.setGeometry(QtCore.QRect(170, 49, 671, 481))
font = QtGui.QFont()
@@ -808,7 +823,7 @@ 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, 20, 171, 171))
self.State_icon.setGeometry(QtCore.QRect(250, 30, 171, 171))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(1)
@@ -836,6 +851,9 @@ class Ui_MainWindow(object):
font.setKerning(True)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.State_output.setFont(font)
self.State_output.setAutoFillBackground(False)
self.State_output.setStyleSheet("")
self.State_output.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
self.State_output.setUndoRedoEnabled(True)
self.State_output.setTextInteractionFlags(QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
self.State_output.setObjectName("State_output")
@@ -1746,7 +1764,7 @@ class Ui_MainWindow(object):
self.Language_Choose_widget_2.setFont(font)
self.Language_Choose_widget_2.setObjectName("Language_Choose_widget_2")
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.Language_Choose_widget_2)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(0, 0, 381, 61))
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(0, 0, 381, 65))
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
@@ -1801,6 +1819,7 @@ class Ui_MainWindow(object):
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_()
@@ -1809,7 +1828,6 @@ class Ui_MainWindow(object):
self.Virus_Scan_widget.raise_()
self.Window_widget.raise_()
self.Navigation_Bar.raise_()
self.Protection_widget.raise_()
self.State_widget.raise_()
MainWindow.setCentralWidget(self.centralwidget)
@@ -1846,7 +1864,13 @@ class Ui_MainWindow(object):
self.Disk_Scan_Button.setText(_translate("MainWindow", "全盤掃描"))
self.Virus_Scan_Solve_Button.setText(_translate("MainWindow", "立即解決"))
self.Virus_Scan_Break_Button.setText(_translate("MainWindow", "停止掃描"))
self.Virus_Scan_output.setSortingEnabled(False)
self.State_title.setText(_translate("MainWindow", "This Device Has Been Protect"))
self.State_output.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:\'Microsoft YaHei\'; 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.State_log.setText(_translate("MainWindow", "日誌:"))
self.About_Back.setText(_translate("MainWindow", "返回"))
self.PYAS_Version.setText(_translate("MainWindow", "PYAS v2.3.5"))
+53 -52
View File
@@ -1,52 +1,53 @@
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","無效簽名":"Unsign ",
"註冊表":"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 ","立即":"",
" ":" "}}
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 ","您":"You ","取消":"Cancel ","未":"Not ",
"垃圾":"Junk ","位元":"byte ","本機":"Computer ","停止":"Stop ",
"增加到":"Add File To ","白名單":"White List ","軟體":"Software ",
"增加":"Add","移除":"Delete","項目":"Items ","生成":"Create ","稱":"",
"複製":"Copy ","開啟":"Open ","此":"This ","並":"And ","全盤":"Full ",
"高":"High ","新":"New ","和":"And ","可能會":"Possible ","會":"Can ",
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Drive ",
"的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","立即":"",
"密鑰":"Key ","檢測":"Detect ","誤報":"False Positive "," ":" "}}
-1
View File
@@ -1 +0,0 @@
scripts_list = ["%0|%0","ExclusionPath","cmdkey","eiculwo"]
+2 -2
View File
@@ -1,10 +1,10 @@
import pyinstaller_versionfile
pyinstaller_versionfile.create_versionfile(
output_file="versionfile.txt",
version='2.8.4',
version='2.9.8',
company_name="PYAS Security",
file_description="Python Antivirus Software",
internal_name="PYAS",
legal_copyright="© PYAS Security",
legal_copyright="PYAS Security",
original_filename="PYAS.exe",
product_name="PYAS")
+7 -5
View File
@@ -1,9 +1,8 @@
# PYAS (Python Antivirus Software)
![PYAS](https://github.com/87owo/PYAS/assets/85057800/46f46cf0-dbf3-4a33-b28d-234f610f1a07)
![PYAS](https://github.com/87owo/PYAS/assets/85057800/153bcad9-18ab-4c81-bcb6-186434d0ef1b)
## Official Website
https://pyantivirus.wixsite.com/pyas ,
https://github.com/87owo/PYAS
https://pyantivirus.wixsite.com/pyas , https://github.com/87owo/PYAS
## MIT License
https://github.com/87owo/PYAS/blob/main/LICENSE.md
@@ -11,10 +10,13 @@ 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
## Import Module
os, gc, sys, time, json, requests, psutil, ctypes, pywin32, subprocess, xml, hashlib, pefile, PyQt5, threading, PYAS_Language, PYAS_Scripts, PYAS_Function, PYAS_Extension, PYAS_Interface
os, gc, sys, time, json, psutil, hashlib, pefile, socket, msvcrt, requests, pyperclip, win32file, win32gui, win32api, win32con, xml, PYAS_Function, PYAS_Function_Safe, PYAS_Extension, PYAS_Language, PYAS_Interface, threading, PyQt5
## Special Thanks
360, Wix, VirusShare, mtkiao129, LenStevens
360, Wix, VirusShare, mtkiao129, LenStevens, AV-T Team of LisectGroup
Copyright© 2020~2023 PYAS Security By 87owo