mirror of
https://github.com/henrypp/simplewall.git
synced 2026-10-19 09:40:53 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
538c436eeb | ||
|
|
99c51cb21e | ||
|
|
c0ed45e455 | ||
|
|
1c31f48ee0 | ||
|
|
1a9992f557 | ||
|
|
042195476d | ||
|
|
a11ec7cd04 | ||
|
|
e6513aa4d6 | ||
|
|
a3ec131d43 | ||
|
|
b20b935db2 | ||
|
|
c9727af2b6 | ||
|
|
e8030150ed | ||
|
|
77e00911d9 | ||
|
|
8536e23378 | ||
|
|
e8a4491a5b | ||
|
|
633e75ca8a | ||
|
|
dd21da32a8 | ||
|
|
35af140ed5 | ||
|
|
1d402d0ccc | ||
|
|
482893bcd8 | ||
|
|
33bb259574 | ||
|
|
7ec04d0ca7 | ||
|
|
a335d9cf68 | ||
|
|
350721365e | ||
|
|
a4a41c4255 | ||
|
|
3b1e4b4bbc | ||
|
|
db8ba1b4bc | ||
|
|
1cefd8f2f5 | ||
|
|
ad889edc6e | ||
|
|
79a1cdc547 | ||
|
|
0a6a28bd58 | ||
|
|
f7147d3ad6 | ||
|
|
d4cc6a2505 | ||
|
|
aa32c54989 | ||
|
|
e731b7f58d | ||
|
|
1318800c68 | ||
|
|
f252e9fc8a | ||
|
|
a694a2101f | ||
|
|
e8d66c9ca3 | ||
|
|
145f8ab72e | ||
|
|
893b99a5c0 | ||
|
|
66f7bbea5e | ||
|
|
52211ffda6 | ||
|
|
0e499b0954 | ||
|
|
85149595b1 | ||
|
|
090fa500a3 | ||
|
|
0b5bd95ee6 | ||
|
|
455d97e0b3 | ||
|
|
bdfa941ac7 | ||
|
|
7543e76a3b | ||
|
|
fcfdf3bf1e | ||
|
|
c2dd2cd49d | ||
|
|
889c741079 | ||
|
|
f35139d504 | ||
|
|
8bfa1e08ee | ||
|
|
4c82aaaccc | ||
|
|
1ba4232ef5 | ||
|
|
0b8af49e55 | ||
|
|
d112f45714 | ||
|
|
215cb2cf06 | ||
|
|
8e7c8e4926 | ||
|
|
2e935fb409 | ||
|
|
3722e909ca | ||
|
|
e9e45f4418 | ||
|
|
854239b03e | ||
|
|
cab737ee6c | ||
|
|
6cfd8a5632 | ||
|
|
876cf208aa | ||
|
|
4755106db4 | ||
|
|
61e8565b53 | ||
|
|
a957353c96 | ||
|
|
79ab36f98d | ||
|
|
0de5895d83 | ||
|
|
80431c5488 | ||
|
|
6ad1181721 | ||
|
|
4c7facff7a | ||
|
|
ee2a86aead | ||
|
|
42f0e61f01 | ||
|
|
96ec63b2f0 | ||
|
|
15369df33f | ||
|
|
2daccefdea | ||
|
|
e9b540e66f | ||
|
|
681c442b65 | ||
|
|
d308daed43 | ||
|
|
7c131fc627 | ||
|
|
3c44ab2198 | ||
|
|
50fbeeea69 | ||
|
|
a438a84d1d | ||
|
|
5d6684bf93 | ||
|
|
07f967e934 | ||
|
|
6e058371a6 | ||
|
|
ec30e6301f | ||
|
|
f26a131626 | ||
|
|
cf5c228bad | ||
|
|
1efc1d393e | ||
|
|
c138c0b0a0 | ||
|
|
04ebcae264 | ||
|
|
6ffc904f20 | ||
|
|
e2b2006cc5 | ||
|
|
c463ca4815 | ||
|
|
198c65f8db | ||
|
|
7ae806241f | ||
|
|
05537f369e | ||
|
|
4b97967eb2 | ||
|
|
dc4e94482d | ||
|
|
a242716c63 | ||
|
|
c7d4b3a35b | ||
|
|
26d2512115 | ||
|
|
3b9f847ae8 | ||
|
|
6b24b9b688 | ||
|
|
f41b0e95d3 | ||
|
|
b261ed04b2 | ||
|
|
80ecc713ca | ||
|
|
cdba263b10 | ||
|
|
7aa9a5ae9f | ||
|
|
29a0f2355d | ||
|
|
2955ca392a | ||
|
|
8cb2f8309f | ||
|
|
c8a50072c4 | ||
|
|
0d1eff6e07 | ||
|
|
5c3fd240b8 | ||
|
|
3dad686352 | ||
|
|
1c6f5512e2 | ||
|
|
b33787d022 | ||
|
|
ac26edb53b | ||
|
|
fe42288fb5 | ||
|
|
3e03ada226 | ||
|
|
67248d4642 | ||
|
|
41230c6f19 | ||
|
|
2820031946 | ||
|
|
c29125dc53 | ||
|
|
4641007783 | ||
|
|
6e56a69235 | ||
|
|
cffed7c35e | ||
|
|
e5f9689e2a | ||
|
|
02d0247ca2 | ||
|
|
54998c3d54 | ||
|
|
6e03c2ebf8 | ||
|
|
16da82f768 | ||
|
|
769fb73a57 | ||
|
|
ae08056e72 | ||
|
|
654c26238f | ||
|
|
795b106f5f | ||
|
|
bd3a57020c | ||
|
|
80fa52399e | ||
|
|
60083603b6 | ||
|
|
591fee7e8d | ||
|
|
d9ee5dd4e7 | ||
|
|
1f37f7c3c8 | ||
|
|
d5902ddb91 | ||
|
|
0ffad30f5a | ||
|
|
09cc4ed596 | ||
|
|
59bcac18bf | ||
|
|
1e599c2715 | ||
|
|
6df3ee4f1e | ||
|
|
9c058cbd52 | ||
|
|
36ac9adcdc | ||
|
|
b1085f1659 | ||
|
|
e1a1d06bcb | ||
|
|
4bb5c2a6a0 | ||
|
|
3ade9febb2 | ||
|
|
a1324ee527 | ||
|
|
970dbd1841 | ||
|
|
19024887f2 | ||
|
|
9f2ae198be | ||
|
|
e49f6a556d | ||
|
|
d7bcef3f63 | ||
|
|
18b2d3a91e | ||
|
|
8b3f34b309 | ||
|
|
807e7e7408 | ||
|
|
3401ea63b1 | ||
|
|
dcad34b2dc | ||
|
|
1315a78322 | ||
|
|
d33f091635 | ||
|
|
388a225d9b | ||
|
|
5b6758ee0f | ||
|
|
f23d4464b0 | ||
|
|
1be481e2cd | ||
|
|
cef0298381 | ||
|
|
c35d864355 | ||
|
|
8f771634de | ||
|
|
fb11bc21c5 | ||
|
|
540ccbce1b | ||
|
|
671adbbfde | ||
|
|
a6b1c3efca | ||
|
|
ec02e8ec6f | ||
|
|
46b6e86767 | ||
|
|
dfd4861438 | ||
|
|
0aacb450f1 | ||
|
|
2004c222bc | ||
|
|
299c2ccee1 | ||
|
|
7e2b71ee89 | ||
|
|
d2fe271d2e | ||
|
|
796f54c922 | ||
|
|
745954f6ca | ||
|
|
ea0aeadaa3 | ||
|
|
e64404ffd1 | ||
|
|
0e67d413d9 | ||
|
|
5a54586f03 | ||
|
|
55c75c6c88 | ||
|
|
cbbfb76a60 | ||
|
|
200f83c5fb | ||
|
|
d976d459e5 | ||
|
|
8907f14ee5 | ||
|
|
421bdb8489 | ||
|
|
1585fe616d | ||
|
|
65ad574955 | ||
|
|
396b9804cb | ||
|
|
421e4b32be | ||
|
|
cfd846e600 | ||
|
|
5e8161d969 | ||
|
|
a3b707bb7d | ||
|
|
d38d84362f | ||
|
|
1bb1506709 | ||
|
|
fdf379e881 | ||
|
|
ce604e45ef | ||
|
|
75d63e00c8 | ||
|
|
b7d1759263 | ||
|
|
b17cc13e81 | ||
|
|
90916f2a11 | ||
|
|
1008006f65 | ||
|
|
a85945c536 | ||
|
|
c50ed52ae2 | ||
|
|
ecc5825716 | ||
|
|
06f4479261 | ||
|
|
2e9894aeda | ||
|
|
dfddbd1543 | ||
|
|
8be27ce15d | ||
|
|
0244a70d91 | ||
|
|
5990b33506 | ||
|
|
59c3e0e57e | ||
|
|
1fa930c756 | ||
|
|
92fa17e0ac | ||
|
|
49124b1ad5 | ||
|
|
596db0a78d | ||
|
|
304489f401 | ||
|
|
508c7fa847 | ||
|
|
7b25073db0 | ||
|
|
ab3454f670 | ||
|
|
4f35ca0eba | ||
|
|
a1686f5016 | ||
|
|
d7fad87ca4 | ||
|
|
f4238198bb | ||
|
|
e417ad3010 | ||
|
|
e2a6bac81a | ||
|
|
17e3ee22e5 | ||
|
|
f918d7943f | ||
|
|
6f58534119 | ||
|
|
7e01cde661 | ||
|
|
a36578c831 | ||
|
|
df4c3209f1 | ||
|
|
0211e576bd | ||
|
|
65ab9ca1b5 | ||
|
|
32dfc36617 | ||
|
|
0984934bea | ||
|
|
2a5bfbcc17 | ||
|
|
e01e78b96e | ||
|
|
a737baed86 | ||
|
|
1d67288ac6 | ||
|
|
680d6dfcef | ||
|
|
8e10b4757c | ||
|
|
1511265fc1 | ||
|
|
0837a1819d | ||
|
|
e29fc3cb53 | ||
|
|
00ef2907e9 | ||
|
|
61b579a635 | ||
|
|
eba453a607 | ||
|
|
02236311b7 | ||
|
|
c1b3440719 | ||
|
|
580138f9a7 | ||
|
|
f6235c2297 | ||
|
|
9641e5b40b | ||
|
|
d6fa5dfa51 | ||
|
|
c8fabfa2eb | ||
|
|
04856afa61 | ||
|
|
21d9d67e1d | ||
|
|
c557897201 | ||
|
|
e5d8f70cf2 | ||
|
|
178f6a9627 | ||
|
|
85102950d4 | ||
|
|
518fd54bb1 | ||
|
|
c570a5d19e | ||
|
|
eba0a965ab | ||
|
|
3b8a89efd7 | ||
|
|
f1b5577850 | ||
|
|
512339d506 | ||
|
|
e24062aee7 | ||
|
|
ff2fd4a108 | ||
|
|
dffc8ef80c | ||
|
|
ba77d256c7 | ||
|
|
c0e2eed688 | ||
|
|
39cf1ea7e8 | ||
|
|
17f365a8e6 | ||
|
|
9126c99a7d | ||
|
|
815ea1cd3a | ||
|
|
a4fc4ba19d | ||
|
|
58f49f6aea | ||
|
|
7449bf3c49 | ||
|
|
c6737eb903 | ||
|
|
d6e2d984b3 | ||
|
|
b0b438e3d7 | ||
|
|
437cfe223d | ||
|
|
641f892e7d | ||
|
|
1a1b8b7733 | ||
|
|
8e67e1256d | ||
|
|
4d87ec5801 | ||
|
|
19488d2810 | ||
|
|
6cc1523a12 | ||
|
|
473799a589 | ||
|
|
af2f47ebd7 | ||
|
|
9317fcb8db | ||
|
|
55ec05a005 | ||
|
|
007db489c7 | ||
|
|
141908ff38 | ||
|
|
1c7c4776a0 | ||
|
|
bf26c51b9e | ||
|
|
36898e2dcd | ||
|
|
a0921d6e52 | ||
|
|
217b0fb1fc | ||
|
|
bf846f2eba | ||
|
|
109d35cd6b | ||
|
|
a5b8205dad | ||
|
|
e4994aba15 | ||
|
|
a80222d270 | ||
|
|
72af699c43 | ||
|
|
394801d1f6 | ||
|
|
ee8c7ee867 | ||
|
|
8dfc7ffdbf | ||
|
|
f46f6c2777 | ||
|
|
d765698218 | ||
|
|
5efe0723ea | ||
|
|
cbe4b40793 | ||
|
|
863d659c7c | ||
|
|
50c7bf0c38 | ||
|
|
bdae73d13b | ||
|
|
6968ee9a8c | ||
|
|
fefb41cc52 | ||
|
|
6c5087886b | ||
|
|
d68e903bf8 | ||
|
|
f9a45f2f80 | ||
|
|
5040e70c6c | ||
|
|
058d27ea95 | ||
|
|
0fbd444fbb | ||
|
|
8036437108 | ||
|
|
ee9e581bdb | ||
|
|
81c3d3a20e | ||
|
|
4179098c74 | ||
|
|
b261fae444 | ||
|
|
f286f2ebed | ||
|
|
68eb38780e | ||
|
|
9c9d15f001 | ||
|
|
7cb9f88116 | ||
|
|
c8d998f777 | ||
|
|
54fc441de9 | ||
|
|
187182435a | ||
|
|
f076962407 | ||
|
|
dbb9ebf97e | ||
|
|
46ecb46a59 | ||
|
|
d155f68383 | ||
|
|
817edd860a | ||
|
|
b80d135cb4 | ||
|
|
1014414230 | ||
|
|
d3c6a966cf | ||
|
|
cc2435cf9c | ||
|
|
818bdaf906 | ||
|
|
15bfd00c6c | ||
|
|
8daf832c35 | ||
|
|
d0a7bb6053 | ||
|
|
5846fc116e | ||
|
|
e6ab769bb1 | ||
|
|
7b3c11886a | ||
|
|
691d6d6c1d | ||
|
|
28c9bd7553 | ||
|
|
dbaa17fa44 | ||
|
|
9c0599c55f | ||
|
|
b99ee978df | ||
|
|
ff7cedffe8 | ||
|
|
7eb4d0018e | ||
|
|
468a47846e | ||
|
|
26bfebebfd | ||
|
|
d22ed31961 | ||
|
|
9b0faeb05f | ||
|
|
9bd5465709 | ||
|
|
d6cbbb6e93 | ||
|
|
943c9da21f | ||
|
|
5e3534f4b4 | ||
|
|
c3b8fb1546 | ||
|
|
6b7bbaece7 | ||
|
|
e9e5358ac8 | ||
|
|
f0e3d578b0 | ||
|
|
31a6aaa60e | ||
|
|
906ede9cb4 | ||
|
|
cb80773f7b | ||
|
|
0ceb116513 | ||
|
|
2fb973cd79 | ||
|
|
f3319cc8ba | ||
|
|
c5a26ffd28 | ||
|
|
a8b9751b8d | ||
|
|
6e10e6cf20 | ||
|
|
674eb30c48 | ||
|
|
17689777af | ||
|
|
79f08abceb | ||
|
|
d8034e0b9b | ||
|
|
316a1188a2 | ||
|
|
c9e0c244f6 | ||
|
|
da5db4e5bd | ||
|
|
401864db0c | ||
|
|
d2a8eb1414 | ||
|
|
912bfc372e | ||
|
|
07d92cc7ea | ||
|
|
bf7a7f9a8b | ||
|
|
bd92fc05f9 | ||
|
|
256003543b | ||
|
|
33b399df98 | ||
|
|
ba52674c35 | ||
|
|
a397c784c0 | ||
|
|
6fc5ac6ce9 | ||
|
|
d20a104999 | ||
|
|
f229a226e6 | ||
|
|
84f877d197 | ||
|
|
8b8d9f0b39 | ||
|
|
7b4e58e0d7 | ||
|
|
a63f048e72 | ||
|
|
ff210fdb61 | ||
|
|
32d41f14b8 | ||
|
|
747e8f68ff | ||
|
|
6d9fcf1c4e | ||
|
|
bd98f05fa4 | ||
|
|
1f2bdb19c1 | ||
|
|
7148a409b0 | ||
|
|
95681bbad3 | ||
|
|
0bf1623812 | ||
|
|
177b34a3bb | ||
|
|
8c4dad833e | ||
|
|
a76b88c804 | ||
|
|
c11d218d04 | ||
|
|
49c4b3ab7d | ||
|
|
9f9e382c88 | ||
|
|
9705cf9af7 | ||
|
|
658360f76b | ||
|
|
bd288cce19 | ||
|
|
9e5f284696 | ||
|
|
a1a5660e71 | ||
|
|
1ae5b99fc6 | ||
|
|
d9b5fa3650 | ||
|
|
f435125f88 | ||
|
|
84c92ce05d | ||
|
|
0ff0aafe64 | ||
|
|
3deed6a8c1 | ||
|
|
8d33f41059 | ||
|
|
4de5812c40 | ||
|
|
2cbf39a6b8 | ||
|
|
1917a630e2 | ||
|
|
3801577fd5 | ||
|
|
87744b05ac | ||
|
|
1337848cf8 | ||
|
|
cddfcae1b7 | ||
|
|
bef347da98 | ||
|
|
839d4a3617 | ||
|
|
5fed68f555 | ||
|
|
d240db0abf | ||
|
|
fe7ba9e12e | ||
|
|
e732d6dd36 | ||
|
|
245e4b0b21 | ||
|
|
5e9b573431 | ||
|
|
ab2a931bbd | ||
|
|
d1b83ef5b1 | ||
|
|
14e832a20c | ||
|
|
aa6a783ddb | ||
|
|
387d25afc1 | ||
|
|
563d818ccc | ||
|
|
6ad670af12 | ||
|
|
978a4f83f2 | ||
|
|
91dd618421 | ||
|
|
0a6ad85e6e | ||
|
|
ca97b8552d | ||
|
|
28a82ee618 | ||
|
|
069e4eb3f9 | ||
|
|
bd68adae7b | ||
|
|
d56281673e | ||
|
|
77a6befc32 | ||
|
|
b983bae35d | ||
|
|
1ce56aa90c | ||
|
|
06e7685d13 | ||
|
|
5eb93a09b0 | ||
|
|
ac08df3981 | ||
|
|
003566b08d | ||
|
|
8150ac2e2e | ||
|
|
66c6cb9e78 | ||
|
|
eeb3ed50f4 | ||
|
|
f6c5b58219 | ||
|
|
6462b04976 | ||
|
|
0e071df6db | ||
|
|
94ab1473d8 | ||
|
|
8c1cbc3891 | ||
|
|
bf15d9a357 | ||
|
|
6b01512a0b | ||
|
|
f6fd5b8066 | ||
|
|
695043aece | ||
|
|
a49c4a4983 | ||
|
|
4e296336b2 | ||
|
|
7dd74553cc | ||
|
|
7f7fe86d38 | ||
|
|
676a12e5bf | ||
|
|
732fbff125 | ||
|
|
68dfb6e756 | ||
|
|
8a599a8ffa | ||
|
|
29abe09766 | ||
|
|
925eee5279 | ||
|
|
978e8aa3ce | ||
|
|
e4c7e257d2 | ||
|
|
ed9c51176b | ||
|
|
9dc08aa8fb | ||
|
|
e770d814c1 | ||
|
|
4e1b7b2462 | ||
|
|
4f63010efa | ||
|
|
1d1a02a5ca | ||
|
|
6877385b2a | ||
|
|
da267317ce | ||
|
|
877a4a28ae | ||
|
|
0fe3eb3e45 | ||
|
|
ec08874c0a | ||
|
|
c1a1686e2d | ||
|
|
e99e775567 | ||
|
|
b2ae0d3bfc | ||
|
|
c78b039248 | ||
|
|
0d912cc45d | ||
|
|
ff61e9e7a3 | ||
|
|
73e95b9fed | ||
|
|
bbb81492c5 | ||
|
|
e04409e110 | ||
|
|
2e89bb706b | ||
|
|
ea32b323b0 | ||
|
|
3bf81f93d6 | ||
|
|
9f127fb180 | ||
|
|
6e0e38f286 | ||
|
|
8eaf6ec800 | ||
|
|
66fd40b412 | ||
|
|
5e053ec8ac | ||
|
|
a74409d0be | ||
|
|
603080acd0 | ||
|
|
3fee4b3dcd | ||
|
|
b26b3467d4 | ||
|
|
fcbd8a3395 | ||
|
|
a101f581d1 | ||
|
|
34a6b1e809 | ||
|
|
bd6d3fd4d1 | ||
|
|
1922477149 | ||
|
|
42ed962593 | ||
|
|
f9ba25aaa4 | ||
|
|
c843bf17b3 | ||
|
|
19cccfcce3 | ||
|
|
dfec331081 | ||
|
|
64e850c0ef | ||
|
|
dadf67e429 | ||
|
|
dc312305c1 | ||
|
|
0e3ec5e596 | ||
|
|
16cfed0264 | ||
|
|
b244d3c9e5 | ||
|
|
5e880ba417 | ||
|
|
8ef0ffc24e | ||
|
|
50ca2cca7f | ||
|
|
f75c954f2f | ||
|
|
24ec6c216e | ||
|
|
3fb81856d9 | ||
|
|
f4f0dc61da | ||
|
|
4e0dc02c69 | ||
|
|
9a854de2d7 | ||
|
|
e4135e0ed3 | ||
|
|
469f5a791d | ||
|
|
7b0b898210 | ||
|
|
3a551f88f5 | ||
|
|
4d8887c7f0 | ||
|
|
a6a1bc433b | ||
|
|
aa901e1d1c | ||
|
|
27a5d971ef | ||
|
|
426079a8d8 | ||
|
|
d1ffaa0a0e | ||
|
|
d9dd978972 | ||
|
|
ff3e1e2f7e | ||
|
|
29ac73e057 | ||
|
|
1545c94c36 | ||
|
|
6a410a32c0 | ||
|
|
1e800d36b7 | ||
|
|
e2b3f32dab | ||
|
|
ea03da6da6 | ||
|
|
ca806b5370 | ||
|
|
f0a76ead8f | ||
|
|
e513f682b9 | ||
|
|
a17250e06d | ||
|
|
a582a7973b | ||
|
|
85580fec07 | ||
|
|
779345dc73 | ||
|
|
1c072367da | ||
|
|
60533782cc | ||
|
|
45be5f1a66 | ||
|
|
5cd38ec0ec | ||
|
|
9723831af5 | ||
|
|
b96b870afa | ||
|
|
0c5e198bd2 | ||
|
|
7dfc87f0cc | ||
|
|
a3aa8fd2c2 | ||
|
|
c18594b2b9 | ||
|
|
ff1094a121 | ||
|
|
691f49cf57 | ||
|
|
9d42d141f7 | ||
|
|
8dc83462fd | ||
|
|
2be53a5f01 | ||
|
|
2b4621ba42 | ||
|
|
fd01c2929d | ||
|
|
d02ae81b4c | ||
|
|
2ac858d014 | ||
|
|
1731bf13d5 | ||
|
|
ada05d683c | ||
|
|
e293d3c8b5 | ||
|
|
14f44b7c6d | ||
|
|
1b8535c671 | ||
|
|
f1d36d18c1 | ||
|
|
bcfbd17632 | ||
|
|
27d3444707 | ||
|
|
b4c242d1ae | ||
|
|
22fe3668b5 | ||
|
|
ff28a82c87 | ||
|
|
7004974e5a | ||
|
|
b13ce0a114 | ||
|
|
7ef839fb0a | ||
|
|
5c7e6edb5b | ||
|
|
bf4cde29f5 | ||
|
|
39012cbd39 | ||
|
|
713ea8fc0f | ||
|
|
004a057383 | ||
|
|
e6351083ae | ||
|
|
112aedac05 | ||
|
|
48457bc917 | ||
|
|
d2764accb2 | ||
|
|
f72a0380d2 | ||
|
|
c04f0e98da | ||
|
|
106e4c6f08 | ||
|
|
3b02df351b | ||
|
|
66d66dafd2 | ||
|
|
08acb6205c | ||
|
|
20fd6d672f | ||
|
|
6b76e777f0 | ||
|
|
8fa58e0f82 | ||
|
|
4fbdda6cfe | ||
|
|
18372649b4 | ||
|
|
e768114bc8 | ||
|
|
ecee35f312 | ||
|
|
89001402ee | ||
|
|
ca6fcf8822 | ||
|
|
9e6d058817 | ||
|
|
50bed31b59 | ||
|
|
0f9c644f72 | ||
|
|
384c7ce148 | ||
|
|
7bbb202f4d | ||
|
|
46552e28ce | ||
|
|
a599204a27 | ||
|
|
bf800ce3d8 | ||
|
|
adfc8730e6 | ||
|
|
1b91aa80ba | ||
|
|
66c3a9d778 | ||
|
|
e11f01841c | ||
|
|
43bc4764a8 | ||
|
|
d9e9088586 | ||
|
|
212538ffc4 | ||
|
|
f673a716f6 | ||
|
|
c51fb46b62 | ||
|
|
faef9d3ab1 | ||
|
|
629f121994 | ||
|
|
d84eafd943 | ||
|
|
5874fa73e2 | ||
|
|
b6e361d7d9 | ||
|
|
0b097a8cf5 | ||
|
|
b4ab890789 | ||
|
|
b7038228a0 | ||
|
|
48a0b11965 | ||
|
|
05bf5cd3da | ||
|
|
17034517d4 | ||
|
|
bacf316db6 | ||
|
|
e40ddcdaa3 | ||
|
|
fb84b3d6bd | ||
|
|
e21c469bdb | ||
|
|
0fba1b45a8 | ||
|
|
d1ee35bd81 | ||
|
|
6cd69b840e | ||
|
|
ec036bf86d | ||
|
|
1267c413c8 | ||
|
|
5b6253c99e | ||
|
|
b87d01fc48 | ||
|
|
afebf9f98e | ||
|
|
30657763df | ||
|
|
38f8418e77 | ||
|
|
0c843820c4 | ||
|
|
e587270f83 | ||
|
|
e5085b2655 | ||
|
|
93c137f501 | ||
|
|
f762ecac56 | ||
|
|
95d2171955 | ||
|
|
5883654fe1 | ||
|
|
fffcb63822 | ||
|
|
81652b7f5d | ||
|
|
01b008aaed | ||
|
|
2ff70fadbd | ||
|
|
8dd765b755 | ||
|
|
deb763b197 | ||
|
|
063dbb1daa | ||
|
|
41c4f0af83 | ||
|
|
e6ddc08cbc | ||
|
|
51a148a690 | ||
|
|
988630ed5d | ||
|
|
4088bd84ef | ||
|
|
e9ddd8ef8a | ||
|
|
64575451ff | ||
|
|
3c024c2d0b | ||
|
|
38ebcb36ee | ||
|
|
36ff64ae1c | ||
|
|
aa20251ee8 | ||
|
|
58931b5f55 | ||
|
|
348ab2d419 | ||
|
|
44ce03e5ef | ||
|
|
97e83d07e8 | ||
|
|
df1b8b135b | ||
|
|
14ced6a9ff | ||
|
|
db3335c257 | ||
|
|
68446788c0 | ||
|
|
9246bddd8b | ||
|
|
3844c53ebb | ||
|
|
9c8aab197a | ||
|
|
6ce3a1a4ab | ||
|
|
9321c9c8f2 | ||
|
|
1a24d7a980 | ||
|
|
25e472ab9d | ||
|
|
9939ea6702 | ||
|
|
1f1c8150ce | ||
|
|
d5937ce6d6 | ||
|
|
8119849bc8 | ||
|
|
00bc3208d4 | ||
|
|
bab2e944e5 | ||
|
|
3871a4c633 | ||
|
|
a33e726029 | ||
|
|
e21cad4eb0 | ||
|
|
65427ff207 | ||
|
|
467a735a01 | ||
|
|
28178c2f49 | ||
|
|
c56ee4e007 | ||
|
|
1c94b9d49c | ||
|
|
e5fe6a9591 | ||
|
|
cfcd2a9d28 | ||
|
|
dbb0a41ef7 | ||
|
|
a0e0080231 | ||
|
|
43ecf3f618 | ||
|
|
355076992c | ||
|
|
084ccf8871 | ||
|
|
1a1c01693b | ||
|
|
b4f81b2fcf | ||
|
|
a3f2cc7ae2 | ||
|
|
0b303d2459 | ||
|
|
e7f910e7af | ||
|
|
cadc5b2d98 | ||
|
|
47a92f4aaf | ||
|
|
dd64990d04 | ||
|
|
5ad314c572 | ||
|
|
3f7ee532f9 | ||
|
|
628b443461 | ||
|
|
fa91ebe1da | ||
|
|
75a2f89b54 | ||
|
|
e5a8930c0f | ||
|
|
78c73bb17d | ||
|
|
bbbb4fdf33 | ||
|
|
12d9dfb213 | ||
|
|
85574c2e03 | ||
|
|
8a948386fd | ||
|
|
7bcb591a9b | ||
|
|
816ce9935f | ||
|
|
51e1e9ffd5 | ||
|
|
bee230686d | ||
|
|
6333ba0bf7 | ||
|
|
dbec1eea7f | ||
|
|
e940afd715 | ||
|
|
82a3a0df40 | ||
|
|
ef492acea3 | ||
|
|
08a19ff552 | ||
|
|
c8f38abc03 | ||
|
|
45dfb98189 | ||
|
|
20931b1340 | ||
|
|
6c835fb2bc | ||
|
|
16ca7e8c68 | ||
|
|
93e6e8b4d9 | ||
|
|
2bef992756 | ||
|
|
523fb9b97f | ||
|
|
b1efb725cc | ||
|
|
d6dd32f846 | ||
|
|
6f69ed1a56 | ||
|
|
fa3eeb014b | ||
|
|
e2d6d2db5b | ||
|
|
c45c2be9f4 | ||
|
|
ec236d8804 | ||
|
|
163ab689c2 | ||
|
|
df2209fea0 | ||
|
|
8c0ebcb654 | ||
|
|
8ecf47a67e | ||
|
|
587e79ad8b | ||
|
|
770b4d2c18 | ||
|
|
7434d8a6e7 | ||
|
|
3af120f439 | ||
|
|
c25987874f | ||
|
|
79fcb4e3d8 | ||
|
|
710db417ae | ||
|
|
7a33835f29 | ||
|
|
b6724ca767 | ||
|
|
7832ae39f7 | ||
|
|
2fba5eef11 | ||
|
|
06faa75886 | ||
|
|
9076f92c11 | ||
|
|
6d39550268 | ||
|
|
a0ea4180b4 | ||
|
|
851b94bd8e | ||
|
|
4adb93173e | ||
|
|
0177e39b82 | ||
|
|
2c93d7d209 | ||
|
|
b6ec1b3d52 | ||
|
|
c01f38734d | ||
|
|
ceeae3e709 | ||
|
|
436383b7b0 | ||
|
|
e32e510161 | ||
|
|
a0ed6a9c85 | ||
|
|
aff410e9f6 | ||
|
|
124f676cc6 | ||
|
|
9e58937000 | ||
|
|
47f7f80e65 | ||
|
|
1bed472791 | ||
|
|
a9091e201b | ||
|
|
a6dc35e848 | ||
|
|
5a41eeeb9c | ||
|
|
ead8451b86 | ||
|
|
41fde1606a | ||
|
|
d0164d48b3 | ||
|
|
5b107b3578 | ||
|
|
d6f85d8a19 | ||
|
|
db05966e2f | ||
|
|
a6b45aa756 | ||
|
|
c2069c84f8 | ||
|
|
1cbaf97d2d | ||
|
|
d360c3c366 | ||
|
|
c1b521059f | ||
|
|
23c6f908f2 | ||
|
|
4ecf707955 | ||
|
|
22d25542f0 | ||
|
|
106db51de0 | ||
|
|
8e2829c5f3 | ||
|
|
de22ca1120 | ||
|
|
48a2b3a8a9 | ||
|
|
73be3b7bbe | ||
|
|
9e34a7f819 | ||
|
|
8f9a9a9568 | ||
|
|
bfc2bb16f1 | ||
|
|
0b8ee08f58 | ||
|
|
e5209350d6 | ||
|
|
40b39057ee | ||
|
|
09c28e7386 | ||
|
|
210bf5866e | ||
|
|
ed0705f2c1 | ||
|
|
14929ffe16 | ||
|
|
d180ec9b47 | ||
|
|
c12f797fd5 | ||
|
|
b6c87083cb | ||
|
|
cbbf2185b6 | ||
|
|
2e4b3d95bf | ||
|
|
4e83bb6fb2 | ||
|
|
8f73c0bdbf | ||
|
|
4bcd59782d | ||
|
|
b2b4c0a459 | ||
|
|
d192738670 | ||
|
|
c0fe32ee81 | ||
|
|
0dc29e7c24 | ||
|
|
8c10d34cac | ||
|
|
a5c218471d | ||
|
|
6a4d9f8f6e | ||
|
|
de7959c56f | ||
|
|
d8fb1b48c5 | ||
|
|
20cc152ddc | ||
|
|
e2a2856e59 | ||
|
|
e2afec1c35 | ||
|
|
0399ff9558 | ||
|
|
4de913d83b | ||
|
|
513d668733 | ||
|
|
298834a9c2 | ||
|
|
107cdd563a | ||
|
|
81376ff421 | ||
|
|
116fcd689d | ||
|
|
97dadf55db | ||
|
|
d3e9f7c502 | ||
|
|
b79fa9d052 | ||
|
|
e69460d0f0 | ||
|
|
d76b81e9ac | ||
|
|
91c232dad2 | ||
|
|
2788f60383 | ||
|
|
3e903bb925 | ||
|
|
798294a9fe | ||
|
|
787e6014b0 | ||
|
|
023e899131 | ||
|
|
c859f91994 | ||
|
|
41b1ffda79 | ||
|
|
5aeab2eb36 | ||
|
|
5f680eba07 | ||
|
|
5d35a09fee | ||
|
|
7a40858807 | ||
|
|
a33e744438 | ||
|
|
9ea13a15f1 | ||
|
|
860692711b | ||
|
|
87b5fd4ccf | ||
|
|
6e68f712a9 | ||
|
|
0d53b7c68f | ||
|
|
1761c92f23 | ||
|
|
3de19f569b | ||
|
|
f589a15e09 | ||
|
|
1aa35fe2ed | ||
|
|
03d323d67a | ||
|
|
ef760d454c | ||
|
|
1c3c7da87d | ||
|
|
fe02304b09 | ||
|
|
47adf36e5d | ||
|
|
73d5ca5b48 | ||
|
|
1871d36da7 | ||
|
|
f28f2129d9 | ||
|
|
4d88bb147d | ||
|
|
6afd0bdd52 | ||
|
|
d087413d1b | ||
|
|
76f659dfb4 | ||
|
|
7804790de6 | ||
|
|
81f6ff06c2 | ||
|
|
7f3839bef2 | ||
|
|
5807bc1428 | ||
|
|
22295f60dd | ||
|
|
c8e521f606 | ||
|
|
06538d9b04 | ||
|
|
e5e8d4f240 | ||
|
|
b6040ad4bd | ||
|
|
06c902e3e0 | ||
|
|
752e4be8c6 | ||
|
|
f82c694aed | ||
|
|
09013441ff | ||
|
|
56ed1a7e88 | ||
|
|
1d4ba1f3a8 | ||
|
|
90ac3921b4 | ||
|
|
23bfb5cf3d | ||
|
|
ea227d5838 | ||
|
|
be14aaf3b7 | ||
|
|
65052f5b63 | ||
|
|
dad476699f | ||
|
|
e20107329f | ||
|
|
7a89c4929a | ||
|
|
43261b72c4 | ||
|
|
972fd6aa2d | ||
|
|
788b4555a9 | ||
|
|
8d66296ee5 | ||
|
|
f2183c7d35 | ||
|
|
fb4f308cf5 | ||
|
|
3ecbc2fea4 | ||
|
|
27c73c3159 | ||
|
|
40edcbea71 | ||
|
|
1a52946940 | ||
|
|
b40c40fad4 | ||
|
|
f69e26ac08 | ||
|
|
276fdf0434 | ||
|
|
59ee99081c | ||
|
|
c5b57cfed5 | ||
|
|
d043029f36 | ||
|
|
0f02dbb124 | ||
|
|
e1eb52d0d1 | ||
|
|
b86d1fa385 | ||
|
|
38406b3cec | ||
|
|
64cf7adbd1 | ||
|
|
8d8c27d0cd | ||
|
|
82a80721ae | ||
|
|
2ea4c7ee2f | ||
|
|
a366a8c1ad | ||
|
|
ba817f04ae | ||
|
|
078127867b | ||
|
|
38daf708b1 | ||
|
|
0c4a856929 | ||
|
|
7569438b29 | ||
|
|
a7e76bf512 | ||
|
|
eb960dcc1e | ||
|
|
5430bf4c9f | ||
|
|
bd9de887cd | ||
|
|
d43493ec9c | ||
|
|
7f46329ec4 | ||
|
|
47ca79c45b | ||
|
|
bfd1fa5c72 | ||
|
|
36f13c7df1 | ||
|
|
adae188732 | ||
|
|
ba95a31196 | ||
|
|
031953258d | ||
|
|
9fa8ad197b | ||
|
|
10a431f954 | ||
|
|
81d33a2bd4 | ||
|
|
fce9681682 | ||
|
|
f7f1b62e5e | ||
|
|
bca213029a | ||
|
|
f311aad43d | ||
|
|
64efde4872 | ||
|
|
117e81b590 | ||
|
|
24d83513b7 | ||
|
|
f56a85cd55 | ||
|
|
bc4fb2f7f2 | ||
|
|
ba877d99eb | ||
|
|
b5dfc3d345 | ||
|
|
4036812a22 | ||
|
|
6386ca0ab1 | ||
|
|
c05577df9d | ||
|
|
5b9124b516 | ||
|
|
5462e8ea71 | ||
|
|
d91b465136 | ||
|
|
9f6e7d2376 | ||
|
|
9f6f9cc4a8 | ||
|
|
3a108c2333 | ||
|
|
6b5ab78524 | ||
|
|
09f138945e | ||
|
|
8666989f6c | ||
|
|
4228cc97dd | ||
|
|
d16030ab9f | ||
|
|
f4b1f00571 | ||
|
|
64c2ac3947 | ||
|
|
8457aed4bc | ||
|
|
9015bdd75e | ||
|
|
fa0bdbae86 | ||
|
|
fadc85347f | ||
|
|
ce2684fbbb | ||
|
|
45b0df3998 | ||
|
|
ce413645d3 | ||
|
|
4153a53a84 | ||
|
|
f63c516245 | ||
|
|
5f52351ff5 | ||
|
|
1242d994b5 | ||
|
|
686684a00c | ||
|
|
deb70d377e | ||
|
|
8c62d8c1ae | ||
|
|
1b81959663 | ||
|
|
03bfc6ec2a | ||
|
|
ed9611a241 | ||
|
|
fff00bbeae | ||
|
|
a842b70d66 | ||
|
|
a0f630a03e | ||
|
|
d3067e86e7 | ||
|
|
ef67836d79 | ||
|
|
c8079245f4 | ||
|
|
8cc6ff7021 | ||
|
|
665082d6d3 | ||
|
|
a28b527648 | ||
|
|
d5431a8130 | ||
|
|
46f605001c | ||
|
|
081e59c620 | ||
|
|
0d0354f160 | ||
|
|
9558a84c1c | ||
|
|
c9d7a56ef7 | ||
|
|
28408306a1 | ||
|
|
301faaeeaa | ||
|
|
05370e2eb9 | ||
|
|
1241398718 | ||
|
|
921b4ab596 | ||
|
|
b8ff8ad3bb | ||
|
|
a67851f9cc | ||
|
|
299e40cb7a | ||
|
|
9f75f58cc5 | ||
|
|
c298151a12 | ||
|
|
b53560bc77 | ||
|
|
cf3a5608ce | ||
|
|
f92d1dd8ca | ||
|
|
bea13f8f9d | ||
|
|
0611e157ab | ||
|
|
44910ea1be | ||
|
|
d0934bfdc9 | ||
|
|
0a13537faf | ||
|
|
25a0e8aa41 | ||
|
|
a55b59cca1 | ||
|
|
9aed330183 | ||
|
|
1f9b192312 | ||
|
|
1321575b7b | ||
|
|
4fcaf20ff9 | ||
|
|
43d2e49a47 | ||
|
|
4d9adba2c8 | ||
|
|
dee84344a7 | ||
|
|
d7deff5b42 | ||
|
|
1262cc559b | ||
|
|
25de58f01a | ||
|
|
553cd15511 | ||
|
|
5469fa7057 | ||
|
|
d4adb035cd | ||
|
|
bb93d063ae | ||
|
|
a784a2a900 | ||
|
|
e46bcd1262 | ||
|
|
7dfb98138b | ||
|
|
2ea188857f | ||
|
|
a8aa1dddea | ||
|
|
989e7ddc3a | ||
|
|
c75fd968ac | ||
|
|
7a08c41d09 | ||
|
|
d349ea3c24 | ||
|
|
ed175deb3f | ||
|
|
68dd00d34a | ||
|
|
b73cd29746 | ||
|
|
efe624088d | ||
|
|
689f66b6b0 | ||
|
|
bf022b11da | ||
|
|
f837211891 | ||
|
|
4823e177f3 | ||
|
|
fc09d0e284 | ||
|
|
0b6414cbd8 | ||
|
|
a6289b84c0 | ||
|
|
0783531bf4 | ||
|
|
69ac99154b | ||
|
|
eeb8c2cb0c | ||
|
|
7c39101227 | ||
|
|
5616544a77 | ||
|
|
6f7db96c36 | ||
|
|
f6584daa60 | ||
|
|
10412f08fc | ||
|
|
720fddf9c7 | ||
|
|
78984e993f | ||
|
|
784d99ab64 | ||
|
|
30cd391448 | ||
|
|
4ff2b951aa | ||
|
|
35dfb6bfda | ||
|
|
cbaf039718 | ||
|
|
7c40b0258f | ||
|
|
0168de736b | ||
|
|
7ad7854ac7 | ||
|
|
4c094d63ca | ||
|
|
9463d38977 | ||
|
|
e81ff4f2d8 | ||
|
|
0b5a4c3a80 | ||
|
|
ddc63362d0 | ||
|
|
7bf54d4682 | ||
|
|
60b29b2200 | ||
|
|
8369035b03 | ||
|
|
9bc2ec519f | ||
|
|
6881c4bf55 | ||
|
|
e774f2f815 | ||
|
|
571b93efe0 | ||
|
|
10ae8c5a42 | ||
|
|
005f89bd72 | ||
|
|
3a60139b98 | ||
|
|
af61bd4134 | ||
|
|
c8748d2896 | ||
|
|
a34c50db47 | ||
|
|
84af266969 | ||
|
|
9c0f0d957d | ||
|
|
f4a4d36aae | ||
|
|
9d472472a1 | ||
|
|
e55120a4a3 | ||
|
|
c4e4376886 | ||
|
|
29d37dbf9d | ||
|
|
d378094817 | ||
|
|
0c239f9470 | ||
|
|
dbda875725 | ||
|
|
a568b46baf | ||
|
|
d1bb7deaa2 | ||
|
|
aaaa195cd9 | ||
|
|
a9d217e7a1 | ||
|
|
009c8af3f9 | ||
|
|
fd3177a9bb | ||
|
|
4c87e70e17 | ||
|
|
f5677b81a5 | ||
|
|
a14d230f33 | ||
|
|
c00ead72c3 | ||
|
|
9980a3aa22 | ||
|
|
5874237d8c | ||
|
|
989da95be5 | ||
|
|
d06cee95d6 | ||
|
|
f9890ca143 | ||
|
|
1e1205242b | ||
|
|
688e2c6245 | ||
|
|
84e704aa4c | ||
|
|
2f8ec93ae1 | ||
|
|
923dbbbb63 | ||
|
|
ad24d1a784 | ||
|
|
c165d61b7d | ||
|
|
9c1ac5d262 | ||
|
|
c7489ead82 | ||
|
|
7c6c032b7d | ||
|
|
fa06500710 | ||
|
|
1eb5fa33fa | ||
|
|
ed7362ae8f | ||
|
|
7fd7123224 | ||
|
|
fdce1768dd | ||
|
|
3c649c9530 | ||
|
|
ba117768d7 | ||
|
|
52ada2c376 | ||
|
|
8cfe6fa9c7 | ||
|
|
06624b2903 | ||
|
|
1954e20af1 | ||
|
|
7c61753ada | ||
|
|
41fa7d3ab7 | ||
|
|
013e103d29 | ||
|
|
1bd8c4624d | ||
|
|
ed9b0b3054 | ||
|
|
59f8bd1417 | ||
|
|
500c202a2a | ||
|
|
120e3747db | ||
|
|
b6307b52b1 | ||
|
|
a9494c199b | ||
|
|
e0ab9dd2e7 | ||
|
|
a6873d6d0a | ||
|
|
bdd7990ddb | ||
|
|
6f8561bc80 | ||
|
|
d32142a911 | ||
|
|
36e04040e5 | ||
|
|
be6cdd9e76 | ||
|
|
b6aa175e41 | ||
|
|
0064cd50f7 | ||
|
|
31faa94df7 | ||
|
|
22cfddcd71 | ||
|
|
87734378e9 | ||
|
|
ebc68a83fd | ||
|
|
6889a1e143 | ||
|
|
bea98fb11b | ||
|
|
e2f42b7d5f | ||
|
|
1ec10befe7 | ||
|
|
1a3deafa5a | ||
|
|
76fc7f6a00 | ||
|
|
a26138c2df | ||
|
|
530011d521 | ||
|
|
7e53bb97c3 | ||
|
|
6340dd3874 | ||
|
|
52a49d7db6 | ||
|
|
fd53ba825e | ||
|
|
1b28591006 | ||
|
|
e7b41ad90a | ||
|
|
86daf1baa6 | ||
|
|
a51759e0df | ||
|
|
91d1980e3d | ||
|
|
4c9f22d727 | ||
|
|
cffac4994f | ||
|
|
46c38aeea5 | ||
|
|
8269d0014e | ||
|
|
22eff2eb1e | ||
|
|
9d44c12e5c | ||
|
|
189d604132 | ||
|
|
3ad18e450b | ||
|
|
8be600d0a2 | ||
|
|
e1feaab906 | ||
|
|
bacbefb119 | ||
|
|
f2cbaeb52f | ||
|
|
338f3ecf43 | ||
|
|
17247f2c74 | ||
|
|
1aa25f4258 | ||
|
|
3b8e2f0b72 | ||
|
|
d02b2f9afb | ||
|
|
cf25a05e3d | ||
|
|
3cf63b23bb | ||
|
|
785bcbe79f | ||
|
|
7df434a150 | ||
|
|
dfca54d61a | ||
|
|
a09aebd946 | ||
|
|
410d9aee5f | ||
|
|
cfcbd7ba53 | ||
|
|
c934e7d0f5 | ||
|
|
00db0834ac | ||
|
|
5ef2119aae | ||
|
|
e8e9cb3218 | ||
|
|
bd297a199e | ||
|
|
0263aadac4 | ||
|
|
6dcbd2c959 | ||
|
|
be020f699d | ||
|
|
05e85a7ae5 | ||
|
|
22aa79a347 | ||
|
|
c00a7ef398 | ||
|
|
f2089154ce | ||
|
|
6ed1e57a7a | ||
|
|
f57ced4cfd | ||
|
|
90c732188e | ||
|
|
baa2b935b3 | ||
|
|
52ab70c670 | ||
|
|
3d2fe06f1c | ||
|
|
da9e0b973b | ||
|
|
c42552d700 | ||
|
|
6ea7072394 | ||
|
|
fddcf5e813 | ||
|
|
43ee7425d3 | ||
|
|
3a5423486c | ||
|
|
01cfd38002 | ||
|
|
e5279e976d | ||
|
|
9a2a481a6a | ||
|
|
5c158c806a | ||
|
|
536ade0213 | ||
|
|
3461c81945 | ||
|
|
b9a80a4d11 | ||
|
|
73377139c7 | ||
|
|
a4944930f7 | ||
|
|
be5affd364 | ||
|
|
1f05a075c7 | ||
|
|
d178b10bfd | ||
|
|
992049afc0 | ||
|
|
3ecabfd51a | ||
|
|
008272f675 | ||
|
|
4b44285ce2 | ||
|
|
29c5b61abf | ||
|
|
9c3b1f564b | ||
|
|
eb935a7c74 | ||
|
|
704304df32 | ||
|
|
9eddab60ea | ||
|
|
711a325827 | ||
|
|
7caee8928e | ||
|
|
f38838b3eb | ||
|
|
0339306375 | ||
|
|
aaf27f006c | ||
|
|
59a8a7e909 | ||
|
|
dc4495d4b5 | ||
|
|
f8dfff1061 | ||
|
|
a43041c20d | ||
|
|
756368c8fc | ||
|
|
86833fc438 | ||
|
|
483bdbf4ac | ||
|
|
c0691506f7 | ||
|
|
58d0bd7df8 | ||
|
|
22dbdca578 | ||
|
|
0eec6fc998 | ||
|
|
dcfd65ea1b | ||
|
|
a07cc68283 | ||
|
|
56f63e33ed | ||
|
|
20ff92b693 | ||
|
|
0fbb4ca176 | ||
|
|
062099f034 | ||
|
|
6722ec99b6 | ||
|
|
ee9ebe8a27 | ||
|
|
cbf926e8e5 | ||
|
|
2c2b73e474 | ||
|
|
dd99232313 | ||
|
|
7b7f108297 | ||
|
|
4f20fedfee | ||
|
|
f9fbcfd258 | ||
|
|
1ed18d5aa6 | ||
|
|
9a3d9ef2fa | ||
|
|
96c1fbb99e | ||
|
|
8326c6d9a7 | ||
|
|
2a786f9024 | ||
|
|
8c8a416f17 | ||
|
|
d12469705f | ||
|
|
90e02044ae | ||
|
|
434eb43ecb | ||
|
|
0c0da35e81 | ||
|
|
e836c497cc | ||
|
|
9269d84be0 | ||
|
|
a42c06cd37 | ||
|
|
8aefb7ec48 | ||
|
|
f47650ab61 | ||
|
|
cb7e038937 | ||
|
|
65230021c4 | ||
|
|
60b0b99301 | ||
|
|
315d42b141 | ||
|
|
e98c03ff0a | ||
|
|
3604ad35e5 | ||
|
|
b512b651ce | ||
|
|
077bba6a4c | ||
|
|
0d447569d6 | ||
|
|
6201acb779 | ||
|
|
1e9914edd7 | ||
|
|
b4f7a27fe7 | ||
|
|
2532bec9b5 | ||
|
|
c2fb2d134a | ||
|
|
c4bb858556 | ||
|
|
8599fcae89 | ||
|
|
16d7bc5faf | ||
|
|
2bd2f32a06 | ||
|
|
f0d5d4006d | ||
|
|
d19d26495a | ||
|
|
4c0d2f7269 | ||
|
|
26eda587de | ||
|
|
08fc245eb7 | ||
|
|
eb485c7415 | ||
|
|
b0355851e2 | ||
|
|
630b4f7fb0 | ||
|
|
b0cf092291 | ||
|
|
595055dca9 | ||
|
|
7d9d7d5cdd | ||
|
|
f2eefbcb1b | ||
|
|
84636258fb | ||
|
|
1577694212 | ||
|
|
b997e4d522 | ||
|
|
551f884667 | ||
|
|
0da7cd16cb | ||
|
|
c17232fa3f | ||
|
|
c1d0aff3a4 | ||
|
|
ec7f513a35 | ||
|
|
c9af943cec | ||
|
|
6f98f0ec29 | ||
|
|
9c5e4b3dff | ||
|
|
224a5de650 | ||
|
|
3a6b66f7ce | ||
|
|
51f9b8d5fb | ||
|
|
7bc93a8e8e | ||
|
|
3a6546c509 | ||
|
|
b9022195e5 | ||
|
|
61731c3c5e | ||
|
|
076872eb05 | ||
|
|
d342c85b96 | ||
|
|
f0bf1f3bdc | ||
|
|
5de584fafa | ||
|
|
4f905506f6 | ||
|
|
9680bc9727 | ||
|
|
3fdbbcb565 | ||
|
|
57bd882f8f | ||
|
|
c4f73eae83 | ||
|
|
575bde1938 | ||
|
|
38beed5494 | ||
|
|
4f7aeef591 | ||
|
|
edf607fdca | ||
|
|
c76da4beb2 | ||
|
|
b54cef21b4 | ||
|
|
17bd678209 | ||
|
|
f97ebe8067 | ||
|
|
ddd871c6c2 | ||
|
|
f0b817a456 | ||
|
|
ebac9d6ddc | ||
|
|
b8544bd36d | ||
|
|
d666d4ff59 | ||
|
|
5285567f41 | ||
|
|
818a048c2e | ||
|
|
254f084a72 | ||
|
|
42f4ed2fbe | ||
|
|
cf6167cafb | ||
|
|
7828fe8cb6 | ||
|
|
98ee7aab0a | ||
|
|
60f851943c | ||
|
|
2c92b16a89 | ||
|
|
d3c9695d00 | ||
|
|
0981cc4fda | ||
|
|
fceb0d6825 | ||
|
|
cffd32e12e | ||
|
|
03891b358b | ||
|
|
4c71012709 | ||
|
|
6764353d08 | ||
|
|
64312f6cef | ||
|
|
efaaf481c9 | ||
|
|
cb5b5084df | ||
|
|
17b57e9e89 | ||
|
|
eb232e71ad | ||
|
|
4b91cbce8e | ||
|
|
aa67bf267b | ||
|
|
b80a1a73c7 | ||
|
|
6e50dd1ba6 | ||
|
|
f94676d9e4 | ||
|
|
3783d469e8 | ||
|
|
c02cd3517b | ||
|
|
a771748b36 | ||
|
|
9bf25ecb7f | ||
|
|
15ad548fa3 | ||
|
|
b7dfe3c2ca | ||
|
|
11e7616e55 | ||
|
|
3e5aca8090 | ||
|
|
586e4c78f2 | ||
|
|
fd0d5c3316 | ||
|
|
7997452329 | ||
|
|
55c67de952 | ||
|
|
aaa8fe9120 | ||
|
|
48285d010a | ||
|
|
f141c8e14d | ||
|
|
288e5afa3a | ||
|
|
213ab55865 | ||
|
|
1660875bbb | ||
|
|
8cc57d0352 | ||
|
|
13ad5abaff | ||
|
|
deba6883a9 | ||
|
|
6a4b4bf78d | ||
|
|
2c818fbfa4 | ||
|
|
87a83c43b2 | ||
|
|
0d0944d588 | ||
|
|
c1f2bd5f0c | ||
|
|
0078622c36 | ||
|
|
1caa36ca9e | ||
|
|
6e734f0a03 | ||
|
|
27582497ed | ||
|
|
cdfd274b15 | ||
|
|
9bc474999c | ||
|
|
1aabd5c043 | ||
|
|
a52104cfe1 | ||
|
|
3e96bbef48 | ||
|
|
20446f0a05 | ||
|
|
02b8ed86d8 | ||
|
|
daa53feb1b | ||
|
|
4bcf456101 | ||
|
|
2cdcae4666 | ||
|
|
f32308a0da | ||
|
|
7b4abfedd7 | ||
|
|
e1949b77a3 | ||
|
|
aaa06f5262 | ||
|
|
ac6d246c8f | ||
|
|
fc24fe673d | ||
|
|
a68b796aed | ||
|
|
f0130acaf4 | ||
|
|
ff96c20017 | ||
|
|
20647fc2f8 | ||
|
|
2d9b4a0c86 | ||
|
|
00b7a4c47c | ||
|
|
3702064a42 | ||
|
|
a2cb24d093 | ||
|
|
059a106044 | ||
|
|
cd1e7f60ba | ||
|
|
9a93855897 | ||
|
|
b2e84c20b7 | ||
|
|
60bbee0ed1 | ||
|
|
6e33b7ebbb | ||
|
|
adc16c2070 | ||
|
|
56107cc288 | ||
|
|
9cd47aff9a | ||
|
|
5eef0e7709 | ||
|
|
aa6912863a | ||
|
|
ded94bec01 | ||
|
|
276e81a088 | ||
|
|
efa6ffac14 | ||
|
|
772ff928e1 | ||
|
|
96302edb5c | ||
|
|
70d8f064d2 | ||
|
|
30506b981d | ||
|
|
4acabbdfc7 | ||
|
|
c1be8a97b1 | ||
|
|
c4f3e79f5d | ||
|
|
feb410a6d9 | ||
|
|
7c1fe4c1ca | ||
|
|
4549aa4284 | ||
|
|
19c7af32fa | ||
|
|
206c1e92b4 | ||
|
|
874f99191d | ||
|
|
94ff6acd2c | ||
|
|
c7521f36a5 | ||
|
|
c26112bb9b | ||
|
|
33e3d578fc | ||
|
|
f415fae79b | ||
|
|
f5a3ef177a | ||
|
|
ddad8c87cb | ||
|
|
03a271fc6c | ||
|
|
d5baf20725 | ||
|
|
62935f376d | ||
|
|
93947dacc0 | ||
|
|
16fa0e7dd8 | ||
|
|
6cf9085061 | ||
|
|
e4a0f4d358 | ||
|
|
17957195e1 | ||
|
|
ce092dbafb | ||
|
|
f91a31d326 | ||
|
|
b6e29b5c0f | ||
|
|
99cdf91215 | ||
|
|
ba1c43bfa7 | ||
|
|
5bbab281de | ||
|
|
2a68165640 | ||
|
|
64e37df1b5 | ||
|
|
a0438805fc | ||
|
|
c915b8bccf | ||
|
|
da6ac789d2 | ||
|
|
da28a692f8 | ||
|
|
09a9ec7043 | ||
|
|
cfa891509f | ||
|
|
250412e1bc | ||
|
|
3b4f87e7e4 | ||
|
|
78f3b5efa4 | ||
|
|
ba9023c646 | ||
|
|
7f5a3c70ea | ||
|
|
27276234d6 | ||
|
|
1f0ca7992c | ||
|
|
f879f94722 | ||
|
|
293ea8c502 | ||
|
|
40dd93ddcb | ||
|
|
d2633ebe74 | ||
|
|
5fab781b93 | ||
|
|
c35b2011db | ||
|
|
530e2a9403 | ||
|
|
3414ab087b | ||
|
|
e1c2ac791f | ||
|
|
268f62a573 | ||
|
|
22e279ec10 | ||
|
|
18ffcd51d0 | ||
|
|
d1dc485e60 | ||
|
|
316851c94e | ||
|
|
9bb2f09921 | ||
|
|
f01e16e5c7 | ||
|
|
adf3283797 | ||
|
|
cea41c44f9 | ||
|
|
5950b65028 | ||
|
|
8ebd70e4f6 | ||
|
|
ebe6425b87 | ||
|
|
9ee4922bc9 | ||
|
|
23657db543 | ||
|
|
6f87e261ce | ||
|
|
0c191873e1 | ||
|
|
e222c170c1 | ||
|
|
c1e5c549e1 | ||
|
|
d95b8799ad | ||
|
|
001e9e376b | ||
|
|
11b22dcbc4 | ||
|
|
7aa28be06e | ||
|
|
e12086ef8d | ||
|
|
d43465184d | ||
|
|
9c4ce9f85c | ||
|
|
fc616a5850 | ||
|
|
4d730ea3ee | ||
|
|
19e5aeb772 | ||
|
|
554ac1827e | ||
|
|
d1fa167c68 | ||
|
|
2526f93567 | ||
|
|
a282dc22d9 | ||
|
|
92ba3ecc6e | ||
|
|
8f4e387e5e | ||
|
|
d89500a4d7 | ||
|
|
cc61b81f45 | ||
|
|
76560656a1 | ||
|
|
a9fc330d1a | ||
|
|
345861ee35 | ||
|
|
a6a0269f8d | ||
|
|
bedf0a828d | ||
|
|
ba3fd6d9a2 | ||
|
|
43ebb72a6e | ||
|
|
cce6de929f | ||
|
|
263f338a51 | ||
|
|
eaf2755a4d | ||
|
|
0afa8a6a18 | ||
|
|
3cc08b3e90 | ||
|
|
14dbc6ad8b | ||
|
|
29fbed0e76 | ||
|
|
e51936a59d | ||
|
|
4ae1790441 | ||
|
|
a632168361 | ||
|
|
c6a64bd5a3 | ||
|
|
3bf83cbd33 | ||
|
|
5026069fa6 | ||
|
|
5ab325544e | ||
|
|
c29e4b6c69 | ||
|
|
ee6e31ec99 | ||
|
|
088d9c412e | ||
|
|
28457a18a9 | ||
|
|
ebf4b5531e | ||
|
|
987895cde7 | ||
|
|
7a012907b5 | ||
|
|
e25a8e90fa | ||
|
|
5f631f773d | ||
|
|
4227221155 | ||
|
|
d4cbfdb66c | ||
|
|
6b8a409afa | ||
|
|
11dc01cd6a | ||
|
|
f5bf7135f0 | ||
|
|
bb13920029 | ||
|
|
928fb1f641 | ||
|
|
15a6c629ca | ||
|
|
16a48a6761 | ||
|
|
8dad41e745 | ||
|
|
c6ab9c5d19 | ||
|
|
8018908192 | ||
|
|
ffc37f5e10 | ||
|
|
7c83564a2b | ||
|
|
61da48b715 | ||
|
|
002bed71e9 | ||
|
|
5780281f9c | ||
|
|
770f222647 | ||
|
|
982ca70c57 | ||
|
|
aa05834481 | ||
|
|
9d6ae56993 | ||
|
|
c39a000786 | ||
|
|
7063e997b3 | ||
|
|
76738e4f95 | ||
|
|
61f15abb4e | ||
|
|
4c6f9fd766 | ||
|
|
164ac28ff0 | ||
|
|
0bd1beb77f | ||
|
|
83db1c99fd | ||
|
|
f9129c314c | ||
|
|
9cdc722f8f | ||
|
|
6b863ef2ea | ||
|
|
762f3ce537 | ||
|
|
d376498217 | ||
|
|
85c0e57aae | ||
|
|
bf92e84571 | ||
|
|
411070bd68 | ||
|
|
6bc54b483a | ||
|
|
edb41ff394 | ||
|
|
5a8742229a | ||
|
|
2ed97ee022 | ||
|
|
f089969367 | ||
|
|
850a5a7dea | ||
|
|
3e208f7eb0 | ||
|
|
6b78e2142c | ||
|
|
a680d3b968 | ||
|
|
aff529421f | ||
|
|
e7ce710a9a | ||
|
|
9d03f8b3a0 | ||
|
|
19a312dea2 | ||
|
|
b9c542540d | ||
|
|
3242e2f3a4 | ||
|
|
7b557a24ed | ||
|
|
0a0b6763b7 | ||
|
|
ab08821a7d | ||
|
|
770908968f | ||
|
|
142e3d2312 | ||
|
|
71f4eaed1c | ||
|
|
b28288c6e9 | ||
|
|
8a950ca028 | ||
|
|
697321f4e0 | ||
|
|
2e52fc0ed8 | ||
|
|
29a1e57431 | ||
|
|
02fdb65097 | ||
|
|
ec0dd379e6 | ||
|
|
57991ee9d2 | ||
|
|
d051daec4b | ||
|
|
a0b01d3ffd | ||
|
|
51beecbc3f | ||
|
|
5d07c8b324 | ||
|
|
53d466e9d6 | ||
|
|
804a0aac74 | ||
|
|
94b1577674 | ||
|
|
ebd4b82b1e | ||
|
|
f0ab33b269 | ||
|
|
faedb21ff1 | ||
|
|
4584fc827a | ||
|
|
4a14603dc4 | ||
|
|
4f5bf617e6 | ||
|
|
4094336067 | ||
|
|
8546b7d415 | ||
|
|
88f7b7623e | ||
|
|
d42324a0d1 | ||
|
|
cdc7e28f7f | ||
|
|
a2f8e2682b | ||
|
|
24aef2248c | ||
|
|
9742986595 | ||
|
|
da72fc9e6e | ||
|
|
ae22bbfc12 | ||
|
|
e47855ea3c | ||
|
|
0f7f807096 | ||
|
|
95ab994b4e | ||
|
|
579fd572e7 | ||
|
|
00a0115bb2 | ||
|
|
fd021cfeea | ||
|
|
3966e5591d | ||
|
|
16ea9a64ba | ||
|
|
db85ee133c | ||
|
|
83f6436f00 | ||
|
|
a3b43df743 | ||
|
|
02b6e50283 | ||
|
|
79447ef592 | ||
|
|
830754194a | ||
|
|
ad25eff355 | ||
|
|
5558e46734 | ||
|
|
1808cc0954 | ||
|
|
1c7073af97 | ||
|
|
97454d1950 | ||
|
|
b4fb3eae5b | ||
|
|
902053d5ac | ||
|
|
dd8af7f5d2 | ||
|
|
101638df8d | ||
|
|
6b2ff3b31e | ||
|
|
f5e77023b1 | ||
|
|
e9ccebf762 | ||
|
|
02b6f992e3 | ||
|
|
53c661b159 | ||
|
|
3f320fcabf | ||
|
|
c4fec1404f | ||
|
|
abc2d41381 | ||
|
|
40ffa04f07 | ||
|
|
4eb50e564d | ||
|
|
4acd2d916f | ||
|
|
10fca1b5c1 | ||
|
|
c3fb73898c | ||
|
|
796bb5405a | ||
|
|
7c24430829 | ||
|
|
10f0b5ef37 | ||
|
|
24e1e7d7c2 | ||
|
|
96591cc41a | ||
|
|
4dc6446c25 | ||
|
|
48747d3c78 | ||
|
|
690325a0b0 | ||
|
|
8842c1f597 | ||
|
|
553cc728ff | ||
|
|
946c61e82f | ||
|
|
b1ee3e90fa | ||
|
|
d37b641180 | ||
|
|
6f17ff86fb | ||
|
|
e77b0d204a | ||
|
|
cf7c3fcf02 | ||
|
|
ffe5f40eaa | ||
|
|
4d3ccdc949 | ||
|
|
ab5350c256 | ||
|
|
6d54a89671 | ||
|
|
2d6b05fd87 | ||
|
|
3af4441e66 | ||
|
|
bc92189707 | ||
|
|
a0b13d7dc7 | ||
|
|
ae17242850 | ||
|
|
6da8e89470 | ||
|
|
ee920e5029 | ||
|
|
c8d3b2a4cb | ||
|
|
b3b96483f7 | ||
|
|
3c163163f5 | ||
|
|
5757cd6c61 | ||
|
|
44703decbb | ||
|
|
181949f9be | ||
|
|
e16059ff8a | ||
|
|
1c513e4a29 | ||
|
|
a96924c93c | ||
|
|
bea0439025 | ||
|
|
59b6512b16 | ||
|
|
b6d16c97b0 | ||
|
|
50b81ed0f2 | ||
|
|
fe47283970 | ||
|
|
bfb23d1888 | ||
|
|
f7415c09a4 | ||
|
|
5ca32b9a5f | ||
|
|
82549bc8f6 | ||
|
|
ee4dc643fc | ||
|
|
bb113c7314 | ||
|
|
07b314eab7 | ||
|
|
04ed66405e | ||
|
|
dffe89a438 | ||
|
|
8b077518be | ||
|
|
c4de1ff845 | ||
|
|
7fd0135d06 | ||
|
|
1879c5d02a | ||
|
|
6e3168d099 | ||
|
|
a923ff51c4 | ||
|
|
fac5ffe402 | ||
|
|
9fa265d4d1 | ||
|
|
b56d60fe05 | ||
|
|
8b49c92d0f | ||
|
|
ce62412c0c | ||
|
|
72880fb807 | ||
|
|
b5ec33ee8e | ||
|
|
6f66710a68 | ||
|
|
1f91275052 | ||
|
|
d4629bc12a | ||
|
|
f02d2562cf | ||
|
|
c638fc0ec2 | ||
|
|
0e91589ade | ||
|
|
824b0a2dca | ||
|
|
e43dc0222c | ||
|
|
4647be7670 | ||
|
|
2015f4de2b | ||
|
|
163c1e9ab6 | ||
|
|
19b7f6280a | ||
|
|
93172a9243 | ||
|
|
0fc6974398 | ||
|
|
c2baed858e | ||
|
|
5a099da716 | ||
|
|
17d300a1e9 | ||
|
|
926bd6d70b | ||
|
|
686205f485 | ||
|
|
e105bce690 | ||
|
|
107b32ab99 | ||
|
|
fae4b9cc5a | ||
|
|
d21acc95a0 | ||
|
|
75a171ada7 | ||
|
|
1ac5a85b82 | ||
|
|
77c7d0768f | ||
|
|
39de8ebd67 | ||
|
|
b49aa27d88 | ||
|
|
d29a877fc8 | ||
|
|
277af25dab | ||
|
|
e00515001f | ||
|
|
ad2eb3f69f | ||
|
|
1f8d74412e | ||
|
|
900537af6b | ||
|
|
85fe075e67 | ||
|
|
a849253c43 | ||
|
|
636a429e2b | ||
|
|
07c2e8a265 | ||
|
|
e1228cbcc5 | ||
|
|
6664da75d9 | ||
|
|
df8ae7962f | ||
|
|
8d4361ccd4 | ||
|
|
20ad9411f2 | ||
|
|
5d192fd0af | ||
|
|
f0db4178ee | ||
|
|
ea2988ee68 | ||
|
|
342eafb784 | ||
|
|
bf95cfc24c | ||
|
|
3a701bff9f | ||
|
|
049f9c334d | ||
|
|
4d40570eab | ||
|
|
6b7c6d05de | ||
|
|
621ac3c7a2 | ||
|
|
38f3478955 | ||
|
|
e4a8f3e48f | ||
|
|
250fea5a28 | ||
|
|
72f9e04444 | ||
|
|
bc91e29aa0 | ||
|
|
47a9c11d99 | ||
|
|
b02dd45dc9 | ||
|
|
446ce9f2fe | ||
|
|
314bd9da5c | ||
|
|
be5a438588 | ||
|
|
09cec7f71b | ||
|
|
dcced67d12 | ||
|
|
4ad5be3494 | ||
|
|
d8fbcf77d3 | ||
|
|
5943c4f553 | ||
|
|
23e0c25d68 | ||
|
|
4039d26476 | ||
|
|
effc00ccb4 | ||
|
|
ffa2d2dea4 | ||
|
|
5cf3c7fa26 | ||
|
|
e09d53649e | ||
|
|
13a88891dd | ||
|
|
8a6e755aa0 | ||
|
|
0300060646 | ||
|
|
0f399fc4cf | ||
|
|
13fb3eb1e2 | ||
|
|
1ecd872cf5 | ||
|
|
11c0b7f17a | ||
|
|
0abe3fc270 | ||
|
|
d22d76b78d | ||
|
|
904827627c | ||
|
|
23c1d7a62c | ||
|
|
153108e4b0 | ||
|
|
399d5851d1 | ||
|
|
4df1cfaad4 | ||
|
|
ebf5f2ed73 | ||
|
|
0de5441a4d | ||
|
|
df1d5747fb | ||
|
|
e40b2a868a | ||
|
|
01bf287b5c | ||
|
|
58d71a161a | ||
|
|
d4d362dca1 | ||
|
|
1cb71c23bb | ||
|
|
16978621ce | ||
|
|
bbb1b79709 | ||
|
|
761e0bca8f | ||
|
|
eb5b276450 | ||
|
|
c468917123 | ||
|
|
5586e063f9 | ||
|
|
6b888b74c9 | ||
|
|
b10d7e17d5 | ||
|
|
35019c5139 | ||
|
|
17c191eec1 | ||
|
|
43ed44c1bb | ||
|
|
9f474bc2ef | ||
|
|
202844fb97 | ||
|
|
ed56d6eb0e | ||
|
|
fdf25cfeda | ||
|
|
4ec6f47420 | ||
|
|
5d37b1d7de | ||
|
|
21dbdbb6bc | ||
|
|
1a7dfd86cb | ||
|
|
2c21a393b9 | ||
|
|
1f75492e20 | ||
|
|
4cbf9ded51 | ||
|
|
046436fe91 | ||
|
|
6beae6ddd7 | ||
|
|
e72e11fefd | ||
|
|
afde3aee24 | ||
|
|
c21b5a14df | ||
|
|
e4b154025c | ||
|
|
e2ac2f3b56 | ||
|
|
0def33a2c5 | ||
|
|
8804df9e94 | ||
|
|
5219e65806 | ||
|
|
2c346ef50e | ||
|
|
918eb5f891 | ||
|
|
819acf0f9f | ||
|
|
3b3d359a77 | ||
|
|
2525e93863 | ||
|
|
81c952c539 | ||
|
|
06dcd38576 | ||
|
|
a17550d81a | ||
|
|
7b37be5f75 | ||
|
|
83c2ae114a | ||
|
|
9b092e89c9 | ||
|
|
f0b666adc0 | ||
|
|
e1dd9d8335 | ||
|
|
0a1ea2ca78 | ||
|
|
9487c56ccd | ||
|
|
312ac063a6 | ||
|
|
82ca4b8b6a | ||
|
|
3a8aff7e86 | ||
|
|
1dda1bb6e3 | ||
|
|
9b7a75bb04 | ||
|
|
63db7eebd7 | ||
|
|
6bc6821ac6 | ||
|
|
0cc79511f7 | ||
|
|
c92b773115 | ||
|
|
449a0b2fa5 | ||
|
|
693de8d2e8 | ||
|
|
6b4c75a2fc | ||
|
|
9835d799d7 | ||
|
|
73f48e04d3 | ||
|
|
57cf63dd6e | ||
|
|
0740b1ad2a | ||
|
|
7bbe1deb2e | ||
|
|
f502863ec3 | ||
|
|
b5672c4293 | ||
|
|
afa4dc191f | ||
|
|
9e4fd69267 | ||
|
|
ed3462c145 | ||
|
|
4fb3e365d6 | ||
|
|
61d6a60242 | ||
|
|
b038a2c5f1 | ||
|
|
7016ba439b | ||
|
|
710dced1f4 | ||
|
|
f3ff8c73e6 | ||
|
|
bdaa05ed9c | ||
|
|
d749886ad3 | ||
|
|
125bc7c788 | ||
|
|
b9ce0a08e5 | ||
|
|
1fce29113f | ||
|
|
57637fa39a | ||
|
|
d1aa5e0d7b | ||
|
|
721ac3dc44 | ||
|
|
5dc109c26a | ||
|
|
17096da820 | ||
|
|
48f695a812 | ||
|
|
fe8fc2fd11 | ||
|
|
07bec45063 | ||
|
|
3bc84f54f5 | ||
|
|
07b2dc158b | ||
|
|
22d151fe7f | ||
|
|
f884294f4e | ||
|
|
5dd89aeafd | ||
|
|
4c5fb49a81 | ||
|
|
44055752d9 | ||
|
|
80abb9df21 | ||
|
|
6c77725c78 | ||
|
|
bea296f550 | ||
|
|
73cbdf6134 | ||
|
|
b6286aaaed | ||
|
|
0b3f1ac0e4 | ||
|
|
9ecc225e6d | ||
|
|
1f9add0a9c | ||
|
|
3c42e29943 | ||
|
|
69c8862f0e | ||
|
|
1c807535b7 | ||
|
|
1b2a18cfcd | ||
|
|
1e674ae170 | ||
|
|
44ffc17dee | ||
|
|
05fe88c6d3 | ||
|
|
e6154d2ef9 | ||
|
|
492c7cb201 | ||
|
|
4731677682 | ||
|
|
89110a1b54 | ||
|
|
59eccd4eca | ||
|
|
d679773499 | ||
|
|
cb78657ce8 | ||
|
|
5138e35042 | ||
|
|
5f46fdb497 | ||
|
|
e97b54f368 | ||
|
|
f6fb5a845c | ||
|
|
9163a418df | ||
|
|
7f5320e913 | ||
|
|
a09eeade10 | ||
|
|
a83a935b37 | ||
|
|
d7f0520784 | ||
|
|
fb13a627eb | ||
|
|
c2c8fb1234 | ||
|
|
d47397b3b3 | ||
|
|
cd6cc63560 | ||
|
|
781b3112da | ||
|
|
f05aacf123 | ||
|
|
b2c26bbf5b | ||
|
|
f1b9266a49 | ||
|
|
38832e168b | ||
|
|
ec676903ce | ||
|
|
16595bf905 | ||
|
|
29929cee7f | ||
|
|
deed40e5de | ||
|
|
58df844788 | ||
|
|
660afeb16d | ||
|
|
e4ff1b2966 | ||
|
|
dc34c5fca5 | ||
|
|
d3d88f6982 | ||
|
|
e342b59030 | ||
|
|
e5824a5444 | ||
|
|
83aea21186 | ||
|
|
36ed895e93 | ||
|
|
ec6fa9e7a1 | ||
|
|
050f3f900f | ||
|
|
b43df857b7 | ||
|
|
8f67c49c95 | ||
|
|
75f38a1279 | ||
|
|
0be8bb9bb0 | ||
|
|
1efd87f623 | ||
|
|
2e26dc3e62 | ||
|
|
b7e9b1d94f | ||
|
|
e1f882a54a | ||
|
|
70bc3ee890 | ||
|
|
0e3cb285b6 | ||
|
|
8a8ab15272 | ||
|
|
b86077ea10 | ||
|
|
229a28c102 | ||
|
|
b9b65ee3e1 | ||
|
|
094bf04ea2 | ||
|
|
ccfe0cb0e2 | ||
|
|
46fd88f59a | ||
|
|
2ae7ab527e | ||
|
|
57745c0427 | ||
|
|
7d0c5dc26c | ||
|
|
dc3cc03e40 | ||
|
|
ebde55ec10 | ||
|
|
4423bd5096 | ||
|
|
4c6d47b1b0 | ||
|
|
b24cacdb1a | ||
|
|
d2be95055e | ||
|
|
46e952ca4f | ||
|
|
b3942d0eea | ||
|
|
4239306928 | ||
|
|
7cb1d67e2f | ||
|
|
a733c63de1 | ||
|
|
1d02f09159 | ||
|
|
0ddabbe3fd | ||
|
|
79a74e9257 | ||
|
|
e9259d9388 | ||
|
|
3fb56f4b35 | ||
|
|
857bec5b05 | ||
|
|
de3739ee4f | ||
|
|
01cd9b700c | ||
|
|
87acaea32d | ||
|
|
4c5333c164 | ||
|
|
a007099abc | ||
|
|
5410cd8618 | ||
|
|
6c1e01bf92 | ||
|
|
4f6c8b40fa | ||
|
|
0f5ea88f33 | ||
|
|
33e50b9ca7 | ||
|
|
406645d0a7 | ||
|
|
ecdcc77b5a | ||
|
|
cfdaf3bee8 | ||
|
|
50c56a4d90 | ||
|
|
0b9cac207a | ||
|
|
82db2f14a5 | ||
|
|
75b16e65cd | ||
|
|
75173285cc | ||
|
|
64a2a65c41 | ||
|
|
c9eb7888d9 | ||
|
|
0be133cfd6 | ||
|
|
b76c758e65 | ||
|
|
a2a42671b4 | ||
|
|
ec6e4567ab | ||
|
|
0e66036b44 | ||
|
|
0c96ae590c | ||
|
|
456a5f93d2 | ||
|
|
28e7fed3dc | ||
|
|
9392acec28 | ||
|
|
7333c731ee | ||
|
|
879e40dcbe | ||
|
|
9808201c5c | ||
|
|
6049cf3030 | ||
|
|
b8d5ada305 | ||
|
|
cba7a35608 | ||
|
|
3f2f0da492 | ||
|
|
4a00ed4c3c | ||
|
|
62a4e5ab71 | ||
|
|
0ee1278132 | ||
|
|
c5dc05b2cc | ||
|
|
7d66762169 | ||
|
|
80a40ed769 | ||
|
|
bcc6a5f0ac | ||
|
|
ffd2dfc7ea | ||
|
|
93ad099772 | ||
|
|
631fa5f378 | ||
|
|
9297d003ce | ||
|
|
d66adbd5ab | ||
|
|
6b2632e09b | ||
|
|
7bd2ff7c8e | ||
|
|
640a1550a3 | ||
|
|
2b7a4a849f | ||
|
|
cb5c41e75a | ||
|
|
cabd3fad0f | ||
|
|
b42138d1b4 | ||
|
|
345c38e88f | ||
|
|
b0eede0cb0 | ||
|
|
e53c67953b | ||
|
|
a0d603b476 | ||
|
|
ea6a62ec72 | ||
|
|
ab9eeb004a | ||
|
|
560fff5b15 | ||
|
|
4b58c70d4c | ||
|
|
a482c24ac8 | ||
|
|
56b350c00b | ||
|
|
983449bdf8 |
No files matched your search
@@ -1,7 +0,0 @@
|
||||
root=true
|
||||
|
||||
[*]
|
||||
indent_style=tab
|
||||
end_of_line=crlf
|
||||
trim_trailing_whitespace=true
|
||||
insert_final_newline=true
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
*.c diff
|
||||
*.cpp diff
|
||||
*.h diff
|
||||
*.rc diff
|
||||
*.ini diff
|
||||
*.txt diff
|
||||
*.xml diff
|
||||
*.lng diff
|
||||
*.c diff
|
||||
*.cpp diff
|
||||
*.h diff
|
||||
*.rc diff
|
||||
*.ini diff
|
||||
*.txt diff
|
||||
*.xml diff
|
||||
*.lng diff
|
||||
+1
-1
@@ -1 +1 @@
|
||||
custom: ["https://www.paypal.me/henrypp", "https://blockchain.info/address/1LrRTXPsvHcQWCNZotA9RcwjsGcRghG96c"]
|
||||
custom: ["https://www.paypal.me/henrypp", "https://yoomoney.ru/to/4100115776040583", "https://www.blockchain.com/btc/address/1LrRTXPsvHcQWCNZotA9RcwjsGcRghG96c", "https://www.blockchain.com/eth/address/0xe2C84A62eb2a4EF154b19bec0c1c106734B95960"]
|
||||
@@ -0,0 +1,66 @@
|
||||
name: Bug report
|
||||
title: "[Bug]"
|
||||
description: Let me know about crash or existing functionality not working like it should.
|
||||
labels: [ "bug" ]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Thanks for taking the time to fill out this bug report!
|
||||
- type: checkboxes
|
||||
id: checklist
|
||||
attributes:
|
||||
label: Checklist
|
||||
options:
|
||||
- label: I have used the search function to see if someone else has already submitted the same bug report.
|
||||
required: true
|
||||
- label: I will describe the problem with as much detail as possible.
|
||||
required: true
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: App version
|
||||
description: What the application version do you use.
|
||||
placeholder: x.y.z
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: windows_version
|
||||
attributes:
|
||||
label: Windows version
|
||||
description: What Windows version do you use.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: steps
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
placeholder: |
|
||||
1. Go to '…'
|
||||
2. Click on '…'
|
||||
3. Scroll down to '…'
|
||||
4. etc.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
description: After following the steps, what did you think application would do?
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: actual
|
||||
attributes:
|
||||
label: Actual behavior
|
||||
description: What did application do instead? Screenshots might help.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Logs
|
||||
description: |
|
||||
- If application have debug log insert it here.
|
||||
- If application have crash dump please attach it here.
|
||||
|
||||
Tip: You can attach images, log files or crash dumps by clicking this area to highlight it and then dragging files in.
|
||||
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: false
|
||||
@@ -0,0 +1,46 @@
|
||||
name: Feature request
|
||||
title: "[Feature]"
|
||||
description: Suggest an idea for this project.
|
||||
labels: [ "feature" ]
|
||||
body:
|
||||
- type: checkboxes
|
||||
id: checklist
|
||||
attributes:
|
||||
label: Checklist
|
||||
options:
|
||||
- label: I have used the search function to see if someone else has already submitted the same feature request.
|
||||
required: true
|
||||
- label: I will describe the problem with as much detail as possible.
|
||||
required: true
|
||||
- label: This issue only contains a request for one single feature, **not** multiple (related) features.
|
||||
required: true
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: App version
|
||||
description: What the application version do you use.
|
||||
placeholder: x.y.z
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: Problem you are trying to solve
|
||||
description: Give a brief explanation of the problem you are trying to solve.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: Suggested solution
|
||||
description: Describe how you would like the app to help you solve that problem. Try to be as specific as possible.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: screenshots
|
||||
attributes:
|
||||
label: Screenshots / Drawings / Technical details
|
||||
description: |
|
||||
If your request is about (or includes) changing or extending the user interface (UI), describe what the UI would look like and how the user would interact with it.
|
||||
|
||||
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: Question
|
||||
about: Ask a question about application.
|
||||
title: '[Question]'
|
||||
labels: [ "question" ]
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Describe the question with as much detail as possible.
|
||||
|
||||
---
|
||||
|
||||
App version: <enter app version here>
|
||||
Windows version: <enter windows version here>
|
||||
@@ -0,0 +1,78 @@
|
||||
# This workflow uses actions that are not certified by GitHub. They are provided
|
||||
# by a third-party and are governed by separate terms of service, privacy
|
||||
# policy, and support documentation.
|
||||
|
||||
name: Scorecard supply-chain security
|
||||
on:
|
||||
# For Branch-Protection check. Only the default branch is supported. See
|
||||
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
|
||||
branch_protection_rule:
|
||||
# To guarantee Maintained check is occasionally updated. See
|
||||
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
|
||||
schedule:
|
||||
- cron: '32 18 * * 3'
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
|
||||
# Declare default permissions as read only.
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
analysis:
|
||||
name: Scorecard analysis
|
||||
runs-on: ubuntu-latest
|
||||
# `publish_results: true` only works when run from the default branch. conditional can be removed if disabled.
|
||||
if: github.event.repository.default_branch == github.ref_name || github.event_name == 'pull_request'
|
||||
permissions:
|
||||
# Needed to upload the results to code-scanning dashboard.
|
||||
security-events: write
|
||||
# Needed to publish results and get a badge (see publish_results below).
|
||||
id-token: write
|
||||
# Uncomment the permissions below if installing in a private repository.
|
||||
# contents: read
|
||||
# actions: read
|
||||
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: "Run analysis"
|
||||
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
|
||||
# - you want to enable the Branch-Protection check on a *public* repository, or
|
||||
# - you are installing Scorecard on a *private* repository
|
||||
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
|
||||
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
|
||||
|
||||
# Public repositories:
|
||||
# - Publish results to OpenSSF REST API for easy access by consumers
|
||||
# - Allows the repository to include the Scorecard badge.
|
||||
# - See https://github.com/ossf/scorecard-action#publishing-results.
|
||||
# For private repositories:
|
||||
# - `publish_results` will always be set to `false`, regardless
|
||||
# of the value entered here.
|
||||
publish_results: true
|
||||
|
||||
# (Optional) Uncomment file_mode if you have a .gitattributes with files marked export-ignore
|
||||
file_mode: git
|
||||
|
||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||
# format to the repository Actions tab.
|
||||
- name: "Upload artifact"
|
||||
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
retention-days: 5
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard (optional).
|
||||
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@v3
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
+41
-36
@@ -1,36 +1,41 @@
|
||||
.vs/
|
||||
.vscode/
|
||||
temp/
|
||||
bin/32/
|
||||
bin/64/
|
||||
x64/
|
||||
win32/
|
||||
|
||||
thumbs.db
|
||||
ehthumbs.db
|
||||
desktop.ini
|
||||
|
||||
*.cab
|
||||
*.msi
|
||||
*.msm
|
||||
*.msp
|
||||
*.lnk
|
||||
*.jpg
|
||||
*.zip
|
||||
*.log
|
||||
*.pdb
|
||||
*.exp
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.db
|
||||
*.opendb
|
||||
*.suo
|
||||
*.exp
|
||||
*.user
|
||||
*.iobj
|
||||
*.ipch
|
||||
*.ipdb
|
||||
*.ilk
|
||||
*.obj
|
||||
*.res
|
||||
*.tlog
|
||||
.vs/
|
||||
.vscode/
|
||||
temp/
|
||||
packages/
|
||||
bin/32/
|
||||
bin/64/
|
||||
bin/arm64/
|
||||
x64/
|
||||
win32/
|
||||
arm64/
|
||||
__pycache__
|
||||
|
||||
thumbs.db
|
||||
ehthumbs.db
|
||||
desktop.ini
|
||||
|
||||
*.cab
|
||||
*.msi
|
||||
*.msm
|
||||
*.msp
|
||||
*.lnk
|
||||
*.jpg
|
||||
*.zip
|
||||
*.log
|
||||
*.pdb
|
||||
*.exp
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.db
|
||||
*.opendb
|
||||
*.suo
|
||||
*.exp
|
||||
*.iobj
|
||||
*.ipch
|
||||
*.ipdb
|
||||
*.ilk
|
||||
*.obj
|
||||
*.res
|
||||
*.tlog
|
||||
|
||||
*PVS-Studio*
|
||||
+7
-7
@@ -1,7 +1,7 @@
|
||||
[submodule "routine"]
|
||||
path = ../routine
|
||||
url = https://github.com/henrypp/routine.git
|
||||
|
||||
[submodule "builder"]
|
||||
path = ../builder
|
||||
url = https://github.com/henrypp/builder.git
|
||||
[submodule "routine"]
|
||||
path = ../routine
|
||||
url = https://github.com/henrypp/routine.git
|
||||
|
||||
[submodule "builder"]
|
||||
path = ../builder
|
||||
url = https://github.com/henrypp/builder.git
|
||||
+653
-1335
File diff suppressed because it is too large.
Load diff
+1114
File diff suppressed because it is too large.
Load diff
@@ -1,32 +1,41 @@
|
||||
simplewall [](https://github.com/henrypp/simplewall/releases) [](https://github.com/henrypp/simplewall/issues) [](https://www.paypal.me/henrypp/15) [](https://blockchain.info/address/1LrRTXPsvHcQWCNZotA9RcwjsGcRghG96c) [](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||
=======
|
||||
#### Definitely for advanced users.
|
||||
<h1 align="center">simplewall</h1>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/henrypp/simplewall/releases"><img src="https://img.shields.io/github/v/release/henrypp/simplewall?style=flat-square&include_prereleases&label=version" /></a>
|
||||
<a href="https://github.com/henrypp/simplewall/releases"><img src="https://img.shields.io/github/downloads/henrypp/simplewall/total.svg?style=flat-square" /></a>
|
||||
<a href="https://github.com/henrypp/simplewall/issues"><img src="https://img.shields.io/github/issues-raw/henrypp/simplewall.svg?style=flat-square&label=issues" /></a>
|
||||
<a href="https://github.com/henrypp/simplewall/graphs/contributors"><img src="https://img.shields.io/github/contributors/henrypp/simplewall?style=flat-square" /></a>
|
||||
<a href="https://github.com/henrypp/simplewall/blob/master/LICENSE"><img src="https://img.shields.io/github/license/henrypp/simplewall?style=flat-square" /></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<i>Definitely for advanced users.</i>
|
||||
</p>
|
||||
|
||||
-------
|
||||
|
||||
[](https://github.com/henrypp/simplewall/issues/250)
|
||||
<p align="center">
|
||||
<img src="/images/simplewall.png?cache" />
|
||||
</p>
|
||||
|
||||
### Description:
|
||||
Simple tool to configure Windows Filtering Platform (WFP) which can configure network activity on your computer.
|
||||
Simple tool to configure [Windows Filtering Platform (WFP)](https://docs.microsoft.com/en-us/windows/win32/fwp/windows-filtering-platform-start-page) which can configure network activity on your computer.
|
||||
|
||||
The lightweight application is less than a megabyte, and it is compatible with Windows Vista and higher operating systems.
|
||||
You can download either the installer or portable version. For correct working, need administrator rights.
|
||||
The lightweight application is less than a megabyte, and it is compatible with Windows 7 SP1 and higher operating systems.
|
||||
You can download either the installer or portable version. For correct working you are require administrator rights.
|
||||
|
||||
### Command line:
|
||||
List of arguments for `simplewall.exe`:
|
||||
- `/install` - enable filtering (you can set `/silent` argument to skip prompt)
|
||||
- `/uninstall` - remove all installed filters
|
||||
|
||||
### Uninstall:
|
||||
When you uninstall simplewall, all previously installed filters are stay alive in system.
|
||||
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.
|
||||
### Nota bene:
|
||||
Keep in mind, simplewall is not a control UI over Windows Firewall, and does not interact in any level with Windows Firewall. It works
|
||||
over Windows Filtering Platform (WFP) which is a set of internal API and system services that provide a platform for creating network filtering
|
||||
applications. Windows Filtering Platform is a development technology and not a firewall itself, but simplewall is the tool that uses this technology.
|
||||
|
||||
### Features:
|
||||
- Simple interface without annoying pop ups
|
||||
- [Rules editor](https://github.com/henrypp/simplewall/wiki/Rules-editor) (create your own rules)
|
||||
- [Internal blocklist](https://github.com/crazy-max/WindowsSpyBlocker/wiki/dataSimplewall) (block Windows spy / telemetry)
|
||||
- [Rules editor](https://github.com/henrypp/simplewall#rules-editor) (create your own rules)
|
||||
- [Internal blocklist](https://crazymax.dev/WindowsSpyBlocker/blocking-rules/simplewall/) (block Windows spy / telemetry)
|
||||
- Dropped packets information with notification and logging to a file feature (win7+)
|
||||
- Allowed packets information with logging to a file feature (win8+)
|
||||
- Windows Subsystem for Linux (WSL) support (win10)
|
||||
- Windows Subsystem for Linux (WSL) support
|
||||
- Windows Store support (win8+)
|
||||
- Windows services support
|
||||
- Free and open source
|
||||
@@ -37,16 +46,286 @@ To remove all filters created by simplewall, start simplewall and press "Disable
|
||||
To activate portable mode, create "simplewall.ini" in application folder, or move it from "%APPDATA%\Henry++\simplewall".
|
||||
```
|
||||
|
||||
### System requirements:
|
||||
- Windows 7, 8, 8.1, 10, 11 64-bit/ARM64
|
||||
- An SSE2-capable CPU
|
||||
- <s>KB2533623</s> [KB3063858](https://www.microsoft.com/en-us/download/details.aspx?id=47442) update for Windows 7 was required
|
||||
|
||||
### Donate:
|
||||
- [Bitcoin](https://www.blockchain.com/btc/address/1LrRTXPsvHcQWCNZotA9RcwjsGcRghG96c) (BTC)
|
||||
- [Ethereum](https://www.blockchain.com/explorer/addresses/eth/0xe2C84A62eb2a4EF154b19bec0c1c106734B95960) (ETH)
|
||||
- [Yandex Money](https://yoomoney.ru/to/4100115776040583) (RUB)
|
||||
- [Paypal](https://paypal.me/henrypp) (USD)
|
||||
|
||||
### GPG Signature:
|
||||
Binaries have GPG signature `simplewall.exe.sig` in application folder.
|
||||
|
||||
- Public key: [pubkey.asc](https://raw.githubusercontent.com/henrypp/builder/master/pubkey.asc) ([pgpkeys.eu](https://pgpkeys.eu/pks/lookup?op=index&fingerprint=on&search=0x5635B5FD))
|
||||
- Key ID: 0x5635B5FD
|
||||
- Fingerprint: D985 2361 1524 AB29 BE73 30AC 2881 20A7 5635 B5FD
|
||||
|
||||
### Reviews of idiots:
|
||||
[<img src="/images/idiot_n1.png" />](https://alternativeto.net/software/simplewall-firewall/about/)
|
||||
|
||||
Look at them, he does not know about [.gitmodules](https://github.com/henrypp/simplewall/blob/master/.gitmodules) and how to use, lol.
|
||||
|
||||
PS: Without idiots we are not to be fun, yeah!
|
||||
|
||||
### Installation:
|
||||
When install rules, you can choose two modes:
|
||||
- Permanent rules - rules are working until you <a href="#uninstall">disable it manually</a>.
|
||||
- Temporary rules - rules are reset after the next reboot.
|
||||
|
||||
### Uninstall:
|
||||
When you uninstall simplewall, all previously configured filters stay alive in system.
|
||||
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.
|
||||
|
||||
### Command line:
|
||||
|
||||
~~~
|
||||
-install - enable filtering.
|
||||
-install -temp - enable filtering until next reboot.
|
||||
-install -silent - enable filtering without prompt.
|
||||
-uninstall - remove all installed filters.
|
||||
~~~
|
||||
|
||||
### Rules editor:
|
||||
simplewall have two types of custom user rules rules:
|
||||
- **Global rules:** rule applied for all applications.
|
||||
- **Special rules:** rule applied only for specified applications.
|
||||
|
||||
<img src="/images/simplewall_rules.png?cache2" />
|
||||
|
||||
### Rule syntax format:
|
||||
|
||||
To set rule applications, open rule and then navigate to "Apps" tab.
|
||||
|
||||
<details>
|
||||
<summary>Rule syntax format:</summary>
|
||||
|
||||
---
|
||||
- IP addresses `192.168.0.1; 192.168.0.1; [fc00::]`
|
||||
- IP addresses with port `192.168.0.1:80; 192.168.0.1:443; [fc00::]:443;`
|
||||
- IP ranges `192.168.0.1-192.168.0.255; 192.168.0.1-192.168.0.255;`
|
||||
- IP ranges (with port) `192.168.0.1-192.168.0.255:80; 192.168.0.1-192.168.0.255:443;` (v2.0.20+)
|
||||
- IP with prefix lengths (CIDR) `192.168.0.0/16; 192.168.0.0/24; fe80::/10`
|
||||
- Ports `21; 80; 443;`
|
||||
- Ports ranges `20-21; 49152-65534;`
|
||||
|
||||
_To specify more than one ip, port and/or host, use semicolon._
|
||||
---
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>IPv4 CIDR blocks:</summary>
|
||||
|
||||
---
|
||||
| Address format | Mask |
|
||||
| -------- | ------- |
|
||||
| a.b.c.d/32 | 255.255.255.255 |
|
||||
| a.b.c.d/31 | 255.255.255.254 |
|
||||
| a.b.c.d/30 | 255.255.255.252 |
|
||||
| a.b.c.d/29 | 255.255.255.248 |
|
||||
| a.b.c.d/28 | 255.255.255.240 |
|
||||
| a.b.c.d/27 | 255.255.255.224 |
|
||||
| a.b.c.d/26 | 255.255.255.192 |
|
||||
| a.b.c.d/25 | 255.255.255.128 |
|
||||
| a.b.c.0/24 | 255.255.255.0|
|
||||
| a.b.c.0/23 | 255.255.254.0|
|
||||
| a.b.c.0/22 | 255.255.252.0|
|
||||
| a.b.c.0/21 | 255.255.248.0|
|
||||
| a.b.c.0/20 | 255.255.240.0|
|
||||
| a.b.c.0/19 | 255.255.224.0|
|
||||
| a.b.c.0/18 | 255.255.192.0|
|
||||
| a.b.c.0/17 | 255.255.128.0|
|
||||
| a.b.0.0/16 | 255.255.0.0|
|
||||
| a.b.0.0/15 | 255.254.0.0|
|
||||
| a.b.0.0/14 | 255.252.0.0|
|
||||
| a.b.0.0/13 | 255.248.0.0|
|
||||
| a.b.0.0/12 | 255.240.0.0|
|
||||
| a.b.0.0/11 | 255.224.0.0|
|
||||
| a.b.0.0/10 | 255.192.0.0|
|
||||
| a.b.0.0/9 | 255.128.0.0|
|
||||
| a.0.0.0/8 | 255.0.0.0|
|
||||
| a.0.0.0/7 | 254.0.0.0|
|
||||
| a.0.0.0/6 | 252.0.0.0|
|
||||
| a.0.0.0/5 | 248.0.0.0|
|
||||
| a.0.0.0/4 | 240.0.0.0|
|
||||
| a.0.0.0/3 | 224.0.0.0|
|
||||
| a.0.0.0/2 | 192.0.0.0|
|
||||
| a.0.0.0/1 | 128.0.0.0|
|
||||
| 0.0.0.0/0 | 0.0.0.0|
|
||||
---
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>IPv6 CIDR blocks:</summary>
|
||||
|
||||
---
|
||||
[IPv6 CIDR blocks](https://www.mediawiki.org/wiki/Help:Range_blocks/IPv6)
|
||||
---
|
||||
</details>
|
||||
|
||||
### FAQ:
|
||||
- [Is it safe to use simplewall with Windows Firewall?](https://github.com/henrypp/simplewall/issues/254#issuecomment-447436527)
|
||||
- [Are internet connections blocked when simplewall is not running?](https://github.com/henrypp/simplewall/issues/119#issuecomment-364003679)
|
||||
- [How can i disable blocklist entirely?](https://github.com/henrypp/simplewall/issues/243)
|
||||
- [How to fix Windows Update and Windows Store internet access (temporary solution)](https://github.com/henrypp/simplewall/issues/206#issuecomment-439830634)
|
||||
- [How to fix IDM Browser Integration](https://github.com/henrypp/simplewall/issues/111)
|
||||
- [How to remove Windows Security center warnings](https://www.howtogeek.com/244539/how-to-disable-the-action-center-in-windows-10/) [win10 1607+](https://serverfault.com/a/880672)
|
||||
#### Q: Are internet connections blocked when simplewall is not running?
|
||||
A: Yes. Installed filters are working even if simplewall is terminated.
|
||||
|
||||
#### Q: What apps are blocked in default configuration?
|
||||
A: By default, simplewall blocks **all** applications. You do not need to create custom rules to block specific applications.
|
||||
|
||||
#### Q: Is it safe to use simplewall with Windows Firewall?
|
||||
A: Yes. You do not need to disable Windows Firewall. These two firewalls work independently.
|
||||
|
||||
#### Q: How can i disable blocklist entirely?
|
||||
A: Open `Settings` -> `Blocklist` and then click the radio buttons labeled `Disable`.
|
||||
|
||||
#### Q: Where is blacklist mode?
|
||||
A: Blacklist was removed many days ago for uselessness. But if you need it, you can still configure it.
|
||||
|
||||
<details>
|
||||
<summary>Solution: Configure blacklist mode in simplewall:</summary>
|
||||
|
||||
---
|
||||
1) Open `Settings` -> `Rules`
|
||||
2) Uncheck `Block outbound for all` and `Block inbound for all` options.
|
||||
3) Create user rule (green cross on toolbar) with block action, any direction, `Block connection` name and empty remote and local rule.
|
||||
4) You can assign this rule for apps whatever you want to block network access.
|
||||
---
|
||||
</details>
|
||||
|
||||
#### Q: Why does my network icon have an exclamation mark?
|
||||
A: When you are connected to a network, Windows checks for internet connectivity using Active Probing. This feature is named as NCSI (Network Connectivity Status Indicator). You can resolve this problem in one of the following ways:
|
||||
|
||||
<details>
|
||||
<summary>Solution 1: Enable NCSI through internal system rule:</summary>
|
||||
|
||||
---
|
||||
1) Open `System rules` tab.
|
||||
2) Allow `NCSI` rule (enabled by default).
|
||||
---
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Solution 2: Disable NCSI through system registry:</summary>
|
||||
|
||||
---
|
||||
Create `Disable NCSI.reg` and import it into registry.
|
||||
|
||||
```reg
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkConnectivityStatusIndicator]
|
||||
"NoActiveProbe"=dword:00000001
|
||||
"DisablePassivePolling"=dword:00000001
|
||||
```
|
||||
---
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Solution 3: Disable NCSI through group policy:</summary>
|
||||
|
||||
---
|
||||
1) Launch the group policy editor (`gpedit.msc` ).
|
||||
2) Go to `Computer Configuration -> Administrative Templates -> System -> Internet Communication Management -> Internet Communication Settings`.
|
||||
3) Double-click `Turn off Windows Network Connectivity Status Indicator active tests` and then select Enabled. Click Ok.
|
||||
4) Open the Command Prompt (Admin) and enter `gpupdate /force` to enforce the changes made to the Group Policies.
|
||||
---
|
||||
</details>
|
||||
|
||||
#### Q: How can I disable Windows Firewall?
|
||||
Start the command line _as an administrator_, and enter the commands below.
|
||||
|
||||
<details>
|
||||
<summary>Disable Windows Firewall profiles:</summary>
|
||||
|
||||
---
|
||||
~~~bat
|
||||
netsh advfirewall set allprofiles state off
|
||||
~~~
|
||||
---
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Enable Windows Firewall profiles:</summary>
|
||||
|
||||
---
|
||||
~~~bat
|
||||
netsh advfirewall set allprofiles state on
|
||||
~~~
|
||||
---
|
||||
</details>
|
||||
|
||||
#### Q: How can I view all filters information?
|
||||
Start the command line _as an administrator_, and enter the commands below.
|
||||
|
||||
<details>
|
||||
<summary>Dump filters information saved into a `filters.xml` file:</summary>
|
||||
|
||||
---
|
||||
~~~bat
|
||||
cd /d %USERPROFILE%\Desktop
|
||||
|
||||
netsh wfp show filters
|
||||
~~~
|
||||
---
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Dump providers, callouts and layers information into a `wfpstate.xml` file:</summary>
|
||||
|
||||
---
|
||||
~~~bat
|
||||
cd /d %USERPROFILE%\Desktop
|
||||
|
||||
netsh wfp show state
|
||||
~~~
|
||||
---
|
||||
</details>
|
||||
|
||||
Open it in any text editor and study.
|
||||
|
||||
#### Q: How to fix Windows Update internet access?
|
||||
<details>
|
||||
<summary>Windows 10 and above:</summary>
|
||||
|
||||
---
|
||||
Open main window menu `Settings` -> `Rules` -> `Allow Windows Update`.
|
||||
<br />
|
||||
This is working by method described [here](https://github.com/henrypp/simplewall/issues/677).
|
||||
|
||||
---
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Windows 8.1:</summary>
|
||||
|
||||
---
|
||||
Open main window, Navigate into `System rules` tab and then enable `Windows Update service` rule.
|
||||
|
||||
---
|
||||
</details>
|
||||
|
||||
#### Q: Other questions:
|
||||
- [Windows Security center integration (impossible)](https://stackoverflow.com/questions/3698285/how-can-i-tell-the-windows-security-center-that-im-an-antivirus/3698375#3698375)
|
||||
|
||||
Website: [www.henrypp.org](https://www.henrypp.org)<br />
|
||||
Support: support@henrypp.org<br />
|
||||
<br />
|
||||
(c) 2016-2020 Henry++
|
||||
<details>
|
||||
<summary>Undocumented options:</summary>
|
||||
|
||||
---
|
||||
~~~ini
|
||||
IsSaveAppsWithEnvironment=TRUE # 4.0+
|
||||
IsNetworkMonitorEnabled=TRUE
|
||||
IsInternalRulesDisabled=FALSE
|
||||
IsBackupProfile=TRUE
|
||||
BackupPeriod=BACKUP_HOURS_PERIOD
|
||||
BackupTimestamp=0
|
||||
IsOCSPEnabled=FALSE
|
||||
UseStealthMode=TRUE
|
||||
~~~
|
||||
</details>
|
||||
|
||||
---
|
||||
- Website: [github.com/henrypp](https://github.com/henrypp)
|
||||
- Support: sforce5@mail.ru
|
||||
---
|
||||
(c) 2016-2026 Henry++
|
||||
@@ -0,0 +1,3 @@
|
||||
simplewall=3.9.1|https://github.com/henrypp/simplewall/releases/download/v.3.9.1/simplewall-3.9.1-setup.exe;
|
||||
language=1792312253|https://raw.githubusercontent.com/henrypp/simplewall/master/bin/simplewall.lng;
|
||||
rules_internal=1784741706|https://raw.githubusercontent.com/henrypp/simplewall/master/bin/profile_internal.sp;
|
||||
+653
-1335
File diff suppressed because it is too large.
Load diff
+674
-674
File diff suppressed because it is too large.
Load diff
+60
-36
@@ -1,36 +1,60 @@
|
||||
simplewall
|
||||
|
||||
Description:
|
||||
Simple tool to configure Windows Filtering Platform (WFP) which can configure network activity on your computer.
|
||||
|
||||
The lightweight application is less than a megabyte, and it is compatible with Windows Vista and higher operating systems.
|
||||
You can download either the installer or portable version. For correct working, need administrator rights.
|
||||
|
||||
Command line:
|
||||
List of arguments for simplewall.exe:
|
||||
- /install - enable filtering (you can set /silent argument to skip prompt)
|
||||
- /uninstall - remove all installed filters
|
||||
|
||||
Uninstall:
|
||||
When you uninstall simplewall, all previously installed filters are stay alive in system.
|
||||
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.
|
||||
|
||||
Features:
|
||||
- Simple interface without annoying pop ups
|
||||
- Rules editor (create your own rules)
|
||||
- Internal blocklist rules (block Windows spy / telemetry)
|
||||
- Dropped packets information with notification and logging to a file feature (win7+)
|
||||
- Allowed packets information with logging to a file feature (win8+)
|
||||
- Windows Subsystem for Linux (WSL) support (win10)
|
||||
- Windows Store support (win8+)
|
||||
- Windows services support
|
||||
- Free and open source
|
||||
- Localization support
|
||||
- IPv6 support
|
||||
|
||||
To activate portable mode, create "simplewall.ini" in application folder, or move it from "%APPDATA%\Henry++\simplewall".
|
||||
|
||||
Website: www.henrypp.org
|
||||
Support: support@henrypp.org
|
||||
|
||||
(c) 2016-2020 Henry++
|
||||
simplewall
|
||||
|
||||
Description:
|
||||
Simple tool to configure Windows Filtering Platform (WFP) which can configure network activity on your computer.
|
||||
|
||||
The lightweight application is less than a megabyte, and it is compatible with Windows 7 SP1 and higher operating systems.
|
||||
You can download either the installer or portable version. For correct working you are require administrator rights.
|
||||
|
||||
System requirements:
|
||||
- Windows 7, 8, 8.1, 10, 11 64-bit/ARM64
|
||||
- An SSE2-capable CPU
|
||||
|
||||
Nota bene:
|
||||
Keep in mind, simplewall is not a control UI over Windows Firewall, and does not interact in any level with Windows Firewall. It works
|
||||
over Windows Filtering Platform (WFP) which is a set of internal API and system services that provide a platform for creating network filtering
|
||||
applications. Windows Filtering Platform is a development technology and not a firewall itself, but simplewall is the tool that uses this technology.
|
||||
|
||||
Command line:
|
||||
List of arguments for simplewall.
|
||||
-install - enable filtering (you can set "-silent" argument to skip prompt)
|
||||
-uninstall - remove all installed filters
|
||||
|
||||
Uninstall:
|
||||
When you uninstall simplewall, all previously installed filters are stay alive in system.
|
||||
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.
|
||||
|
||||
Features:
|
||||
- Simple interface without annoying pop ups
|
||||
- Rules editor (create your own rules)
|
||||
- Internal blocklist rules (block Windows spy / telemetry)
|
||||
- Dropped packets information with notification and logging to a file feature (win7+)
|
||||
- Allowed packets information with logging to a file feature (win8+)
|
||||
- Windows Subsystem for Linux (WSL) support
|
||||
- Windows Store support (win8+)
|
||||
- Windows services support
|
||||
- Free and open source
|
||||
- Localization support
|
||||
- IPv6 support
|
||||
|
||||
To activate portable mode, create "simplewall.ini" in application folder, or move it from "%APPDATA%\Henry++\simplewall".
|
||||
|
||||
Installation:
|
||||
When install rules, you can choose two modes:
|
||||
- Permanent rules - rules are working until you disable it manually.
|
||||
- Temporary rules - rules are reset after the next reboot.
|
||||
|
||||
Uninstall:
|
||||
When you uninstall simplewall, all previously configured filters stay alive in system.
|
||||
To remove all filters created by simplewall, start simplewall and press "Disable filters" button.
|
||||
|
||||
Command line:
|
||||
-install - enable filtering.
|
||||
-install -temp - enable filtering until next reboot.
|
||||
-install -silent - enable filtering without prompt.
|
||||
-uninstall - remove all installed filters.
|
||||
|
||||
Website: https://github.com/henrypp
|
||||
Support: sforce5@mail.ru
|
||||
|
||||
(c) 2016-2026 Henry++
|
||||
Binary file not shown.
@@ -0,0 +1,241 @@
|
||||
; Arabic
|
||||
; Bob (Oman)
|
||||
; Discord: 111a1
|
||||
|
||||
[Arabic]
|
||||
IDS_TITLE_EXCLUDE=استبعاد
|
||||
IDS_FILE=ملف
|
||||
IDS_SETTINGS=الإعدادات
|
||||
IDS_EXIT=خروج
|
||||
IDS_EDIT=تحرير
|
||||
IDS_PURGE_UNUSED=تنظيف التطبيقات غير المستخدمة
|
||||
IDS_PURGE_TIMERS=تنظيف المؤقتات
|
||||
IDS_FIND=بحث
|
||||
IDS_REFRESH=تحديث
|
||||
IDS_VIEW=عرض
|
||||
IDS_ICONS=الرموز
|
||||
IDS_ICONSSMALL=صغيرة
|
||||
IDS_ICONSLARGE=كبيرة
|
||||
IDS_ICONSISHIDDEN=عدم عرض الرموز
|
||||
IDS_LANGUAGE=اللغة
|
||||
IDS_FONT=الخط
|
||||
IDS_HELP=مساعدة
|
||||
IDS_WEBSITE=الموقع الإلكتروني
|
||||
IDS_CHECKUPDATES=التحقق من التحديثات
|
||||
IDS_DONATE=قل شكراً!
|
||||
IDS_ABOUT=حول
|
||||
IDS_TRAY_SHOW=إظهار/إخفاء
|
||||
IDS_TRAY_START=تفعيل الفلاتر
|
||||
IDS_TRAY_STOP=إلغاء تفعيل الفلاتر
|
||||
IDS_TRAY_RULES=القواعد
|
||||
IDS_TRAY_BLOCKLIST_RULES=قائمة الحظر
|
||||
IDS_TRAY_SYSTEM_RULES=قواعد نظام التشغيل
|
||||
IDS_TRAY_USER_RULES=قواعد المستخدم
|
||||
IDS_TRAY_LOGERR=سجل الأخطاء
|
||||
IDS_ADD_FILE=إضافة تطبيق
|
||||
IDS_ANY=أي
|
||||
IDS_DISABLENOTIFICATIONS=إلغاء تنشيط الإشعارات
|
||||
IDS_OPENRULESEDITOR=إنشاء قاعدة
|
||||
IDS_TIMER=مؤقت
|
||||
IDS_DISABLETIMER=إلغاء تنشيط المؤقت
|
||||
IDS_EXPLORE=فتح موقع الملف
|
||||
IDS_COPY=نسخ
|
||||
IDS_SELECT_ALL=تحديد الكل
|
||||
IDS_CHECK=السماح بالتحديد
|
||||
IDS_UNCHECK=حظر التحديد
|
||||
IDS_ADD=إضافة
|
||||
IDS_EDIT2=تعديل
|
||||
IDS_DELETE=حذف
|
||||
IDS_EXPORT=تصدير
|
||||
IDS_IMPORT=استيراد
|
||||
IDS_RULE_ALLOWLOOPBACK=السماح بكل حركة المرور الخاصة بالتكرار (loopback)
|
||||
IDS_HIGHLIGHT_INVALID=غير صالح (الملف مفقود أو مشكلة في الفلتر)
|
||||
IDS_HIGHLIGHT_NETWORK=تطبيق الشبكة المشتركة
|
||||
IDS_HIGHLIGHT_PICO=تطبيق بيكو
|
||||
IDS_HIGHLIGHT_SIGNED=تطبيق موقّع
|
||||
IDS_HIGHLIGHT_SILENT=الإشعارات معطلة
|
||||
IDS_HIGHLIGHT_SPECIAL=قواعد المستخدم
|
||||
IDS_HIGHLIGHT_SYSTEM=تطبيق نظام التشغيل
|
||||
IDS_GROUP_TIMER=تطبيقات تحتوي على مؤقت
|
||||
IDS_EDITOR=محرر القواعد
|
||||
IDS_NAME=الاسم
|
||||
IDS_RULE=القاعدة
|
||||
IDS_PORTVERSION=العائلة (المنافذ فقط)
|
||||
IDS_PROTOCOL=البروتوكول
|
||||
IDS_DIRECTION=Direction
|
||||
IDS_ACTION=Action
|
||||
IDS_DATE=Date
|
||||
IDS_FILEPATH=المسار
|
||||
IDS_SIGNATURE=Signature
|
||||
IDS_ADDRESS=العنوان
|
||||
IDS_FILTER=الفلتر
|
||||
IDS_NOTES=Notes
|
||||
IDS_ADDED=تمت الإضافة
|
||||
IDS_TIMELEFT=الوقت المتبقي
|
||||
IDS_SIGN_SIGNED=موقع
|
||||
IDS_SIGN_UNSIGNED=غير موقّع
|
||||
IDS_GROUP_ALLOWED=تطبيقات ذات وصول إلى الشبكة
|
||||
IDS_GROUP_BLOCKED=تطبيقات بدون وصول إلى الشبكة
|
||||
IDS_GROUP_ENABLED=القواعد مفعلة
|
||||
IDS_GROUP_DISABLED=القواعد غير مفعلة
|
||||
IDS_DIRECTION_1=صادر
|
||||
IDS_DIRECTION_2=وارد
|
||||
IDS_DIRECTION_3=كلاهما
|
||||
IDS_ACTION_ALLOW=السماح
|
||||
IDS_ACTION_BLOCK=حظر
|
||||
IDS_ENABLE_CHK=تفعيل القاعدة
|
||||
IDS_WIKI=مساعدة
|
||||
IDS_SAVE=حفظ
|
||||
IDS_CLOSE=إغلاق
|
||||
IDS_SETTINGS_GENERAL=عام
|
||||
IDS_TITLE_GENERAL=الإعدادات العامة
|
||||
IDS_TITLE_LANGUAGE=اللغة
|
||||
IDS_TITLE_CONFIRMATIONS=Confirmations
|
||||
IDS_TITLE_INTERFACE=Interface
|
||||
IDS_TITLE_HIGHLIGHTING=التظليل
|
||||
IDS_TITLE_LOGGING=سجل الحزم
|
||||
IDS_TITLE_NOTIFICATIONS=Notifications
|
||||
IDS_TITLE_ADVANCED=متقدم
|
||||
IDS_ALWAYSONTOP_CHK=دائمًا مرئي
|
||||
IDS_LOADONSTARTUP_CHK=التحميل عند بدء تشغيل النظام
|
||||
IDS_STARTMINIMIZED_CHK=تشغيل في الوضع المصغر
|
||||
IDS_SHOWFILENAMESONLY_CHK=عرض أسماء الملفات فقط
|
||||
IDS_AUTOSIZECOLUMNS_CHK=الحجم التلقائي للأعمدة
|
||||
IDS_SKIPUACWARNING_CHK=تجاهل تحذير "التحقق من حساب المستخدم"
|
||||
IDS_CHECKUPDATES_CHK=التحقق التلقائي من التحديثات (موصى به)
|
||||
IDS_LANGUAGE_HINT=اختيار اللغة:
|
||||
IDS_USESTEALTHMODE_CHK=منع فحص المنافذ
|
||||
IDS_USESTEALTHMODE_HINT=منع فحص المنافذ TCP عن طريق إسقاط فحص المنافذ TCP و RST و UDP الواردة، والرد على ICMP الصادرة مع "الوجهة غير قابلة للوصول".
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=تفعيل الفلاتر عند بدء التشغيل
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=منع تسرب البيانات عند بدء تشغيل النظام، حتى قبل بدء خدمة "محرك الفلترة الأساسي" (BFE).
|
||||
IDS_USECERTIFICATES_CHK=التحقق من التوقيعات الرقمية للتطبيقات
|
||||
IDS_USENETWORKRESOLUTION_CHK=حل العناوين الشبكية
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=إلغاء تفعيل جدار الحماية لويندوز
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=تفعيل جدار الحماية لويندوز
|
||||
IDS_CONFIRMEXIT_CHK=التأكيد عند الإغلاق
|
||||
IDS_CONFIRMEXITTIMER_CHK=التأكيد عند الإغلاق إذا كانت المؤقتات نشطة
|
||||
IDS_CONFIRMLOGCLEAR_CHK=التأكيد عند مسح سجل الملفات
|
||||
IDS_COLORS_HINT=انقر مرتين على عنصر لتعديله.
|
||||
IDS_ENABLELOG_CHK=تفعيل تسجيل الحزم في ملف
|
||||
IDS_LOGSHOW=عرض السجل
|
||||
IDS_LOGCLEAR=مسح السجل
|
||||
IDS_LOGSIZELIMIT_HINT=الحجم الأقصى للسجل: (ك.ب)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=تفعيل إشعارات الحزم
|
||||
IDS_NOTIFICATIONSOUND_CHK=تفعيل الإشعارات الصوتية
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=مدة العرض بين الإشعارات المتشابهة (ثواني):
|
||||
IDS_NOTIFY_TOOLTIP=تحديد قاعدة للمستخدم للسماح لتطبيق بالوصول إلى عنوان أو منفذ
|
||||
IDS_QUESTION=هل أنت متأكد؟
|
||||
IDS_QUESTION_DELETE=حذف العنصر/العناصر المحددة؟
|
||||
IDS_QUESTION_START=حظر الوصول إلى الشبكة للتطبيقات بناءً على الإعدادات الحالية. الاستمرار؟
|
||||
IDS_QUESTION_STOP=استعادة الوصول إلى الشبكة لجميع التطبيقات المحجوبة حاليًا. الاستمرار؟
|
||||
IDS_QUESTION_EXIT=الفلاتر المثبتة ستظل مفعلة حتى إذا غادرت. الاستمرار؟
|
||||
IDS_QUESTION_TIMER=المؤقت/المؤقتات نشطة. المؤقتات تكون نشطة فقط عندما يتم تشغيل التطبيق. هل تريد الخروج؟
|
||||
IDS_QUESTION_TIMERS=حذف جميع المؤقتات؟
|
||||
IDS_QUESTION_FLAG_CHK=عدم السؤال مرة أخرى
|
||||
IDS_STATUS_EMPTY=فارغ.
|
||||
IDS_STATUS_SYNTAX_ERROR=خطأ في الصيغة في القاعدة!
|
||||
IDS_ADDRESS_LOCAL=Source
|
||||
IDS_ADDRESS_REMOTE=Destination
|
||||
IDS_UPDATE_ERROR=خطأ في الاتصال بخادم التحديثات.
|
||||
IDS_UPDATE_DOWNLOAD=تحميل التحديث...
|
||||
IDS_UPDATE_DONE=تم تحميل التحديث.
|
||||
IDS_GROUP_SPECIAL_APPS=تطبيقات تحتوي على قواعد المستخدم
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=السماح بكل حركة المرور الخاصة بالتكرار (loopback).
|
||||
IDS_RESET=إعادة تعيين
|
||||
IDS_EXCLUDESTEALTH_CHK=فحص المنافذ
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=قائمة الحظر
|
||||
IDS_UPDATE_INIT=التحقق من وجود نسخة جديدة...
|
||||
IDS_UPDATE_INSTALL=تحديث متاح. هل ترغب في تثبيته الآن؟
|
||||
IDS_EXCLUDECUSTOM_CHK=قواعد المستخدم
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=الاتصالات المسموح بها
|
||||
IDS_STATUS_TIMER_DONE=انتهت مدة المؤقت لهذا التطبيق
|
||||
IDS_ICONSEXTRALARGE=كبير جدًا
|
||||
IDS_STATUS_UNUSED_APPS=تطبيقات غير مستخدمة
|
||||
IDS_STATUS_TIMER_APPS=تطبيقات تحتوي على مؤقت
|
||||
IDS_SECUREFILTERS_CHK=تفعيل حماية الفلاتر المثبتة
|
||||
IDS_SECUREFILTERS_HINT=منع التطبيقات غير المصرح لها من الوصول إلى الفلاتر المثبتة.
|
||||
IDS_USEREFRESHDEVICES_CHK=تحديث الفلاتر عند توصيل الأجهزة (التخزين)
|
||||
IDS_RULE_ALLOW6TO4=السماح بكل إعادة توجيه IPv6 (6to4)
|
||||
IDS_RECOMMENDED=موصى به
|
||||
IDS_ICONSISTABLEVIEW=عرض كجدول
|
||||
IDS_ACTION_ALLOW_HINT=السماح بالوصول إلى الشبكة إلى الأبد
|
||||
IDS_ACTION_BLOCK_HINT=حظر الوصول إلى الشبكة إلى الأبد (إلى الأبد)
|
||||
IDS_ACTION_LATER_HINT=تجاهل واطلب مني لاحقًا
|
||||
IDS_RULE_APPLY_2=تطبيق القاعدة "%s" على هذا التطبيق
|
||||
IDS_EDITRULES=تعديل القواعد
|
||||
IDS_TAB_APPS=تطبيقات
|
||||
IDS_TAB_SERVICES=Services
|
||||
IDS_TAB_PACKAGES=تطبيقات UWP
|
||||
IDS_TAB_NETWORK=الاتصالات
|
||||
IDS_STATE=الحالة
|
||||
IDS_STATUS_FILTERS_ACTIVE=الفلاتر مفعلة.
|
||||
IDS_STATUS_FILTERS_INACTIVE=الفلاتر معطلة!
|
||||
IDS_STATUS_FILTERS_PROCESSING=تطبيق الفلاتر
|
||||
IDS_HIGHLIGHT_CONNECTION=متصل بالشبكة
|
||||
IDS_SHOWINLIST=عرض في القائمة
|
||||
IDS_BLOCKLIST_SPY=التجسس والقياسات من مايكروسوفت
|
||||
IDS_BLOCKLIST_UPDATE=تحديثات مايكروسوفت
|
||||
IDS_BLOCKLIST_EXTRA=تطبيقات مايكروسوفت
|
||||
IDS_PORT=Port
|
||||
IDS_NOTIFY_TITLE=تنبيه الشبكة
|
||||
IDS_NOTIFY_HEADER=تم حظر الاتصال بالشبكة
|
||||
IDS_DISABLE=إلغاء التفعيل
|
||||
IDS_TITLE_SECURITY=الأمان
|
||||
IDS_LOGVIEWER_HINT=تطبيق مشاهدة السجلات
|
||||
IDS_NOTIFICATIONONTRAY_CHK=عرض الإشعارات في أسفل يمين الشاشة
|
||||
IDS_NETWORK_CLOSE=إنهاء الاتصال
|
||||
IDS_RULE_BLOCKOUTBOUND=حظر كل الحركة الصادرة
|
||||
IDS_RULE_BLOCKINBOUND=حظر كل الحركة الواردة
|
||||
IDS_VIEW_ICON=الرموز
|
||||
IDS_VIEW_DETAILS=التفاصيل
|
||||
IDS_VIEW_TILE=البلاطات
|
||||
IDS_RULE_HINT=إذا تركت الحقول فارغة، فسيتم تطبيق القاعدة على جميع العناوين والمنافذ.
|
||||
IDS_RULE_APPS_HINT=إذا لم يتم تحديد أي تطبيق، فسيتم تطبيق القاعدة على جميع التطبيقات.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=الفلاتر مفعلة حتى إعادة التشغيل التالي.
|
||||
IDS_INSTALL_PERMANENT=القواعد الدائمة. هذه القواعد مفعلة حتى يتم تعطيلها يدويًا.
|
||||
IDS_INSTALL_TEMPORARY=القواعد المؤقتة. سيتم تعطيل هذه القواعد بعد إعادة التشغيل التالي.
|
||||
IDS_ENABLEUILOG_CHK=تفعيل واجهة تسجيل الحزم
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=تفعيل الوضع الصامت عندما يكون التطبيق في وضع ملء الشاشة
|
||||
IDS_TITLE_TRAY=رمز في منطقة الإشعارات
|
||||
IDS_TRAYICONSINGLECLICK_CHK=فتح بنقرة واحدة على الرمز في منطقة الإشعارات
|
||||
IDS_ENABLE_APP_CHK=السماح بالوصول إلى الشبكة
|
||||
IDS_APP_HINT=لا يوجد سبب لتحديد قاعدة تيسيرية لتطبيق لديه وصول كامل إلى الشبكة بالفعل.
|
||||
IDS_HOST=المضيف
|
||||
IDS_CONFIRMALLOW_CHK=التأكيد عند السماح لتطبيق
|
||||
IDS_QUESTION_ALLOW=هل أنت متأكد أنك تريد منح هذا التطبيق وصولاً كاملاً إلى الشبكة؟
|
||||
IDS_SHOWSEARCHBAR_CHK=عرض شريط البحث
|
||||
IDS_LAYER=الطبقة
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=السماح بتحديثات ويندوز
|
||||
IDS_ACTION_TERMINATE_HINT=إيقاف العملية
|
||||
IDS_PROFILE_TYPE=نوع الملف
|
||||
IDS_USEAPPMONITOR_CHK=مراقبة تغييرات التطبيقات
|
||||
IDS_DISABLEREMOVAL=منع الحذف
|
||||
IDS_USEHASHES_CHK=التحقق من قيم التحقق من التطبيقات SHA-256
|
||||
IDS_COMMENT=التعليقات
|
||||
IDS_USEDARKTHEME=تفعيل الوضع الداكن
|
||||
IDS_KEEPUNUSED_CHK=احتفظ بالتطبيقات غير المستخدمة
|
||||
IDS_UPDATE_NO=لا يوجد تحديث متاح.
|
||||
IDS_UPDATE_YES=تحديث متاح. هل ترغب في تنزيله وتثبيته الآن؟
|
||||
IDS_UPDATE_SPEED=Speed
|
||||
IDS_RULE_FOR_ALL=for all
|
||||
IDS_RULE_FOR_APPS=for apps
|
||||
IDS_PROFILE_TYPE_PLAIN=Plain
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Compressed
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Encrypted
|
||||
IDS_SESSION_ONLY=session only
|
||||
IDS_LIMIT_REACHED=Limit reached.
|
||||
IDS_INTERNAL_RULE=Internal rule
|
||||
IDS_LOADING=Loading...
|
||||
IDS_DIRECTION_REMOTE=Remote
|
||||
IDS_DIRECTION_LOCAL=Local
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
@@ -0,0 +1,240 @@
|
||||
; Armenian
|
||||
; Armenian localization from hrach mk
|
||||
|
||||
[Armenian]
|
||||
IDS_TITLE_EXCLUDE=Բացառել
|
||||
IDS_FILE=Թարմացումներ չկան:
|
||||
IDS_SETTINGS=Թարմացումը հասանելի է, ներբեռնե՞լ և տեղադրել:
|
||||
IDS_EXIT=Ֆայլ
|
||||
IDS_EDIT=Դրույթներ
|
||||
IDS_PURGE_UNUSED=Խմբագրել
|
||||
IDS_PURGE_TIMERS=Purge timers
|
||||
IDS_FIND=Ջնջել չօգտագործված հավելվածները
|
||||
IDS_REFRESH=Որոնել
|
||||
IDS_VIEW=Որոնել․․․
|
||||
IDS_ICONS=Թարմացնել
|
||||
IDS_ICONSSMALL=Տեսք
|
||||
IDS_ICONSLARGE=Պատկերակներ
|
||||
IDS_ICONSISHIDDEN=Փոքր
|
||||
IDS_LANGUAGE=Միջին
|
||||
IDS_FONT=Չբեռնել պատկերակները
|
||||
IDS_HELP=Լեզու
|
||||
IDS_WEBSITE=Տառասեսակ
|
||||
IDS_CHECKUPDATES=Օգնություն
|
||||
IDS_DONATE=Ծրագրի կայք
|
||||
IDS_ABOUT=Ստուգել թարմացումները
|
||||
IDS_TRAY_SHOW=Շնորհակալություն հայտնել!
|
||||
IDS_TRAY_START=Ծրագրի մասին
|
||||
IDS_TRAY_STOP=Ցույց տալ/թաքցնել
|
||||
IDS_TRAY_RULES=Անջատել զտումը
|
||||
IDS_TRAY_BLOCKLIST_RULES=Blocklist
|
||||
IDS_TRAY_SYSTEM_RULES=Կանոններ
|
||||
IDS_TRAY_USER_RULES=Սև ցուցակ
|
||||
IDS_TRAY_LOGERR=Իմ կանոններ
|
||||
IDS_ADD_FILE=Add app
|
||||
IDS_ANY=Any
|
||||
IDS_DISABLENOTIFICATIONS=Disable notifications
|
||||
IDS_OPENRULESEDITOR=Ցանկացած
|
||||
IDS_TIMER=Անջատել ծանուցումները
|
||||
IDS_DISABLETIMER=Ժամաչափ
|
||||
IDS_EXPLORE=Open containing folder
|
||||
IDS_COPY=Անջատել ժամանակաչափը
|
||||
IDS_SELECT_ALL=Բացել թղթապանակը
|
||||
IDS_CHECK=Պատճենել
|
||||
IDS_UNCHECK=Ընտրել բոլորը
|
||||
IDS_ADD=Միացնել ընտրվածը
|
||||
IDS_EDIT2=Անջատել ընտրվածը
|
||||
IDS_DELETE=Ավելացնել
|
||||
IDS_EXPORT=Փոփոխել
|
||||
IDS_IMPORT=Ջնջնել
|
||||
IDS_RULE_ALLOWLOOPBACK=Allow loopback connections for all
|
||||
IDS_HIGHLIGHT_INVALID=Invalid (file not found or filter problem)
|
||||
IDS_HIGHLIGHT_NETWORK=Թույլատրել շրջադարձ կապերը բոլորի համար
|
||||
IDS_HIGHLIGHT_PICO=Ֆայլ համօգտագործումից
|
||||
IDS_HIGHLIGHT_SIGNED=Pico հավելված
|
||||
IDS_HIGHLIGHT_SILENT=Disabled notifications
|
||||
IDS_HIGHLIGHT_SPECIAL=Ստորագրված հավելված
|
||||
IDS_HIGHLIGHT_SYSTEM=Ծանուցումներն անջատված են
|
||||
IDS_GROUP_TIMER=Օգտագործողի կանոններ
|
||||
IDS_EDITOR=Համակարգային հավելված
|
||||
IDS_NAME=ժամաչափով հավելված
|
||||
IDS_RULE=Կանոնների խմբագիր
|
||||
IDS_PORTVERSION=Անվանումը
|
||||
IDS_PROTOCOL=Կանոնը
|
||||
IDS_DIRECTION=Family (միայն պորտերի համար)
|
||||
IDS_ACTION=հաղորդակարգը
|
||||
IDS_DATE=Ուղղությունը
|
||||
IDS_FILEPATH=Գործողությունը
|
||||
IDS_SIGNATURE=Ամսաթիվը
|
||||
IDS_ADDRESS=Ուղին
|
||||
IDS_FILTER=Ստորագրությունը
|
||||
IDS_NOTES=Հասցեն
|
||||
IDS_ADDED=Զտիչ
|
||||
IDS_TIMELEFT=Ավելացված է
|
||||
IDS_SIGN_SIGNED=Signed
|
||||
IDS_SIGN_UNSIGNED=Մնացած ժամանակ
|
||||
IDS_GROUP_ALLOWED=Ստորագրվել է
|
||||
IDS_GROUP_BLOCKED=Ստորագրված չէ
|
||||
IDS_GROUP_ENABLED=Հավելվածներ ցանցի մուտքով
|
||||
IDS_GROUP_DISABLED=Ներառված կանոններ
|
||||
IDS_DIRECTION_1=Outbound
|
||||
IDS_DIRECTION_2=Անջատված կանոններ
|
||||
IDS_DIRECTION_3=Ելքային
|
||||
IDS_ACTION_ALLOW=Մուտքային
|
||||
IDS_ACTION_BLOCK=Եկուսն էլ
|
||||
IDS_ENABLE_CHK=Enable rule
|
||||
IDS_WIKI=Միացնել կանոնը
|
||||
IDS_SAVE=Save
|
||||
IDS_CLOSE=Հղում
|
||||
IDS_SETTINGS_GENERAL=Պահել
|
||||
IDS_TITLE_GENERAL=Փակել
|
||||
IDS_TITLE_LANGUAGE=Հիմնական
|
||||
IDS_TITLE_CONFIRMATIONS=Հիմնական պարամետրեր
|
||||
IDS_TITLE_INTERFACE=Միջերեսի լեզուն
|
||||
IDS_TITLE_HIGHLIGHTING=Հաստատումներ
|
||||
IDS_TITLE_LOGGING=Հետին լույս
|
||||
IDS_TITLE_NOTIFICATIONS=Notifications
|
||||
IDS_TITLE_ADVANCED=Փաթեթների մատյան
|
||||
IDS_ALWAYSONTOP_CHK=Ծանուցումներ
|
||||
IDS_LOADONSTARTUP_CHK=Լրացուցիչ
|
||||
IDS_STARTMINIMIZED_CHK=Մյուս պատուհաններից առաջ
|
||||
IDS_SHOWFILENAMESONLY_CHK=Գործարկել համակարգի բեռնման ժամանակ
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Մեկնարկել թաքցված
|
||||
IDS_SKIPUACWARNING_CHK=Ցույց տալ միայն ֆայլերի անունները
|
||||
IDS_CHECKUPDATES_CHK=Տեղավորել սյունակները
|
||||
IDS_LANGUAGE_HINT=Անտեսեք «Օգտագործողի հաշվի վերահսկում» նախազգուշացումը
|
||||
IDS_USESTEALTHMODE_CHK=Prevent port scanning
|
||||
IDS_USESTEALTHMODE_HINT=Prevent TCP port scanning by silently dropping inbound TCP RST and UDP port scanning by responding to outbound ICMP with "Destination Unreachable".
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Կանխել նավահանգիստների ստուգումը
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Կանխեք պորտերի ստուգումը՝ թույլ չտալով մուտքային TCP RST և ելքային ICMP «Անհասանելի նպատակակետ» հարցումները:
|
||||
IDS_USECERTIFICATES_CHK=Check apps for digital signatures
|
||||
IDS_USENETWORKRESOLUTION_CHK=Resolve network addresses
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Ստուգել հավելվածի թվային ստորագրությունները
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Թույլատրել ցանցային հասցեները
|
||||
IDS_CONFIRMEXIT_CHK=Անջատել Windows firewall-ը
|
||||
IDS_CONFIRMEXITTIMER_CHK=Միացնել Windows firewall-ը
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Դուրս գալու հաստատում սահմանված ժամաչափով
|
||||
IDS_COLORS_HINT=Հաստատեք հավելվածների հեռացումը ցուցակից
|
||||
IDS_ENABLELOG_CHK=Մատյանի մաքրման հաստատում
|
||||
IDS_LOGSHOW=Կրկնակի սեղմեք տարրի վրա՝ խմբագրելու համար:
|
||||
IDS_LOGCLEAR=Միացնել գրելու փաթեթները ֆայլի համար
|
||||
IDS_LOGSIZELIMIT_HINT=Ցույց տալ գրանցամատյանը
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Մաքրել գրանցամատյանը
|
||||
IDS_NOTIFICATIONSOUND_CHK=Մատյանների առավելագույն չափը. (ԿԲ)
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Timeout between similar notifications (sec.):
|
||||
IDS_NOTIFY_TOOLTIP=Set user rule to allow access to an address and/or port for this application.
|
||||
IDS_QUESTION=Are you sure?
|
||||
IDS_QUESTION_DELETE=Կիրառեք հատուկ կանոն՝ այս հավելվածի համար հասցե կամ նավահանգիստ մուտք գործելու համար:
|
||||
IDS_QUESTION_START=Վստա՞հ եք
|
||||
IDS_QUESTION_STOP=Ջնջել %d տարր(եր)ը
|
||||
IDS_QUESTION_EXIT=Սա կվերականգնի ցանցի հասանելիությունը բոլոր հավելվածներին, շարունակե՞լ:
|
||||
IDS_QUESTION_TIMER=Timer(s) activated. Timers will only work when the application is running. Exit?
|
||||
IDS_QUESTION_TIMERS=Delete all timers?
|
||||
IDS_QUESTION_FLAG_CHK=Ժամաչափը միացված է: Ժամաչափն աշխատում է միայն այն ժամանակ, երբ հավելվածն աշխատում է, դուրս գա՞լ:
|
||||
IDS_STATUS_EMPTY=Բոլոր հավելվածները. %d
|
||||
IDS_STATUS_SYNTAX_ERROR=<դատարկ>
|
||||
IDS_ADDRESS_LOCAL=Source
|
||||
IDS_ADDRESS_REMOTE=Կանոնը պարունակում է շարահյուսական սխալ:
|
||||
IDS_UPDATE_ERROR=Աղբյուրը
|
||||
IDS_UPDATE_DOWNLOAD=Downloading update...
|
||||
IDS_UPDATE_DONE=Downloading update finished.
|
||||
IDS_GROUP_SPECIAL_APPS=Թարմացումը ներբեռնվում է...
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=This allows all loopback traffic.
|
||||
IDS_RESET=Թույլ է տալիս ամբողջ շրջադարձային տրաֆիկը:
|
||||
IDS_EXCLUDESTEALTH_CHK=Վստա՞հ եք, որ ցանկանում եք վերակայել ծրագրի բոլոր կարգավորումները:
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=blocklist
|
||||
IDS_UPDATE_INIT=պորտերի ստուգիչի միացումները
|
||||
IDS_UPDATE_INSTALL=սև ցուցակի միացումներ
|
||||
IDS_EXCLUDECUSTOM_CHK=Ստուգել թարմացումները...
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=օգտագործողի կանոնները
|
||||
IDS_STATUS_TIMER_DONE=Timer for application has been expired
|
||||
IDS_ICONSEXTRALARGE=թույլատրված կապեր
|
||||
IDS_STATUS_UNUSED_APPS=«%s»-ի ժամաչափն ավարտվել է:
|
||||
IDS_STATUS_TIMER_APPS=Չօգտագործվածները
|
||||
IDS_SECUREFILTERS_CHK=Enable protection of installed filters
|
||||
IDS_SECUREFILTERS_HINT=Ժամաչափեր
|
||||
IDS_USEREFRESHDEVICES_CHK=Միացնել տեղադրված զտիչների պաշտպանությունը
|
||||
IDS_RULE_ALLOW6TO4=Կանխել երրորդ կողմի հավելվածների մուտքը տեղադրված զտիչներ:
|
||||
IDS_RECOMMENDED=Թարմացրեք կանոնները, երբ սարքերը միացված են
|
||||
IDS_ICONSISTABLEVIEW=Թույլատրել IPv6 (6to4) վերահասցեավորումը բոլորի համար
|
||||
IDS_ACTION_ALLOW_HINT=Ցույց տալ որպես աղյուսակ
|
||||
IDS_ACTION_BLOCK_HINT=Block network access forever ('til kingdom come)
|
||||
IDS_ACTION_LATER_HINT=Թույլ տվեք ընդմիշտ
|
||||
IDS_RULE_APPLY_2=Ընդմիշտ արգելել
|
||||
IDS_EDITRULES=Edit rules
|
||||
IDS_TAB_APPS=Կիրառեք «%s»-ը հավելվածին
|
||||
IDS_TAB_SERVICES=Խմբագրել կանոնները
|
||||
IDS_TAB_PACKAGES=Հավելվածներ
|
||||
IDS_TAB_NETWORK=Ծառայություններ
|
||||
IDS_STATE=UWP հավելվածներ
|
||||
IDS_STATUS_FILTERS_ACTIVE=Միացումներ
|
||||
IDS_STATUS_FILTERS_INACTIVE=Իրավիճակ
|
||||
IDS_STATUS_FILTERS_PROCESSING=Զտումն ակտիվ է:
|
||||
IDS_HIGHLIGHT_CONNECTION=Զտումն ակտիվ չէ:
|
||||
IDS_SHOWINLIST=Զտիչների կիրառում
|
||||
IDS_BLOCKLIST_SPY=Ունի ցանցային կապեր
|
||||
IDS_BLOCKLIST_UPDATE=Ցույց տալ ցանկում
|
||||
IDS_BLOCKLIST_EXTRA=Microsoft-ի հետևումների սերվերները
|
||||
IDS_PORT=Microsoft-ի թարմացումների սերվերները
|
||||
IDS_NOTIFY_TITLE=Microsoft-ի հավելվածների սերվերները
|
||||
IDS_NOTIFY_HEADER=Պորտ
|
||||
IDS_DISABLE=Ցանցի ծանուցումները
|
||||
IDS_TITLE_SECURITY=%s-ն արգելափակել է հավելվածի կապը
|
||||
IDS_LOGVIEWER_HINT=Անջատել
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Անվտանգություն
|
||||
IDS_NETWORK_CLOSE=Մատյանի դիտման հավելված
|
||||
IDS_RULE_BLOCKOUTBOUND=Ցույց տալ ծանուցման պատուհանը համակարգային խնդրագոտում
|
||||
IDS_RULE_BLOCKINBOUND=Փակել կապակցումը
|
||||
IDS_VIEW_ICON=Արգելափակել ելքային կապերը բոլորի համար
|
||||
IDS_VIEW_DETAILS=Արգելափակել մուտքային կապերը բոլորի համար
|
||||
IDS_VIEW_TILE=Պատկերակներ
|
||||
IDS_RULE_HINT=Մանրամասներ
|
||||
IDS_RULE_APPS_HINT=Սալիկներ
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Եթե դաշտերը դատարկ եք թողնում, ապա կանոնը վերաբերում է բոլոր հասցեներին և պորտերին:
|
||||
IDS_INSTALL_PERMANENT=Եթե ոչ մի ծրագիր ընտրված չէ, ապա կանոնը վերաբերում է բոլոր հավելվածներին:
|
||||
IDS_INSTALL_TEMPORARY=Զտումն ակտիվացված է մինչև վերաբեռնումը:
|
||||
IDS_ENABLEUILOG_CHK=Մշտական կանոններ. Կանոնները կգործեն այնքան ժամանակ, քանի դեռ դրանք ձեռքով չանջատեք:
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Ժամանակավոր կանոններ. Կանոնները կգործեն մինչև համակարգը վերագործարկվի:
|
||||
IDS_TITLE_TRAY=Միացնել մատյանի վարումը միջերեսում
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Միացնել հանգիստ ռեժիմը, երբ ամբողջ էկրանով հավելվածն ակտիվ է
|
||||
IDS_ENABLE_APP_CHK=Խնդրագոտի
|
||||
IDS_APP_HINT=Մեկ սեղմում պատկերակը բացելու համար
|
||||
IDS_HOST=Միացնել ցանցի մուտքը
|
||||
IDS_CONFIRMALLOW_CHK=Կարիք չկա սահմանել թույլատրելի կանոններից որևէ մեկը այն հավելվածի համար, որն արդեն թույլատրված է մուտք գործել ցանց:
|
||||
IDS_QUESTION_ALLOW=Հոսթը
|
||||
IDS_SHOWSEARCHBAR_CHK=Հաստատեք հավելվածի թույլտվությունը
|
||||
IDS_LAYER=Իսկապե՞ս ուզում եք միացնել այս հավելվածի ամբողջական ինտերնետ հասանելիությունը:
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Ցույց տալ որոնման տողը
|
||||
IDS_ACTION_TERMINATE_HINT=Terminate process
|
||||
IDS_PROFILE_TYPE=Թույլատրել Windows Update-ը
|
||||
IDS_USEAPPMONITOR_CHK=Monitor apps changing
|
||||
IDS_DISABLEREMOVAL=Disable removal
|
||||
IDS_USEHASHES_CHK=Check apps for sha-256 hash
|
||||
IDS_COMMENT=Comments
|
||||
IDS_USEDARKTHEME=Use dark theme
|
||||
IDS_KEEPUNUSED_CHK=Keep unused apps
|
||||
IDS_UPDATE_NO=No updates available.
|
||||
IDS_UPDATE_YES=Update available. Download and install now?
|
||||
IDS_UPDATE_SPEED=Speed
|
||||
IDS_RULE_FOR_ALL=for all
|
||||
IDS_RULE_FOR_APPS=for apps
|
||||
IDS_PROFILE_TYPE_PLAIN=Plain
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Compressed
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Encrypted
|
||||
IDS_SESSION_ONLY=session only
|
||||
IDS_LIMIT_REACHED=Limit reached.
|
||||
IDS_INTERNAL_RULE=Internal rule
|
||||
IDS_LOADING=Loading...
|
||||
IDS_DIRECTION_REMOTE=Remote
|
||||
IDS_DIRECTION_LOCAL=Local
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
@@ -0,0 +1,241 @@
|
||||
; Bulgarian
|
||||
; Български превод от Руси Димитров (github.com/rddim)
|
||||
; Последна редакция - 07.09.2026
|
||||
|
||||
[Bulgarian]
|
||||
IDS_TITLE_EXCLUDE=Изключения за
|
||||
IDS_FILE=Файл
|
||||
IDS_SETTINGS=Настройки
|
||||
IDS_EXIT=Изход
|
||||
IDS_EDIT=Редактиране
|
||||
IDS_PURGE_UNUSED=Изчистване на неизползваните приложения
|
||||
IDS_PURGE_TIMERS=Изчистване на отброяванията
|
||||
IDS_FIND=Търсене
|
||||
IDS_REFRESH=Презареждане
|
||||
IDS_VIEW=Изглед
|
||||
IDS_ICONS=Икони
|
||||
IDS_ICONSSMALL=Малки
|
||||
IDS_ICONSLARGE=Средни
|
||||
IDS_ICONSISHIDDEN=Без икони
|
||||
IDS_LANGUAGE=Език
|
||||
IDS_FONT=Шрифт
|
||||
IDS_HELP=Помощ
|
||||
IDS_WEBSITE=Домашна страница
|
||||
IDS_CHECKUPDATES=Проверка за обновяване
|
||||
IDS_DONATE=Благодарете!
|
||||
IDS_ABOUT=Относно
|
||||
IDS_TRAY_SHOW=Показване/скриване
|
||||
IDS_TRAY_START=Включване на филтрите
|
||||
IDS_TRAY_STOP=Изключване на филтрите
|
||||
IDS_TRAY_RULES=Правила
|
||||
IDS_TRAY_BLOCKLIST_RULES=Списък с блокирани
|
||||
IDS_TRAY_SYSTEM_RULES=Системни правила
|
||||
IDS_TRAY_USER_RULES=Мои правила
|
||||
IDS_TRAY_LOGERR=Дневник с грешки
|
||||
IDS_ADD_FILE=Добавяне на приложение
|
||||
IDS_ANY=Всичко
|
||||
IDS_DISABLENOTIFICATIONS=Изключване на известията
|
||||
IDS_OPENRULESEDITOR=Създаване на правило
|
||||
IDS_TIMER=Отброяване
|
||||
IDS_DISABLETIMER=Изключено
|
||||
IDS_EXPLORE=Отваряне на съдържащата папка
|
||||
IDS_COPY=Копиране
|
||||
IDS_SELECT_ALL=Избиране на всичко
|
||||
IDS_CHECK=Включване на избраните
|
||||
IDS_UNCHECK=Изключване на избраните
|
||||
IDS_ADD=Добавяне
|
||||
IDS_EDIT2=Промяна
|
||||
IDS_DELETE=Изтриване
|
||||
IDS_EXPORT=Изнасяне
|
||||
IDS_IMPORT=Внасяне
|
||||
IDS_RULE_ALLOWLOOPBACK=Разрешаване на обратни връзки за всички
|
||||
IDS_HIGHLIGHT_INVALID=Невалиден (файлът не е намерен или има проблем с филтъра)
|
||||
IDS_HIGHLIGHT_NETWORK=Приложение от споделена мрежа
|
||||
IDS_HIGHLIGHT_PICO=Pico приложение
|
||||
IDS_HIGHLIGHT_SIGNED=Подписано приложение
|
||||
IDS_HIGHLIGHT_SILENT=Изключени известия
|
||||
IDS_HIGHLIGHT_SPECIAL=Потребителски правила
|
||||
IDS_HIGHLIGHT_SYSTEM=Системно приложение
|
||||
IDS_GROUP_TIMER=Приложение с отброяване
|
||||
IDS_EDITOR=Редактиране на правила
|
||||
IDS_NAME=Име
|
||||
IDS_RULE=Правило
|
||||
IDS_PORTVERSION=Семейство (само за портове)
|
||||
IDS_PROTOCOL=Протокол
|
||||
IDS_DIRECTION=Направление
|
||||
IDS_ACTION=Действие
|
||||
IDS_DATE=Дата
|
||||
IDS_FILEPATH=Път
|
||||
IDS_SIGNATURE=Подпис
|
||||
IDS_ADDRESS=Адрес
|
||||
IDS_FILTER=Филтър
|
||||
IDS_NOTES=Бележка
|
||||
IDS_ADDED=Добавено
|
||||
IDS_TIMELEFT=Оставащо време
|
||||
IDS_SIGN_SIGNED=Подписано
|
||||
IDS_SIGN_UNSIGNED=Неподписано
|
||||
IDS_GROUP_ALLOWED=С достъп до интернет
|
||||
IDS_GROUP_BLOCKED=Без достъп до интернет
|
||||
IDS_GROUP_ENABLED=Включени правила
|
||||
IDS_GROUP_DISABLED=Изключени правила
|
||||
IDS_DIRECTION_1=Изходящи
|
||||
IDS_DIRECTION_2=Входящи
|
||||
IDS_DIRECTION_3=И двете
|
||||
IDS_ACTION_ALLOW=Разрешаване
|
||||
IDS_ACTION_BLOCK=Забраняване
|
||||
IDS_ENABLE_CHK=Включване на правилото
|
||||
IDS_WIKI=Помощ
|
||||
IDS_SAVE=Запазване
|
||||
IDS_CLOSE=Затваряне
|
||||
IDS_SETTINGS_GENERAL=Общи
|
||||
IDS_TITLE_GENERAL=Общи настройки
|
||||
IDS_TITLE_LANGUAGE=Език
|
||||
IDS_TITLE_CONFIRMATIONS=Потвърждения
|
||||
IDS_TITLE_INTERFACE=Интерфейс
|
||||
IDS_TITLE_HIGHLIGHTING=Открояване
|
||||
IDS_TITLE_LOGGING=Дневник за пакети
|
||||
IDS_TITLE_NOTIFICATIONS=Известия
|
||||
IDS_TITLE_ADVANCED=Разширени
|
||||
IDS_ALWAYSONTOP_CHK=Винаги на преден план
|
||||
IDS_LOADONSTARTUP_CHK=Зареждане с операционната система
|
||||
IDS_STARTMINIMIZED_CHK=Стартиране минимизирано
|
||||
IDS_SHOWFILENAMESONLY_CHK=Показване само имената на файловете
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Автоматично оразмеряване на колоните
|
||||
IDS_SKIPUACWARNING_CHK=Пропускане на предупреждението от User Account Control
|
||||
IDS_CHECKUPDATES_CHK=Периодична проверка за обновяване (препоръчително)
|
||||
IDS_LANGUAGE_HINT=Избор на език:
|
||||
IDS_USESTEALTHMODE_CHK=Предотвратяване сканирането на портове
|
||||
IDS_USESTEALTHMODE_HINT=Предотвратява сканирането на TCP портове чрез тихо отхвърляне на входящи TCP, RST и UDP портове чрез отговаряне на изходящи ICMP с "Destination Unreachable"
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Включване на филтри по време на зареждане
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Предотвратява изтичането на данни по време на стартиране на системата, дори преди стартиране на услугата "Base Filtering Engine" (BFE)
|
||||
IDS_USECERTIFICATES_CHK=Проверка на приложенията за цифрови подписи
|
||||
IDS_USENETWORKRESOLUTION_CHK=Разрешаване на мрежови адреси
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Изключване на защитната стена на Windows
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Включване на защитната стена на Windows
|
||||
IDS_CONFIRMEXIT_CHK=Потвърждаване при изход
|
||||
IDS_CONFIRMEXITTIMER_CHK=Потвърждаване при изход, когато има отброяване
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Потвърждаване при изчистване на дневника
|
||||
IDS_COLORS_HINT=Двойно щракане върху елемент за редактиране
|
||||
IDS_ENABLELOG_CHK=Включване записването на пакети във файл
|
||||
IDS_LOGSHOW=Показване на дневника
|
||||
IDS_LOGCLEAR=Изчистване на дневника
|
||||
IDS_LOGSIZELIMIT_HINT=Максимален размер на дневника: (КБ)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Включване на известия за пакети
|
||||
IDS_NOTIFICATIONSOUND_CHK=Включване на звук за известията
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Пауза между еднакви известия (сек.):
|
||||
IDS_NOTIFY_TOOLTIP=Задаване на потребителско правило за разрешаване на достъпа до адрес и/или порт за това приложение
|
||||
IDS_QUESTION=Сигурни ли сте?
|
||||
IDS_QUESTION_DELETE=Изтриване на елемент(и)?
|
||||
IDS_QUESTION_START=По този начин ще забраните достъпа на приложенията до мрежата, както е зададено в текущите настройки. Продължаване?
|
||||
IDS_QUESTION_STOP=По този начин ще възстановите достъпа до мрежата на всички приложения, които в момента имат забрана. Продължаване?
|
||||
IDS_QUESTION_EXIT=Инсталираните филтри ще продължат да работят, дори ако излезете. Продължаване?
|
||||
IDS_QUESTION_TIMER=Има отброявания. Те ще работят само когато приложението е пуснато. Изход?
|
||||
IDS_QUESTION_TIMERS=Премахване на отброяванията?
|
||||
IDS_QUESTION_FLAG_CHK=Без повторно задаване на въпроса
|
||||
IDS_STATUS_EMPTY=Празно
|
||||
IDS_STATUS_SYNTAX_ERROR=Синтактична грешка в правилото!
|
||||
IDS_ADDRESS_LOCAL=Източник
|
||||
IDS_ADDRESS_REMOTE=Цел
|
||||
IDS_UPDATE_ERROR=Грешка при свързване със сървъра за обновявания
|
||||
IDS_UPDATE_DOWNLOAD=Проверка за обновяване...
|
||||
IDS_UPDATE_DONE=Изтеглянето на обновяването е завършено.
|
||||
IDS_GROUP_SPECIAL_APPS=Приложения с потребителски правила
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Позволява целия трафик на обратната връзка
|
||||
IDS_RESET=Нулиране
|
||||
IDS_EXCLUDESTEALTH_CHK=връзки на скенера на порта
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=списък с блокирани
|
||||
IDS_UPDATE_INIT=Проверка за нови издания...
|
||||
IDS_UPDATE_INSTALL=Има обновяване, желаете ли да бъде инсталирано?
|
||||
IDS_EXCLUDECUSTOM_CHK=потребителски правила
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=разрешени връзки
|
||||
IDS_STATUS_TIMER_DONE=Отброяването изтече
|
||||
IDS_ICONSEXTRALARGE=Големи
|
||||
IDS_STATUS_UNUSED_APPS=Неизползвани приложения
|
||||
IDS_STATUS_TIMER_APPS=Приложения с отброяване
|
||||
IDS_SECUREFILTERS_CHK=Включване на защитата на инсталираните филтри
|
||||
IDS_SECUREFILTERS_HINT=Предотвратяване на достъпа на неоторизирани приложения до инсталираните филтри
|
||||
IDS_USEREFRESHDEVICES_CHK=Опресняване на филтрите при свързване на устройства
|
||||
IDS_RULE_ALLOW6TO4=Включване на IPv6 пренасочвания (6to4) за всички
|
||||
IDS_RECOMMENDED=препоръчително
|
||||
IDS_ICONSISTABLEVIEW=Показване като таблица
|
||||
IDS_ACTION_ALLOW_HINT=Включване на достъпа до мрежата завинаги
|
||||
IDS_ACTION_BLOCK_HINT=Изключване на достъпа до мрежата завинаги (до второто пришествие)
|
||||
IDS_ACTION_LATER_HINT=Пренебрегване сега и питане по-късно
|
||||
IDS_RULE_APPLY_2=Прилагане на "%s" за това приложение
|
||||
IDS_EDITRULES=Редактиране на правила
|
||||
IDS_TAB_APPS=Приложения
|
||||
IDS_TAB_SERVICES=Услуги
|
||||
IDS_TAB_PACKAGES=Приложения на UWP
|
||||
IDS_TAB_NETWORK=Връзки
|
||||
IDS_STATE=Състояние
|
||||
IDS_STATUS_FILTERS_ACTIVE=Филтрите са включени!
|
||||
IDS_STATUS_FILTERS_INACTIVE=Филтрите са изключени!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Прилагане на филтри
|
||||
IDS_HIGHLIGHT_CONNECTION=Има мрежови връзки
|
||||
IDS_SHOWINLIST=Показване в списък
|
||||
IDS_BLOCKLIST_SPY=Сървъри на Microsoft за шпионаж и телеметрия
|
||||
IDS_BLOCKLIST_UPDATE=Сървъри на Microsoft за обновяване
|
||||
IDS_BLOCKLIST_EXTRA=Сървъри на Microsoft за приложения
|
||||
IDS_PORT=Порт
|
||||
IDS_NOTIFY_TITLE=Мрежово предупреждение
|
||||
IDS_NOTIFY_HEADER=Мрежовата връзка е спряна
|
||||
IDS_DISABLE=Изключване
|
||||
IDS_TITLE_SECURITY=Защита
|
||||
IDS_LOGVIEWER_HINT=Приложение за преглед на дневника
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Показване на прозореца за известия в системната област
|
||||
IDS_NETWORK_CLOSE=Прекъсване на връзка
|
||||
IDS_RULE_BLOCKOUTBOUND=Забраняване на изходящи връзки за всички
|
||||
IDS_RULE_BLOCKINBOUND=Забраняване на входящи връзки за всички
|
||||
IDS_VIEW_ICON=Икони
|
||||
IDS_VIEW_DETAILS=Детайли
|
||||
IDS_VIEW_TILE=Плочки
|
||||
IDS_RULE_HINT=Ако полетата са оставени празни, правилото ще бъде приложено към всеки адрес и порт
|
||||
IDS_RULE_APPS_HINT=Ако няма избрани приложения, правилото ще бъде приложено към всички приложения
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Филтрите са включени до рестартиране
|
||||
IDS_INSTALL_PERMANENT=Постоянни правила. Правилата работят, докато не бъдат изключени ръчно.
|
||||
IDS_INSTALL_TEMPORARY=Временни правила. Правилата се нулират при следващото рестартиране.
|
||||
IDS_ENABLEUILOG_CHK=Включване на интерфейса за запис на пакети
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Включване на тих режим, когато приложение на цял екран е на преден план
|
||||
IDS_TITLE_TRAY=Икона в системната област
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Единично щракване за отваряне
|
||||
IDS_ENABLE_APP_CHK=Включване на достъпа до мрежата
|
||||
IDS_APP_HINT=Няма причина да бъде зададено разрешаващо правило на приложение с вече разрешен достъп до интернет
|
||||
IDS_HOST=Хост
|
||||
IDS_CONFIRMALLOW_CHK=Потвърждаване при разрешаване на приложението
|
||||
IDS_QUESTION_ALLOW=Желаете ли да бъде разрешен пълен достъп до интернет на това приложение?
|
||||
IDS_SHOWSEARCHBAR_CHK=Показване на лента за търсене
|
||||
IDS_LAYER=Слой
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Разрешаване на Windows Update
|
||||
IDS_ACTION_TERMINATE_HINT=Прекратяване на процеса
|
||||
IDS_PROFILE_TYPE=Вид на профила
|
||||
IDS_USEAPPMONITOR_CHK=Отчитане на промени на приложенията
|
||||
IDS_DISABLEREMOVAL=Изключване на премахването
|
||||
IDS_USEHASHES_CHK=Проверка на приложенията чрез отпечатък с SHA-256
|
||||
IDS_COMMENT=Коментари
|
||||
IDS_USEDARKTHEME=Използване на тъмна тема
|
||||
IDS_KEEPUNUSED_CHK=Запазване на неизползваните приложения
|
||||
IDS_UPDATE_NO=Няма обновяване
|
||||
IDS_UPDATE_YES=Налично е обновяване. Да бъде ли изтеглено и инсталирано?
|
||||
IDS_UPDATE_SPEED=Скорост
|
||||
IDS_RULE_FOR_ALL=за всички
|
||||
IDS_RULE_FOR_APPS=за приложения
|
||||
IDS_PROFILE_TYPE_PLAIN=Обикновен
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Компресиран
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Криптиран
|
||||
IDS_SESSION_ONLY=само за сесията
|
||||
IDS_LIMIT_REACHED=Лимитът е достигнат
|
||||
IDS_INTERNAL_RULE=Вътрешно правило
|
||||
IDS_LOADING=Зареждане...
|
||||
IDS_DIRECTION_REMOTE=Отдалечен
|
||||
IDS_DIRECTION_LOCAL=Локален
|
||||
IDS_WARNING_UNEXPECTED=Внимавайте, интернет трафикът може да премине по неочаквани маршрути чрез хост-процеса на услугата/драйвера (svchost.exe/System). Продължаване?
|
||||
IDS_WARNING_ME=Ако забраните основния процес, няма да можете да използвате опцията за разрешаване на мрежови адреси. Продължаване?
|
||||
IDS_TOTAL=Общо
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=входящи мултикаст/бродкаст
|
||||
IDS_CONNECTIONS_ENABLE=Включване на наблюдение на връзките
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Показване на чакащите връзки
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Измерване на UDP/QUIC трафика (експериментално, изисква редактиране)
|
||||
IDS_UDP_ACCOUNTING=UDP (включително QUIC): ETW байтове от началото на наблюдение на този сокет.
|
||||
IDS_UDP_UNAVAILABLE=Измерването на UDP е недостъпно или непълно. Рестартирайте simplewall за повторен опит. Грешка
|
||||
IDS_UDP_PENDING=UDP: все още няма проверени измервания. Сокетите, отворени преди началото на наблюдението, трябва да бъдат отворени отново.
|
||||
@@ -0,0 +1,240 @@
|
||||
; Catalan
|
||||
; github.com/eric-l10n - 08.11.2021
|
||||
|
||||
[Catalan]
|
||||
IDS_TITLE_EXCLUDE=Exclou
|
||||
IDS_FILE=Fitxer
|
||||
IDS_SETTINGS=Configuració
|
||||
IDS_EXIT=Surt
|
||||
IDS_EDIT=Edita
|
||||
IDS_PURGE_UNUSED=Suprimeix les aplicacions no utilitzades
|
||||
IDS_PURGE_TIMERS=Suprimeix els temporitzadors
|
||||
IDS_FIND=Cerca
|
||||
IDS_REFRESH=Actualitza
|
||||
IDS_VIEW=Visualització
|
||||
IDS_ICONS=Icones
|
||||
IDS_ICONSSMALL=Petites
|
||||
IDS_ICONSLARGE=Grans
|
||||
IDS_ICONSISHIDDEN=Oculta les icones
|
||||
IDS_LANGUAGE=Idioma
|
||||
IDS_FONT=Tipus de lletra
|
||||
IDS_HELP=Ajuda
|
||||
IDS_WEBSITE=Lloc web
|
||||
IDS_CHECKUPDATES=Comprova si hi ha actualitzacions
|
||||
IDS_DONATE=Dona'ns suport!
|
||||
IDS_ABOUT=Sobre
|
||||
IDS_TRAY_SHOW=Mostra/Amaga
|
||||
IDS_TRAY_START=Activa els filtres
|
||||
IDS_TRAY_STOP=Desactiva els filtres
|
||||
IDS_TRAY_RULES=Regles
|
||||
IDS_TRAY_BLOCKLIST_RULES=Llista de bloquejats
|
||||
IDS_TRAY_SYSTEM_RULES=Regles del sistema
|
||||
IDS_TRAY_USER_RULES=Regles d'usuari
|
||||
IDS_TRAY_LOGERR=Registre d'errors
|
||||
IDS_ADD_FILE=Afegeix una aplicació
|
||||
IDS_ANY=Qualsevol
|
||||
IDS_DISABLENOTIFICATIONS=Desactiva les notificacions
|
||||
IDS_OPENRULESEDITOR=Crea una regla
|
||||
IDS_TIMER=Temporitzador
|
||||
IDS_DISABLETIMER=Desactiva el temporitzador
|
||||
IDS_EXPLORE=Obre la carpeta contenidora
|
||||
IDS_COPY=Copia
|
||||
IDS_SELECT_ALL=Selecciona-ho tot
|
||||
IDS_CHECK=Activa la selecció
|
||||
IDS_UNCHECK=Desactiva la selecció
|
||||
IDS_ADD=Afegeix
|
||||
IDS_EDIT2=Edita
|
||||
IDS_DELETE=Elimina
|
||||
IDS_EXPORT=Exporta
|
||||
IDS_IMPORT=Importa
|
||||
IDS_RULE_ALLOWLOOPBACK=Permet connexions de loopback per a tot
|
||||
IDS_HIGHLIGHT_INVALID=No vàlid (no s’ha trobat el fitxer o hi ha un problema de filtres)
|
||||
IDS_HIGHLIGHT_NETWORK=App de xarxa compartida
|
||||
IDS_HIGHLIGHT_PICO=App pico
|
||||
IDS_HIGHLIGHT_SIGNED=App signada
|
||||
IDS_HIGHLIGHT_SILENT=Notificacions desactivades
|
||||
IDS_HIGHLIGHT_SPECIAL=Regles d'usuari
|
||||
IDS_HIGHLIGHT_SYSTEM=App del sistema
|
||||
IDS_GROUP_TIMER=App del temporitzador
|
||||
IDS_EDITOR=Editor de regles
|
||||
IDS_NAME=Nom
|
||||
IDS_RULE=Regla
|
||||
IDS_PORTVERSION=Família (només ports)
|
||||
IDS_PROTOCOL=Protocol
|
||||
IDS_DIRECTION=Direcció
|
||||
IDS_ACTION=Acció
|
||||
IDS_DATE=Data
|
||||
IDS_FILEPATH=Camí
|
||||
IDS_SIGNATURE=Signatura
|
||||
IDS_ADDRESS=Adreça
|
||||
IDS_FILTER=Filtre
|
||||
IDS_NOTES=Notes
|
||||
IDS_ADDED=Data d’addició
|
||||
IDS_TIMELEFT=Temps restant
|
||||
IDS_SIGN_SIGNED=Signada
|
||||
IDS_SIGN_UNSIGNED=Sense signar
|
||||
IDS_GROUP_ALLOWED=Apps amb accés a Internet
|
||||
IDS_GROUP_BLOCKED=Apps sense accés a Internet
|
||||
IDS_GROUP_ENABLED=Regles activades
|
||||
IDS_GROUP_DISABLED=Regles activades
|
||||
IDS_DIRECTION_1=Sortints
|
||||
IDS_DIRECTION_2=Entrants
|
||||
IDS_DIRECTION_3=Ambdós
|
||||
IDS_ACTION_ALLOW=Permet
|
||||
IDS_ACTION_BLOCK=Bloqueja
|
||||
IDS_ENABLE_CHK=Activa la regla
|
||||
IDS_WIKI=Ajuda
|
||||
IDS_SAVE=Desa
|
||||
IDS_CLOSE=Tanca
|
||||
IDS_SETTINGS_GENERAL=General
|
||||
IDS_TITLE_GENERAL=Configuració general
|
||||
IDS_TITLE_LANGUAGE=Idioma
|
||||
IDS_TITLE_CONFIRMATIONS=Confirmacions
|
||||
IDS_TITLE_INTERFACE=Interfície
|
||||
IDS_TITLE_HIGHLIGHTING=Realçament
|
||||
IDS_TITLE_LOGGING=Registre de paquets
|
||||
IDS_TITLE_NOTIFICATIONS=Notificacions
|
||||
IDS_TITLE_ADVANCED=Avançat
|
||||
IDS_ALWAYSONTOP_CHK=Sempre visible
|
||||
IDS_LOADONSTARTUP_CHK=Inicia en arrencar el sistema
|
||||
IDS_STARTMINIMIZED_CHK=Inicia minimitzat
|
||||
IDS_SHOWFILENAMESONLY_CHK=Mostra només els noms dels fitxers
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Columnes de mida automàtica
|
||||
IDS_SKIPUACWARNING_CHK=Omet l'advertència del control de comptes d'usuari (UAC)
|
||||
IDS_CHECKUPDATES_CHK=Comprova si hi ha actualitzacions periòdicament (recomanat)
|
||||
IDS_LANGUAGE_HINT=Seleccioneu l’idioma:
|
||||
IDS_USESTEALTHMODE_CHK=Impedeix l'escaneig de ports
|
||||
IDS_USESTEALTHMODE_HINT=Impedeix l'escaneig de ports TPC tot descartant silenciosament l'escaneig de ports TCP, RST i UDP entrants i responent a l'ICMP sortint amb "destinació il·localitzable".
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Activa els filtres en iniciar el sistema
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Impedeix la fuita de dades durant l'inici del sistema, fins i tot abans que s'executi el servei "Base Filtering Engine" (BFE).
|
||||
IDS_USECERTIFICATES_CHK=Comprova les signatures digitals de les aplicacions
|
||||
IDS_USENETWORKRESOLUTION_CHK=Resol les adreces de xarxa
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Desactiva el Tallafoc del Windows
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Activa el Firewall del Windows
|
||||
IDS_CONFIRMEXIT_CHK=Mostra un diàleg de confirmació per a sortir
|
||||
IDS_CONFIRMEXITTIMER_CHK=Mostra un diàleg de confirmació per a sortir amb temporitzadors actius
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Confirma abans d’esborrar el registre
|
||||
IDS_COLORS_HINT=Feu doble clic sobre un element per editar-lo.
|
||||
IDS_ENABLELOG_CHK=Enregistra paquets en un fitxer
|
||||
IDS_LOGSHOW=Mostra el registre
|
||||
IDS_LOGCLEAR=Neteja el registre
|
||||
IDS_LOGSIZELIMIT_HINT=Mida màxima del registre: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Activa les notificacions de paquets
|
||||
IDS_NOTIFICATIONSOUND_CHK=Activa el so de les notificacions
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Temps d'espera entre notificacions semblants (s):
|
||||
IDS_NOTIFY_TOOLTIP=Crea una regla d'usuari per permetre l'accés d'aquesta aplicació a una adreça o un port.
|
||||
IDS_QUESTION=Esteu segur/a?
|
||||
IDS_QUESTION_DELETE=Voleu esborrar els elements seleccionats?
|
||||
IDS_QUESTION_START=Es denegarà l'accés a la xarxa a les aplicacions definides per la configuració actual. Voleu continuar?
|
||||
IDS_QUESTION_STOP=Es restaurarà l'accés a la xarxa a totes les aplicacions bloquejades. Voleu continuar?
|
||||
IDS_QUESTION_EXIT=Els filtres instal·lats seguiran funcionant encara que sortiu. Voleu continuar?
|
||||
IDS_QUESTION_TIMER=Temporitzador(s) activat(s). Només funcionen mentre l'aplicació s'està executant. Voleu sortir?
|
||||
IDS_QUESTION_TIMERS=Voleu esborrar tots els temporitzadors?
|
||||
IDS_QUESTION_FLAG_CHK=No m'ho tornis a preguntar
|
||||
IDS_STATUS_EMPTY=Empty.
|
||||
IDS_STATUS_SYNTAX_ERROR=Hi ha un error de sintaxi a la regla.
|
||||
IDS_ADDRESS_LOCAL=Origen
|
||||
IDS_ADDRESS_REMOTE=Destinació
|
||||
IDS_UPDATE_ERROR=S'ha produït un error de connexió amb el servidor d'actualitzacions.
|
||||
IDS_UPDATE_DOWNLOAD=S'està baixant l’actualització...
|
||||
IDS_UPDATE_DONE=S'ha acabat de baixar l’actualització.
|
||||
IDS_GROUP_SPECIAL_APPS=Apps amb regles d'usuari
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Es permetrà tot el trànsit de loopback.
|
||||
IDS_RESET=Restableix
|
||||
IDS_EXCLUDESTEALTH_CHK=escàner de ports
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=llista de bloquejats
|
||||
IDS_UPDATE_INIT=S'està comprovant si hi ha noves versions...
|
||||
IDS_UPDATE_INSTALL=Hi ha una actualització disponible. Voleu instal·lar-la ara?
|
||||
IDS_EXCLUDECUSTOM_CHK=regles d'usuari
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=connexions permeses
|
||||
IDS_STATUS_TIMER_DONE=Ha vençut el temporitzador de l'aplicació
|
||||
IDS_ICONSEXTRALARGE=Molt grans
|
||||
IDS_STATUS_UNUSED_APPS=Apps no utilitzades
|
||||
IDS_STATUS_TIMER_APPS=Apps amb temporitzador
|
||||
IDS_SECUREFILTERS_CHK=Enable protection of installed filters
|
||||
IDS_SECUREFILTERS_HINT=Prevent unauthorized applications from accessing the installed filters.
|
||||
IDS_USEREFRESHDEVICES_CHK=Actualitza els filtres en connectar dispositius (d'emmagatzematge)
|
||||
IDS_RULE_ALLOW6TO4=Permet redireccions IPv6 (6to4) per a tot
|
||||
IDS_RECOMMENDED=recomanat
|
||||
IDS_ICONSISTABLEVIEW=Mostra com a taula
|
||||
IDS_ACTION_ALLOW_HINT=Permet sempre l'accés a la xarxa
|
||||
IDS_ACTION_BLOCK_HINT=Bloqueja sempre l'accés a la xarxa
|
||||
IDS_ACTION_LATER_HINT=Ignora i demana-m'ho més tard
|
||||
IDS_RULE_APPLY_2=Aplica "%s" a aquesta app
|
||||
IDS_EDITRULES=Edita regles
|
||||
IDS_TAB_APPS=Aplicacions
|
||||
IDS_TAB_SERVICES=Serveis
|
||||
IDS_TAB_PACKAGES=Apps UWP
|
||||
IDS_TAB_NETWORK=Connexions
|
||||
IDS_STATE=Estat
|
||||
IDS_STATUS_FILTERS_ACTIVE=Els filtres estan activats.
|
||||
IDS_STATUS_FILTERS_INACTIVE=Els filtres estan desactivats.
|
||||
IDS_STATUS_FILTERS_PROCESSING=S'estan aplicant els filtres
|
||||
IDS_HIGHLIGHT_CONNECTION=Tenen connexions de xarxa
|
||||
IDS_SHOWINLIST=Mostra a la llista
|
||||
IDS_BLOCKLIST_SPY=Espionatge i telemetria de Microsoft
|
||||
IDS_BLOCKLIST_UPDATE=Actualitzacions de Microsoft
|
||||
IDS_BLOCKLIST_EXTRA=Aplicacions de Microsoft
|
||||
IDS_PORT=Port
|
||||
IDS_NOTIFY_TITLE=Alerta de xarxa
|
||||
IDS_NOTIFY_HEADER=S'ha bloquejat la connexió a la xarxa
|
||||
IDS_DISABLE=Desactiva
|
||||
IDS_TITLE_SECURITY=Seguretat
|
||||
IDS_LOGVIEWER_HINT=App del visualitzador de registres
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Mostra les notificacions a l'àrea de notificacions
|
||||
IDS_NETWORK_CLOSE=Tanca la connexió
|
||||
IDS_RULE_BLOCKOUTBOUND=Bloqueja totes les connexions sortints
|
||||
IDS_RULE_BLOCKINBOUND=Bloqueja totes les connexions entrants
|
||||
IDS_VIEW_ICON=Icones
|
||||
IDS_VIEW_DETAILS=Detalls
|
||||
IDS_VIEW_TILE=En mosaic
|
||||
IDS_RULE_HINT=Si deixa els camps buits, la regla s'aplicarà a qualsevol adreça o port.
|
||||
IDS_RULE_APPS_HINT=Si no selecciona cap aplicació, la regla s'aplicarà a totes les aplicacions.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Els filtres estaran activats fins a reiniciar.
|
||||
IDS_INSTALL_PERMANENT=Regles permanents: funcionen fins que les desactives manualment.
|
||||
IDS_INSTALL_TEMPORARY=Regles temporals: es desactiven en reiniciar.
|
||||
IDS_ENABLEUILOG_CHK=Activa la interfície de registre de paquets
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Activa el mode No molestar quan l'aplicació s'executi en primer pla en pantalla completa
|
||||
IDS_TITLE_TRAY=Icona de l'àrea de notificacions
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Feu clic a la icona de l'àrea de notificacions per obrir
|
||||
IDS_ENABLE_APP_CHK=Activa l'accés a la xarxa
|
||||
IDS_APP_HINT=No fa falta crear una regla permissiva per a una aplicació que ja té l'accés a la xarxa activat.
|
||||
IDS_HOST=Amfitrió
|
||||
IDS_CONFIRMALLOW_CHK=Confirma abans de permetre una aplicació
|
||||
IDS_QUESTION_ALLOW=Esteu segur/a que voleu permetre l'accés d'aquesta aplicació a la xarxa?
|
||||
IDS_SHOWSEARCHBAR_CHK=Mostra la barra de cerca
|
||||
IDS_LAYER=Layer
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Allow Windows Update
|
||||
IDS_ACTION_TERMINATE_HINT=Terminate process
|
||||
IDS_PROFILE_TYPE=Profile type
|
||||
IDS_USEAPPMONITOR_CHK=Monitor apps changing
|
||||
IDS_DISABLEREMOVAL=Disable removal
|
||||
IDS_USEHASHES_CHK=Check apps for sha-256 hash
|
||||
IDS_COMMENT=Comments
|
||||
IDS_USEDARKTHEME=Use dark theme
|
||||
IDS_KEEPUNUSED_CHK=Keep unused apps
|
||||
IDS_UPDATE_NO=No hi ha actualitzacions disponibles.
|
||||
IDS_UPDATE_YES=Hi ha una actualització disponible. Voleu baixar-la i instal·lar-la?
|
||||
IDS_UPDATE_SPEED=Speed
|
||||
IDS_RULE_FOR_ALL=for all
|
||||
IDS_RULE_FOR_APPS=for apps
|
||||
IDS_PROFILE_TYPE_PLAIN=Plain
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Compressed
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Encrypted
|
||||
IDS_SESSION_ONLY=session only
|
||||
IDS_LIMIT_REACHED=Limit reached.
|
||||
IDS_INTERNAL_RULE=Internal rule
|
||||
IDS_LOADING=Loading...
|
||||
IDS_DIRECTION_REMOTE=Remote
|
||||
IDS_DIRECTION_LOCAL=Local
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,240 @@
|
||||
; <Czech>
|
||||
; <Daniel Gregor (e-mail: daniel.gregor@post.cz>
|
||||
|
||||
[Czech]
|
||||
IDS_TITLE_EXCLUDE=Vyloučit
|
||||
IDS_FILE=Soubor
|
||||
IDS_SETTINGS=Nastavení
|
||||
IDS_EXIT=Ukončit
|
||||
IDS_EDIT=Upravit
|
||||
IDS_PURGE_UNUSED=Vymazat nepoužívané aplikace
|
||||
IDS_PURGE_TIMERS=Vymazat časovače
|
||||
IDS_FIND=Hledat
|
||||
IDS_REFRESH=Obnovit
|
||||
IDS_VIEW=Pohled
|
||||
IDS_ICONS=Ikony
|
||||
IDS_ICONSSMALL=Malý
|
||||
IDS_ICONSLARGE=Velký
|
||||
IDS_ICONSISHIDDEN=Nenačítat ikony
|
||||
IDS_LANGUAGE=Jazyk
|
||||
IDS_FONT=Písmo
|
||||
IDS_HELP=Pomoc
|
||||
IDS_WEBSITE=Domácí URL stránka
|
||||
IDS_CHECKUPDATES=Kontrola aktualizací
|
||||
IDS_DONATE=Poděkovat!
|
||||
IDS_ABOUT=O programu
|
||||
IDS_TRAY_SHOW=Zobrazit/Skrýt
|
||||
IDS_TRAY_START=Povolit filtry
|
||||
IDS_TRAY_STOP=Zakázat filtry
|
||||
IDS_TRAY_RULES=Pravidla
|
||||
IDS_TRAY_BLOCKLIST_RULES=Seznam blokovaných
|
||||
IDS_TRAY_SYSTEM_RULES=Systémová pravidla
|
||||
IDS_TRAY_USER_RULES=Uživatelská pravidla
|
||||
IDS_TRAY_LOGERR=Protokol chyb
|
||||
IDS_ADD_FILE=Přidat aplikaci
|
||||
IDS_ANY=Jakýkoli
|
||||
IDS_DISABLENOTIFICATIONS=Zakázat oznámení
|
||||
IDS_OPENRULESEDITOR=Vytvořit pravidlo
|
||||
IDS_TIMER=Časovač
|
||||
IDS_DISABLETIMER=Zakázat časovač
|
||||
IDS_EXPLORE=Otevřít složku obsahu
|
||||
IDS_COPY=Kopírovat
|
||||
IDS_SELECT_ALL=Vybrat vše
|
||||
IDS_CHECK=Povolit vybrané
|
||||
IDS_UNCHECK=Zakázat vybrané
|
||||
IDS_ADD=Přidat
|
||||
IDS_EDIT2=Upravit
|
||||
IDS_DELETE=Vymazat
|
||||
IDS_EXPORT=Exportovat
|
||||
IDS_IMPORT=Importovat
|
||||
IDS_RULE_ALLOWLOOPBACK=Povolit loopback připojení pro vše
|
||||
IDS_HIGHLIGHT_INVALID=Neplatné (soubor nenalezen nebo problém s filtrem)
|
||||
IDS_HIGHLIGHT_NETWORK=Sdílená síťová aplikace
|
||||
IDS_HIGHLIGHT_PICO=Aplikace Pico
|
||||
IDS_HIGHLIGHT_SIGNED=Podepsané aplikace
|
||||
IDS_HIGHLIGHT_SILENT=Vypnutá upozornění
|
||||
IDS_HIGHLIGHT_SPECIAL=Uživatelská pravidla
|
||||
IDS_HIGHLIGHT_SYSTEM=Systémové aplikace
|
||||
IDS_GROUP_TIMER=Aplikace s časovačem
|
||||
IDS_EDITOR=Editor pravidel
|
||||
IDS_NAME=Název
|
||||
IDS_RULE=Pravidlo
|
||||
IDS_PORTVERSION=Family (pouze porty)
|
||||
IDS_PROTOCOL=Protokol
|
||||
IDS_DIRECTION=Směr
|
||||
IDS_ACTION=Akce
|
||||
IDS_DATE=Datum
|
||||
IDS_FILEPATH=Cesta
|
||||
IDS_SIGNATURE=Podpis
|
||||
IDS_ADDRESS=Adresa
|
||||
IDS_FILTER=Filtr
|
||||
IDS_NOTES=Poznámky
|
||||
IDS_ADDED=Přídáno
|
||||
IDS_TIMELEFT=Zbývající čas
|
||||
IDS_SIGN_SIGNED=Podepsaný
|
||||
IDS_SIGN_UNSIGNED=Nepodepsaný
|
||||
IDS_GROUP_ALLOWED=Aplikace s přístupem k internetu
|
||||
IDS_GROUP_BLOCKED=Aplikace bez přístupu k internetu
|
||||
IDS_GROUP_ENABLED=Povolená pravidla
|
||||
IDS_GROUP_DISABLED=Zakázaná pravidla
|
||||
IDS_DIRECTION_1=Odchozí
|
||||
IDS_DIRECTION_2=Příchozí
|
||||
IDS_DIRECTION_3=Obě
|
||||
IDS_ACTION_ALLOW=Povolit
|
||||
IDS_ACTION_BLOCK=Blokovat
|
||||
IDS_ENABLE_CHK=Povolit pravidlo
|
||||
IDS_WIKI=Pomoc
|
||||
IDS_SAVE=Uložit
|
||||
IDS_CLOSE=Zavřít
|
||||
IDS_SETTINGS_GENERAL=Všeobecné
|
||||
IDS_TITLE_GENERAL=Obecná konfigurace
|
||||
IDS_TITLE_LANGUAGE=Jazyk
|
||||
IDS_TITLE_CONFIRMATIONS=Potvrzení
|
||||
IDS_TITLE_INTERFACE=Rozhraní
|
||||
IDS_TITLE_HIGHLIGHTING=Zvýraznění
|
||||
IDS_TITLE_LOGGING=Protokol paketů
|
||||
IDS_TITLE_NOTIFICATIONS=Oznámení
|
||||
IDS_TITLE_ADVANCED=Pokročilý
|
||||
IDS_ALWAYSONTOP_CHK=Program Simplewall vždy na vrchu
|
||||
IDS_LOADONSTARTUP_CHK=Spustit Simplewall při startu systému
|
||||
IDS_STARTMINIMIZED_CHK=Startovat minimalizovaně
|
||||
IDS_SHOWFILENAMESONLY_CHK=Zobrazit pouze názvy souborů
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Automatická velikost sloupců
|
||||
IDS_SKIPUACWARNING_CHK=Přeskočit upozornění „Řízení uživatelských účtů“.
|
||||
IDS_CHECKUPDATES_CHK=Pravidelně kontrolovat aktualizace (doporučeno)
|
||||
IDS_LANGUAGE_HINT=Vyber jazyk:
|
||||
IDS_USESTEALTHMODE_CHK=Zabránit skenování portů
|
||||
IDS_USESTEALTHMODE_HINT=Zabránit skenování portů TCP tichým zrušením skenování portů TCP RST a UDP tím, že na odchozí ICMP odpovíte „Cíl nedosažitelný“.
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Povolit filtry při spuštění
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Zabraňte úniku dat během spouštění systému, ještě před spuštěním služby „Služba BFE (Base Filtering Engine)“ (BFE).
|
||||
IDS_USECERTIFICATES_CHK=Zkontroluje aplikace pro digitální podpisy
|
||||
IDS_USENETWORKRESOLUTION_CHK=Překládat IP adresy na DNS jména
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Zakázat bránu Windows Firewall
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Povolit bránu Windows Firewall
|
||||
IDS_CONFIRMEXIT_CHK=Při ukončení Simplewall zobrazit dialog pro potvrzení
|
||||
IDS_CONFIRMEXITTIMER_CHK=Zobrazit potvrzení při ukončení Simplewall, když jsou časovače aktivní
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Potvrzení při mazání souboru protokolu
|
||||
IDS_COLORS_HINT=Poklepáním na položku ji změníte.
|
||||
IDS_ENABLELOG_CHK=Povolit protokolování paketů do souboru
|
||||
IDS_LOGSHOW=Ukázat log soubor
|
||||
IDS_LOGCLEAR=Vyčistit log soubor
|
||||
IDS_LOGSIZELIMIT_HINT=Maximální velikost log souboru: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Povolit notifikace paketů
|
||||
IDS_NOTIFICATIONSOUND_CHK=Povolit zvuk upozornění
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Časový limit mezi podobnými oznámeními (s):
|
||||
IDS_NOTIFY_TOOLTIP=Nastavit uživatelské pravidlo pro povolení přístupu k adrese nebo portu pro tuto aplikaci.
|
||||
IDS_QUESTION=Jste si jistý?
|
||||
IDS_QUESTION_DELETE=Smazat vybrané položky?
|
||||
IDS_QUESTION_START=To odepře přístup k síti aplikacím definovaným aktuální konfigurací. Pokračovat?
|
||||
IDS_QUESTION_STOP=Tím obnovíte přístup k síti pro všechny aplikace, které jsou aktuálně blokovány. Pokračovat?
|
||||
IDS_QUESTION_EXIT=Nainstalované filtry budou fungovat i po ukončení. Pokračovat?
|
||||
IDS_QUESTION_TIMER=Časovače aktivovány. Časovače budou fungovat pouze při spuštěné aplikaci. Ukončit?
|
||||
IDS_QUESTION_TIMERS=Smazat všechny časovače?
|
||||
IDS_QUESTION_FLAG_CHK=Neptej se znovu
|
||||
IDS_STATUS_EMPTY=Prázdný.
|
||||
IDS_STATUS_SYNTAX_ERROR=Chyba syntaxe v pravidle!
|
||||
IDS_ADDRESS_LOCAL=Zdroj
|
||||
IDS_ADDRESS_REMOTE=Cíl
|
||||
IDS_UPDATE_ERROR=Chyba připojení k Update serveru.
|
||||
IDS_UPDATE_DOWNLOAD=Stahuji aktualizaci...
|
||||
IDS_UPDATE_DONE=Stahování aktualizace dokončena.
|
||||
IDS_GROUP_SPECIAL_APPS=Aplikace s uživatelskými pravidly
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Toto umožňí veškerý provoz na loopback.
|
||||
IDS_RESET=Resetovat
|
||||
IDS_EXCLUDESTEALTH_CHK=připojení skeneru portů
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=seznam blokovaných
|
||||
IDS_UPDATE_INIT=Kontroluji dostupnost nové verze...
|
||||
IDS_UPDATE_INSTALL=Je k dispozici aktualizace. Chcete ji nyní nainstalovat?
|
||||
IDS_EXCLUDECUSTOM_CHK=uživatelská pravidla
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=povolená spojení
|
||||
IDS_STATUS_TIMER_DONE=Časovač pro aplikaci vypršel
|
||||
IDS_ICONSEXTRALARGE=Extra velké
|
||||
IDS_STATUS_UNUSED_APPS=Nepoužité aplikace
|
||||
IDS_STATUS_TIMER_APPS=Aplikace s časovačem
|
||||
IDS_SECUREFILTERS_CHK=Povolit ochranu nainstalovaných filtrů
|
||||
IDS_SECUREFILTERS_HINT=Zabraňte neoprávněným aplikacím v přístupu k nainstalovaným filtrům.
|
||||
IDS_USEREFRESHDEVICES_CHK=Obnovte filtry, když jsou připojena (úložná) zařízení
|
||||
IDS_RULE_ALLOW6TO4=Povolit přesměrování IPv6 (6to4) pro vše
|
||||
IDS_RECOMMENDED=doporučeno
|
||||
IDS_ICONSISTABLEVIEW=Zobrazit jako tabulku
|
||||
IDS_ACTION_ALLOW_HINT=Povolit přístup k síti navždy
|
||||
IDS_ACTION_BLOCK_HINT=Zakázat přístup k síti navždy
|
||||
IDS_ACTION_LATER_HINT=Ignorovat a zeptat se mě příště
|
||||
IDS_RULE_APPLY_2=Použijte "%s" pro tuto aplikaci
|
||||
IDS_EDITRULES=Upravit pravidla
|
||||
IDS_TAB_APPS=Aplikace
|
||||
IDS_TAB_SERVICES=Služby
|
||||
IDS_TAB_PACKAGES=Nativní Windows aplikace
|
||||
IDS_TAB_NETWORK=Aktuální síťová připojení
|
||||
IDS_STATE=Stav
|
||||
IDS_STATUS_FILTERS_ACTIVE=Filtry jsou povoleny.
|
||||
IDS_STATUS_FILTERS_INACTIVE=Filtry jsou zakázány!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Aplikuji filtry
|
||||
IDS_HIGHLIGHT_CONNECTION=Má připojení k síti
|
||||
IDS_SHOWINLIST=Zobrazit v seznamu
|
||||
IDS_BLOCKLIST_SPY=Microsoft špionáž a telemetrie
|
||||
IDS_BLOCKLIST_UPDATE=Microsoft aktualizace
|
||||
IDS_BLOCKLIST_EXTRA=Microsoft aplikace
|
||||
IDS_PORT=Port
|
||||
IDS_NOTIFY_TITLE=Upozornění sítě
|
||||
IDS_NOTIFY_HEADER=Síťové připojení bylo zablokováno
|
||||
IDS_DISABLE=Zakázat
|
||||
IDS_TITLE_SECURITY=Bezpečnost
|
||||
IDS_LOGVIEWER_HINT=Aplikace pro prohlížení protokolů
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Zobrazit oznamovací okno na liště
|
||||
IDS_NETWORK_CLOSE=Uzavřít spojení
|
||||
IDS_RULE_BLOCKOUTBOUND=Blokovat odchozí připojení pro vše
|
||||
IDS_RULE_BLOCKINBOUND=Blokovat příchozí připojení pro vše
|
||||
IDS_VIEW_ICON=Ikony
|
||||
IDS_VIEW_DETAILS=Detaily
|
||||
IDS_VIEW_TILE=Dlaždice
|
||||
IDS_RULE_HINT=Pokud necháte pole prázdná, pravidlo bude použito pro jakoukoli adresu a port.
|
||||
IDS_RULE_APPS_HINT=Pokud nejsou vybrány žádné aplikace, pravidlo se použije pro všechny aplikace.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Filtry jsou povoleny až do restartu.
|
||||
IDS_INSTALL_PERMANENT=Stálá pravidla. Pravidla fungují, dokud je ručně nezakážete.
|
||||
IDS_INSTALL_TEMPORARY=Dočasná pravidla. Pravidla se resetují po příštím restartu.
|
||||
IDS_ENABLEUILOG_CHK=Povolit rozhraní protokolování paketů
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Povolit tichý režim
|
||||
IDS_TITLE_TRAY=Ikona v liště
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Jeden klik pro otevření ikony na hlavním panelu
|
||||
IDS_ENABLE_APP_CHK=Povolit přístup k síti
|
||||
IDS_APP_HINT=Není důvod nastavovat nějaké povolující pravidlo pro aplikaci s již povoleným přístupem k internetu.
|
||||
IDS_HOST=Host
|
||||
IDS_CONFIRMALLOW_CHK=Potvzení při povolení aplikace
|
||||
IDS_QUESTION_ALLOW=Opravdu chcete této aplikaci povolit úplný přístup k internetu?
|
||||
IDS_SHOWSEARCHBAR_CHK=Zobrazit vyhledávací lištu
|
||||
IDS_LAYER=Vrstva
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Povolit Windows aktualizace
|
||||
IDS_ACTION_TERMINATE_HINT=Ukončit proces
|
||||
IDS_PROFILE_TYPE=Typ profilu
|
||||
IDS_USEAPPMONITOR_CHK=Sledovat změny aplikací
|
||||
IDS_DISABLEREMOVAL=Vypnout odebrání
|
||||
IDS_USEHASHES_CHK=Kontroluj aplikace na sha-256 hash
|
||||
IDS_COMMENT=Komentáře
|
||||
IDS_USEDARKTHEME=Použij tmavý vzhled
|
||||
IDS_KEEPUNUSED_CHK=Pamatuj si nepoužívané aplikace
|
||||
IDS_UPDATE_NO=Není k dispozici žádná aktualizace.
|
||||
IDS_UPDATE_YES=AKtualizace je k dispozici. Stáhnout a instalovat nyní?
|
||||
IDS_UPDATE_SPEED=Rychlost
|
||||
IDS_RULE_FOR_ALL=Pro všechny
|
||||
IDS_RULE_FOR_APPS=Pro aplikace
|
||||
IDS_PROFILE_TYPE_PLAIN=Prostý
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Komprimovaný
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Šifrovaný
|
||||
IDS_SESSION_ONLY=Pouze na toto sezení
|
||||
IDS_LIMIT_REACHED=Limit dosažen.
|
||||
IDS_INTERNAL_RULE=Interní pravidlo
|
||||
IDS_LOADING=Nahrávám...
|
||||
IDS_DIRECTION_REMOTE=Vzdálený
|
||||
IDS_DIRECTION_LOCAL=Lokální
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,240 @@
|
||||
; <Brazilian Portuguese>
|
||||
; <ALFA&ÔMEGA>
|
||||
|
||||
[Portuguese (Brazil)]
|
||||
IDS_TITLE_EXCLUDE=Excluir
|
||||
IDS_FILE=Arquivo
|
||||
IDS_SETTINGS=Configurações
|
||||
IDS_EXIT=Fechar o simplewall
|
||||
IDS_EDIT=Editar
|
||||
IDS_PURGE_UNUSED=Limpar aplicativos não usados
|
||||
IDS_PURGE_TIMERS=Limpar cronômetros
|
||||
IDS_FIND=Localizar
|
||||
IDS_REFRESH=Atualizar
|
||||
IDS_VIEW=Exibir
|
||||
IDS_ICONS=Ícones
|
||||
IDS_ICONSSMALL=Pequenos
|
||||
IDS_ICONSLARGE=Grandes
|
||||
IDS_ICONSISHIDDEN=Ocultar ícones
|
||||
IDS_LANGUAGE=Idioma
|
||||
IDS_FONT=Fonte
|
||||
IDS_HELP=Ajuda
|
||||
IDS_WEBSITE=Site oficial do simplewall
|
||||
IDS_CHECKUPDATES=Procurar atualizações
|
||||
IDS_DONATE=Fazer uma doação!
|
||||
IDS_ABOUT=Sobre o simpleWall
|
||||
IDS_TRAY_SHOW=Exibir/Ocultar
|
||||
IDS_TRAY_START=Habilitar filtragem
|
||||
IDS_TRAY_STOP=Desabilitar filtragem
|
||||
IDS_TRAY_RULES=Regras
|
||||
IDS_TRAY_BLOCKLIST_RULES=Lista de bloqueados
|
||||
IDS_TRAY_SYSTEM_RULES=Regras do sistema
|
||||
IDS_TRAY_USER_RULES=Regras personalizadas
|
||||
IDS_TRAY_LOGERR=Registros de erros
|
||||
IDS_ADD_FILE=Adicionar executável
|
||||
IDS_ANY=Qualquer conexão
|
||||
IDS_DISABLENOTIFICATIONS=Desativar avisos
|
||||
IDS_OPENRULESEDITOR=Abrir o editor de regras
|
||||
IDS_TIMER=Cronômetro
|
||||
IDS_DISABLETIMER=Desativar temporizador
|
||||
IDS_EXPLORE=Abrir a pasta do executável selecionado
|
||||
IDS_COPY=Copiar
|
||||
IDS_SELECT_ALL=Selecionar todos
|
||||
IDS_CHECK=Marcar selecionados
|
||||
IDS_UNCHECK=Desmarcar selecionados
|
||||
IDS_ADD=Adicionar
|
||||
IDS_EDIT2=Editar
|
||||
IDS_DELETE=Apagar
|
||||
IDS_EXPORT=Exportar
|
||||
IDS_IMPORT=Importar
|
||||
IDS_RULE_ALLOWLOOPBACK=Permitir conexões loopback para todos
|
||||
IDS_HIGHLIGHT_INVALID=Arquivo não encontrado
|
||||
IDS_HIGHLIGHT_NETWORK=Arquivo compartilhado pela rede
|
||||
IDS_HIGHLIGHT_PICO=Pico (WSL)
|
||||
IDS_HIGHLIGHT_SIGNED=Aplicativo com assinatura
|
||||
IDS_HIGHLIGHT_SILENT=Avisos desabilitados
|
||||
IDS_HIGHLIGHT_SPECIAL=Regras especiais
|
||||
IDS_HIGHLIGHT_SYSTEM=Aplicativo do sistema
|
||||
IDS_GROUP_TIMER=Aplicativo de temporização
|
||||
IDS_EDITOR=Editor de regras
|
||||
IDS_NAME=Nome
|
||||
IDS_RULE=Regra (portas ou endereços IP)
|
||||
IDS_PORTVERSION=Família (apenas para portas)
|
||||
IDS_PROTOCOL=Protocolo
|
||||
IDS_DIRECTION=Direção
|
||||
IDS_ACTION=Ação
|
||||
IDS_DATE=Data
|
||||
IDS_FILEPATH=Arquivo
|
||||
IDS_SIGNATURE=Assinatura
|
||||
IDS_ADDRESS=Endereço
|
||||
IDS_FILTER=Filtro
|
||||
IDS_NOTES=Notas
|
||||
IDS_ADDED=Adicionado
|
||||
IDS_TIMELEFT=Tempo restante
|
||||
IDS_SIGN_SIGNED=Com assinatura
|
||||
IDS_SIGN_UNSIGNED=Sem assinatura
|
||||
IDS_GROUP_ALLOWED=Programas permitidos
|
||||
IDS_GROUP_BLOCKED=Programas bloqueados
|
||||
IDS_GROUP_ENABLED=Regras habilitadas
|
||||
IDS_GROUP_DISABLED=Regras desativadas
|
||||
IDS_DIRECTION_1=Saída
|
||||
IDS_DIRECTION_2=Entrada
|
||||
IDS_DIRECTION_3=Ambas (Saída/Entrada)
|
||||
IDS_ACTION_ALLOW=Permitir
|
||||
IDS_ACTION_BLOCK=Bloquear
|
||||
IDS_ENABLE_CHK=Habilitar regra
|
||||
IDS_WIKI=Ajuda
|
||||
IDS_SAVE=Aplicar
|
||||
IDS_CLOSE=Fechar
|
||||
IDS_SETTINGS_GENERAL=Geral
|
||||
IDS_TITLE_GENERAL=Configuração geral
|
||||
IDS_TITLE_LANGUAGE=Idioma
|
||||
IDS_TITLE_CONFIRMATIONS=Confirmações
|
||||
IDS_TITLE_INTERFACE=Interface
|
||||
IDS_TITLE_HIGHLIGHTING=Destaque
|
||||
IDS_TITLE_LOGGING=Registrando em um arquivo
|
||||
IDS_TITLE_NOTIFICATIONS=Notificações
|
||||
IDS_TITLE_ADVANCED=Avançado
|
||||
IDS_ALWAYSONTOP_CHK=Manter a janela do simplewall sempre no topo
|
||||
IDS_LOADONSTARTUP_CHK=Abrir o simplewall na inicialização
|
||||
IDS_STARTMINIMIZED_CHK=Iniciar minimizado
|
||||
IDS_SHOWFILENAMESONLY_CHK=Mostrar apenas o nome dos arquivos
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Ajustar colunas automaticamente
|
||||
IDS_SKIPUACWARNING_CHK=Ignorar notificações do "Controle de Conta de Usuário"
|
||||
IDS_CHECKUPDATES_CHK=Procurar atualizações periodicamente (recomendado)
|
||||
IDS_LANGUAGE_HINT=Escolha o idioma:
|
||||
IDS_USESTEALTHMODE_CHK=Usar o simplewall no modo invisível (stealth-mode)
|
||||
IDS_USESTEALTHMODE_HINT=Impede a sondagem de portas de TCP/UDP descartando sigilosamente pedidos de conexão via TCP de entrada e de "Destino Inacessível" de ICMP.
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Habilitar filtros na inicialização
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Impede que vazem dados durante o carregamento do SO, antes mesmo da execução do "Serviço de Filtragem Básico" (BFE, na sigla em inglês).
|
||||
IDS_USECERTIFICATES_CHK=Verificar aplicativos por assinaturas digitais
|
||||
IDS_USENETWORKRESOLUTION_CHK=Resolver endereços de rede
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Desativar Firewall do Windows
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Ativar Firewall do Windows
|
||||
IDS_CONFIRMEXIT_CHK=Confirmar fechamento do simplewall
|
||||
IDS_CONFIRMEXITTIMER_CHK=Exibir caixa de diálogo de confirmação ao sair quando cronômetros estiverem ativos
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Confirmar remoção do arquivo de registros
|
||||
IDS_COLORS_HINT=Clique duas vezes em um item para alterá-lo.
|
||||
IDS_ENABLELOG_CHK=Habilitar gravação em arquivo de pacotes de tráfego descartados
|
||||
IDS_LOGSHOW=Abrir o arquivo de registros
|
||||
IDS_LOGCLEAR=Apagar o arquivo de registros
|
||||
IDS_LOGSIZELIMIT_HINT=Tamanho máximo do arquivo de registros: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Habilitar notificação de descarte de pacotes de tráfego
|
||||
IDS_NOTIFICATIONSOUND_CHK=Habilitar sons de notificação
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Intervalo entre as mesmas notificações (segs.):
|
||||
IDS_NOTIFY_TOOLTIP=Cria uma regra especial para permitir o acesso ao endereço e/ou porta para este aplicativo.
|
||||
IDS_QUESTION=Tem certeza?
|
||||
IDS_QUESTION_DELETE=Deseja mesmo apagar item(ns)?
|
||||
IDS_QUESTION_START=Este comando irá bloquear o acesso à rede de aplicativos de acordo com a configuração selecionada! Tem certeza?
|
||||
IDS_QUESTION_STOP=Este comando irá restaurar o acesso à rede de todos os aplicativos bloqueados! Tem certeza?
|
||||
IDS_QUESTION_EXIT=Filtros instalados funcionarão mesmo se você sair, continuar?
|
||||
IDS_QUESTION_TIMER=Cronômetro ativado. Cronômetros funcionam somente com o aplicativo em execução. Sair?
|
||||
IDS_QUESTION_TIMERS=Excluir todos os cronômetros?
|
||||
IDS_QUESTION_FLAG_CHK=Não perguntar novamente
|
||||
IDS_STATUS_EMPTY=Empty.
|
||||
IDS_STATUS_SYNTAX_ERROR=Erro de sintaxe na regra!
|
||||
IDS_ADDRESS_LOCAL=Fonte
|
||||
IDS_ADDRESS_REMOTE=Destino
|
||||
IDS_UPDATE_ERROR=Erro de conexão com o servidor de atualização.
|
||||
IDS_UPDATE_DOWNLOAD=Baixando atualização...
|
||||
IDS_UPDATE_DONE=Download da atualização concluído.
|
||||
IDS_GROUP_SPECIAL_APPS=Aplicativos com regras do usuário
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Isso permite todo o tráfego de loopback.
|
||||
IDS_RESET=Redefinir
|
||||
IDS_EXCLUDESTEALTH_CHK=examinar porta
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=lista de bloqueio
|
||||
IDS_UPDATE_INIT=Verificando por novas versões...
|
||||
IDS_UPDATE_INSTALL=Atualização disponível, deseja instalar agora?
|
||||
IDS_EXCLUDECUSTOM_CHK=regras do usuário
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=pacotes permitidos
|
||||
IDS_STATUS_TIMER_DONE=Cronômetro completado!
|
||||
IDS_ICONSEXTRALARGE=Muito grande
|
||||
IDS_STATUS_UNUSED_APPS=Aplicativos não usados
|
||||
IDS_STATUS_TIMER_APPS=Aplicativos com cronômetro
|
||||
IDS_SECUREFILTERS_CHK=Ativar proteção para filtros instalados
|
||||
IDS_SECUREFILTERS_HINT=Prevenir aplicativos não autorizados de acessarem os filtros instalados.
|
||||
IDS_USEREFRESHDEVICES_CHK=Atualizar filtros na chegada do dispositivo
|
||||
IDS_RULE_ALLOW6TO4=Permitir redirecionamentos de IPv6 (6to4) para todos
|
||||
IDS_RECOMMENDED=recomendado
|
||||
IDS_ICONSISTABLEVIEW=Exibir como tabela
|
||||
IDS_ACTION_ALLOW_HINT=Sempre permite este programa de acessar a Internet
|
||||
IDS_ACTION_BLOCK_HINT=Sempre bloqueia este programa de acessar a Internet
|
||||
IDS_ACTION_LATER_HINT=Ignorar e perguntar depois
|
||||
IDS_RULE_APPLY_2=Aplicar "%s" para aplicativo
|
||||
IDS_EDITRULES=Editar regras
|
||||
IDS_TAB_APPS=Aplicativos
|
||||
IDS_TAB_SERVICES=Serviços
|
||||
IDS_TAB_PACKAGES=Pacotes
|
||||
IDS_TAB_NETWORK=Rede
|
||||
IDS_STATE=Estado
|
||||
IDS_STATUS_FILTERS_ACTIVE=Filtros ativados
|
||||
IDS_STATUS_FILTERS_INACTIVE=Filtros desativados!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Aplicando filtros
|
||||
IDS_HIGHLIGHT_CONNECTION=Possui conexões de rede
|
||||
IDS_SHOWINLIST=Exibir na lista
|
||||
IDS_BLOCKLIST_SPY=Servidores de espionagem e telemetria da Microsoft
|
||||
IDS_BLOCKLIST_UPDATE=Servidores de atualização da Microsoft
|
||||
IDS_BLOCKLIST_EXTRA=Servidores de aplicativos da Microsoft
|
||||
IDS_PORT=Porta
|
||||
IDS_NOTIFY_TITLE=Alerta de rede
|
||||
IDS_NOTIFY_HEADER=A conexão de rede foi bloqueada
|
||||
IDS_DISABLE=Desativar
|
||||
IDS_TITLE_SECURITY=Segurança
|
||||
IDS_LOGVIEWER_HINT=Aplicativo de visualização de logs
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Exibir notificações na Área de Notificação
|
||||
IDS_NETWORK_CLOSE=Fechar conexão
|
||||
IDS_RULE_BLOCKOUTBOUND=Bloquear conexões de saída para todos
|
||||
IDS_RULE_BLOCKINBOUND=Bloquear conexões de entrada para todos
|
||||
IDS_VIEW_ICON=Ícones
|
||||
IDS_VIEW_DETAILS=Detalhes
|
||||
IDS_VIEW_TILE=Blocos
|
||||
IDS_RULE_HINT=Se você deixar os campos em branco, then rule will be applied for any address and port.
|
||||
IDS_RULE_APPS_HINT=Se não houver um aplicativo selecionado, então a regra será aplicada para todos os aplicativos.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Os filtros são habilitados até reiniciar.
|
||||
IDS_INSTALL_PERMANENT=Regras permanentes. As regras funcionam até você desativá-las manualmente.
|
||||
IDS_INSTALL_TEMPORARY=Regras temporárias. As regras são redefinidas depois da próxima reinicialização.
|
||||
IDS_ENABLEUILOG_CHK=Ativar interface de registro de pacotes
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Ativar modo silencioso quando o aplicativo em tela cheia estiver em primeiro plano
|
||||
IDS_TITLE_TRAY=Ícone na Área de Notificação
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Clique uma vez no ícone da área de notificação para abrir
|
||||
IDS_ENABLE_APP_CHK=Ativar acesso à rede
|
||||
IDS_APP_HINT=Não há razão para definir qualquer regra permissiva para aplicativos com acesso à Internet já habilitado.
|
||||
IDS_HOST=Servidor
|
||||
IDS_CONFIRMALLOW_CHK=Confirmar ao permitir aplicativo
|
||||
IDS_QUESTION_ALLOW=Tem certeza de que deseja ativar o acesso total à Internet para este aplicativo?
|
||||
IDS_SHOWSEARCHBAR_CHK=Mostrar barra de pesquisa
|
||||
IDS_LAYER=Camada
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Permitir o Windows Update
|
||||
IDS_ACTION_TERMINATE_HINT=Finalizar processo
|
||||
IDS_PROFILE_TYPE=Tipo de perfil
|
||||
IDS_USEAPPMONITOR_CHK=Monitorar a mudança de aplicativos
|
||||
IDS_DISABLEREMOVAL=Desativar remoção
|
||||
IDS_USEHASHES_CHK=Verificar hash SHA-256 em aplicativos
|
||||
IDS_COMMENT=Comentários
|
||||
IDS_USEDARKTHEME=Usar tema escuro
|
||||
IDS_KEEPUNUSED_CHK=Manter aplicativos não usados
|
||||
IDS_UPDATE_NO=Nenhuma atualização disponível.
|
||||
IDS_UPDATE_YES=Atualização disponível, baixar e instalar?
|
||||
IDS_UPDATE_SPEED=Velocidade
|
||||
IDS_RULE_FOR_ALL=for all
|
||||
IDS_RULE_FOR_APPS=for apps
|
||||
IDS_PROFILE_TYPE_PLAIN=Plain
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Compressed
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Encrypted
|
||||
IDS_SESSION_ONLY=session only
|
||||
IDS_LIMIT_REACHED=Limit reached.
|
||||
IDS_INTERNAL_RULE=Internal rule
|
||||
IDS_LOADING=Loading...
|
||||
IDS_DIRECTION_REMOTE=Remote
|
||||
IDS_DIRECTION_LOCAL=Local
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,240 @@
|
||||
; Serbian Cyrillic
|
||||
; Prevod: Adeii Schkartowsky (https://github.com/adeii), Radoš Milićev (https://github.com/rammba)
|
||||
|
||||
[Serbian (Cyrillic)]
|
||||
IDS_TITLE_EXCLUDE=Искључи
|
||||
IDS_FILE=Фајл
|
||||
IDS_SETTINGS=Подешавања
|
||||
IDS_EXIT=Излаз
|
||||
IDS_EDIT=Уреди
|
||||
IDS_PURGE_UNUSED=Уклони неупотребљене апликације
|
||||
IDS_PURGE_TIMERS=Уклони све тајмере
|
||||
IDS_FIND=Претражи
|
||||
IDS_REFRESH=Освежи
|
||||
IDS_VIEW=Приказ
|
||||
IDS_ICONS=Иконице
|
||||
IDS_ICONSSMALL=Мало
|
||||
IDS_ICONSLARGE=Велико
|
||||
IDS_ICONSISHIDDEN=Не приказуј иконице
|
||||
IDS_LANGUAGE=Језик
|
||||
IDS_FONT=Фонт
|
||||
IDS_HELP=Помоћ
|
||||
IDS_WEBSITE=Веб-сајт
|
||||
IDS_CHECKUPDATES=Провери ажурирања
|
||||
IDS_DONATE=Захвали се!
|
||||
IDS_ABOUT=О ...
|
||||
IDS_TRAY_SHOW=Прикажи / Сакриј
|
||||
IDS_TRAY_START=Омогући филтере
|
||||
IDS_TRAY_STOP=Онемогући филтере
|
||||
IDS_TRAY_RULES=Правила
|
||||
IDS_TRAY_BLOCKLIST_RULES=Блок листа
|
||||
IDS_TRAY_SYSTEM_RULES=Системска правила
|
||||
IDS_TRAY_USER_RULES=Корисничка правила
|
||||
IDS_TRAY_LOGERR=Логови грешака
|
||||
IDS_ADD_FILE=Додај фајл
|
||||
IDS_ANY=Било шта
|
||||
IDS_DISABLENOTIFICATIONS=Онемогући нотификације
|
||||
IDS_OPENRULESEDITOR=Креирај правило
|
||||
IDS_TIMER=Тајмер
|
||||
IDS_DISABLETIMER=Онемогући тајмер
|
||||
IDS_EXPLORE=Отвори фолдер
|
||||
IDS_COPY=Копирај
|
||||
IDS_SELECT_ALL=Изабери све
|
||||
IDS_CHECK=Омогући изабрано
|
||||
IDS_UNCHECK=Онемогући изабрано
|
||||
IDS_ADD=Додај
|
||||
IDS_EDIT2=Уреди
|
||||
IDS_DELETE=Обриши
|
||||
IDS_EXPORT=Извези
|
||||
IDS_IMPORT=Увези
|
||||
IDS_RULE_ALLOWLOOPBACK=Дозволи повратне конекције за све
|
||||
IDS_HIGHLIGHT_INVALID=Невалидно (фајл не постоји / проблем са филтером)
|
||||
IDS_HIGHLIGHT_NETWORK=Апликација из дељене мреже
|
||||
IDS_HIGHLIGHT_PICO=Pico апликација
|
||||
IDS_HIGHLIGHT_SIGNED=Потписана апликација
|
||||
IDS_HIGHLIGHT_SILENT=Нотификације су онемогућене
|
||||
IDS_HIGHLIGHT_SPECIAL=Корисничка правила
|
||||
IDS_HIGHLIGHT_SYSTEM=Системска апликација
|
||||
IDS_GROUP_TIMER=Апликације за тајмер
|
||||
IDS_EDITOR=Уредник правила
|
||||
IDS_NAME=Назив
|
||||
IDS_RULE=Правило
|
||||
IDS_PORTVERSION=Породица (само за портове)
|
||||
IDS_PROTOCOL=Протокол
|
||||
IDS_DIRECTION=Смер
|
||||
IDS_ACTION=Акција
|
||||
IDS_DATE=Датум
|
||||
IDS_FILEPATH=Путања
|
||||
IDS_SIGNATURE=Потпис
|
||||
IDS_ADDRESS=Адреса
|
||||
IDS_FILTER=Филтер
|
||||
IDS_NOTES=Напомене
|
||||
IDS_ADDED=Додато
|
||||
IDS_TIMELEFT=Преостало време
|
||||
IDS_SIGN_SIGNED=Потписано
|
||||
IDS_SIGN_UNSIGNED=Није потписано
|
||||
IDS_GROUP_ALLOWED=Апликације са приступом интернету
|
||||
IDS_GROUP_BLOCKED=Апликације без приступа интернету
|
||||
IDS_GROUP_ENABLED=Омогућена правила
|
||||
IDS_GROUP_DISABLED=Онемогућена правила
|
||||
IDS_DIRECTION_1=Одлазно
|
||||
IDS_DIRECTION_2=Долазно
|
||||
IDS_DIRECTION_3=Оба
|
||||
IDS_ACTION_ALLOW=Дозволи
|
||||
IDS_ACTION_BLOCK=Блокирај
|
||||
IDS_ENABLE_CHK=Омогући правило
|
||||
IDS_WIKI=Помоћ
|
||||
IDS_SAVE=Сачувај
|
||||
IDS_CLOSE=Затвори
|
||||
IDS_SETTINGS_GENERAL=Опште
|
||||
IDS_TITLE_GENERAL=Општа конфигурација
|
||||
IDS_TITLE_LANGUAGE=Језик
|
||||
IDS_TITLE_CONFIRMATIONS=Потврде
|
||||
IDS_TITLE_INTERFACE=Интерфејс
|
||||
IDS_TITLE_HIGHLIGHTING=Истицање
|
||||
IDS_TITLE_LOGGING=Логови пакета
|
||||
IDS_TITLE_NOTIFICATIONS=Нотификације
|
||||
IDS_TITLE_ADVANCED=Напредно
|
||||
IDS_ALWAYSONTOP_CHK=Увек на врху
|
||||
IDS_LOADONSTARTUP_CHK=Учитавање приликом покретања система
|
||||
IDS_STARTMINIMIZED_CHK=Покрени смањено
|
||||
IDS_SHOWFILENAMESONLY_CHK=Прикажи само имена фајлова
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Прилагоди величину колона
|
||||
IDS_SKIPUACWARNING_CHK=Прескочи "Контролу корисничког налога"
|
||||
IDS_CHECKUPDATES_CHK=Повремено проверавајте ажурирања (препорука)
|
||||
IDS_LANGUAGE_HINT=Изаберите језик:
|
||||
IDS_USESTEALTHMODE_CHK=Спречи скенирање портова
|
||||
IDS_USESTEALTHMODE_HINT=Спречавање скенирања TCP порта тихим пуштањем долазног TCP RST-а и UDP скенирања одговором на одлазни ICMP са "Destination Unreachable".
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Омогући филтере за покретање система
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Спречавање цурења података пре покретања система, чак и пре покретања "Base Filtering Engine" (BFE).
|
||||
IDS_USECERTIFICATES_CHK=Провера дигиталних потписа апликације
|
||||
IDS_USENETWORKRESOLUTION_CHK=Реши мрежне адресе
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Онемогући Windows Firewall
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Омогући Windows Firewall
|
||||
IDS_CONFIRMEXIT_CHK=Потврда затварања апликације
|
||||
IDS_CONFIRMEXITTIMER_CHK=Потврда затварања апликације док су тајмери активни
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Потврда брисања фајла са логовима
|
||||
IDS_COLORS_HINT=Кликните двапут да бисте уредили.
|
||||
IDS_ENABLELOG_CHK=Омогући логовање пакета у фајл
|
||||
IDS_LOGSHOW=Прикажи логове
|
||||
IDS_LOGCLEAR=Обриши логове
|
||||
IDS_LOGSIZELIMIT_HINT=Максимална величина: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Омогући информације о пакетима
|
||||
IDS_NOTIFICATIONSOUND_CHK=Омогући звук нотификација
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Временски размак између сличних нотификација (сек.):
|
||||
IDS_NOTIFY_TOOLTIP=Поставите корисничко правило за дозволу приступа адреси и/или порту за ову апликацију.
|
||||
IDS_QUESTION=Да ли сте сигурни?
|
||||
IDS_QUESTION_DELETE=Уклони елемемент(е)?
|
||||
IDS_QUESTION_START=Ово ће апликацијама забранити приступ мрежи у складу са тренутном конфигурацијом. Настави?
|
||||
IDS_QUESTION_STOP=Ово ће свим блокираним апликацијама вратити приступ мрежи. Настави?
|
||||
IDS_QUESTION_EXIT=Инсталирани филтери ће наставити са радом и кад затворите програм. Настави?
|
||||
IDS_QUESTION_TIMER=Активирани тајмер(и). Тајмери раде само док ради апликација. Изађи?
|
||||
IDS_QUESTION_TIMERS=Обриши све тајмере?
|
||||
IDS_QUESTION_FLAG_CHK=Не питај поново
|
||||
IDS_STATUS_EMPTY=Празно.
|
||||
IDS_STATUS_SYNTAX_ERROR=Правило садржи синтаксну грешку!
|
||||
IDS_ADDRESS_LOCAL=Извор
|
||||
IDS_ADDRESS_REMOTE=Дестинација
|
||||
IDS_UPDATE_ERROR=Грешка при повезивању сервера за ажурирање.
|
||||
IDS_UPDATE_DOWNLOAD=Преузимање ажурирања...
|
||||
IDS_UPDATE_DONE=Преузимање ажурирања је завршено.
|
||||
IDS_GROUP_SPECIAL_APPS=Апликације са корисничким правилима
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Дозвољава сав повратни саобраћај.
|
||||
IDS_RESET=Ресетуј
|
||||
IDS_EXCLUDESTEALTH_CHK=конекције скенера портова
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=блок листа
|
||||
IDS_UPDATE_INIT=Провера нових издања...
|
||||
IDS_UPDATE_INSTALL=Доступно ажурирање, желите ли да га инсталирате?
|
||||
IDS_EXCLUDECUSTOM_CHK=корисничка правила
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=дозвољене конекције
|
||||
IDS_STATUS_TIMER_DONE=Тајмер за апликацију је истекао
|
||||
IDS_ICONSEXTRALARGE=Огромно
|
||||
IDS_STATUS_UNUSED_APPS=Неупотребљене апликације
|
||||
IDS_STATUS_TIMER_APPS=Апликације са тајмером
|
||||
IDS_SECUREFILTERS_CHK=Омогући заштиту инсталираних филтера
|
||||
IDS_SECUREFILTERS_HINT=Спречи приступ инсталираним филтерима за неауторизоване апликације
|
||||
IDS_USEREFRESHDEVICES_CHK=Ажурирај филтере када су уређаји за чување повезани
|
||||
IDS_RULE_ALLOW6TO4=Дозволи IPv6 преусмеравање (6to4) за све
|
||||
IDS_RECOMMENDED=препоручено
|
||||
IDS_ICONSISTABLEVIEW=Прикажи као табелу
|
||||
IDS_ACTION_ALLOW_HINT=Заувек дозволи приступ мрежи
|
||||
IDS_ACTION_BLOCK_HINT=Заувек забрани приступ мрежи (док је Сунца)
|
||||
IDS_ACTION_LATER_HINT=Игнориши и питај ме поново
|
||||
IDS_RULE_APPLY_2=Примени "%s" за ову апликацију
|
||||
IDS_EDITRULES=Уреди правила
|
||||
IDS_TAB_APPS=Апликације
|
||||
IDS_TAB_SERVICES=Услуге
|
||||
IDS_TAB_PACKAGES=UWP апликације
|
||||
IDS_TAB_NETWORK=Конекције
|
||||
IDS_STATE=Статус
|
||||
IDS_STATUS_FILTERS_ACTIVE=Филтери су омогућени.
|
||||
IDS_STATUS_FILTERS_INACTIVE=Филтери су онемогућени!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Примењивање филтера
|
||||
IDS_HIGHLIGHT_CONNECTION=Поседује мрежне конекције
|
||||
IDS_SHOWINLIST=Прикажи у листи
|
||||
IDS_BLOCKLIST_SPY=Microsoft шпијунирање и телеметрија
|
||||
IDS_BLOCKLIST_UPDATE=Microsoft ажурирање
|
||||
IDS_BLOCKLIST_EXTRA=Microsoft апликације
|
||||
IDS_PORT=Порт
|
||||
IDS_NOTIFY_TITLE=Хитно обавештење о мрежи
|
||||
IDS_NOTIFY_HEADER=Мрежна конекција је била блокирана
|
||||
IDS_DISABLE=Онемогући
|
||||
IDS_TITLE_SECURITY=Безбедност
|
||||
IDS_LOGVIEWER_HINT=Апликација за преглед логова
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Прикажи прозор са нотификацијама на траци
|
||||
IDS_NETWORK_CLOSE=Затвори конекцију
|
||||
IDS_RULE_BLOCKOUTBOUND=Блокирај одлазне конекције за све
|
||||
IDS_RULE_BLOCKINBOUND=Блокирај долазне конекције за све
|
||||
IDS_VIEW_ICON=Иконице
|
||||
IDS_VIEW_DETAILS=Детаљи
|
||||
IDS_VIEW_TILE=Поља
|
||||
IDS_RULE_HINT=Ако оставите празна поља, правило ће бити примењено на све адресе и портове.
|
||||
IDS_RULE_APPS_HINT=Ако нема одабраних апликација, правило ће бити примењено на све апликације.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Филтери су омогућени до поновног покретања.
|
||||
IDS_INSTALL_PERMANENT=Стална правила. Правила функционишу док их не искључите.
|
||||
IDS_INSTALL_TEMPORARY=Привремена правила. Правила су ресетована након поновног покретања.
|
||||
IDS_ENABLEUILOG_CHK=Омогући интерфејс за логовање пакета
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Омогући тихи мод док је апликација отворена на целом екрану
|
||||
IDS_TITLE_TRAY=Иконица обавештења
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Један клик на иконицу обавештења за отварање
|
||||
IDS_ENABLE_APP_CHK=Омогући приступ мрежи
|
||||
IDS_APP_HINT=Нема разлога за постављање правила за апликацију са већ дозвољеним приступом интернету.
|
||||
IDS_HOST=Хост
|
||||
IDS_CONFIRMALLOW_CHK=Потврди кад дозвољаваш апликацију
|
||||
IDS_QUESTION_ALLOW=Да ли сте сигурни да желите дозволити потпуни приступ интернету за ову апликацију?
|
||||
IDS_SHOWSEARCHBAR_CHK=Прикажи траку за претрагу
|
||||
IDS_LAYER=Слој
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Дозволи ажурирање Windows-а
|
||||
IDS_ACTION_TERMINATE_HINT=Прекини процес
|
||||
IDS_PROFILE_TYPE=Тип профила
|
||||
IDS_USEAPPMONITOR_CHK=Прати промене апликација
|
||||
IDS_DISABLEREMOVAL=Онемогући уклањање
|
||||
IDS_USEHASHES_CHK=Провери апликације за sha-256 хеш
|
||||
IDS_COMMENT=Коментари
|
||||
IDS_USEDARKTHEME=Користи тамну тему
|
||||
IDS_KEEPUNUSED_CHK=Задржи неупотребљене апликације
|
||||
IDS_UPDATE_NO=Нема доступних ажурирања.
|
||||
IDS_UPDATE_YES=Ажурирање је доступно, преузмите и инсталирајте?
|
||||
IDS_UPDATE_SPEED=Брзина
|
||||
IDS_RULE_FOR_ALL=за све
|
||||
IDS_RULE_FOR_APPS=за апликације
|
||||
IDS_PROFILE_TYPE_PLAIN=Обично
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Компресовано
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Енкриптовано
|
||||
IDS_SESSION_ONLY=само сесија
|
||||
IDS_LIMIT_REACHED=Достигнут је лимит.
|
||||
IDS_INTERNAL_RULE=Интерно правило
|
||||
IDS_LOADING=Учитавање...
|
||||
IDS_DIRECTION_REMOTE=Удаљено
|
||||
IDS_DIRECTION_LOCAL=Локално
|
||||
IDS_WARNING_UNEXPECTED=Буди опрезан, интернет саобраћај се може неочекивано одвијати путем хоста за услуге/драјвере (svchost.exe/System). Настави?
|
||||
IDS_WARNING_ME=Ако онемогућиш главни процес, нећеш моћи да користиш опцију за разрешавање мрежних адреса. Настави?
|
||||
IDS_TOTAL=Укупно
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=долазни multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
@@ -0,0 +1,240 @@
|
||||
; Serbian Latin
|
||||
; Prevod: Adeii Schkartowsky (https://github.com/adeii), Radoš Milićev (https://github.com/rammba)
|
||||
|
||||
[Serbian (Latin)]
|
||||
IDS_TITLE_EXCLUDE=Isključi
|
||||
IDS_FILE=Fajl
|
||||
IDS_SETTINGS=Podešavanja
|
||||
IDS_EXIT=Izlaz
|
||||
IDS_EDIT=Uredi
|
||||
IDS_PURGE_UNUSED=Ukloni neupotrebljene aplikacije
|
||||
IDS_PURGE_TIMERS=Ukloni sve tajmere
|
||||
IDS_FIND=Pretraži
|
||||
IDS_REFRESH=Osveži
|
||||
IDS_VIEW=Prikaz
|
||||
IDS_ICONS=Ikonice
|
||||
IDS_ICONSSMALL=Malo
|
||||
IDS_ICONSLARGE=Veliko
|
||||
IDS_ICONSISHIDDEN=Ne prikazuj ikonice
|
||||
IDS_LANGUAGE=Jezik
|
||||
IDS_FONT=Font
|
||||
IDS_HELP=Pomoć
|
||||
IDS_WEBSITE=Veb-sajt
|
||||
IDS_CHECKUPDATES=Proveri ažuriranja
|
||||
IDS_DONATE=Zahvali se!
|
||||
IDS_ABOUT=O ...
|
||||
IDS_TRAY_SHOW=Prikaži / Sakrij
|
||||
IDS_TRAY_START=Omogući filtere
|
||||
IDS_TRAY_STOP=Onemogući filtere
|
||||
IDS_TRAY_RULES=Pravila
|
||||
IDS_TRAY_BLOCKLIST_RULES=Blok lista
|
||||
IDS_TRAY_SYSTEM_RULES=Sistemska pravila
|
||||
IDS_TRAY_USER_RULES=Korisnička pravila
|
||||
IDS_TRAY_LOGERR=Logovi grešaka
|
||||
IDS_ADD_FILE=Dodaj fajl
|
||||
IDS_ANY=Bilo šta
|
||||
IDS_DISABLENOTIFICATIONS=Onemogući notifikacije
|
||||
IDS_OPENRULESEDITOR=Kreiraj pravilo
|
||||
IDS_TIMER=Tajmer
|
||||
IDS_DISABLETIMER=Onemogući tajmer
|
||||
IDS_EXPLORE=Otvori folder
|
||||
IDS_COPY=Kopiraj
|
||||
IDS_SELECT_ALL=Izaberi sve
|
||||
IDS_CHECK=Omogući izabrano
|
||||
IDS_UNCHECK=Onemogući izabrano
|
||||
IDS_ADD=Dodaj
|
||||
IDS_EDIT2=Uredi
|
||||
IDS_DELETE=Obriši
|
||||
IDS_EXPORT=Izvezi
|
||||
IDS_IMPORT=Uvezi
|
||||
IDS_RULE_ALLOWLOOPBACK=Dozvoli povratne konekcije za sve
|
||||
IDS_HIGHLIGHT_INVALID=Nevalidno (fajl ne postoji / problem sa filterom)
|
||||
IDS_HIGHLIGHT_NETWORK=Aplikacija iz deljene mreže
|
||||
IDS_HIGHLIGHT_PICO=Pico aplikacija
|
||||
IDS_HIGHLIGHT_SIGNED=Potpisana aplikacija
|
||||
IDS_HIGHLIGHT_SILENT=Notifikacije su onemogućene
|
||||
IDS_HIGHLIGHT_SPECIAL=Korisnička pravila
|
||||
IDS_HIGHLIGHT_SYSTEM=Sistemska aplikacija
|
||||
IDS_GROUP_TIMER=Aplikacije za tajmer
|
||||
IDS_EDITOR=Urednik pravila
|
||||
IDS_NAME=Naziv
|
||||
IDS_RULE=Pravilo
|
||||
IDS_PORTVERSION=Porodica (samo za portove)
|
||||
IDS_PROTOCOL=Protokol
|
||||
IDS_DIRECTION=Smer
|
||||
IDS_ACTION=Akcija
|
||||
IDS_DATE=Datum
|
||||
IDS_FILEPATH=Putanja
|
||||
IDS_SIGNATURE=Potpis
|
||||
IDS_ADDRESS=Adresa
|
||||
IDS_FILTER=Filter
|
||||
IDS_NOTES=Napomene
|
||||
IDS_ADDED=Dodato
|
||||
IDS_TIMELEFT=Preostalo vreme
|
||||
IDS_SIGN_SIGNED=Potpisano
|
||||
IDS_SIGN_UNSIGNED=Nije potpisano
|
||||
IDS_GROUP_ALLOWED=Aplikacije sa pristupom internetu
|
||||
IDS_GROUP_BLOCKED=Aplikacije bez pristupa internetu
|
||||
IDS_GROUP_ENABLED=Omogućena pravila
|
||||
IDS_GROUP_DISABLED=Onemogućena pravila
|
||||
IDS_DIRECTION_1=Odlazno
|
||||
IDS_DIRECTION_2=Dolazno
|
||||
IDS_DIRECTION_3=Oba
|
||||
IDS_ACTION_ALLOW=Dozvoli
|
||||
IDS_ACTION_BLOCK=Blokiraj
|
||||
IDS_ENABLE_CHK=Omogući pravilo
|
||||
IDS_WIKI=Pomoć
|
||||
IDS_SAVE=Sačuvaj
|
||||
IDS_CLOSE=Zatvori
|
||||
IDS_SETTINGS_GENERAL=Opšte
|
||||
IDS_TITLE_GENERAL=Opšta konfiguracija
|
||||
IDS_TITLE_LANGUAGE=Jezik
|
||||
IDS_TITLE_CONFIRMATIONS=Potvrde
|
||||
IDS_TITLE_INTERFACE=Interfejs
|
||||
IDS_TITLE_HIGHLIGHTING=Isticanje
|
||||
IDS_TITLE_LOGGING=Logovi paketa
|
||||
IDS_TITLE_NOTIFICATIONS=Notifikacije
|
||||
IDS_TITLE_ADVANCED=Napredno
|
||||
IDS_ALWAYSONTOP_CHK=Uvek na vrhu
|
||||
IDS_LOADONSTARTUP_CHK=Učitavanje prilikom pokretanja sistema
|
||||
IDS_STARTMINIMIZED_CHK=Pokreni smanjeno
|
||||
IDS_SHOWFILENAMESONLY_CHK=Prikaži samo imena fajlova
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Prilagodi veličinu kolona
|
||||
IDS_SKIPUACWARNING_CHK=Preskoči "Kontrolu korisničkog naloga"
|
||||
IDS_CHECKUPDATES_CHK=Povremeno proveravajte ažuriranja (preporuka)
|
||||
IDS_LANGUAGE_HINT=Izaberite jezik:
|
||||
IDS_USESTEALTHMODE_CHK=Spreči skeniranje portova
|
||||
IDS_USESTEALTHMODE_HINT=Sprečavanje skeniranja TCP porta tihim puštanjem dolaznog TCP RST-a i UDP skeniranja odgovorom na odlazni ICMP sa "Destination Unreachable".
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Omogući filtere za pokretanje sistema
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Sprečavanje curenja podataka pre pokretanja sistema, čak i pre pokretanja "Base Filtering Engine" (BFE).
|
||||
IDS_USECERTIFICATES_CHK=Provera digitalnih potpisa aplikacije
|
||||
IDS_USENETWORKRESOLUTION_CHK=Reši mrežne adrese
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Onemogući Windows Firewall
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Omogući Windows Firewall
|
||||
IDS_CONFIRMEXIT_CHK=Potvrda zatvaranja aplikacije
|
||||
IDS_CONFIRMEXITTIMER_CHK=Potvrda zatvaranja aplikacije dok su tajmeri aktivni
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Potvrda brisanja fajla sa logovima
|
||||
IDS_COLORS_HINT=Kliknite dvaput da biste uredili.
|
||||
IDS_ENABLELOG_CHK=Omogući logovanje paketa u fajl
|
||||
IDS_LOGSHOW=Prikaži logove
|
||||
IDS_LOGCLEAR=Obriši logove
|
||||
IDS_LOGSIZELIMIT_HINT=Maksimalna veličina: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Omogući informacije o paketima
|
||||
IDS_NOTIFICATIONSOUND_CHK=Omogući zvuk notifikacija
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Vremenski razmak između sličnih notifikacija (sek.):
|
||||
IDS_NOTIFY_TOOLTIP=Postavite korisničko pravilo za dozvolu pristupa adresi i/ili portu za ovu aplikaciju.
|
||||
IDS_QUESTION=Da li ste sigurni?
|
||||
IDS_QUESTION_DELETE=Ukloni elemement(e)?
|
||||
IDS_QUESTION_START=Ovo će aplikacijama zabraniti pristup mreži u skladu sa trenutnom konfiguracijom. Nastavi?
|
||||
IDS_QUESTION_STOP=Ovo će svim blokiranim aplikacijama vratiti pristup mreži. Nastavi?
|
||||
IDS_QUESTION_EXIT=Instalirani filteri će nastaviti sa radom i kad zatvorite program. Nastavi?
|
||||
IDS_QUESTION_TIMER=Aktivirani tajmer(i). Tajmeri rade samo dok radi aplikacija. Izađi?
|
||||
IDS_QUESTION_TIMERS=Obriši sve tajmere?
|
||||
IDS_QUESTION_FLAG_CHK=Ne pitaj ponovo
|
||||
IDS_STATUS_EMPTY=Prazno.
|
||||
IDS_STATUS_SYNTAX_ERROR=Pravilo sadrži sintaksnu grešku!
|
||||
IDS_ADDRESS_LOCAL=Izvor
|
||||
IDS_ADDRESS_REMOTE=Destinacija
|
||||
IDS_UPDATE_ERROR=Greška pri povezivanju servera za ažuriranje.
|
||||
IDS_UPDATE_DOWNLOAD=Preuzimanje ažuriranja...
|
||||
IDS_UPDATE_DONE=Preuzimanje ažuriranja je završeno.
|
||||
IDS_GROUP_SPECIAL_APPS=Aplikacije sa korisničkim pravilima
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Dozvoljava sav povratni saobraćaj.
|
||||
IDS_RESET=Resetuj
|
||||
IDS_EXCLUDESTEALTH_CHK=konekcije skenera portova
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=blok lista
|
||||
IDS_UPDATE_INIT=Provera novih izdanja...
|
||||
IDS_UPDATE_INSTALL=Dostupno ažuriranje, želite li da ga instalirate?
|
||||
IDS_EXCLUDECUSTOM_CHK=korisnička pravila
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=dozvoljene konekcije
|
||||
IDS_STATUS_TIMER_DONE=Tajmer za aplikaciju je istekao
|
||||
IDS_ICONSEXTRALARGE=Ogromno
|
||||
IDS_STATUS_UNUSED_APPS=Neupotrebljene aplikacije
|
||||
IDS_STATUS_TIMER_APPS=Aplikacije sa tajmerom
|
||||
IDS_SECUREFILTERS_CHK=Omogući zaštitu instaliranih filtera
|
||||
IDS_SECUREFILTERS_HINT=Spreči pristup instaliranim filterima za neautorizovane aplikacije
|
||||
IDS_USEREFRESHDEVICES_CHK=Ažuriraj filtere kada su uređaji za čuvanje povezani
|
||||
IDS_RULE_ALLOW6TO4=Dozvoli IPv6 preusmeravanje (6to4) za sve
|
||||
IDS_RECOMMENDED=preporučeno
|
||||
IDS_ICONSISTABLEVIEW=Prikaži kao tabelu
|
||||
IDS_ACTION_ALLOW_HINT=Zauvek dozvoli pristup mreži
|
||||
IDS_ACTION_BLOCK_HINT=Zauvek zabrani pristup mreži (dok je Sunca)
|
||||
IDS_ACTION_LATER_HINT=Ignoriši i pitaj me ponovo
|
||||
IDS_RULE_APPLY_2=Primeni "%s" za ovu aplikaciju
|
||||
IDS_EDITRULES=Uredi pravila
|
||||
IDS_TAB_APPS=Aplikacije
|
||||
IDS_TAB_SERVICES=Usluge
|
||||
IDS_TAB_PACKAGES=UWP aplikacije
|
||||
IDS_TAB_NETWORK=Konekcije
|
||||
IDS_STATE=Status
|
||||
IDS_STATUS_FILTERS_ACTIVE=Filteri su omogućeni.
|
||||
IDS_STATUS_FILTERS_INACTIVE=Filteri su onemogućeni!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Primenjivanje filtera
|
||||
IDS_HIGHLIGHT_CONNECTION=Poseduje mrežne konekcije
|
||||
IDS_SHOWINLIST=Prikaži u listi
|
||||
IDS_BLOCKLIST_SPY=Microsoft špijuniranje i telemetrija
|
||||
IDS_BLOCKLIST_UPDATE=Microsoft ažuriranje
|
||||
IDS_BLOCKLIST_EXTRA=Microsoft aplikacije
|
||||
IDS_PORT=Port
|
||||
IDS_NOTIFY_TITLE=Hitno obaveštenje o mreži
|
||||
IDS_NOTIFY_HEADER=Mrežna konekcija je bila blokirana
|
||||
IDS_DISABLE=Onemogući
|
||||
IDS_TITLE_SECURITY=Bezbednost
|
||||
IDS_LOGVIEWER_HINT=Aplikacija za pregled logova
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Prikaži prozor sa notifikacijama na traci
|
||||
IDS_NETWORK_CLOSE=Zatvori konekciju
|
||||
IDS_RULE_BLOCKOUTBOUND=Blokiraj odlazne konekcije za sve
|
||||
IDS_RULE_BLOCKINBOUND=Blokiraj dolazne konekcije za sve
|
||||
IDS_VIEW_ICON=Ikonice
|
||||
IDS_VIEW_DETAILS=Detalji
|
||||
IDS_VIEW_TILE=Polja
|
||||
IDS_RULE_HINT=Ako ostavite prazna polja, pravilo će biti primenjeno na sve adrese i portove.
|
||||
IDS_RULE_APPS_HINT=Ako nema odabranih aplikacija, pravilo će biti primenjeno na sve aplikacije.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Filteri su omogućeni do ponovnog pokretanja.
|
||||
IDS_INSTALL_PERMANENT=Stalna pravila. Pravila funkcionišu dok ih ne isključite.
|
||||
IDS_INSTALL_TEMPORARY=Privremena pravila. Pravila su resetovana nakon ponovnog pokretanja.
|
||||
IDS_ENABLEUILOG_CHK=Omogući interfejs za logovanje paketa
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Omogući tihi mod dok je aplikacija otvorena na celom ekranu
|
||||
IDS_TITLE_TRAY=Ikonica obaveštenja
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Jedan klik na ikonicu obaveštenja za otvaranje
|
||||
IDS_ENABLE_APP_CHK=Omogući pristup mreži
|
||||
IDS_APP_HINT=Nema razloga za postavljanje pravila za aplikaciju sa već dozvoljenim pristupom internetu.
|
||||
IDS_HOST=Host
|
||||
IDS_CONFIRMALLOW_CHK=Potvrdi kad dozvoljavaš aplikaciju
|
||||
IDS_QUESTION_ALLOW=Da li ste sigurni da želite dozvoliti potpuni pristup internetu za ovu aplikaciju?
|
||||
IDS_SHOWSEARCHBAR_CHK=Prikaži traku za pretragu
|
||||
IDS_LAYER=Sloj
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Dozvoli ažuriranje Windows-a
|
||||
IDS_ACTION_TERMINATE_HINT=Prekini proces
|
||||
IDS_PROFILE_TYPE=Tip profila
|
||||
IDS_USEAPPMONITOR_CHK=Prati promene aplikacija
|
||||
IDS_DISABLEREMOVAL=Onemogući uklanjanje
|
||||
IDS_USEHASHES_CHK=Proveri aplikacije za sha-256 heš
|
||||
IDS_COMMENT=Komentari
|
||||
IDS_USEDARKTHEME=Koristi tamnu temu
|
||||
IDS_KEEPUNUSED_CHK=Zadrži neupotrebljene aplikacije
|
||||
IDS_UPDATE_NO=Nema dostupnih ažuriranja.
|
||||
IDS_UPDATE_YES=Ažuriranje je dostupno, preuzmite i instalirajte?
|
||||
IDS_UPDATE_SPEED=Brzina
|
||||
IDS_RULE_FOR_ALL=za sve
|
||||
IDS_RULE_FOR_APPS=za aplikacije
|
||||
IDS_PROFILE_TYPE_PLAIN=Obično
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Kompresovano
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Enkriptovano
|
||||
IDS_SESSION_ONLY=samo sesija
|
||||
IDS_LIMIT_REACHED=Dostignut je limit.
|
||||
IDS_INTERNAL_RULE=Interno pravilo
|
||||
IDS_LOADING=Učitavanje...
|
||||
IDS_DIRECTION_REMOTE=Udaljeno
|
||||
IDS_DIRECTION_LOCAL=Lokalno
|
||||
IDS_WARNING_UNEXPECTED=Budi oprezan, internet saobraćaj se može neočekivano odvijati putem hosta za usluge/drajvere (svchost.exe/System). Nastavi?
|
||||
IDS_WARNING_ME=Ako onemogućiš glavni proces, nećeš moći da koristiš opciju za razrešavanje mrežnih adresa. Nastavi?
|
||||
IDS_TOTAL=Ukupno
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=dolazni multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
Binary file not shown.
@@ -0,0 +1,240 @@
|
||||
; Slovenčina
|
||||
; Slovenská lokalizácia od vaso@watel.sk
|
||||
|
||||
[Slovak]
|
||||
IDS_TITLE_EXCLUDE=Vylúčiť
|
||||
IDS_FILE=Súbor
|
||||
IDS_SETTINGS=Nastavenia
|
||||
IDS_EXIT=Koniec
|
||||
IDS_EDIT=Upraviť
|
||||
IDS_PURGE_UNUSED=Vymazať nepoužívané položky
|
||||
IDS_PURGE_TIMERS=Vymazať časovače
|
||||
IDS_FIND=Hľadať
|
||||
IDS_REFRESH=Obnoviť
|
||||
IDS_VIEW=Zobraziť
|
||||
IDS_ICONS=Ikony
|
||||
IDS_ICONSSMALL=Malý
|
||||
IDS_ICONSLARGE=Veľký
|
||||
IDS_ICONSISHIDDEN=Nenačítava sa
|
||||
IDS_LANGUAGE=Jazyk
|
||||
IDS_FONT=Písmo
|
||||
IDS_HELP=Help
|
||||
IDS_WEBSITE=Website
|
||||
IDS_CHECKUPDATES=Nájsť aktualizácie
|
||||
IDS_DONATE=Darovať
|
||||
IDS_ABOUT=O Aplikácii
|
||||
IDS_TRAY_SHOW=Zobraziť/Skryť
|
||||
IDS_TRAY_START=Povoliť
|
||||
IDS_TRAY_STOP=Zakázať
|
||||
IDS_TRAY_RULES=Pravidlá
|
||||
IDS_TRAY_BLOCKLIST_RULES=Zoznam blokovaných
|
||||
IDS_TRAY_SYSTEM_RULES=Systémové pravidlá
|
||||
IDS_TRAY_USER_RULES=Vlastné pravidlá
|
||||
IDS_TRAY_LOGERR=Záznam chýb
|
||||
IDS_ADD_FILE=Pridať aplikáciu
|
||||
IDS_ANY=Všetky
|
||||
IDS_DISABLENOTIFICATIONS=Zakázať upozornenia
|
||||
IDS_OPENRULESEDITOR=Nový riadok
|
||||
IDS_TIMER=Timer
|
||||
IDS_DISABLETIMER=Zakázať časovač
|
||||
IDS_EXPLORE=Otvoriť umiestnenie súboru
|
||||
IDS_COPY=Kopírovať
|
||||
IDS_SELECT_ALL=Vybrať všetko
|
||||
IDS_CHECK=Povoliť výber
|
||||
IDS_UNCHECK=Zakázať výber
|
||||
IDS_ADD=Pridať
|
||||
IDS_EDIT2=Upraviť
|
||||
IDS_DELETE=Odstrániť
|
||||
IDS_EXPORT=Export
|
||||
IDS_IMPORT=Import
|
||||
IDS_RULE_ALLOWLOOPBACK=Povoliť spätné spojenia pre všetky aplikácie
|
||||
IDS_HIGHLIGHT_INVALID=Súbor sa nenašiel
|
||||
IDS_HIGHLIGHT_NETWORK=Umiestnenie v sieti
|
||||
IDS_HIGHLIGHT_PICO=Aplikácia Pico
|
||||
IDS_HIGHLIGHT_SIGNED=Podpísaná žiadosť
|
||||
IDS_HIGHLIGHT_SILENT=Upozornenia sú vypnuté
|
||||
IDS_HIGHLIGHT_SPECIAL=Špecifické pravidlá
|
||||
IDS_HIGHLIGHT_SYSTEM=Systémový proces
|
||||
IDS_GROUP_TIMER=Aplikácia s časovačom
|
||||
IDS_EDITOR=Upraviť pravidlá
|
||||
IDS_NAME=Názov
|
||||
IDS_RULE=Pravidlo
|
||||
IDS_PORTVERSION=Subnet (iba porty)
|
||||
IDS_PROTOCOL=Protocol
|
||||
IDS_DIRECTION=Smer
|
||||
IDS_ACTION=Akcia
|
||||
IDS_DATE=Dátum
|
||||
IDS_FILEPATH=Cesta
|
||||
IDS_SIGNATURE=Podpis
|
||||
IDS_ADDRESS=Adresa
|
||||
IDS_FILTER=Filter
|
||||
IDS_NOTES=Popis
|
||||
IDS_ADDED=Pridané
|
||||
IDS_TIMELEFT=Čas zostáva
|
||||
IDS_SIGN_SIGNED=Podpísané
|
||||
IDS_SIGN_UNSIGNED=Nepodpísané
|
||||
IDS_GROUP_ALLOWED=Povolené "aplikácie s prístupom na internet"
|
||||
IDS_GROUP_BLOCKED=Blokované "aplikácie bez prístupu na internet"
|
||||
IDS_GROUP_ENABLED=Povolené pravidlá
|
||||
IDS_GROUP_DISABLED=Zakázané pravidlá
|
||||
IDS_DIRECTION_1=Odchádzajúce
|
||||
IDS_DIRECTION_2=Prichádzajúce
|
||||
IDS_DIRECTION_3=Oboje
|
||||
IDS_ACTION_ALLOW=Povoliť
|
||||
IDS_ACTION_BLOCK=Blokovať
|
||||
IDS_ENABLE_CHK=Povolené
|
||||
IDS_WIKI=Help
|
||||
IDS_SAVE=Uložiť
|
||||
IDS_CLOSE=Zavrieť
|
||||
IDS_SETTINGS_GENERAL=Všeobecné
|
||||
IDS_TITLE_GENERAL=Všeobecné
|
||||
IDS_TITLE_LANGUAGE=Jazyk
|
||||
IDS_TITLE_CONFIRMATIONS=Potvrdiť
|
||||
IDS_TITLE_INTERFACE=Interface
|
||||
IDS_TITLE_HIGHLIGHTING=Označenie
|
||||
IDS_TITLE_LOGGING=Denník
|
||||
IDS_TITLE_NOTIFICATIONS=Upozornenia
|
||||
IDS_TITLE_ADVANCED=Pokročilé
|
||||
IDS_ALWAYSONTOP_CHK=Vždy navrchu
|
||||
IDS_LOADONSTARTUP_CHK=Automatické spustenie pri štarte Windows
|
||||
IDS_STARTMINIMIZED_CHK=Spustiť minimalizované
|
||||
IDS_SHOWFILENAMESONLY_CHK=Zobraziť iba názvy súborov
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Automatická šírka stĺpca
|
||||
IDS_SKIPUACWARNING_CHK=Preskočiť upozornenie „Kontrola používateľských účtov“.
|
||||
IDS_CHECKUPDATES_CHK=Pravidelne kontrolovať aktualizácie (odporúča sa)
|
||||
IDS_LANGUAGE_HINT=Vyberte jazyk:
|
||||
IDS_USESTEALTHMODE_CHK=Aktivovať skrytý režim
|
||||
IDS_USESTEALTHMODE_HINT=Zabrániť skenovaniu portov UDP blokovaním prichádzajúceho TCP RST a odpovedaním na odchádzajúce ICMP s "Cieľ nedostupný".
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Aktivovať filtre pri spustení
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Zabránenie úniku dát pri spustení ešte pred spustením služby "Base Filtering Engine" (BFE).
|
||||
IDS_USECERTIFICATES_CHK=Check apps for digital signatures
|
||||
IDS_USENETWORKRESOLUTION_CHK=Previesť sieťové adresy na názvy domén
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Zakázať bránu Windows Firewall
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Povoliť bránu Windows Firewall
|
||||
IDS_CONFIRMEXIT_CHK=Požiadať o potvrdenie pri ukončení
|
||||
IDS_CONFIRMEXITTIMER_CHK=Požiadať o potvrdenie pri ukončení, keď sú časovače aktívne
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Požiadať o potvrdenie pri vymazávaní denníka
|
||||
IDS_COLORS_HINT=Dvakrát kliknite na položku, ktorú chcete upraviť.
|
||||
IDS_ENABLELOG_CHK=Uložiť protokol blokovaných pripojení do súboru
|
||||
IDS_LOGSHOW=Otvoriť denník
|
||||
IDS_LOGCLEAR=Vymazať denník
|
||||
IDS_LOGSIZELIMIT_HINT=Maximálna veľkosť denníka (kB):
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Zobraziť upozornenia na blokované pripojenia
|
||||
IDS_NOTIFICATIONSOUND_CHK=Zvuk pri upozorneniach
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Časový limit medzi rovnakými upozorneniami (sekundy):
|
||||
IDS_NOTIFY_TOOLTIP=Vytvorte pravidlo pre túto aplikáciu na povolenie/blokovanie prístupu k adrese a/alebo portu.
|
||||
IDS_QUESTION=Ste si istý?
|
||||
IDS_QUESTION_DELETE=Odstrániť položku(y)?
|
||||
IDS_QUESTION_START=Prístup do siete bude zablokovaný podľa zvolených pravidiel! Prajete si pokračovať?
|
||||
IDS_QUESTION_STOP=Prístup k sieti bude obnovený pre všetky predtým zablokované aplikácie. Prajete si pokračovať?
|
||||
IDS_QUESTION_EXIT=Nainštalované filtre zostanú aktívne aj po vypnutí. Prajete si pokračovať?
|
||||
IDS_QUESTION_TIMER=Jeden alebo viac časovačov bolo aktivovaných. Časovače fungujú iba vtedy, keď je aplikácia spustená. Napriek tomu zavrieť?
|
||||
IDS_QUESTION_TIMERS=Vymazať všetky časovače?
|
||||
IDS_QUESTION_FLAG_CHK=Už sa nepýtaj
|
||||
IDS_STATUS_EMPTY=Empty.
|
||||
IDS_STATUS_SYNTAX_ERROR=Syntaktická chyba v riadku!
|
||||
IDS_ADDRESS_LOCAL=Miestne
|
||||
IDS_ADDRESS_REMOTE=Vonkajšie
|
||||
IDS_UPDATE_ERROR=Update server connection error.
|
||||
IDS_UPDATE_DOWNLOAD=Downloading update...
|
||||
IDS_UPDATE_DONE=Downloading update finished.
|
||||
IDS_GROUP_SPECIAL_APPS=So špecifickými pravidlami
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Táto vrstva filtra umožňuje povoliť všetku spätnú prevádzku.
|
||||
IDS_RESET=Resetovať
|
||||
IDS_EXCLUDESTEALTH_CHK=pripojenia skenera portov
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=zoznam blokovaných
|
||||
IDS_UPDATE_INIT=Checking for new releases...
|
||||
IDS_UPDATE_INSTALL=Update available. Do you want to install it now?
|
||||
IDS_EXCLUDECUSTOM_CHK=vlastné pravidlá
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=povolené pripojenia
|
||||
IDS_STATUS_TIMER_DONE=Časovač vypršal
|
||||
IDS_ICONSEXTRALARGE=Extra veľký
|
||||
IDS_STATUS_UNUSED_APPS=Nepoužité
|
||||
IDS_STATUS_TIMER_APPS=S časovačom
|
||||
IDS_SECUREFILTERS_CHK=Enable protection of installed filters
|
||||
IDS_SECUREFILTERS_HINT=Prevent unauthorized applications from accessing the installed filters.
|
||||
IDS_USEREFRESHDEVICES_CHK=Obnovte filtre po pripojení úložných zariadení (USB)
|
||||
IDS_RULE_ALLOW6TO4=Plne povoliť presmerovania IPv6 (6to4)
|
||||
IDS_RECOMMENDED=odporúčané
|
||||
IDS_ICONSISTABLEVIEW=Zobraziť ako tabuľku
|
||||
IDS_ACTION_ALLOW_HINT=Vždy vždy udeliť prístup
|
||||
IDS_ACTION_BLOCK_HINT=Vždy blokovať prístup
|
||||
IDS_ACTION_LATER_HINT=Nerobte žiadnu akciu a opýtajte sa znova neskôr
|
||||
IDS_RULE_APPLY_2=Vykonať pravidlo "%s" v aplikácii
|
||||
IDS_EDITRULES=Upraviť pravidlá
|
||||
IDS_TAB_APPS=Aplikácie
|
||||
IDS_TAB_SERVICES=Services
|
||||
IDS_TAB_PACKAGES=UWP aplikácie
|
||||
IDS_TAB_NETWORK=Pripojenia
|
||||
IDS_STATE=Stav
|
||||
IDS_STATUS_FILTERS_ACTIVE=Filtre sú aktívne
|
||||
IDS_STATUS_FILTERS_INACTIVE=Filtre nie sú aktívne!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Použiť filtre
|
||||
IDS_HIGHLIGHT_CONNECTION=So sieťovými pripojeniami
|
||||
IDS_SHOWINLIST=Zobraziť v zozname
|
||||
IDS_BLOCKLIST_SPY=Servery Microsoft Telemetry
|
||||
IDS_BLOCKLIST_UPDATE=Servery Microsoft Update Server
|
||||
IDS_BLOCKLIST_EXTRA=Microsoft Online služby
|
||||
IDS_PORT=Port
|
||||
IDS_NOTIFY_TITLE=Upozornenie
|
||||
IDS_NOTIFY_HEADER=Pripojenie je zablokované
|
||||
IDS_DISABLE=Zakázať
|
||||
IDS_TITLE_SECURITY=Bezpečnosť
|
||||
IDS_LOGVIEWER_HINT=Otvoriť prihlásenie
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Zobraziť upozornenia v systémovej lište
|
||||
IDS_NETWORK_CLOSE=Odpojenie
|
||||
IDS_RULE_BLOCKOUTBOUND=Blokovať všetky odchádzajúce spojenia
|
||||
IDS_RULE_BLOCKINBOUND=Blokovať všetky prichádzajúce spojenia
|
||||
IDS_VIEW_ICON=Ikony
|
||||
IDS_VIEW_DETAILS=Details
|
||||
IDS_VIEW_TILE=Dlaždice
|
||||
IDS_RULE_HINT=Ponechajte toto pole prázdne, ak chcete aby sa pravidlo vzťahovalo na všetky adresy a všetky porty.
|
||||
IDS_RULE_APPS_HINT=Nevyberte nič, ak chcete aby bolo pravidlo platné
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Filtre sú povolené, kým sa nereštartuje Windows.
|
||||
IDS_INSTALL_PERMANENT=Trvalé pravidlá. Tieto pravidlá zostávajú aktívne, kým nie sú deaktivované.
|
||||
IDS_INSTALL_TEMPORARY=Dočasné pravidlá. Tieto pravidlá sú aktívne až do reštartovania systému Windows.
|
||||
IDS_ENABLEUILOG_CHK=Povoliť denník
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Nezobrazovať upozornenia o aplikáciách v režime celej obrazovky
|
||||
IDS_TITLE_TRAY=Ikona na paneli úloh
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Otvorte okno jediným kliknutím
|
||||
IDS_ENABLE_APP_CHK=Povoliť prístup k sieti
|
||||
IDS_APP_HINT=Špecifické pravidlá nie sú potrebné pre aplikáciu, ktorá už má úplný sieťový prístup.
|
||||
IDS_HOST=Host
|
||||
IDS_CONFIRMALLOW_CHK=Požiadať o potvrdenie pri povolení sieťového prístupu pre aplikácie
|
||||
IDS_QUESTION_ALLOW=Dať tejto aplikácii úplný prístup k sieti?
|
||||
IDS_SHOWSEARCHBAR_CHK=Zobraziť panel vyhľadávania
|
||||
IDS_LAYER=Layer
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Povoliť službu Windows Update
|
||||
IDS_ACTION_TERMINATE_HINT=Terminate process
|
||||
IDS_PROFILE_TYPE=Profile type
|
||||
IDS_USEAPPMONITOR_CHK=Monitor apps changing
|
||||
IDS_DISABLEREMOVAL=Disable removal
|
||||
IDS_USEHASHES_CHK=Check apps for sha-256 hash
|
||||
IDS_COMMENT=Comments
|
||||
IDS_USEDARKTHEME=Use dark theme
|
||||
IDS_KEEPUNUSED_CHK=Keep unused apps
|
||||
IDS_UPDATE_NO=No updates available.
|
||||
IDS_UPDATE_YES=Update available. Download and install now?
|
||||
IDS_UPDATE_SPEED=Speed
|
||||
IDS_RULE_FOR_ALL=for all
|
||||
IDS_RULE_FOR_APPS=for apps
|
||||
IDS_PROFILE_TYPE_PLAIN=Plain
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Compressed
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Encrypted
|
||||
IDS_SESSION_ONLY=session only
|
||||
IDS_LIMIT_REACHED=Limit reached.
|
||||
IDS_INTERNAL_RULE=Internal rule
|
||||
IDS_LOADING=Loading...
|
||||
IDS_DIRECTION_REMOTE=Remote
|
||||
IDS_DIRECTION_LOCAL=Local
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
@@ -0,0 +1,240 @@
|
||||
; <Slovenian>
|
||||
; Andrew Poženel (https://github.com/anderlli0053)
|
||||
|
||||
[Slovenian]
|
||||
IDS_TITLE_EXCLUDE=Izpusti
|
||||
IDS_FILE=Datoteka
|
||||
IDS_SETTINGS=Nastavitve
|
||||
IDS_EXIT=Izhod
|
||||
IDS_EDIT=Uredi
|
||||
IDS_PURGE_UNUSED=Počisti neuporabljene aplikacije
|
||||
IDS_PURGE_TIMERS=Počisti časovnike
|
||||
IDS_FIND=Išči
|
||||
IDS_REFRESH=Osveži
|
||||
IDS_VIEW=Pogled
|
||||
IDS_ICONS=Ikone
|
||||
IDS_ICONSSMALL=Majhne
|
||||
IDS_ICONSLARGE=Velike
|
||||
IDS_ICONSISHIDDEN=Ne nalagaj ikon
|
||||
IDS_LANGUAGE=Jezik
|
||||
IDS_FONT=Pisava
|
||||
IDS_HELP=Pomoč
|
||||
IDS_WEBSITE=Spletna stran
|
||||
IDS_CHECKUPDATES=Preglej posodobitve
|
||||
IDS_DONATE=Podpri!
|
||||
IDS_ABOUT=O programu
|
||||
IDS_TRAY_SHOW=Pokaži/Skrij
|
||||
IDS_TRAY_START=Omogoči filtre
|
||||
IDS_TRAY_STOP=Onemogoči filtre
|
||||
IDS_TRAY_RULES=Pravila
|
||||
IDS_TRAY_BLOCKLIST_RULES=Seznam blokiranih
|
||||
IDS_TRAY_SYSTEM_RULES=Sistemska pravila
|
||||
IDS_TRAY_USER_RULES=Uporabniška pravila
|
||||
IDS_TRAY_LOGERR=Dnevnik napak
|
||||
IDS_ADD_FILE=Dodaj aplikacijo
|
||||
IDS_ANY=Katerikoli
|
||||
IDS_DISABLENOTIFICATIONS=Onemogoči obvestila
|
||||
IDS_OPENRULESEDITOR=Ustvari pravilo
|
||||
IDS_TIMER=Časovnik
|
||||
IDS_DISABLETIMER=Onemogoči časovnik
|
||||
IDS_EXPLORE=Odpri mapo
|
||||
IDS_COPY=Kopiraj
|
||||
IDS_SELECT_ALL=Izberi vse
|
||||
IDS_CHECK=Omogoči izbrano
|
||||
IDS_UNCHECK=Onemogoči izbrano
|
||||
IDS_ADD=Dodaj
|
||||
IDS_EDIT2=Uredi
|
||||
IDS_DELETE=Izbriši
|
||||
IDS_EXPORT=Izvoz
|
||||
IDS_IMPORT=Uvoz
|
||||
IDS_RULE_ALLOWLOOPBACK=Dovoli povratne povezave za vse
|
||||
IDS_HIGHLIGHT_INVALID=Neveljavno (datoteka ni najdena ali težava s filtrom)
|
||||
IDS_HIGHLIGHT_NETWORK=Aplikacija v omrežju
|
||||
IDS_HIGHLIGHT_PICO=Pico aplikacija
|
||||
IDS_HIGHLIGHT_SIGNED=Podpisana aplikacija
|
||||
IDS_HIGHLIGHT_SILENT=Onemogočena obvestila
|
||||
IDS_HIGHLIGHT_SPECIAL=Uporabniška pravila
|
||||
IDS_HIGHLIGHT_SYSTEM=Sistemska aplikacija
|
||||
IDS_GROUP_TIMER=Aplikacije s časovnikom
|
||||
IDS_EDITOR=Urejevalnik pravil
|
||||
IDS_NAME=Ime
|
||||
IDS_RULE=Pravilo
|
||||
IDS_PORTVERSION=Družina (samo vrata)
|
||||
IDS_PROTOCOL=Protokol
|
||||
IDS_DIRECTION=Smer
|
||||
IDS_ACTION=Dejanje
|
||||
IDS_DATE=Datum
|
||||
IDS_FILEPATH=Pot
|
||||
IDS_SIGNATURE=Podpis
|
||||
IDS_ADDRESS=Naslov
|
||||
IDS_FILTER=Filter
|
||||
IDS_NOTES=Opombe
|
||||
IDS_ADDED=Dodano
|
||||
IDS_TIMELEFT=Preostali čas
|
||||
IDS_SIGN_SIGNED=Podpisano
|
||||
IDS_SIGN_UNSIGNED=Nepodpisano
|
||||
IDS_GROUP_ALLOWED=Aplikacije z internetnim dostopom
|
||||
IDS_GROUP_BLOCKED=Aplikacije brez internetnega dostopa
|
||||
IDS_GROUP_ENABLED=Omogočena pravila
|
||||
IDS_GROUP_DISABLED=Onemogočena pravila
|
||||
IDS_DIRECTION_1=Odhodno
|
||||
IDS_DIRECTION_2=Vhodno
|
||||
IDS_DIRECTION_3=Obojestransko
|
||||
IDS_ACTION_ALLOW=Dovoli
|
||||
IDS_ACTION_BLOCK=Blokiraj
|
||||
IDS_ENABLE_CHK=Omogoči pravilo
|
||||
IDS_WIKI=Pomoč
|
||||
IDS_SAVE=Shrani
|
||||
IDS_CLOSE=Zapri
|
||||
IDS_SETTINGS_GENERAL=Splošno
|
||||
IDS_TITLE_GENERAL=Splošna konfiguracija
|
||||
IDS_TITLE_LANGUAGE=Jezik
|
||||
IDS_TITLE_CONFIRMATIONS=Potrditve
|
||||
IDS_TITLE_INTERFACE=Vmesnik
|
||||
IDS_TITLE_HIGHLIGHTING=Označevanje
|
||||
IDS_TITLE_LOGGING=Dnevnik paketov
|
||||
IDS_TITLE_NOTIFICATIONS=Obvestila
|
||||
IDS_TITLE_ADVANCED=Napredno
|
||||
IDS_ALWAYSONTOP_CHK=Vedno na vrhu
|
||||
IDS_LOADONSTARTUP_CHK=Naloži ob zagonu sistema
|
||||
IDS_STARTMINIMIZED_CHK=Zaženi pomanjšano
|
||||
IDS_SHOWFILENAMESONLY_CHK=Prikaži samo imena datotek
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Samodejno prilagodi stolpce
|
||||
IDS_SKIPUACWARNING_CHK=Preskoči opozorilo "Nadzor uporabniških računov"
|
||||
IDS_CHECKUPDATES_CHK=Periodično preverjaj posodobitve (priporočeno)
|
||||
IDS_LANGUAGE_HINT=Izberi jezik:
|
||||
IDS_USESTEALTHMODE_CHK=Prepreči skeniranje vrat
|
||||
IDS_USESTEALTHMODE_HINT=Prepreči skeniranje TCP vrat s tihim zavračanjem vhodnih TCP RST paketov in skeniranje UDP vrat z odgovorom "Cilj ni dosegljiv" na odhodne ICMP pakete.
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Omogoči filtre ob zagonu
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Prepreči uhajanje podatkov med zagonom sistema, še preden se začne servis "Base Filtering Engine" (BFE).
|
||||
IDS_USECERTIFICATES_CHK=Preveri aplikacije za digitalne podpise
|
||||
IDS_USENETWORKRESOLUTION_CHK=Razreši omrežne naslove
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Onemogoči požarni zid Windows
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Omogoči požarni zid Windows
|
||||
IDS_CONFIRMEXIT_CHK=Prikaži potrditveno okno ob izhodu
|
||||
IDS_CONFIRMEXITTIMER_CHK=Prikaži potrditveno okno ob izhodu, ko so časovniki aktivni
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Potrdi pri brisanju dnevnika
|
||||
IDS_COLORS_HINT=Dvokliknite na element za spremembo.
|
||||
IDS_ENABLELOG_CHK=Omogoči beleženje paketov v datoteko
|
||||
IDS_LOGSHOW=Prikaži dnevnik
|
||||
IDS_LOGCLEAR=Izbriši dnevnik
|
||||
IDS_LOGSIZELIMIT_HINT=Največja velikost dnevnika: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Omogoči obvestila o paketih
|
||||
IDS_NOTIFICATIONSOUND_CHK=Omogoči zvok obvestil
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Zakasnitev med podobnimi obvestili (sek.):
|
||||
IDS_NOTIFY_TOOLTIP=Nastavi uporabniško pravilo za dovoljenje dostopa do naslova in/ali vrat za to aplikacijo.
|
||||
IDS_QUESTION=Ste prepričani?
|
||||
IDS_QUESTION_DELETE=Izbrišem izbrane elemente?
|
||||
IDS_QUESTION_START=S tem boste onemogočili omrežni dostop aplikacijam glede na trenutno konfiguracijo. Nadaljujem?
|
||||
IDS_QUESTION_STOP=S tem boste povrnili omrežni dostop vsem trenutno blokiranim aplikacijam. Nadaljujem?
|
||||
IDS_QUESTION_EXIT=Nameščeni filtri bodo še naprej delovali tudi po izhodu iz programa. Nadaljujem?
|
||||
IDS_QUESTION_TIMER=Časovnik(i) aktivni. Časovniki bodo delovali le, ko teče aplikacija. Izhod?
|
||||
IDS_QUESTION_TIMERS=Izbrišem vse časovnike?
|
||||
IDS_QUESTION_FLAG_CHK=Ne vprašaj več
|
||||
IDS_STATUS_EMPTY=Prazno.
|
||||
IDS_STATUS_SYNTAX_ERROR=Sintaktična napaka v pravilu!
|
||||
IDS_ADDRESS_LOCAL=Vir
|
||||
IDS_ADDRESS_REMOTE=Cilj
|
||||
IDS_UPDATE_ERROR=Napaka pri povezavi s strežnikom za posodobitve.
|
||||
IDS_UPDATE_DOWNLOAD=Prenašam posodobitev...
|
||||
IDS_UPDATE_DONE=Prenos posodobitve končan.
|
||||
IDS_GROUP_SPECIAL_APPS=Aplikacije z uporabniškimi pravili
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=To dovoli ves povratni promet.
|
||||
IDS_RESET=Ponastavi
|
||||
IDS_EXCLUDESTEALTH_CHK=povezave s skenirnikom vrat
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=seznam blokiranih
|
||||
IDS_UPDATE_INIT=Preverjam za nove izdaje...
|
||||
IDS_UPDATE_INSTALL=Razpoložljiva posodobitev. Želite jo namestiti zdaj?
|
||||
IDS_EXCLUDECUSTOM_CHK=uporabniška pravila
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=dovoljene povezave
|
||||
IDS_STATUS_TIMER_DONE=Časovnik za aplikacijo je potekel
|
||||
IDS_ICONSEXTRALARGE=Zelo velike
|
||||
IDS_STATUS_UNUSED_APPS=Neuporabljene aplikacije
|
||||
IDS_STATUS_TIMER_APPS=Aplikacije s časovnikom
|
||||
IDS_SECUREFILTERS_CHK=Omogoči zaščito nameščenih filtrov
|
||||
IDS_SECUREFILTERS_HINT=Prepreči nepooblaščenim aplikacijam dostop do nameščenih filtrov.
|
||||
IDS_USEREFRESHDEVICES_CHK=Osveži filtre ob priklopu (pomnilniških) naprav
|
||||
IDS_RULE_ALLOW6TO4=Dovoli IPv6 preusmeritve (6to4) za vse
|
||||
IDS_RECOMMENDED=priporočeno
|
||||
IDS_ICONSISTABLEVIEW=Prikaži kot tabelo
|
||||
IDS_ACTION_ALLOW_HINT=Dovoli omrežni dostop za vedno
|
||||
IDS_ACTION_BLOCK_HINT=Blokiraj omrežni dostop za vedno
|
||||
IDS_ACTION_LATER_HINT=Prezri in vprašaj me pozneje
|
||||
IDS_RULE_APPLY_2=Uveljavi "%s" za to aplikacijo
|
||||
IDS_EDITRULES=Uredi pravila
|
||||
IDS_TAB_APPS=Aplikacije
|
||||
IDS_TAB_SERVICES=Storitve
|
||||
IDS_TAB_PACKAGES=UWP aplikacije
|
||||
IDS_TAB_NETWORK=Povezave
|
||||
IDS_STATE=Stanje
|
||||
IDS_STATUS_FILTERS_ACTIVE=Filtri so omogočeni.
|
||||
IDS_STATUS_FILTERS_INACTIVE=Filtri so onemogočeni!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Uveljavljam filtre
|
||||
IDS_HIGHLIGHT_CONNECTION=Imajo omrežne povezave
|
||||
IDS_SHOWINLIST=Prikaži na seznamu
|
||||
IDS_BLOCKLIST_SPY=Microsoftovo vohunjenje in telemetrija
|
||||
IDS_BLOCKLIST_UPDATE=Microsoftove posodobitve
|
||||
IDS_BLOCKLIST_EXTRA=Microsoftove aplikacije
|
||||
IDS_PORT=Vrata
|
||||
IDS_NOTIFY_TITLE=Omrežno opozorilo
|
||||
IDS_NOTIFY_HEADER=Omrežna povezava je bila blokirana
|
||||
IDS_DISABLE=Onemogoči
|
||||
IDS_TITLE_SECURITY=Varnost
|
||||
IDS_LOGVIEWER_HINT=Aplikacija za pregled dnevnika
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Prikaži obvestilno okno v sistemski vrstici
|
||||
IDS_NETWORK_CLOSE=Zapri povezavo
|
||||
IDS_RULE_BLOCKOUTBOUND=Blokiraj odhodne povezave za vse
|
||||
IDS_RULE_BLOCKINBOUND=Blokiraj vhodne povezave za vse
|
||||
IDS_VIEW_ICON=Ikone
|
||||
IDS_VIEW_DETAILS=Podrobnosti
|
||||
IDS_VIEW_TILE=Ploščice
|
||||
IDS_RULE_HINT=Če pustite polja prazna, se bo pravilo uporabilo za katerikoli naslov in vrata.
|
||||
IDS_RULE_APPS_HINT=Če ni izbrane aplikacije, se bo pravilo uporabilo za vse aplikacije.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Filtri so omogočeni do ponovnega zagona.
|
||||
IDS_INSTALL_PERMANENT=Trajna pravila. Pravila delujejo, dokler jih ročno ne onemogočite.
|
||||
IDS_INSTALL_TEMPORARY=Začasna pravila. Pravila se ponastavijo po naslednjem ponovnem zagonu.
|
||||
IDS_ENABLEUILOG_CHK=Omogoči vmesnik za beleženje paketov
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Omogoči tihi način, ko je celozaslonska aplikacija v ospredju
|
||||
IDS_TITLE_TRAY=Ikona v sistemski vrstici
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Enojni klik na ikono v sistemski vrstici za odpiranje
|
||||
IDS_ENABLE_APP_CHK=Omogoči omrežni dostop
|
||||
IDS_APP_HINT=Ni razloga za nastavitev dovolilnega pravila za aplikacijo, ki že ima omrežni dostop.
|
||||
IDS_HOST=Gostitelj
|
||||
IDS_CONFIRMALLOW_CHK=Potrdi ob dovoljenju aplikacije
|
||||
IDS_QUESTION_ALLOW=Ste prepričani, da želite omogočiti poln internetni dostop za to aplikacijo?
|
||||
IDS_SHOWSEARCHBAR_CHK=Prikaži iskalno vrstico
|
||||
IDS_LAYER=Plast
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Dovoli Windows Update
|
||||
IDS_ACTION_TERMINATE_HINT=Končaj proces
|
||||
IDS_PROFILE_TYPE=Vrsta profila
|
||||
IDS_USEAPPMONITOR_CHK=Spremljaj spremembe aplikacij
|
||||
IDS_DISABLEREMOVAL=Onemogoči odstranjevanje
|
||||
IDS_USEHASHES_CHK=Preveri aplikacije za SHA-256 hash
|
||||
IDS_COMMENT=Komentarji
|
||||
IDS_USEDARKTHEME=Uporabi temno temo
|
||||
IDS_KEEPUNUSED_CHK=Obdrži neuporabljene aplikacije
|
||||
IDS_UPDATE_NO=Ni razpoložljivih posodobitev.
|
||||
IDS_UPDATE_YES=Razpoložljiva posodobitev. Prenesem in namestim zdaj?
|
||||
IDS_UPDATE_SPEED=Hitrost
|
||||
IDS_RULE_FOR_ALL=za vse
|
||||
IDS_RULE_FOR_APPS=za aplikacije
|
||||
IDS_PROFILE_TYPE_PLAIN=Navaden
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Stisnjen
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Šifriran
|
||||
IDS_SESSION_ONLY=samo za to sejo
|
||||
IDS_LIMIT_REACHED=Meja dosežena.
|
||||
IDS_INTERNAL_RULE=Notranje pravilo
|
||||
IDS_LOADING=Nalaganje...
|
||||
IDS_DIRECTION_REMOTE=Oddaljen
|
||||
IDS_DIRECTION_LOCAL=Lokalen
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
Binary file not shown.
@@ -0,0 +1,240 @@
|
||||
; Swedish
|
||||
; 1FF
|
||||
|
||||
[Swedish]
|
||||
IDS_TITLE_EXCLUDE=Exkludera
|
||||
IDS_FILE=Fil
|
||||
IDS_SETTINGS=Inställningar
|
||||
IDS_EXIT=Avsluta
|
||||
IDS_EDIT=Redigera
|
||||
IDS_PURGE_UNUSED=Rensa oanvända appar
|
||||
IDS_PURGE_TIMERS=Rensa timers
|
||||
IDS_FIND=Sök
|
||||
IDS_REFRESH=Uppdatera
|
||||
IDS_VIEW=Visa
|
||||
IDS_ICONS=Ikoner
|
||||
IDS_ICONSSMALL=Små
|
||||
IDS_ICONSLARGE=Stora
|
||||
IDS_ICONSISHIDDEN=Ladda inte ikoner
|
||||
IDS_LANGUAGE=Språk
|
||||
IDS_FONT=Typsnitt
|
||||
IDS_HELP=Hjälp
|
||||
IDS_WEBSITE=Webbsida
|
||||
IDS_CHECKUPDATES=Sök efter uppdateringar
|
||||
IDS_DONATE=Ge tack!
|
||||
IDS_ABOUT=Om
|
||||
IDS_TRAY_SHOW=Visa/Dölj
|
||||
IDS_TRAY_START=Aktivera filter
|
||||
IDS_TRAY_STOP=Inaktivera filter
|
||||
IDS_TRAY_RULES=Regler
|
||||
IDS_TRAY_BLOCKLIST_RULES=Blocklista
|
||||
IDS_TRAY_SYSTEM_RULES=Systemregler
|
||||
IDS_TRAY_USER_RULES=Användarregler
|
||||
IDS_TRAY_LOGERR=Fellogg
|
||||
IDS_ADD_FILE=Addera app
|
||||
IDS_ANY=Alla
|
||||
IDS_DISABLENOTIFICATIONS=Inaktivera meddelanden
|
||||
IDS_OPENRULESEDITOR=Skapa regel
|
||||
IDS_TIMER=Timer
|
||||
IDS_DISABLETIMER=Inaktivera timern
|
||||
IDS_EXPLORE=Öppna dess mapp
|
||||
IDS_COPY=Kopiera
|
||||
IDS_SELECT_ALL=Välj alla
|
||||
IDS_CHECK=Aktivera vald
|
||||
IDS_UNCHECK=Inaktivera vald
|
||||
IDS_ADD=Addera
|
||||
IDS_EDIT2=Redigera
|
||||
IDS_DELETE=Radera
|
||||
IDS_EXPORT=Exportera
|
||||
IDS_IMPORT=Importera
|
||||
IDS_RULE_ALLOWLOOPBACK=Tillåt loopback-anslutningar för alla
|
||||
IDS_HIGHLIGHT_INVALID=Ogiltig (ej hittad fil eller filterproblem)
|
||||
IDS_HIGHLIGHT_NETWORK=Delad nätverksapp
|
||||
IDS_HIGHLIGHT_PICO=Pico app
|
||||
IDS_HIGHLIGHT_SIGNED=Signerad app
|
||||
IDS_HIGHLIGHT_SILENT=Inaktiverade meddelanden
|
||||
IDS_HIGHLIGHT_SPECIAL=Användarregler
|
||||
IDS_HIGHLIGHT_SYSTEM=Systemapp
|
||||
IDS_GROUP_TIMER=Appar med timer
|
||||
IDS_EDITOR=Regelredigerare
|
||||
IDS_NAME=Namn
|
||||
IDS_RULE=Regel
|
||||
IDS_PORTVERSION=Familj (endast portar)
|
||||
IDS_PROTOCOL=Protokoll
|
||||
IDS_DIRECTION=Riktning
|
||||
IDS_ACTION=Aktion
|
||||
IDS_DATE=Datum
|
||||
IDS_FILEPATH=Sökväg
|
||||
IDS_SIGNATURE=Signatur
|
||||
IDS_ADDRESS=Adress
|
||||
IDS_FILTER=Filter
|
||||
IDS_NOTES=Anteckningar
|
||||
IDS_ADDED=Tillagd
|
||||
IDS_TIMELEFT=Tid kvar
|
||||
IDS_SIGN_SIGNED=Signerad
|
||||
IDS_SIGN_UNSIGNED=Inte signerad
|
||||
IDS_GROUP_ALLOWED=Appar med internettillgång
|
||||
IDS_GROUP_BLOCKED=Appar utan internettillgång
|
||||
IDS_GROUP_ENABLED=Aktiverade regler
|
||||
IDS_GROUP_DISABLED=Inaktiverade regler
|
||||
IDS_DIRECTION_1=Utgående
|
||||
IDS_DIRECTION_2=Ingående
|
||||
IDS_DIRECTION_3=Bägge
|
||||
IDS_ACTION_ALLOW=Tillåt
|
||||
IDS_ACTION_BLOCK=Blockera
|
||||
IDS_ENABLE_CHK=Aktivera regel
|
||||
IDS_WIKI=Hjälp
|
||||
IDS_SAVE=Spara
|
||||
IDS_CLOSE=Stäng
|
||||
IDS_SETTINGS_GENERAL=Allmänt
|
||||
IDS_TITLE_GENERAL=Allmän konfiguration
|
||||
IDS_TITLE_LANGUAGE=Språk
|
||||
IDS_TITLE_CONFIRMATIONS=Bekräftelser
|
||||
IDS_TITLE_INTERFACE=Gränssnitt
|
||||
IDS_TITLE_HIGHLIGHTING=Markeringar
|
||||
IDS_TITLE_LOGGING=Paketloggar
|
||||
IDS_TITLE_NOTIFICATIONS=Meddelanden
|
||||
IDS_TITLE_ADVANCED=Avancerat
|
||||
IDS_ALWAYSONTOP_CHK=Alltid överst
|
||||
IDS_LOADONSTARTUP_CHK=Starta vid systemstart
|
||||
IDS_STARTMINIMIZED_CHK=Starta minimerat
|
||||
IDS_SHOWFILENAMESONLY_CHK=Visa endast filnamn
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Autojustera kolumnstorlek
|
||||
IDS_SKIPUACWARNING_CHK=Utför inte UAC varningsmmeddelanden
|
||||
IDS_CHECKUPDATES_CHK=Sök återkommande efter uppdateringar (rekommenderat)
|
||||
IDS_LANGUAGE_HINT=Välj språk:
|
||||
IDS_USESTEALTHMODE_CHK=Förhindra portskanning
|
||||
IDS_USESTEALTHMODE_HINT=Förhindra TCP-portskanning genom att tyst släppa ingående TCP RST och UDP-portskanning genom att svara på utgående ICMP med - Okontaktbar destination.
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Aktivera bootningsfilter
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Förhindra dataläckor under systemstart, även före tjänsten för Base Filtering Engine (BFE) startar.
|
||||
IDS_USECERTIFICATES_CHK=Kontrollera appars digitala signatur
|
||||
IDS_USENETWORKRESOLUTION_CHK=Lös nätverksadresser
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Inaktivera Windows brandvägg
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Aktivera Windows brandvägg
|
||||
IDS_CONFIRMEXIT_CHK=Visa bekräftelsedialog vid avslut
|
||||
IDS_CONFIRMEXITTIMER_CHK=Visa bekräftelsedialog vid avslut när timers är aktiva
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Bekräfta vid rensning av loggfilen
|
||||
IDS_COLORS_HINT=Dubbelklicka en post för att ändra den.
|
||||
IDS_ENABLELOG_CHK=Aktivera paketloggning till en fil
|
||||
IDS_LOGSHOW=Visa logg
|
||||
IDS_LOGCLEAR=Rensa logg
|
||||
IDS_LOGSIZELIMIT_HINT=Maximal loggstorlek: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Aktivera paketmeddelanden
|
||||
IDS_NOTIFICATIONSOUND_CHK=Aktivera meddelandeljud
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Tidspaus mellan liknande meddelanden (sek.):
|
||||
IDS_NOTIFY_TOOLTIP=Ange användaregel att tillåta tillgång till en adress och/eller port för denna applikation.
|
||||
IDS_QUESTION=Är du säker?
|
||||
IDS_QUESTION_DELETE=Radera vald(a) post(er)?
|
||||
IDS_QUESTION_START=Detta nekar nätverkstillgång för appar enligt nuvarande definierade konfiguration. Fortsätta?
|
||||
IDS_QUESTION_STOP=Detta återställer nätverkstillgång för alla appar som för närvarande är blockerade. Fortsätta?
|
||||
IDS_QUESTION_EXIT=Installerade filter kommer fortsätta fungera även efter avslut. Fortsätta?
|
||||
IDS_QUESTION_TIMER=Timer(s) aktiverad(e). Timers fungerar bara när applikationen körs. Avsluta?
|
||||
IDS_QUESTION_TIMERS=Radera alla timers?
|
||||
IDS_QUESTION_FLAG_CHK=Fråga inte igen
|
||||
IDS_STATUS_EMPTY=Empty.
|
||||
IDS_STATUS_SYNTAX_ERROR=Syntaxfel hos regeln!
|
||||
IDS_ADDRESS_LOCAL=Källa
|
||||
IDS_ADDRESS_REMOTE=Destination
|
||||
IDS_UPDATE_ERROR=Anslutningfel till uppdateringsservern.
|
||||
IDS_UPDATE_DOWNLOAD=Nedladdar uppdatering...
|
||||
IDS_UPDATE_DONE=Nedladdning av uppdatering avklarad
|
||||
IDS_GROUP_SPECIAL_APPS=Appar med användarregler
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Detta tillåter all loopback-trafik.
|
||||
IDS_RESET=Återställ
|
||||
IDS_EXCLUDESTEALTH_CHK=- portskanneranslutningar
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=- blocklista
|
||||
IDS_UPDATE_INIT=Söker efter nya utgivningar...
|
||||
IDS_UPDATE_INSTALL=Uppdatering tillgänglig. Vill du installera den nu?
|
||||
IDS_EXCLUDECUSTOM_CHK=- användarregler
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=- tillåtna anslutningar
|
||||
IDS_STATUS_TIMER_DONE=Timern för applikationen har utgått
|
||||
IDS_ICONSEXTRALARGE=Extra stor
|
||||
IDS_STATUS_UNUSED_APPS=Oanvända appar
|
||||
IDS_STATUS_TIMER_APPS=Appar med timer
|
||||
IDS_SECUREFILTERS_CHK=Aktivera skydd av installerade filter
|
||||
IDS_SECUREFILTERS_HINT=Hindra oauktoriserade applikationer från att tillgå installerade filter.
|
||||
IDS_USEREFRESHDEVICES_CHK=Uppdatera filtren när (lagrings-) enheter är anslutna
|
||||
IDS_RULE_ALLOW6TO4=Tillåt IPv6 omdirigeringar (6till4) för alla
|
||||
IDS_RECOMMENDED=rekommenderat
|
||||
IDS_ICONSISTABLEVIEW=Visa som tabell
|
||||
IDS_ACTION_ALLOW_HINT=Tillåt nätverkstillgång för alltid
|
||||
IDS_ACTION_BLOCK_HINT=Blockera nätverkstillgång för alltid (tills helvetet fryser till)
|
||||
IDS_ACTION_LATER_HINT=Ignorera och fråga mig senare
|
||||
IDS_RULE_APPLY_2=Tillämpa "%s" för denna app
|
||||
IDS_EDITRULES=Redigera regler
|
||||
IDS_TAB_APPS=Appar
|
||||
IDS_TAB_SERVICES=Tjänster
|
||||
IDS_TAB_PACKAGES=UWP-appar
|
||||
IDS_TAB_NETWORK=Anslutningar
|
||||
IDS_STATE=Skick
|
||||
IDS_STATUS_FILTERS_ACTIVE=Filter är aktiverade.
|
||||
IDS_STATUS_FILTERS_INACTIVE=Filter är inaktiverade!
|
||||
IDS_STATUS_FILTERS_PROCESSING=Tillämpar filtren
|
||||
IDS_HIGHLIGHT_CONNECTION=Har nätverksanslutningar
|
||||
IDS_SHOWINLIST=Visa i lista
|
||||
IDS_BLOCKLIST_SPY=Microsofts spionering och telemetri
|
||||
IDS_BLOCKLIST_UPDATE=Microsofts uppdaterande
|
||||
IDS_BLOCKLIST_EXTRA=Microsofts applikationer
|
||||
IDS_PORT=Port
|
||||
IDS_NOTIFY_TITLE=Nätverksalarm
|
||||
IDS_NOTIFY_HEADER=Nätverksanslutning blockerades
|
||||
IDS_DISABLE=Inaktivera
|
||||
IDS_TITLE_SECURITY=Säkerhet
|
||||
IDS_LOGVIEWER_HINT=Appen för loggvisning
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Visa meddelandefönster i systemfältet
|
||||
IDS_NETWORK_CLOSE=Stäng anslutning
|
||||
IDS_RULE_BLOCKOUTBOUND=Blocka utgående anslutningar för alla
|
||||
IDS_RULE_BLOCKINBOUND=Blocka ingående anslutningar för alla
|
||||
IDS_VIEW_ICON=Ikoner
|
||||
IDS_VIEW_DETAILS=Detaljer
|
||||
IDS_VIEW_TILE=Plattor
|
||||
IDS_RULE_HINT=Om du lämnar fält blanka, då tillämpas regeln för vilken adress och port som helst.
|
||||
IDS_RULE_APPS_HINT=Om inga appar valts, tillämpas regeln för alla appar.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Filtren är aktiverade tills en omstart.
|
||||
IDS_INSTALL_PERMANENT=Permanenta regler. Regler fungerar tills du inaktiverar dem manuellt.
|
||||
IDS_INSTALL_TEMPORARY=Tillfälliga regler. Regler återställs efter nästa omstart.
|
||||
IDS_ENABLEUILOG_CHK=Aktivera paketloggningsgränssnitt
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Aktivera tyst läge när en fullskärmsapp är i förgrunden
|
||||
IDS_TITLE_TRAY=Systemfältsikon
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Enkelklicka på systemfältsikonen för öppnande
|
||||
IDS_ENABLE_APP_CHK=Aktivera nätverkstillgång
|
||||
IDS_APP_HINT=Det finns inget skäl att ange någon tillåtande regel för en app med redan aktiverad internettillgång.
|
||||
IDS_HOST=Värd
|
||||
IDS_CONFIRMALLOW_CHK=Bekräfta när en applikation tillåts
|
||||
IDS_QUESTION_ALLOW=Är det säkert att du vill tillåta full internettillgång för denna applikation?
|
||||
IDS_SHOWSEARCHBAR_CHK=Visa sökfält
|
||||
IDS_LAYER=Lager
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Tillåt Windows Update
|
||||
IDS_ACTION_TERMINATE_HINT=Avsluta process
|
||||
IDS_PROFILE_TYPE=Profiltyp
|
||||
IDS_USEAPPMONITOR_CHK=Övervaka appars ändringar
|
||||
IDS_DISABLEREMOVAL=Inaktivera borttagande
|
||||
IDS_USEHASHES_CHK=Kontrollera appar gällande sha-256 hash
|
||||
IDS_COMMENT=Kommentarer
|
||||
IDS_USEDARKTHEME=Använd mörkt tema
|
||||
IDS_KEEPUNUSED_CHK=Keep unused apps
|
||||
IDS_UPDATE_NO=Inga uppdateringar tillgängliga.
|
||||
IDS_UPDATE_YES=Uppdatering finns. Nedladda och installera nu?
|
||||
IDS_UPDATE_SPEED=Speed
|
||||
IDS_RULE_FOR_ALL=for all
|
||||
IDS_RULE_FOR_APPS=for apps
|
||||
IDS_PROFILE_TYPE_PLAIN=Plain
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Compressed
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Encrypted
|
||||
IDS_SESSION_ONLY=session only
|
||||
IDS_LIMIT_REACHED=Limit reached.
|
||||
IDS_INTERNAL_RULE=Internal rule
|
||||
IDS_LOADING=Loading...
|
||||
IDS_DIRECTION_REMOTE=Remote
|
||||
IDS_DIRECTION_LOCAL=Local
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Medir tráfico UDP/QUIC (experimental, requiere reiniciar)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,240 @@
|
||||
; Vietnamese
|
||||
; BinhNT, TienNV, KMA
|
||||
|
||||
[Vietnamese]
|
||||
IDS_TITLE_EXCLUDE=Loại bỏ
|
||||
IDS_FILE=Tệp
|
||||
IDS_SETTINGS=Cài đặt
|
||||
IDS_EXIT=Thoát
|
||||
IDS_EDIT=Sửa
|
||||
IDS_PURGE_UNUSED=Xóa các ứng dụng không sử dụng
|
||||
IDS_PURGE_TIMERS=Bộ hẹn giờ
|
||||
IDS_FIND=Tìm kiếm
|
||||
IDS_REFRESH=Làm mới
|
||||
IDS_VIEW=Xem
|
||||
IDS_ICONS=Biểu tượng
|
||||
IDS_ICONSSMALL=Nhỏ
|
||||
IDS_ICONSLARGE=Lớn
|
||||
IDS_ICONSISHIDDEN=Không tải được các biểu tượng
|
||||
IDS_LANGUAGE=Ngôn ngữ
|
||||
IDS_FONT=Phông chữ
|
||||
IDS_HELP=Trợ giúp
|
||||
IDS_WEBSITE=Trang web
|
||||
IDS_CHECKUPDATES=Kiểm tra bản cập nhật
|
||||
IDS_DONATE=Gửi lời cảm ơn!
|
||||
IDS_ABOUT=Giới thiệu
|
||||
IDS_TRAY_SHOW=Hiện/Ẩn
|
||||
IDS_TRAY_START=Bật bộ lọc
|
||||
IDS_TRAY_STOP=Tắt bộ lọc
|
||||
IDS_TRAY_RULES=Quy tắc
|
||||
IDS_TRAY_BLOCKLIST_RULES=Danh sách hạn chế
|
||||
IDS_TRAY_SYSTEM_RULES=Quy tắc hệ thống
|
||||
IDS_TRAY_USER_RULES=Quy tắc người dùng
|
||||
IDS_TRAY_LOGERR=Nhật ký lỗi
|
||||
IDS_ADD_FILE=Thêm ứng dụng
|
||||
IDS_ANY=Bất kì
|
||||
IDS_DISABLENOTIFICATIONS=Tắt thông báo
|
||||
IDS_OPENRULESEDITOR=Tạo quy tắc
|
||||
IDS_TIMER=Hẹn giờ
|
||||
IDS_DISABLETIMER=Tắt hẹn giờ
|
||||
IDS_EXPLORE=Mở thư mục
|
||||
IDS_COPY=Sao chép
|
||||
IDS_SELECT_ALL=Chọn tất cả
|
||||
IDS_CHECK=Bật đã chọn
|
||||
IDS_UNCHECK=Tắt đã chọn
|
||||
IDS_ADD=Thêm
|
||||
IDS_EDIT2=Sửa
|
||||
IDS_DELETE=Xóa
|
||||
IDS_EXPORT=Xuất
|
||||
IDS_IMPORT=Nhập
|
||||
IDS_RULE_ALLOWLOOPBACK=Cho phép lặp lại kết nối
|
||||
IDS_HIGHLIGHT_INVALID=Không hợp lệ (không tìm thấy tệp hoặc có vấn đề về bộ lọc)
|
||||
IDS_HIGHLIGHT_NETWORK=Ứng dụng mạng được chia sẻ
|
||||
IDS_HIGHLIGHT_PICO=Ứng dụng Pico
|
||||
IDS_HIGHLIGHT_SIGNED=Ứng dụng signed
|
||||
IDS_HIGHLIGHT_SILENT=Tắt thông báo
|
||||
IDS_HIGHLIGHT_SPECIAL=Quy tắc người dùng
|
||||
IDS_HIGHLIGHT_SYSTEM=Ứng dụng hệ thống
|
||||
IDS_GROUP_TIMER=Bộ hẹn giờ ứng dụng
|
||||
IDS_EDITOR=Trình chỉnh sửa quy tắc
|
||||
IDS_NAME=Tên
|
||||
IDS_RULE=Quy tắc
|
||||
IDS_PORTVERSION=Family (chỉ cổng)
|
||||
IDS_PROTOCOL=Giao thức
|
||||
IDS_DIRECTION=Hướng
|
||||
IDS_ACTION=Hành động
|
||||
IDS_DATE=Ngày tháng
|
||||
IDS_FILEPATH=Đường dẫn
|
||||
IDS_SIGNATURE=Chữ ký
|
||||
IDS_ADDRESS=Địa chỉ
|
||||
IDS_FILTER=Bộ lọc
|
||||
IDS_NOTES=Ghi chú
|
||||
IDS_ADDED=Đã thêm
|
||||
IDS_TIMELEFT=Thời gian còn lại
|
||||
IDS_SIGN_SIGNED=Đã ký
|
||||
IDS_SIGN_UNSIGNED=Chưa ký
|
||||
IDS_GROUP_ALLOWED=Ứng dụng có quyền truy cập internet
|
||||
IDS_GROUP_BLOCKED=Ứng dụng không có quyền truy cập internet
|
||||
IDS_GROUP_ENABLED=Bật quy tắc
|
||||
IDS_GROUP_DISABLED=Tắt quy tắc
|
||||
IDS_DIRECTION_1=Đi
|
||||
IDS_DIRECTION_2=Đến
|
||||
IDS_DIRECTION_3=Cả hai
|
||||
IDS_ACTION_ALLOW=Cho phép
|
||||
IDS_ACTION_BLOCK=Chặn
|
||||
IDS_ENABLE_CHK=Bật quy tắc
|
||||
IDS_WIKI=Trợ giúp
|
||||
IDS_SAVE=Lưu
|
||||
IDS_CLOSE=Đóng
|
||||
IDS_SETTINGS_GENERAL=Chung
|
||||
IDS_TITLE_GENERAL=Cấu hình chung
|
||||
IDS_TITLE_LANGUAGE=Ngôn ngữ
|
||||
IDS_TITLE_CONFIRMATIONS=Xác nhận
|
||||
IDS_TITLE_INTERFACE=Giao diện
|
||||
IDS_TITLE_HIGHLIGHTING=Làm nổi bật
|
||||
IDS_TITLE_LOGGING=Nhật ký gói tin
|
||||
IDS_TITLE_NOTIFICATIONS=Thông báo
|
||||
IDS_TITLE_ADVANCED=Nâng cao
|
||||
IDS_ALWAYSONTOP_CHK=Luôn luôn trên đầu trang
|
||||
IDS_LOADONSTARTUP_CHK=Khởi động cùng hệ thống
|
||||
IDS_STARTMINIMIZED_CHK=Bắt đầu thu nhỏ
|
||||
IDS_SHOWFILENAMESONLY_CHK=Chỉ hiển thị tên tệp
|
||||
IDS_AUTOSIZECOLUMNS_CHK=Tự động sửa kích thước cột
|
||||
IDS_SKIPUACWARNING_CHK=Bỏ qua cảnh báo "Kiểm soát tài khoản người dùng"
|
||||
IDS_CHECKUPDATES_CHK=Định kỳ kiểm tra các bản cập nhật (khuyến nghị)
|
||||
IDS_LANGUAGE_HINT=Chọn ngôn ngữ:
|
||||
IDS_USESTEALTHMODE_CHK=Ngăn chặn việc dò quét cổng
|
||||
IDS_USESTEALTHMODE_HINT=Ngăn chặn quá trình quét cổng TCP bằng cách bỏ qua việc quét cổng TCP RST và UDP gửi đến bằng cách phản hồi ICMP đi với "Không thể truy cập đích".
|
||||
IDS_INSTALLBOOTTIMEFILTERS_CHK=Bật bộ lọc thời gian khởi động
|
||||
IDS_INSTALLBOOTTIMEFILTERS_HINT=Ngăn chặn rò rỉ dữ liệu trong khi khởi động hệ thống, ngay cả trước khi dịch vụ "Base Filtering Engine" (BFE) khởi động.
|
||||
IDS_USECERTIFICATES_CHK=Kiểm tra các ứng dụng để tìm chữ ký điện tử
|
||||
IDS_USENETWORKRESOLUTION_CHK=Giải quyết các địa chỉ mạng
|
||||
IDS_DISABLEWINDOWSFIREWALL_CHK=Tắt tường lửa của Windows
|
||||
IDS_ENABLEWINDOWSFIREWALL_CHK=Bật tường lửa của Windows
|
||||
IDS_CONFIRMEXIT_CHK=Hiển thị hộp thoại xác nhận khi thoát
|
||||
IDS_CONFIRMEXITTIMER_CHK=Hiển thị hộp thoại xác nhận khi thoát lúc bộ hẹn giờ đang hoạt động
|
||||
IDS_CONFIRMLOGCLEAR_CHK=Xác nhận khi xóa tệp nhật ký
|
||||
IDS_COLORS_HINT=Bấm đúp vào một mục để thay đổi nó.
|
||||
IDS_ENABLELOG_CHK=Cho phép các gói ghi nhật ký vào một tệp
|
||||
IDS_LOGSHOW=Hiện thị nhật ký
|
||||
IDS_LOGCLEAR=Xóa nhật ký
|
||||
IDS_LOGSIZELIMIT_HINT=Kích thước nhật ký tối đa: (kB)
|
||||
IDS_ENABLENOTIFICATIONS_CHK=Bật thông báo gói tin
|
||||
IDS_NOTIFICATIONSOUND_CHK=Bật âm thanh thông báo
|
||||
IDS_NOTIFICATIONTIMEOUT_HINT=Thời gian chờ giữa các thông báo giống nhau (giây):
|
||||
IDS_NOTIFY_TOOLTIP=Đặt quy tắc người dùng để cho phép truy cập vào một địa chỉ và/hoặc cổng cho ứng dụng này.
|
||||
IDS_QUESTION=Bạn có chắc không?
|
||||
IDS_QUESTION_DELETE=Xóa (các) mục đã chọn?
|
||||
IDS_QUESTION_START=Điều này sẽ từ chối quyền truy cập mạng vào các ứng dụng được xác định bởi cấu hình hiện tại. Tiếp tục?
|
||||
IDS_QUESTION_STOP=Thao tác này sẽ khôi phục quyền truy cập mạng cho tất cả các ứng dụng hiện đang bị chặn. Tiếp tục?
|
||||
IDS_QUESTION_EXIT=Các bộ lọc đã cài đặt sẽ tiếp tục hoạt động ngay cả khi bạn thoát. Tiếp tục?
|
||||
IDS_QUESTION_TIMER=Đã kích hoạt (các) bộ hẹn giờ. Bộ hẹn giờ sẽ chỉ hoạt động khi ứng dụng đang chạy. Vẫn thoát?
|
||||
IDS_QUESTION_TIMERS=Xóa tất cả bộ hẹn giờ?
|
||||
IDS_QUESTION_FLAG_CHK=Không hỏi lại
|
||||
IDS_STATUS_EMPTY=Empty.
|
||||
IDS_STATUS_SYNTAX_ERROR=Lỗi cú pháp trong quy tắc!
|
||||
IDS_ADDRESS_LOCAL=Nguồn
|
||||
IDS_ADDRESS_REMOTE=Đích
|
||||
IDS_UPDATE_ERROR=Cập nhật lỗi kết nối máy chủ.
|
||||
IDS_UPDATE_DOWNLOAD=Đang tải bản cập nhật...
|
||||
IDS_UPDATE_DONE=Quá trình tải xuống bản cập nhật đã hoàn tất.
|
||||
IDS_GROUP_SPECIAL_APPS=Ứng dụng hoạt động với quy tắc người dùng
|
||||
IDS_RULE_ALLOWLOOPBACK_HINT=Điều này cho phép tất cả lưu lượng truy cập lặp lại.
|
||||
IDS_RESET=Đặt lại
|
||||
IDS_EXCLUDESTEALTH_CHK=kết nối quét cổng
|
||||
IDS_EXCLUDEBLOCKLIST_CHK=danh sách chặn
|
||||
IDS_UPDATE_INIT=Đang kiểm tra các bản phát hành mới ...
|
||||
IDS_UPDATE_INSTALL=Cập nhật có sẵn. Bạn có muốn cài đặt nó ngay bây giờ?
|
||||
IDS_EXCLUDECUSTOM_CHK=quy tắc người dùng
|
||||
IDS_EXCLUDECLASSIFYALLOW_CHK=cho phép kết nối
|
||||
IDS_STATUS_TIMER_DONE=Hẹn giờ cho ứng dụng đã hết hạn
|
||||
IDS_ICONSEXTRALARGE=Cực lớn
|
||||
IDS_STATUS_UNUSED_APPS=Ứng dụng không sử dụng
|
||||
IDS_STATUS_TIMER_APPS=Ứng dụng có hẹn giờ
|
||||
IDS_SECUREFILTERS_CHK=Enable protection of installed filters
|
||||
IDS_SECUREFILTERS_HINT=Prevent unauthorized applications from accessing the installed filters.
|
||||
IDS_USEREFRESHDEVICES_CHK=Làm mới bộ lọc khi thiết bị (bộ nhớ) được kết nối
|
||||
IDS_RULE_ALLOW6TO4=Cho phép chuyển hướng IPv6 (6to4) cho tất cả
|
||||
IDS_RECOMMENDED=khuyến nghị
|
||||
IDS_ICONSISTABLEVIEW=Hiển thị dưới dạng bảng
|
||||
IDS_ACTION_ALLOW_HINT=Cho phép truy cập mạng vĩnh viễn
|
||||
IDS_ACTION_BLOCK_HINT=Chặn truy cập mạng mãi mãi ('cho đến khi kingdom)
|
||||
IDS_ACTION_LATER_HINT=Bỏ qua và hỏi tôi sau
|
||||
IDS_RULE_APPLY_2=Áp dụng "%s" cho ứng dụng này
|
||||
IDS_EDITRULES=Chỉnh sửa quy tắc
|
||||
IDS_TAB_APPS=Ứng dụng
|
||||
IDS_TAB_SERVICES=Dịch vụ
|
||||
IDS_TAB_PACKAGES=Ứng dụng UWP
|
||||
IDS_TAB_NETWORK=Kết nối
|
||||
IDS_STATE=Trạng thái
|
||||
IDS_STATUS_FILTERS_ACTIVE=Bộ lọc được bật.
|
||||
IDS_STATUS_FILTERS_INACTIVE=Bộ lọc được tắt.
|
||||
IDS_STATUS_FILTERS_PROCESSING=Áp dụng bộ lọc
|
||||
IDS_HIGHLIGHT_CONNECTION=Có kết nối mạng
|
||||
IDS_SHOWINLIST=Hiển thị trong danh sách
|
||||
IDS_BLOCKLIST_SPY=Gián điệp và đo từ xa của Microsoft
|
||||
IDS_BLOCKLIST_UPDATE=Cập nhật của Microsoft
|
||||
IDS_BLOCKLIST_EXTRA=Ứng dụng của Microsoft
|
||||
IDS_PORT=Cổng
|
||||
IDS_NOTIFY_TITLE=Cảnh báo mạng
|
||||
IDS_NOTIFY_HEADER=Kết nối mạng đã bị chặn
|
||||
IDS_DISABLE=Vô hiệu hóa
|
||||
IDS_TITLE_SECURITY=Bảo mật
|
||||
IDS_LOGVIEWER_HINT=Ứng dụng xem nhật ký
|
||||
IDS_NOTIFICATIONONTRAY_CHK=Hiển thị cửa sổ thông báo trên tray
|
||||
IDS_NETWORK_CLOSE=Đóng kết nối
|
||||
IDS_RULE_BLOCKOUTBOUND=Chặn tất cả kết nối đi
|
||||
IDS_RULE_BLOCKINBOUND=Chặn tất cả kết nối đến
|
||||
IDS_VIEW_ICON=Biểu tượng
|
||||
IDS_VIEW_DETAILS=Chi tiết
|
||||
IDS_VIEW_TILE=Tiêu đề
|
||||
IDS_RULE_HINT=Nếu bạn để trống các trường, thì quy tắc sẽ được áp dụng cho bất kỳ địa chỉ và cổng nào.
|
||||
IDS_RULE_APPS_HINT=Nếu không có ứng dụng nào được chọn, thì quy tắc sẽ được áp dụng cho tất cả các ứng dụng.
|
||||
IDS_STATUS_FILTERS_ACTIVE_TEMP=Bộ lọc được bật cho đến khi khởi động lại.
|
||||
IDS_INSTALL_PERMANENT=Quy tắc vĩnh viễn. Các quy tắc đang hoạt động cho đến khi bạn tắt nó theo cách thủ công.
|
||||
IDS_INSTALL_TEMPORARY=Quy tắc tạm thời. Các quy tắc được đặt lại sau lần khởi động lại tiếp theo.
|
||||
IDS_ENABLEUILOG_CHK=Bật giao diện ghi nhật ký gói
|
||||
IDS_NOTIFICATIONFULLSCREENSILENTMODE_CHK=Bật chế độ im lặng khi ứng dụng toàn màn hình ở nền
|
||||
IDS_TITLE_TRAY=Biểu tượng tray
|
||||
IDS_TRAYICONSINGLECLICK_CHK=Nhấp một lần vào biểu tượng tray để mở
|
||||
IDS_ENABLE_APP_CHK=Bật quyền truy cập mạng
|
||||
IDS_APP_HINT=Không có lý do gì để đặt bất kỳ quy tắc dễ dàng nào cho ứng dụng đã bật quyền truy cập internet.
|
||||
IDS_HOST=Host
|
||||
IDS_CONFIRMALLOW_CHK=Xác nhận khi cho phép ứng dụng
|
||||
IDS_QUESTION_ALLOW=Bạn có chắc chắn muốn kích hoạt toàn quyền truy cập internet cho ứng dụng này không?
|
||||
IDS_SHOWSEARCHBAR_CHK=Hiển thị thanh tìm kiếm
|
||||
IDS_LAYER=Lớp
|
||||
IDS_RULE_ALLOWWINDOWSUPDATE=Allow Windows Update
|
||||
IDS_ACTION_TERMINATE_HINT=Terminate process
|
||||
IDS_PROFILE_TYPE=Profile type
|
||||
IDS_USEAPPMONITOR_CHK=Monitor apps changing
|
||||
IDS_DISABLEREMOVAL=Disable removal
|
||||
IDS_USEHASHES_CHK=Check apps for sha-256 hash
|
||||
IDS_COMMENT=Comments
|
||||
IDS_USEDARKTHEME=Use dark theme
|
||||
IDS_KEEPUNUSED_CHK=Keep unused apps
|
||||
IDS_UPDATE_NO=Hiện tại không có bản cập nhật.
|
||||
IDS_UPDATE_YES=Có sẵn bản cập nhật. Cập nhật ngay?
|
||||
IDS_UPDATE_SPEED=Speed
|
||||
IDS_RULE_FOR_ALL=for all
|
||||
IDS_RULE_FOR_APPS=for apps
|
||||
IDS_PROFILE_TYPE_PLAIN=Plain
|
||||
IDS_PROFILE_TYPE_COMPRESSED=Compressed
|
||||
IDS_PROFILE_TYPE_ENCRYPTED=Encrypted
|
||||
IDS_SESSION_ONLY=session only
|
||||
IDS_LIMIT_REACHED=Limit reached.
|
||||
IDS_INTERNAL_RULE=Internal rule
|
||||
IDS_LOADING=Loading...
|
||||
IDS_DIRECTION_REMOTE=Remote
|
||||
IDS_DIRECTION_LOCAL=Local
|
||||
IDS_WARNING_UNEXPECTED=Be careful, through service/driver host (svchost.exe/System) internet traffic can let out through unexpected ways. Continue?
|
||||
IDS_WARNING_ME=If you disallow main process, you cannot use resolve network addresses option. Continue?
|
||||
IDS_TOTAL=Total
|
||||
IDS_ALLOWIPFORWARDING_CHK=Allow IP forwarding
|
||||
IDS_EXCLUDEINBOUND_CHK=inbound multicast/broadcast
|
||||
IDS_CONNECTIONS_ENABLE=Enable connections monitoring
|
||||
IDS_CONNECTIONS_SHOWAITCONNECTIONS=Show waiting connections
|
||||
IDS_CONNECTIONS_MEASUREUDPTRAFFIC=Measure UDP/QUIC traffic (experimental, restart required)
|
||||
IDS_UDP_ACCOUNTING=UDP (including QUIC): ETW bytes since this socket was first monitored.
|
||||
IDS_UDP_UNAVAILABLE=UDP measurement unavailable or incomplete. Restart simplewall to retry. Error
|
||||
IDS_UDP_PENDING=UDP: no verified measurement yet. Sockets opened before monitoring must be reopened.
|
||||
Binary file not shown.
+687
-34
File diff suppressed because it is too large.
Load diff
Binary file not shown.
@@ -1,4 +1,6 @@
|
||||
@echo off
|
||||
|
||||
cd ..\builder
|
||||
build simplewall simplewall 3.2
|
||||
@echo off
|
||||
|
||||
cd ..\builder
|
||||
call build simplewall 3.9.2 simplewall
|
||||
|
||||
pause
|
||||
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
|
||||
cd ..\builder
|
||||
call build_locale simplewall
|
||||
|
||||
pause
|
||||
@@ -1,8 +0,0 @@
|
||||
@echo off
|
||||
|
||||
php "..\builder\make_resource.php" ".\src\resource.hpp"
|
||||
php "..\builder\make_locale.php" "simplewall" "simplewall" ".\bin\i18n" ".\src\resource.hpp" ".\src\resource.rc" ".\bin\simplewall.lng"
|
||||
copy /y ".\bin\simplewall.lng" ".\bin\32\simplewall.lng"
|
||||
copy /y ".\bin\simplewall.lng" ".\bin\64\simplewall.lng"
|
||||
|
||||
pause
|
||||
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
|
||||
cd ..\builder
|
||||
call build_simplewall_rules update %~dp0bin\profile_internal.xml %~dp0bin\profile_internal.xml
|
||||
|
||||
pause
|
||||
@@ -0,0 +1,32 @@
|
||||
@echo off
|
||||
@setlocal enableextensions
|
||||
rem @cd /d "%~dp0\..\"
|
||||
|
||||
rem VS 2026
|
||||
|
||||
if exist "%ProgramFiles%\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvarsall.bat" (
|
||||
call "%ProgramFiles%\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64_arm64
|
||||
goto start
|
||||
)
|
||||
|
||||
if exist "%ProgramFiles%\Microsoft Visual Studio\18\Professional\VC\Auxiliary\Build\vcvarsall.bat" (
|
||||
call "%ProgramFiles%\Microsoft Visual Studio\18\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64_arm64
|
||||
goto start
|
||||
)
|
||||
|
||||
echo VS 2026 was not found...
|
||||
|
||||
goto end
|
||||
|
||||
:start
|
||||
msbuild simplewall.sln -property:Configuration=Release -property:Platform=x64 -verbosity:normal
|
||||
if %ERRORLEVEL% neq 0 goto end
|
||||
|
||||
msbuild simplewall.sln -property:Configuration=Release -property:Platform=ARM64 -verbosity:normal
|
||||
if %ERRORLEVEL% neq 0 goto end
|
||||
|
||||
:end
|
||||
|
||||
echo done...
|
||||
|
||||
pause
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.Windows.CppWinRT" version="2.0.230706.1" targetFramework="native" />
|
||||
</packages>
|
||||
+11
-8
@@ -1,28 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27130.2010
|
||||
# Visual Studio Version 18
|
||||
VisualStudioVersion = 18.1.11312.151 d18.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simplewall", "simplewall.vcxproj", "{7FB76828-A353-4113-82D7-CD728EED81DF}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Debug|x64.Build.0 = Debug|x64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Debug|x86.Build.0 = Debug|Win32
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Release|x64.ActiveCfg = Release|x64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Release|x64.Build.0 = Release|x64
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Release|x86.ActiveCfg = Release|Win32
|
||||
{7FB76828-A353-4113-82D7-CD728EED81DF}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {A433DCFD-EECB-43BE-9EB1-DC7D0094F85F}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
+447
-272
@@ -1,273 +1,448 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{7FB76828-A353-4113-82D7-CD728EED81DF}</ProjectGuid>
|
||||
<RootNamespace>simplewall</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>simplewall</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\;.\src\include\;.\src\;</IncludePath>
|
||||
<LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86;.\src\lib\32\</LibraryPath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\;.\src\include\;.\src\;</IncludePath>
|
||||
<LibraryPath>$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86;.\src\lib\32\</LibraryPath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\;.\src\include\;.\src\;</IncludePath>
|
||||
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;.\src\lib\64\</LibraryPath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\;.\src\include\;.\src\;</IncludePath>
|
||||
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;.\src\lib\64\</LibraryPath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_APP_BETA;_APP_NO_GUEST;_APP_NO_WINXP;_APP_HAVE_AUTORUN;_APP_HAVE_SKIPUAC;_APP_HAVE_TRAY;_APP_HAVE_SETTINGS;_APP_HAVE_UPDATES;_APP_HAVE_MINSIZE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<IntelJCCErratum>true</IntelJCCErratum>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_APP_BETA;_APP_NO_GUEST;_APP_NO_WINXP;_APP_HAVE_AUTORUN;_APP_HAVE_SKIPUAC;_APP_HAVE_TRAY;_APP_HAVE_SETTINGS;_APP_HAVE_UPDATES;_APP_HAVE_MINSIZE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<IntelJCCErratum>true</IntelJCCErratum>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_APP_BETA;_APP_NO_GUEST;_APP_NO_WINXP;_APP_HAVE_AUTORUN;_APP_HAVE_SKIPUAC;_APP_HAVE_TRAY;_APP_HAVE_SETTINGS;_APP_HAVE_UPDATES;_APP_HAVE_MINSIZE;_APP_HAVE_SIZING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableParallelCodeGeneration>
|
||||
</EnableParallelCodeGeneration>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<IntelJCCErratum>true</IntelJCCErratum>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<SetChecksum>true</SetChecksum>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_APP_BETA;_APP_NO_GUEST;_APP_NO_WINXP;_APP_HAVE_AUTORUN;_APP_HAVE_SKIPUAC;_APP_HAVE_TRAY;_APP_HAVE_SETTINGS;_APP_HAVE_UPDATES;_APP_HAVE_MINSIZE;_APP_HAVE_SIZING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableParallelCodeGeneration>
|
||||
</EnableParallelCodeGeneration>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<IntelJCCErratum>true</IntelJCCErratum>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<SetChecksum>true</SetChecksum>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\routine\rapp.cpp" />
|
||||
<ClCompile Include="..\routine\routine.cpp" />
|
||||
<ClCompile Include="src\controls.cpp" />
|
||||
<ClCompile Include="src\editor.cpp" />
|
||||
<ClCompile Include="src\helper.cpp" />
|
||||
<ClCompile Include="src\log.cpp" />
|
||||
<ClCompile Include="src\main.cpp" />
|
||||
<ClCompile Include="src\notifications.cpp" />
|
||||
<ClCompile Include="src\profile.cpp" />
|
||||
<ClCompile Include="src\security.cpp" />
|
||||
<ClCompile Include="src\timer.cpp" />
|
||||
<ClCompile Include="src\wfp.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\pugixml\src\pugixml.hpp" />
|
||||
<ClInclude Include="..\routine\ntapi.hpp" />
|
||||
<ClInclude Include="..\routine\rapp.hpp" />
|
||||
<ClInclude Include="..\routine\rconfig.hpp" />
|
||||
<ClInclude Include="..\routine\routine.hpp" />
|
||||
<ClInclude Include="src\app.hpp" />
|
||||
<ClInclude Include="src\controls.hpp" />
|
||||
<ClInclude Include="src\editor.hpp" />
|
||||
<ClInclude Include="src\global.hpp" />
|
||||
<ClInclude Include="src\helper.hpp" />
|
||||
<ClInclude Include="src\log.hpp" />
|
||||
<ClInclude Include="src\main.hpp" />
|
||||
<ClInclude Include="src\notifications.hpp" />
|
||||
<ClInclude Include="src\profile.hpp" />
|
||||
<ClInclude Include="src\pugiconfig.hpp" />
|
||||
<ClInclude Include="src\resource.hpp" />
|
||||
<ClInclude Include="src\security.hpp" />
|
||||
<ClInclude Include="src\timer.hpp" />
|
||||
<ClInclude Include="src\wfp.hpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="src\resource.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.props')" />
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{7FB76828-A353-4113-82D7-CD728EED81DF}</ProjectGuid>
|
||||
<RootNamespace>simplewall</RootNamespace>
|
||||
<ProjectName>simplewall</ProjectName>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v145</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v145</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v145</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v145</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v145</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v145</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\src\;.\src\include\;.\src\</IncludePath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\src\;.\src\include\;.\src\</IncludePath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\src\;.\src\include\;.\src\</IncludePath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\src\;.\src\include\;.\src\</IncludePath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\src\;.\src\include\;.\src\</IncludePath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir)bin\$(PlatformArchitecture)\</OutDir>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);.\..\routine\src\;.\src\include\;.\src\</IncludePath>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<CodeAnalysisRuleSet>MixedRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<StringPooling>true</StringPooling>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PreprocessorDefinitions>SECURITY_WIN32;MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS;_UNICODE;UNICODE;WIN32_LEAN_AND_MEAN;APP_NO_GUEST;APP_HAVE_AUTORUN;APP_HAVE_SKIPUAC;APP_HAVE_TRAY;APP_HAVE_SETTINGS;APP_HAVE_UPDATES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<LanguageStandard_C>stdclatest</LanguageStandard_C>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<GuardEHContMetadata>true</GuardEHContMetadata>
|
||||
<UseStandardPreprocessor>true</UseStandardPreprocessor>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 /BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<StringPooling>true</StringPooling>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PreprocessorDefinitions>SECURITY_WIN32;MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS;;UNICODE;WIN32_LEAN_AND_MEAN;APP_NO_GUEST;APP_HAVE_AUTORUN;APP_HAVE_SKIPUAC;APP_HAVE_TRAY;APP_HAVE_SETTINGS;APP_HAVE_UPDATES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<LanguageStandard_C>stdclatest</LanguageStandard_C>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<UseStandardPreprocessor>true</UseStandardPreprocessor>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 /BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||
<CETCompat>true</CETCompat>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<StringPooling>true</StringPooling>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PreprocessorDefinitions>SECURITY_WIN32;MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS;_UNICODE;UNICODE;WIN32_LEAN_AND_MEAN;APP_NO_GUEST;APP_HAVE_AUTORUN;APP_HAVE_SKIPUAC;APP_HAVE_TRAY;APP_HAVE_SETTINGS;APP_HAVE_UPDATES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<LanguageStandard_C>stdclatest</LanguageStandard_C>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<GuardEHContMetadata>true</GuardEHContMetadata>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<UseStandardPreprocessor>true</UseStandardPreprocessor>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 /BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
<CETCompat>true</CETCompat>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>SECURITY_WIN32;MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS;_UNICODE;UNICODE;WIN32_LEAN_AND_MEAN;APP_NO_GUEST;APP_HAVE_AUTORUN;APP_HAVE_SKIPUAC;APP_HAVE_TRAY;APP_HAVE_SETTINGS;APP_HAVE_UPDATES;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<LanguageStandard_C>stdclatest</LanguageStandard_C>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<GuardEHContMetadata>true</GuardEHContMetadata>
|
||||
<UseStandardPreprocessor>true</UseStandardPreprocessor>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<SetChecksum>true</SetChecksum>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 /BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>SECURITY_WIN32;MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS;_UNICODE;UNICODE;WIN32_LEAN_AND_MEAN;APP_NO_GUEST;APP_HAVE_AUTORUN;APP_HAVE_SKIPUAC;APP_HAVE_TRAY;APP_HAVE_SETTINGS;APP_HAVE_UPDATES;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<LanguageStandard_C>stdclatest</LanguageStandard_C>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<UseStandardPreprocessor>true</UseStandardPreprocessor>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<SetChecksum>true</SetChecksum>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 /BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||
<CETCompat>true</CETCompat>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<ControlFlowGuard>Guard</ControlFlowGuard>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>SECURITY_WIN32;MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS;_UNICODE;UNICODE;WIN32_LEAN_AND_MEAN;APP_NO_GUEST;APP_HAVE_AUTORUN;APP_HAVE_SKIPUAC;APP_HAVE_TRAY;APP_HAVE_SETTINGS;APP_HAVE_UPDATES;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<LanguageStandard_C>stdclatest</LanguageStandard_C>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<GuardEHContMetadata>true</GuardEHContMetadata>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<UseStandardPreprocessor>true</UseStandardPreprocessor>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<SetChecksum>true</SetChecksum>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 /BREPRO %(AdditionalOptions)</AdditionalOptions>
|
||||
<MinimumRequiredVersion>6.1</MinimumRequiredVersion>
|
||||
<CETCompat>true</CETCompat>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<LargeAddressAware>true</LargeAddressAware>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\routine\src\rapp.c" />
|
||||
<ClCompile Include="..\routine\src\routine.c" />
|
||||
<ClCompile Include="src\controls.c" />
|
||||
<ClCompile Include="src\db.c" />
|
||||
<ClCompile Include="src\editor.c" />
|
||||
<ClCompile Include="src\helper.c" />
|
||||
<ClCompile Include="src\icons.c" />
|
||||
<ClCompile Include="src\listview.c" />
|
||||
<ClCompile Include="src\log.c" />
|
||||
<ClCompile Include="src\main.c" />
|
||||
<ClCompile Include="src\network.c" />
|
||||
<ClCompile Include="src\notifications.c" />
|
||||
<ClCompile Include="src\packages.c" />
|
||||
<ClCompile Include="src\profile.c" />
|
||||
<ClCompile Include="src\search.c" />
|
||||
<ClCompile Include="src\security.c" />
|
||||
<ClCompile Include="src\timer.c" />
|
||||
<ClCompile Include="src\udpstats.c" />
|
||||
<ClCompile Include="src\uwp.cpp" />
|
||||
<ClCompile Include="src\wfp.c" />
|
||||
<ClCompile Include="src\messages.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\routine\src\ntapi.h" />
|
||||
<ClInclude Include="..\routine\src\ntrtl.h" />
|
||||
<ClInclude Include="..\routine\src\rapp.h" />
|
||||
<ClInclude Include="..\routine\src\rconfig.h" />
|
||||
<ClInclude Include="..\routine\src\routine.h" />
|
||||
<ClInclude Include="..\routine\src\rtypes.h" />
|
||||
<ClInclude Include="src\app.h" />
|
||||
<ClInclude Include="src\controls.h" />
|
||||
<ClInclude Include="src\db.h" />
|
||||
<ClInclude Include="src\editor.h" />
|
||||
<ClInclude Include="src\global.h" />
|
||||
<ClInclude Include="src\helper.h" />
|
||||
<ClInclude Include="src\icons.h" />
|
||||
<ClInclude Include="src\listview.h" />
|
||||
<ClInclude Include="src\log.h" />
|
||||
<ClInclude Include="src\main.h" />
|
||||
<ClInclude Include="src\network.h" />
|
||||
<ClInclude Include="src\notifications.h" />
|
||||
<ClInclude Include="src\packages.h" />
|
||||
<ClInclude Include="src\profile.h" />
|
||||
<ClInclude Include="src\resource.h" />
|
||||
<ClInclude Include="src\search.h" />
|
||||
<ClInclude Include="src\security.h" />
|
||||
<ClInclude Include="src\timer.h" />
|
||||
<ClInclude Include="src\udpstats.h" />
|
||||
<ClInclude Include="src\uwp.h" />
|
||||
<ClInclude Include="src\wfp.h" />
|
||||
<ClInclude Include="src\messages.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="src\resource.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
||||
</ImportGroup>
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.props'))" />
|
||||
<Error Condition="!Exists('packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Windows.CppWinRT.2.0.230706.1\build\native\Microsoft.Windows.CppWinRT.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
||||
+175
-118
@@ -1,119 +1,176 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{3C4265CC-2D78-44DE-BC9F-1C64FB817DA5}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{7B1ACFC7-8801-49F4-9D4D-E3CBFEC33A8D}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{0373C32A-908E-4C0A-8D5B-07C4A21C3725}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\routine\routine.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\routine\rapp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\wfp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\profile.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\log.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\notifications.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\timer.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\helper.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\editor.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\controls.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\security.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\routine\routine.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\main.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\resource.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\rconfig.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\rapp.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\app.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\pugixml\src\pugixml.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\pugiconfig.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\wfp.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\profile.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\log.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\notifications.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\timer.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\helper.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\global.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\ntapi.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\editor.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\controls.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\security.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="src\resource.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{3C4265CC-2D78-44DE-BC9F-1C64FB817DA5}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{7B1ACFC7-8801-49F4-9D4D-E3CBFEC33A8D}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{0373C32A-908E-4C0A-8D5B-07C4A21C3725}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\main.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\wfp.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\profile.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\log.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\notifications.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\timer.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\helper.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\editor.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\controls.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\messages.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\security.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\search.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\network.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\packages.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\icons.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\db.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\listview.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\routine\src\rapp.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\routine\src\routine.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\uwp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\udpstats.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\main.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\resource.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\app.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\wfp.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\profile.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\log.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\notifications.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\timer.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\helper.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\global.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\editor.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\controls.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\security.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\messages.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\search.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\network.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\packages.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\icons.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\db.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\listview.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\src\rtypes.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\src\ntapi.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\src\ntrtl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\src\rapp.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\src\rconfig.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\routine\src\routine.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\uwp.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\udpstats.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="src\resource.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
<RemoteDebuggerWorkingDirectory>$(SolutionDir)bin\$(PlatformArchitecture)\</RemoteDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsRemoteDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
<RemoteDebuggerWorkingDirectory>$(SolutionDir)bin\$(PlatformArchitecture)\</RemoteDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsRemoteDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)bin\$(PlatformArchitecture)\</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)bin\$(PlatformArchitecture)\</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)bin\$(PlatformArchitecture)\</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)bin\$(PlatformArchitecture)\</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,13 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#define APP_NAME L"simplewall"
|
||||
#define APP_NAME_SHORT L"simplewall"
|
||||
#define APP_VERSION L"3.9.2"
|
||||
#define APP_VERSION_RES 3,9,2,0
|
||||
#define APP_AUTHOR L"Henry++"
|
||||
#define APP_COPYRIGHT L"(c) 2016-2026 " APP_AUTHOR L". All Rights Reversed."
|
||||
|
||||
#define APP_BETA
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#define APP_NAME L"simplewall"
|
||||
#define APP_NAME_SHORT L"simplewall"
|
||||
#define APP_VERSION L"3.2"
|
||||
#define APP_VERSION_RES 3,2,0,0
|
||||
#define APP_COPYRIGHT L"(c) 2016-2020 " _APP_AUTHOR L". All Rights Reversed."
|
||||
+1093
File diff suppressed because it is too large.
Load diff
@@ -1,756 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#include "global.hpp"
|
||||
|
||||
VOID _app_settab_id (HWND hwnd, INT page_id)
|
||||
{
|
||||
if (!page_id || ((INT)_r_tab_getlparam (hwnd, IDC_TAB, INVALID_INT) == page_id && IsWindowVisible (GetDlgItem (hwnd, page_id))))
|
||||
return;
|
||||
|
||||
for (INT i = 0; i < (INT)SendDlgItemMessage (hwnd, IDC_TAB, TCM_GETITEMCOUNT, 0, 0); i++)
|
||||
{
|
||||
INT listview_id = (INT)_r_tab_getlparam (hwnd, IDC_TAB, i);
|
||||
|
||||
if (listview_id == page_id)
|
||||
{
|
||||
_r_tab_selectitem (hwnd, IDC_TAB, i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
_app_settab_id (hwnd, IDC_APPS_PROFILE);
|
||||
}
|
||||
|
||||
UINT _app_getinterfacestatelocale (ENUM_INSTALL_TYPE install_type)
|
||||
{
|
||||
if (install_type == InstallEnabled)
|
||||
return IDS_STATUS_FILTERS_ACTIVE;
|
||||
|
||||
else if (install_type == InstallEnabledTemporary)
|
||||
return IDS_STATUS_FILTERS_ACTIVE_TEMP;
|
||||
|
||||
// InstallDisabled
|
||||
return IDS_STATUS_FILTERS_INACTIVE;
|
||||
}
|
||||
|
||||
BOOLEAN _app_initinterfacestate (HWND hwnd, BOOLEAN is_forced)
|
||||
{
|
||||
if (!hwnd)
|
||||
return FALSE;
|
||||
|
||||
if (is_forced || !!SendDlgItemMessage (config.hrebar, IDC_TOOLBAR, TB_ISBUTTONENABLED, IDM_TRAY_START, 0))
|
||||
{
|
||||
SendDlgItemMessage (config.hrebar, IDC_TOOLBAR, TB_ENABLEBUTTON, IDM_TRAY_START, MAKELPARAM (FALSE, 0));
|
||||
SendDlgItemMessage (config.hrebar, IDC_TOOLBAR, TB_ENABLEBUTTON, IDM_REFRESH, MAKELPARAM (FALSE, 0));
|
||||
|
||||
_r_status_settextformat (hwnd, IDC_STATUSBAR, 0, L"%s...", app.LocaleString (IDS_STATUS_FILTERS_PROCESSING));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
VOID _app_restoreinterfacestate (HWND hwnd, BOOLEAN is_enabled)
|
||||
{
|
||||
if (!is_enabled)
|
||||
return;
|
||||
|
||||
SendDlgItemMessage (config.hrebar, IDC_TOOLBAR, TB_ENABLEBUTTON, IDM_TRAY_START, MAKELPARAM (TRUE, 0));
|
||||
SendDlgItemMessage (config.hrebar, IDC_TOOLBAR, TB_ENABLEBUTTON, IDM_REFRESH, MAKELPARAM (TRUE, 0));
|
||||
|
||||
ENUM_INSTALL_TYPE install_type = _wfp_isfiltersinstalled ();
|
||||
|
||||
_r_status_settext (hwnd, IDC_STATUSBAR, 0, app.LocaleString (_app_getinterfacestatelocale (install_type)));
|
||||
}
|
||||
|
||||
VOID _app_setinterfacestate (HWND hwnd)
|
||||
{
|
||||
ENUM_INSTALL_TYPE install_type = _wfp_isfiltersinstalled ();
|
||||
|
||||
BOOLEAN is_filtersinstalled = (install_type != InstallDisabled);
|
||||
INT icon_id = is_filtersinstalled ? IDI_ACTIVE : IDI_INACTIVE;
|
||||
UINT string_id = is_filtersinstalled ? IDS_TRAY_STOP : IDS_TRAY_START;
|
||||
|
||||
HICON hico_sm = app.GetSharedImage (app.GetHINSTANCE (), icon_id, _r_dc_getsystemmetrics (hwnd, SM_CXSMICON));
|
||||
HICON hico_big = app.GetSharedImage (app.GetHINSTANCE (), icon_id, _r_dc_getsystemmetrics (hwnd, SM_CXICON));
|
||||
|
||||
SendMessage (hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hico_sm);
|
||||
SendMessage (hwnd, WM_SETICON, ICON_BIG, (LPARAM)hico_big);
|
||||
|
||||
//SendDlgItemMessage (hwnd, IDC_STATUSBAR, SB_SETICON, 0, (LPARAM)hico_sm);
|
||||
|
||||
if (!_wfp_isfiltersapplying ())
|
||||
_r_status_settext (hwnd, IDC_STATUSBAR, 0, app.LocaleString (_app_getinterfacestatelocale (install_type)));
|
||||
|
||||
_r_toolbar_setbutton (config.hrebar, IDC_TOOLBAR, IDM_TRAY_START, app.LocaleString (string_id), BTNS_BUTTON | BTNS_AUTOSIZE | BTNS_SHOWTEXT, 0, is_filtersinstalled ? 1 : 0);
|
||||
|
||||
_r_tray_setinfo (hwnd, UID, hico_sm, APP_NAME);
|
||||
}
|
||||
|
||||
VOID _app_listviewresize (HWND hwnd, INT listview_id, BOOLEAN is_forced)
|
||||
{
|
||||
if (!listview_id || (!is_forced && !app.ConfigGetBoolean (L"AutoSizeColumns", TRUE)))
|
||||
return;
|
||||
|
||||
INT column_count = _r_listview_getcolumncount (hwnd, listview_id);
|
||||
|
||||
if (!column_count)
|
||||
return;
|
||||
|
||||
RECT rc_client;
|
||||
PR_STRING columnText;
|
||||
PR_STRING itemText;
|
||||
HWND hlistview;
|
||||
HWND hheader;
|
||||
HDC hdc_listview;
|
||||
HDC hdc_header;
|
||||
INT column_width;
|
||||
INT text_width;
|
||||
INT calculated_width;
|
||||
INT column_general_id;
|
||||
INT total_width;
|
||||
INT max_width;
|
||||
INT spacing;
|
||||
BOOLEAN is_tableview;
|
||||
|
||||
hlistview = GetDlgItem (hwnd, listview_id);
|
||||
hheader = (HWND)SendMessage (hlistview, LVM_GETHEADER, 0, 0);
|
||||
|
||||
GetClientRect (hlistview, &rc_client);
|
||||
|
||||
// get device context and fix font set
|
||||
hdc_listview = GetDC (hlistview);
|
||||
hdc_header = GetDC (hheader);
|
||||
|
||||
if (hdc_listview)
|
||||
SelectObject (hdc_listview, (HFONT)SendMessage (hlistview, WM_GETFONT, 0, 0)); // fix
|
||||
|
||||
if (hdc_header)
|
||||
SelectObject (hdc_header, (HFONT)SendMessage (hheader, WM_GETFONT, 0, 0)); // fix
|
||||
|
||||
calculated_width = 0;
|
||||
column_general_id = 0; // set general column id
|
||||
|
||||
is_tableview = ((INT)SendMessage (hlistview, LVM_GETVIEW, 0, 0) == LV_VIEW_DETAILS);
|
||||
|
||||
total_width = _r_calc_rectwidth (INT, &rc_client);
|
||||
|
||||
max_width = _r_dc_getdpi (hwnd, 158);
|
||||
spacing = _r_dc_getsystemmetrics (hwnd, SM_CXSMICON);
|
||||
|
||||
for (INT i = 0; i < column_count; i++)
|
||||
{
|
||||
if (i == column_general_id)
|
||||
continue;
|
||||
|
||||
// get column text width
|
||||
columnText = _r_listview_getcolumntext (hwnd, listview_id, i);
|
||||
|
||||
if (!columnText)
|
||||
continue;
|
||||
|
||||
column_width = _r_dc_fontwidth (hdc_header, _r_obj_getstring (columnText), _r_obj_getstringlength (columnText)) + spacing;
|
||||
|
||||
if (column_width >= max_width)
|
||||
{
|
||||
column_width = max_width;
|
||||
}
|
||||
else
|
||||
{
|
||||
// calculate max width of listview subitems (only for details view)
|
||||
if (is_tableview)
|
||||
{
|
||||
for (INT j = 0; j < _r_listview_getitemcount (hwnd, listview_id, FALSE); j++)
|
||||
{
|
||||
itemText = _r_listview_getitemtext (hwnd, listview_id, j, i);
|
||||
|
||||
if (itemText)
|
||||
{
|
||||
text_width = _r_dc_fontwidth (hdc_listview, _r_obj_getstring (itemText), _r_obj_getstringlength (itemText)) + spacing;
|
||||
_r_obj_dereference (itemText);
|
||||
|
||||
// do not continue reaching higher and higher values for performance reason!
|
||||
if (text_width >= max_width)
|
||||
{
|
||||
column_width = max_width;
|
||||
break;
|
||||
}
|
||||
|
||||
if (text_width > column_width)
|
||||
column_width = text_width;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_r_listview_setcolumn (hwnd, listview_id, i, NULL, column_width);
|
||||
|
||||
calculated_width += column_width;
|
||||
|
||||
_r_obj_dereference (columnText);
|
||||
}
|
||||
|
||||
// set general column width
|
||||
_r_listview_setcolumn (hwnd, listview_id, column_general_id, NULL, max (total_width - calculated_width, max_width));
|
||||
|
||||
if (hdc_listview)
|
||||
ReleaseDC (hlistview, hdc_listview);
|
||||
|
||||
if (hdc_header)
|
||||
ReleaseDC (hheader, hdc_header);
|
||||
}
|
||||
|
||||
VOID _app_listviewsetview (HWND hwnd, INT listview_id)
|
||||
{
|
||||
BOOLEAN is_mainview = (listview_id >= IDC_APPS_PROFILE) && (listview_id <= IDC_RULES_CUSTOM);
|
||||
INT view_type = is_mainview ? _r_calc_clamp (INT, app.ConfigGetInteger (L"ViewType", LV_VIEW_DETAILS), LV_VIEW_ICON, LV_VIEW_MAX) : LV_VIEW_DETAILS;
|
||||
INT icons_size = is_mainview ? _r_calc_clamp (INT, app.ConfigGetInteger (L"IconSize", SHIL_SYSSMALL), SHIL_LARGE, SHIL_LAST) : SHIL_SYSSMALL;
|
||||
HIMAGELIST himg = NULL;
|
||||
|
||||
if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM)
|
||||
{
|
||||
if (icons_size == SHIL_SMALL || icons_size == SHIL_SYSSMALL)
|
||||
himg = config.himg_rules_small;
|
||||
|
||||
else
|
||||
himg = config.himg_rules_large;
|
||||
}
|
||||
else
|
||||
{
|
||||
SHGetImageList (icons_size, IID_IImageList2, (PVOID*)&himg);
|
||||
}
|
||||
|
||||
if (himg)
|
||||
{
|
||||
SendDlgItemMessage (hwnd, listview_id, LVM_SETIMAGELIST, LVSIL_NORMAL, (LPARAM)himg);
|
||||
SendDlgItemMessage (hwnd, listview_id, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)himg);
|
||||
}
|
||||
|
||||
SendDlgItemMessage (hwnd, listview_id, LVM_SETVIEW, (WPARAM)view_type, 0);
|
||||
SendDlgItemMessage (hwnd, listview_id, LVM_SCROLL, 0, (LPARAM)GetScrollPos (GetDlgItem (hwnd, listview_id), SB_VERT)); // HACK!!!
|
||||
}
|
||||
|
||||
VOID _app_listviewsetfont (HWND hwnd, INT listview_id, BOOLEAN is_redraw)
|
||||
{
|
||||
LOGFONT lf = {0};
|
||||
|
||||
if (is_redraw || !config.hfont)
|
||||
{
|
||||
SAFE_DELETE_OBJECT (config.hfont);
|
||||
|
||||
app.ConfigGetFont (L"Font", hwnd, &lf);
|
||||
|
||||
config.hfont = CreateFontIndirect (&lf);
|
||||
}
|
||||
|
||||
if (config.hfont)
|
||||
SendDlgItemMessage (hwnd, listview_id, WM_SETFONT, (WPARAM)config.hfont, TRUE);
|
||||
}
|
||||
|
||||
INT CALLBACK _app_listviewcompare_callback (LPARAM lparam1, LPARAM lparam2, LPARAM lparam)
|
||||
{
|
||||
HWND hlistview = (HWND)lparam;
|
||||
HWND hparent = GetParent (hlistview);
|
||||
INT listview_id = GetDlgCtrlID (hlistview);
|
||||
|
||||
INT item1 = _app_getposition (hparent, listview_id, lparam1);
|
||||
INT item2 = _app_getposition (hparent, listview_id, lparam2);
|
||||
|
||||
if (item1 == INVALID_INT || item2 == INVALID_INT)
|
||||
return 0;
|
||||
|
||||
WCHAR configName[128];
|
||||
_r_str_printf (configName, RTL_NUMBER_OF (configName), L"listview\\%04" TEXT (PRIX32), listview_id);
|
||||
|
||||
INT column_id = app.ConfigGetInteger (L"SortColumn", 0, configName);
|
||||
BOOLEAN is_descend = app.ConfigGetBoolean (L"SortIsDescending", FALSE, configName);
|
||||
|
||||
INT result = 0;
|
||||
|
||||
if ((SendMessage (hlistview, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) & LVS_EX_CHECKBOXES) != 0)
|
||||
{
|
||||
BOOLEAN is_checked1 = _r_listview_isitemchecked (hparent, listview_id, item1);
|
||||
BOOLEAN is_checked2 = _r_listview_isitemchecked (hparent, listview_id, item2);
|
||||
|
||||
if (is_checked1 != is_checked2)
|
||||
{
|
||||
if (is_checked1 && !is_checked2)
|
||||
result = is_descend ? 1 : -1;
|
||||
|
||||
else if (!is_checked1 && is_checked2)
|
||||
result = is_descend ? -1 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!result)
|
||||
{
|
||||
// timestamp sorting
|
||||
if ((listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) && column_id == 1)
|
||||
{
|
||||
time_t* timestamp1 = (time_t*)_app_getappinfo (lparam1, InfoTimestampPtr);
|
||||
time_t* timestamp2 = (time_t*)_app_getappinfo (lparam2, InfoTimestampPtr);
|
||||
|
||||
if (timestamp1 && timestamp2)
|
||||
{
|
||||
if ((*timestamp1) < (*timestamp2))
|
||||
result = -1;
|
||||
|
||||
else if ((*timestamp1) > (*timestamp2))
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!result)
|
||||
{
|
||||
PR_STRING itemText1 = _r_listview_getitemtext (hparent, listview_id, item1, column_id);
|
||||
PR_STRING itemText2 = _r_listview_getitemtext (hparent, listview_id, item2, column_id);
|
||||
|
||||
if (itemText1 && itemText2)
|
||||
{
|
||||
result = _r_str_compare_logical (
|
||||
itemText1->Buffer,
|
||||
itemText2->Buffer
|
||||
);
|
||||
}
|
||||
|
||||
if (itemText1)
|
||||
_r_obj_dereference (itemText1);
|
||||
|
||||
if (itemText2)
|
||||
_r_obj_dereference (itemText2);
|
||||
}
|
||||
|
||||
return is_descend ? -result : result;
|
||||
}
|
||||
|
||||
VOID _app_listviewsort (HWND hwnd, INT listview_id, INT column_id, BOOLEAN is_notifycode)
|
||||
{
|
||||
HWND hlistview = GetDlgItem (hwnd, listview_id);
|
||||
|
||||
if (!hlistview)
|
||||
return;
|
||||
|
||||
if ((GetWindowLongPtr (hlistview, GWL_STYLE) & (LVS_NOSORTHEADER | LVS_OWNERDATA)) != 0)
|
||||
return;
|
||||
|
||||
INT column_count = _r_listview_getcolumncount (hwnd, listview_id);
|
||||
|
||||
if (!column_count)
|
||||
return;
|
||||
|
||||
WCHAR configName[128];
|
||||
_r_str_printf (configName, RTL_NUMBER_OF (configName), L"listview\\%04" TEXT (PRIX32), listview_id);
|
||||
|
||||
BOOLEAN is_descend = app.ConfigGetBoolean (L"SortIsDescending", FALSE, configName);
|
||||
|
||||
if (is_notifycode)
|
||||
is_descend = !is_descend;
|
||||
|
||||
if (column_id == INVALID_INT)
|
||||
column_id = app.ConfigGetInteger (L"SortColumn", 0, configName);
|
||||
|
||||
column_id = _r_calc_clamp (INT, column_id, 0, column_count - 1); // set range
|
||||
|
||||
if (is_notifycode)
|
||||
{
|
||||
app.ConfigSetBoolean (L"SortIsDescending", is_descend, configName);
|
||||
app.ConfigSetInteger (L"SortColumn", column_id, configName);
|
||||
}
|
||||
|
||||
for (INT i = 0; i < column_count; i++)
|
||||
_r_listview_setcolumnsortindex (hwnd, listview_id, i, 0);
|
||||
|
||||
_r_listview_setcolumnsortindex (hwnd, listview_id, column_id, is_descend ? -1 : 1);
|
||||
|
||||
SendMessage (hlistview, LVM_SORTITEMS, (WPARAM)hlistview, (LPARAM)&_app_listviewcompare_callback);
|
||||
}
|
||||
|
||||
VOID _app_refreshgroups (HWND hwnd, INT listview_id)
|
||||
{
|
||||
UINT group1_title;
|
||||
UINT group2_title;
|
||||
UINT group3_title;
|
||||
|
||||
if (!SendDlgItemMessage (hwnd, listview_id, LVM_ISGROUPVIEWENABLED, 0, 0))
|
||||
return;
|
||||
|
||||
if (listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP)
|
||||
{
|
||||
group1_title = IDS_GROUP_ALLOWED;
|
||||
group2_title = IDS_GROUP_SPECIAL_APPS;
|
||||
group3_title = IDS_GROUP_BLOCKED;
|
||||
}
|
||||
else if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM)
|
||||
{
|
||||
group1_title = IDS_GROUP_ENABLED;
|
||||
group2_title = IDS_GROUP_SPECIAL;
|
||||
group3_title = IDS_GROUP_DISABLED;
|
||||
}
|
||||
else if (listview_id == IDC_RULE_APPS_ID)
|
||||
{
|
||||
group1_title = IDS_TAB_APPS;
|
||||
group2_title = IDS_TAB_SERVICES;
|
||||
group3_title = IDS_TAB_PACKAGES;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
INT total_count = _r_listview_getitemcount (hwnd, listview_id, FALSE);
|
||||
|
||||
INT group1_count = 0;
|
||||
INT group2_count = 0;
|
||||
INT group3_count = 0;
|
||||
|
||||
for (INT i = 0; i < total_count; i++)
|
||||
{
|
||||
if (listview_id == IDC_RULE_APPS_ID)
|
||||
{
|
||||
if (_r_listview_isitemchecked (hwnd, listview_id, i))
|
||||
{
|
||||
group1_count = group2_count = group3_count += 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LVITEM lvi = {0};
|
||||
|
||||
lvi.mask = LVIF_GROUPID;
|
||||
lvi.iItem = i;
|
||||
|
||||
if (SendDlgItemMessage (hwnd, listview_id, LVM_GETITEM, 0, (LPARAM)&lvi))
|
||||
{
|
||||
if (lvi.iGroupId == 2)
|
||||
group3_count += 1;
|
||||
|
||||
else if (lvi.iGroupId == 1)
|
||||
group2_count += 1;
|
||||
|
||||
else
|
||||
group1_count += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
WCHAR groupString1[128] = {0};
|
||||
WCHAR groupString2[128] = {0};
|
||||
WCHAR groupString3[128] = {0};
|
||||
PR_STRING localizedString = NULL;
|
||||
|
||||
if (total_count)
|
||||
{
|
||||
_r_str_printf (groupString1, RTL_NUMBER_OF (groupString1), L" (%d/%d)", group1_count, total_count);
|
||||
_r_str_printf (groupString2, RTL_NUMBER_OF (groupString2), L" (%d/%d)", group2_count, total_count);
|
||||
_r_str_printf (groupString3, RTL_NUMBER_OF (groupString3), L" (%d/%d)", group3_count, total_count);
|
||||
}
|
||||
|
||||
_r_obj_movereference (&localizedString, _r_format_string (L"%s%s", app.LocaleString (group1_title), groupString1));
|
||||
_r_listview_setgroup (hwnd, listview_id, 0, _r_obj_getstringorempty (localizedString), 0, 0);
|
||||
|
||||
_r_obj_movereference (&localizedString, _r_format_string (L"%s%s", app.LocaleString (group2_title), groupString2));
|
||||
_r_listview_setgroup (hwnd, listview_id, 1, _r_obj_getstringorempty (localizedString), 0, 0);
|
||||
|
||||
_r_obj_movereference (&localizedString, _r_format_string (L"%s%s", app.LocaleString (group3_title), groupString3));
|
||||
_r_listview_setgroup (hwnd, listview_id, 2, _r_obj_getstringorempty (localizedString), 0, 0);
|
||||
|
||||
SAFE_DELETE_REFERENCE (localizedString);
|
||||
}
|
||||
|
||||
VOID _app_refreshstatus (HWND hwnd, INT listview_id)
|
||||
{
|
||||
PITEM_STATUS pstatus = (PITEM_STATUS)_r_mem_allocatezero (sizeof (ITEM_STATUS));
|
||||
_app_getcount (pstatus);
|
||||
|
||||
HWND hstatus = GetDlgItem (hwnd, IDC_STATUSBAR);
|
||||
HDC hdc = GetDC (hstatus);
|
||||
|
||||
// item count
|
||||
if (hdc)
|
||||
{
|
||||
SelectObject (hdc, (HFONT)SendMessage (hstatus, WM_GETFONT, 0, 0)); // fix
|
||||
|
||||
const INT parts_count = 3;
|
||||
INT spacing = _r_dc_getdpi (hwnd, 12);
|
||||
|
||||
PR_STRING text[parts_count] = {0};
|
||||
INT parts[parts_count] = {0};
|
||||
LONG size[parts_count] = {0};
|
||||
LONG lay = 0;
|
||||
|
||||
for (INT i = 0; i < parts_count; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
if (pstatus)
|
||||
text[i] = _r_format_string (L"%s: %" TEXT (PR_SIZE_T), app.LocaleString (IDS_STATUS_UNUSED_APPS), pstatus->apps_unused_count);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 2:
|
||||
{
|
||||
if (pstatus)
|
||||
text[i] = _r_format_string (L"%s: %" TEXT (PR_SIZE_T), app.LocaleString (IDS_STATUS_TIMER_APPS), pstatus->apps_timer_count);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i)
|
||||
{
|
||||
size[i] = _r_dc_fontwidth (hdc, _r_obj_getstringorempty (text[i]), _r_obj_getstringlength (text[i])) + spacing;
|
||||
lay += size[i];
|
||||
}
|
||||
}
|
||||
|
||||
RECT rc_client = {0};
|
||||
GetClientRect (hstatus, &rc_client);
|
||||
|
||||
parts[0] = _r_calc_rectwidth (INT, &rc_client) - lay - _r_dc_getsystemmetrics (hwnd, SM_CXVSCROLL) - (_r_dc_getsystemmetrics (hwnd, SM_CXBORDER) * 2);
|
||||
parts[1] = parts[0] + size[1];
|
||||
parts[2] = parts[1] + size[2];
|
||||
|
||||
SendMessage (hstatus, SB_SETPARTS, parts_count, (LPARAM)parts);
|
||||
|
||||
for (INT i = 1; i < parts_count; i++)
|
||||
{
|
||||
if (text[i])
|
||||
{
|
||||
_r_status_settext (hwnd, IDC_STATUSBAR, i, _r_obj_getstringorempty (text[i]));
|
||||
_r_obj_dereference (text[i]);
|
||||
}
|
||||
}
|
||||
|
||||
ReleaseDC (hstatus, hdc);
|
||||
}
|
||||
|
||||
// group information
|
||||
if (listview_id)
|
||||
{
|
||||
if (listview_id == INVALID_INT)
|
||||
listview_id = (INT)_r_tab_getlparam (hwnd, IDC_TAB, INVALID_INT);
|
||||
|
||||
_app_refreshgroups (hwnd, listview_id);
|
||||
}
|
||||
|
||||
if (pstatus)
|
||||
_r_mem_free (pstatus);
|
||||
}
|
||||
|
||||
INT _app_getposition (HWND hwnd, INT listview_id, LPARAM lparam)
|
||||
{
|
||||
LVFINDINFO lvfi = {0};
|
||||
|
||||
lvfi.flags = LVFI_PARAM;
|
||||
lvfi.lParam = lparam;
|
||||
|
||||
return (INT)SendDlgItemMessage (hwnd, listview_id, LVM_FINDITEM, (WPARAM)INVALID_INT, (LPARAM)&lvfi);
|
||||
}
|
||||
|
||||
VOID _app_showitem (HWND hwnd, INT listview_id, INT item, INT scroll_pos)
|
||||
{
|
||||
HWND hlistview = GetDlgItem (hwnd, listview_id);
|
||||
|
||||
if (!hlistview)
|
||||
return;
|
||||
|
||||
_app_settab_id (hwnd, listview_id);
|
||||
|
||||
INT total_count = _r_listview_getitemcount (hwnd, listview_id, FALSE);
|
||||
|
||||
if (!total_count)
|
||||
return;
|
||||
|
||||
if (item != INVALID_INT)
|
||||
{
|
||||
item = _r_calc_clamp (INT, item, 0, total_count - 1);
|
||||
|
||||
PostMessage (hlistview, LVM_ENSUREVISIBLE, (WPARAM)item, TRUE); // ensure item visible
|
||||
|
||||
ListView_SetItemState (hlistview, INVALID_INT, 0, LVIS_SELECTED | LVIS_FOCUSED); // deselect all
|
||||
ListView_SetItemState (hlistview, (WPARAM)item, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); // select item
|
||||
}
|
||||
|
||||
if (scroll_pos > 0)
|
||||
PostMessage (hlistview, LVM_SCROLL, 0, (LPARAM)scroll_pos); // restore scroll position
|
||||
}
|
||||
|
||||
LONG_PTR _app_nmcustdraw_listview (LPNMLVCUSTOMDRAW lpnmlv)
|
||||
{
|
||||
if (!app.ConfigGetBoolean (L"IsEnableHighlighting", TRUE))
|
||||
return CDRF_DODEFAULT;
|
||||
|
||||
switch (lpnmlv->nmcd.dwDrawStage)
|
||||
{
|
||||
case CDDS_PREPAINT:
|
||||
{
|
||||
return CDRF_NOTIFYITEMDRAW;
|
||||
}
|
||||
|
||||
case CDDS_ITEMPREPAINT:
|
||||
{
|
||||
INT view_type = (INT)SendMessage (lpnmlv->nmcd.hdr.hwndFrom, LVM_GETVIEW, 0, 0);
|
||||
BOOLEAN is_tableview = (view_type == LV_VIEW_DETAILS || view_type == LV_VIEW_SMALLICON || view_type == LV_VIEW_TILE);
|
||||
|
||||
INT listview_id = PtrToInt ((PVOID)lpnmlv->nmcd.hdr.idFrom);
|
||||
|
||||
if ((listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) || listview_id == IDC_RULE_APPS_ID || listview_id == IDC_NETWORK || listview_id == IDC_LOG)
|
||||
{
|
||||
SIZE_T app_hash;
|
||||
|
||||
if (listview_id == IDC_NETWORK)
|
||||
{
|
||||
app_hash = _app_getnetworkapp (lpnmlv->nmcd.lItemlParam); // initialize
|
||||
}
|
||||
else if (listview_id == IDC_LOG)
|
||||
{
|
||||
app_hash = _app_getlogapp (lpnmlv->nmcd.lItemlParam); // initialize
|
||||
}
|
||||
else
|
||||
{
|
||||
app_hash = lpnmlv->nmcd.lItemlParam;
|
||||
}
|
||||
|
||||
if (app_hash)
|
||||
{
|
||||
COLORREF new_clr = _app_getappcolor (listview_id, app_hash);
|
||||
|
||||
if (new_clr)
|
||||
{
|
||||
lpnmlv->clrText = _r_dc_getcolorbrightness (new_clr);
|
||||
lpnmlv->clrTextBk = new_clr;
|
||||
|
||||
if (is_tableview)
|
||||
_r_dc_fillrect (lpnmlv->nmcd.hdc, &lpnmlv->nmcd.rc, new_clr);
|
||||
|
||||
return CDRF_NEWFONT;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM)
|
||||
{
|
||||
SIZE_T rule_idx = lpnmlv->nmcd.lItemlParam;
|
||||
|
||||
COLORREF new_clr = _app_getrulecolor (listview_id, rule_idx);
|
||||
|
||||
if (new_clr)
|
||||
{
|
||||
lpnmlv->clrText = _r_dc_getcolorbrightness (new_clr);
|
||||
lpnmlv->clrTextBk = new_clr;
|
||||
|
||||
if (is_tableview)
|
||||
_r_dc_fillrect (lpnmlv->nmcd.hdc, &lpnmlv->nmcd.rc, new_clr);
|
||||
|
||||
return CDRF_NEWFONT;
|
||||
}
|
||||
|
||||
}
|
||||
else if (listview_id == IDC_COLORS)
|
||||
{
|
||||
PITEM_COLOR ptr_clr = (PITEM_COLOR)lpnmlv->nmcd.lItemlParam;
|
||||
|
||||
if (ptr_clr)
|
||||
{
|
||||
COLORREF new_clr = ptr_clr->new_clr ? ptr_clr->new_clr : ptr_clr->default_clr;
|
||||
|
||||
if (new_clr)
|
||||
{
|
||||
lpnmlv->clrText = _r_dc_getcolorbrightness (new_clr);
|
||||
lpnmlv->clrTextBk = new_clr;
|
||||
|
||||
if (is_tableview)
|
||||
_r_dc_fillrect (lpnmlv->nmcd.hdc, &lpnmlv->nmcd.rc, lpnmlv->clrTextBk);
|
||||
|
||||
return CDRF_NEWFONT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return CDRF_DODEFAULT;
|
||||
}
|
||||
|
||||
LONG_PTR _app_nmcustdraw_toolbar (LPNMLVCUSTOMDRAW lpnmlv)
|
||||
{
|
||||
switch (lpnmlv->nmcd.dwDrawStage)
|
||||
{
|
||||
case CDDS_PREPAINT:
|
||||
{
|
||||
return CDRF_NOTIFYITEMDRAW | CDRF_NOTIFYPOSTPAINT;
|
||||
}
|
||||
|
||||
case CDDS_ITEMPREPAINT:
|
||||
{
|
||||
TBBUTTONINFO tbi = {0};
|
||||
|
||||
tbi.cbSize = sizeof (tbi);
|
||||
tbi.dwMask = TBIF_STYLE | TBIF_STATE | TBIF_IMAGE;
|
||||
|
||||
if ((INT)SendMessage (lpnmlv->nmcd.hdr.hwndFrom, TB_GETBUTTONINFO, (WPARAM)lpnmlv->nmcd.dwItemSpec, (LPARAM)&tbi) == INVALID_INT)
|
||||
break;
|
||||
|
||||
if ((tbi.fsState & TBSTATE_ENABLED) == 0)
|
||||
{
|
||||
INT icon_size_x = 0;
|
||||
INT icon_size_y = 0;
|
||||
|
||||
SelectObject (lpnmlv->nmcd.hdc, (HFONT)SendMessage (lpnmlv->nmcd.hdr.hwndFrom, WM_GETFONT, 0, 0)); // fix
|
||||
|
||||
SetBkMode (lpnmlv->nmcd.hdc, TRANSPARENT);
|
||||
SetTextColor (lpnmlv->nmcd.hdc, GetSysColor (COLOR_GRAYTEXT));
|
||||
|
||||
if (tbi.iImage != I_IMAGENONE)
|
||||
{
|
||||
HIMAGELIST himglist = (HIMAGELIST)SendMessage (lpnmlv->nmcd.hdr.hwndFrom, TB_GETIMAGELIST, 0, 0);
|
||||
|
||||
if (himglist)
|
||||
{
|
||||
DWORD padding = (DWORD)SendMessage (lpnmlv->nmcd.hdr.hwndFrom, TB_GETPADDING, 0, 0);
|
||||
UINT rebar_height = (UINT)SendMessage (GetParent (lpnmlv->nmcd.hdr.hwndFrom), RB_GETBARHEIGHT, 0, 0);
|
||||
|
||||
ImageList_GetIconSize (himglist, &icon_size_x, &icon_size_y);
|
||||
|
||||
IMAGELISTDRAWPARAMS ildp = {0};
|
||||
|
||||
ildp.cbSize = sizeof (ildp);
|
||||
ildp.himl = himglist;
|
||||
ildp.hdcDst = lpnmlv->nmcd.hdc;
|
||||
ildp.i = tbi.iImage;
|
||||
ildp.x = lpnmlv->nmcd.rc.left + (LOWORD (padding) / 2);
|
||||
ildp.y = (rebar_height / 2) - (icon_size_y / 2);
|
||||
ildp.fState = ILS_SATURATE; // grayscale
|
||||
ildp.fStyle = ILD_NORMAL | ILD_ASYNC;
|
||||
|
||||
ImageList_DrawIndirect (&ildp);
|
||||
}
|
||||
}
|
||||
|
||||
if ((tbi.fsStyle & BTNS_SHOWTEXT) == BTNS_SHOWTEXT)
|
||||
{
|
||||
WCHAR text[MAX_PATH] = {0};
|
||||
SendMessage (lpnmlv->nmcd.hdr.hwndFrom, TB_GETBUTTONTEXT, (WPARAM)lpnmlv->nmcd.dwItemSpec, (LPARAM)text);
|
||||
|
||||
if (tbi.iImage != I_IMAGENONE)
|
||||
lpnmlv->nmcd.rc.left += icon_size_x;
|
||||
|
||||
DrawTextEx (lpnmlv->nmcd.hdc, text, (INT)_r_str_length (text), &lpnmlv->nmcd.rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_HIDEPREFIX, NULL);
|
||||
}
|
||||
|
||||
return CDRF_SKIPDEFAULT;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return CDRF_DODEFAULT;
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
EXTERN_C const IID IID_IImageList2;
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_gettooltipbylparam (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ LONG_PTR lparam
|
||||
);
|
||||
|
||||
BOOLEAN _app_settab_id (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT page_id
|
||||
);
|
||||
|
||||
LPCWSTR _app_getstateaction (
|
||||
_In_ ENUM_INSTALL_TYPE install_type
|
||||
);
|
||||
|
||||
HBITMAP _app_getstatebitmap (
|
||||
_In_ ENUM_INSTALL_TYPE install_type
|
||||
);
|
||||
|
||||
LONG _app_getstateicon (
|
||||
_In_ ENUM_INSTALL_TYPE install_type
|
||||
);
|
||||
|
||||
LPCWSTR _app_getstatelocale (
|
||||
_In_ ENUM_INSTALL_TYPE install_type
|
||||
);
|
||||
|
||||
BOOLEAN _app_initinterfacestate (
|
||||
_In_opt_ HWND hwnd,
|
||||
_In_ BOOLEAN is_forced
|
||||
);
|
||||
|
||||
VOID _app_restoreinterfacestate (
|
||||
_In_opt_ HWND hwnd,
|
||||
_In_ BOOLEAN is_enabled
|
||||
);
|
||||
|
||||
VOID _app_setinterfacestate (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
VOID _app_settrayicon (
|
||||
_In_ HWND hwnd,
|
||||
_In_ ENUM_INSTALL_TYPE install_type
|
||||
);
|
||||
|
||||
VOID _app_imagelist_init (
|
||||
_In_opt_ HWND hwnd,
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
HFONT _app_createfont (
|
||||
_Inout_ PLOGFONT logfont,
|
||||
_In_opt_ LONG size,
|
||||
_In_ BOOLEAN is_underline,
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
VOID _app_windowloadfont (
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
VOID _app_toolbar_init (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
VOID _app_toolbar_resize (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
VOID _app_toolbar_setfont ();
|
||||
|
||||
VOID _app_window_resize (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LPCRECT rect,
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
VOID _app_refreshstatus (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
@@ -1,30 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
EXTERN_C const IID IID_IImageList2;
|
||||
|
||||
VOID _app_settab_id (HWND hwnd, INT page_id);
|
||||
|
||||
UINT _app_getinterfacestatelocale (ENUM_INSTALL_TYPE install_type);
|
||||
BOOLEAN _app_initinterfacestate (HWND hwnd, BOOLEAN is_forced);
|
||||
VOID _app_restoreinterfacestate (HWND hwnd, BOOLEAN is_enabled);
|
||||
VOID _app_setinterfacestate (HWND hwnd);
|
||||
|
||||
VOID _app_listviewresize (HWND hwnd, INT listview_id, BOOLEAN is_forced);
|
||||
VOID _app_listviewsetview (HWND hwnd, INT listview_id);
|
||||
|
||||
VOID _app_listviewsetfont (HWND hwnd, INT listview_id, BOOLEAN is_redraw);
|
||||
|
||||
INT CALLBACK _app_listviewcompare_callback (LPARAM lparam1, LPARAM lparam2, LPARAM lparam);
|
||||
VOID _app_listviewsort (HWND hwnd, INT listview_id, INT column_id, BOOLEAN is_notifycode);
|
||||
|
||||
VOID _app_refreshgroups (HWND hwnd, INT listview_id);
|
||||
VOID _app_refreshstatus (HWND hwnd, INT listview_id);
|
||||
|
||||
INT _app_getposition (HWND hwnd, INT listview_id, LPARAM lparam);
|
||||
VOID _app_showitem (HWND hwnd, INT listview_id, INT item, INT scroll_pos);
|
||||
|
||||
LONG_PTR _app_nmcustdraw_listview (LPNMLVCUSTOMDRAW lpnmlv);
|
||||
LONG_PTR _app_nmcustdraw_toolbar (LPNMLVCUSTOMDRAW lpnmlv);
|
||||
@@ -0,0 +1,212 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2019-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
// profile types
|
||||
typedef enum _ENUM_TYPE_XML
|
||||
{
|
||||
XML_TYPE_PROFILE = 3,
|
||||
XML_TYPE_PROFILE_INTERNAL = 4,
|
||||
} ENUM_TYPE_XML;
|
||||
|
||||
// profile versions
|
||||
typedef enum _ENUM_VERSION_XML
|
||||
{
|
||||
// v3.0.2: first major update, rule attribute "apps" now separated by "|"
|
||||
XML_VERSION_3 = 3,
|
||||
|
||||
// v3.4: added "rules_custom" into internal profile and "os_version" for rule attributes
|
||||
XML_VERSION_4 = 4,
|
||||
|
||||
// v3.7: added hashes support, use encrypted file format and added comments for apps/rules
|
||||
XML_VERSION_5 = 5,
|
||||
|
||||
// v4.0: added file rules support, added correct encryption with password, store path with environment variables, now rules for services and drivers are separated
|
||||
XML_VERSION_6 = 6,
|
||||
} ENUM_VERSION_XML;
|
||||
|
||||
typedef struct _DB_INFORMATION
|
||||
{
|
||||
R_XML_LIBRARY xml_library;
|
||||
|
||||
PR_BYTE bytes;
|
||||
PR_BYTE hash;
|
||||
|
||||
LONG64 timestamp;
|
||||
|
||||
ENUM_VERSION_XML version;
|
||||
ENUM_TYPE_XML type;
|
||||
} DB_INFORMATION, *PDB_INFORMATION;
|
||||
|
||||
// Offset Length Description
|
||||
// ------------------------------------------
|
||||
// 0 3 FOURCC string 'SWC'
|
||||
// 4 1 Body information flag (PROFILE2_ID_PLAIN, PROFILE2_ID_COMPRESSED or PROFILE2_ID_ENCRYPTED)
|
||||
// 36 32 SHA256 checksum of the decrypted bytes
|
||||
// 68 <body> Body contained specified data
|
||||
static const BYTE profile2_fourcc[] = {
|
||||
0x53, 0x57, 0x43, // 'S', 'W', 'C'
|
||||
};
|
||||
|
||||
#define XML_VERSION_MINIMAL XML_VERSION_3
|
||||
#define XML_VERSION_CURRENT XML_VERSION_5
|
||||
#define XML_VERSION_MAXIMUM XML_VERSION_6
|
||||
|
||||
#define XML_PROFILE_FILE L"profile.xml"
|
||||
#define XML_PROFILE_INTERNAL L"profile_internal.xml"
|
||||
|
||||
#define PROFILE2_ID_PLAIN ((BYTE)(0x30))
|
||||
#define PROFILE2_ID_COMPRESSED ((BYTE)(0x31))
|
||||
#define PROFILE2_ID_ENCRYPTED ((BYTE)(0x32))
|
||||
|
||||
#define PROFILE2_KEY_DEPRECATED "Gc(j1EptodnKP?{ZT!SlMVip[fJIs&Ci3fOqjATfp@h,q0(]QVaGs5Iht3)/b:Ll"
|
||||
|
||||
#define PROFILE2_FOURCC sizeof (profile2_fourcc)
|
||||
#define PROFILE2_FOURCC_LENGTH PROFILE2_FOURCC + sizeof (BYTE)
|
||||
#define PROFILE2_SHA256_LENGTH 32UL
|
||||
#define PROFILE2_HEADER_LENGTH (PROFILE2_FOURCC_LENGTH + PROFILE2_SHA256_LENGTH)
|
||||
|
||||
_Success_ (SUCCEEDED (return))
|
||||
HRESULT _app_db_initialize (
|
||||
_Out_ PDB_INFORMATION db_info,
|
||||
_In_ BOOLEAN is_reader
|
||||
);
|
||||
|
||||
VOID _app_db_destroy (
|
||||
_Inout_ PDB_INFORMATION db_info
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_encrypt (
|
||||
_In_ PR_BYTEREF bytes,
|
||||
_Out_ PR_BYTE_PTR out_buffer
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_decrypt (
|
||||
_In_ PR_BYTEREF bytes,
|
||||
_Out_ PR_BYTE_PTR out_buffer
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_gethash (
|
||||
_In_ PR_BYTEREF bytes,
|
||||
_Out_ PR_BYTE_PTR out_buffer
|
||||
);
|
||||
|
||||
BYTE _app_getprofiletype ();
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_ishashvalid (
|
||||
_In_ PR_BYTEREF buffer,
|
||||
_In_ PR_BYTEREF hash_bytes
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_openfrombuffer (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ PR_STORAGE storage,
|
||||
_In_ ENUM_TYPE_XML type
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_openfromfile (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ PR_STRING path,
|
||||
_In_ ENUM_TYPE_XML type
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_decodebody (
|
||||
_Inout_ PDB_INFORMATION db_info
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_encodebody (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ BYTE profile_type,
|
||||
_Out_ PR_BYTE_PTR out_buffer
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_generatebody (
|
||||
_In_ BYTE profile_type,
|
||||
_In_ PR_BYTE hash_value,
|
||||
_In_ PR_BYTE buffer,
|
||||
_Out_ PR_BYTE_PTR out_buffer
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_decodebuffer (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ ENUM_TYPE_XML type
|
||||
);
|
||||
|
||||
BOOLEAN _app_db_parse (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ ENUM_TYPE_XML type
|
||||
);
|
||||
|
||||
VOID _app_db_parse_app (
|
||||
_Inout_ PDB_INFORMATION db_info
|
||||
);
|
||||
|
||||
VOID _app_db_parse_rule (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ ENUM_TYPE_DATA type
|
||||
);
|
||||
|
||||
VOID _app_db_parse_ruleconfig (
|
||||
_Inout_ PDB_INFORMATION db_info
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_savetofile (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ PR_STRING path,
|
||||
_In_ ENUM_VERSION_XML version,
|
||||
_In_ ENUM_TYPE_XML type,
|
||||
_In_ LONG64 timestamp
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_db_save_streamtofile (
|
||||
_Inout_ PDB_INFORMATION db_info,
|
||||
_In_ PR_STRING path
|
||||
);
|
||||
|
||||
VOID _app_db_save_app (
|
||||
_Inout_ PDB_INFORMATION db_info
|
||||
);
|
||||
|
||||
VOID _app_db_save_rule (
|
||||
_Inout_ PDB_INFORMATION db_info
|
||||
);
|
||||
|
||||
VOID _app_db_save_ruleconfig (
|
||||
_Inout_ PDB_INFORMATION db_info
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
LPCWSTR _app_db_getconnectionstatename (
|
||||
_In_ ULONG state
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_db_getdirectionname (
|
||||
_In_ FWP_DIRECTION direction,
|
||||
_In_ BOOLEAN is_loopback,
|
||||
_In_ BOOLEAN is_localized
|
||||
);
|
||||
LPCWSTR _app_db_getprotoname (
|
||||
_In_ ULONG proto,
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_opt_ LPCWSTR default_value
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
LPCWSTR _app_db_getservicename (
|
||||
_In_ UINT16 port,
|
||||
_In_ UINT8 proto
|
||||
);
|
||||
+1888
File diff suppressed because it is too large.
Load diff
-1115
File diff suppressed because it is too large.
Load diff
+100
@@ -0,0 +1,100 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct _EDITOR_CONTEXT
|
||||
{
|
||||
R_LAYOUT_MANAGER layout_manager;
|
||||
|
||||
HWND hwnd;
|
||||
HICON hicon;
|
||||
|
||||
union
|
||||
{
|
||||
PITEM_RULE ptr_rule;
|
||||
PITEM_APP ptr_app;
|
||||
};
|
||||
|
||||
struct
|
||||
{
|
||||
ULONG_PTR current_length;
|
||||
INT listview_id;
|
||||
INT item_id;
|
||||
};
|
||||
|
||||
INT page_id;
|
||||
|
||||
BOOLEAN is_settorules;
|
||||
} EDITOR_CONTEXT, *PEDITOR_CONTEXT;
|
||||
|
||||
FORCEINLINE VOID _app_editor_deletewindow (
|
||||
_In_ _Frees_ptr_ _Post_invalid_ PEDITOR_CONTEXT context
|
||||
)
|
||||
{
|
||||
_r_mem_free (context);
|
||||
}
|
||||
|
||||
_Ret_maybenull_
|
||||
PEDITOR_CONTEXT _app_editor_createwindow (
|
||||
_In_opt_ HWND hwnd,
|
||||
_In_ PVOID lparam,
|
||||
_In_ INT page_id,
|
||||
_In_ BOOLEAN is_settorules
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PEDITOR_CONTEXT _app_editor_getcontext (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_editor_setcontext (
|
||||
_In_ HWND hwnd,
|
||||
_In_ PEDITOR_CONTEXT context
|
||||
);
|
||||
|
||||
VOID _app_editor_addtabitem (
|
||||
_In_ HWND hwnd,
|
||||
_In_ UINT locale_id,
|
||||
_In_ INT dlg_id,
|
||||
_In_ PEDITOR_CONTEXT context
|
||||
);
|
||||
|
||||
VOID _app_editor_settabtitle (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_editor_getrulesfromlistview (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id,
|
||||
_In_ INT exclude_id
|
||||
);
|
||||
|
||||
VOID _app_editor_setrulestolistview (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id,
|
||||
_In_opt_ PR_STRING rule
|
||||
);
|
||||
|
||||
INT_PTR CALLBACK EditorRuleProc (
|
||||
_In_ HWND hwnd,
|
||||
_In_ UINT msg,
|
||||
_In_ WPARAM wparam,
|
||||
_In_ LPARAM lparam
|
||||
);
|
||||
|
||||
INT_PTR CALLBACK EditorPagesProc (
|
||||
_In_ HWND hwnd,
|
||||
_In_ UINT msg,
|
||||
_In_ WPARAM wparam,
|
||||
_In_ LPARAM lparam
|
||||
);
|
||||
|
||||
INT_PTR CALLBACK EditorProc (
|
||||
_In_ HWND hwnd,
|
||||
_In_ UINT msg,
|
||||
_In_ WPARAM wparam,
|
||||
_In_ LPARAM lparam
|
||||
);
|
||||
@@ -1,9 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
INT_PTR CALLBACK AddRuleProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
||||
|
||||
INT_PTR CALLBACK EditorPagesProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
||||
INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "routine.h"
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <ws2ipdef.h>
|
||||
#include <ws2tcpip.h>
|
||||
#include <windns.h>
|
||||
#include <mstcpip.h>
|
||||
#include <iphlpapi.h>
|
||||
#include <tcpestats.h>
|
||||
#include <aclapi.h>
|
||||
#include <dbt.h>
|
||||
#include <fwpmu.h>
|
||||
#include <mmsystem.h>
|
||||
#include <netfw.h>
|
||||
#include <shlguid.h>
|
||||
#include <shobjidl.h>
|
||||
#include <softpub.h>
|
||||
#include <subauth.h>
|
||||
#include <mscat.h>
|
||||
#include <evntrace.h>
|
||||
#include <evntcons.h>
|
||||
|
||||
#include "app.h"
|
||||
#include "rapp.h"
|
||||
#include "main.h"
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
DECLSPEC_SELECTANY STATIC_DATA config = {0};
|
||||
DECLSPEC_SELECTANY PROFILE_DATA profile_info = {0};
|
||||
|
||||
DECLSPEC_SELECTANY PR_HASHTABLE apps_table = NULL;
|
||||
DECLSPEC_SELECTANY PR_LIST rules_list = NULL;
|
||||
DECLSPEC_SELECTANY PR_HASHTABLE rules_config = NULL;
|
||||
DECLSPEC_SELECTANY PR_HASHTABLE log_table = NULL;
|
||||
|
||||
DECLSPEC_SELECTANY PR_HASHTABLE cache_information = NULL;
|
||||
DECLSPEC_SELECTANY PR_HASHTABLE cache_resolution = NULL;
|
||||
|
||||
DECLSPEC_SELECTANY PR_HASHTABLE colors_table = NULL;
|
||||
|
||||
DECLSPEC_SELECTANY PR_ARRAY filter_ids = NULL;
|
||||
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_apps = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_apply = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_rules = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_rules_config = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_loglist = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_notify = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_profile = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_transaction = PR_QUEUED_LOCK_INIT;
|
||||
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_cache_information = PR_QUEUED_LOCK_INIT;
|
||||
DECLSPEC_SELECTANY R_QUEUED_LOCK lock_cache_resolution = PR_QUEUED_LOCK_INIT;
|
||||
|
||||
DECLSPEC_SELECTANY R_WORKQUEUE file_queue = {0};
|
||||
DECLSPEC_SELECTANY R_WORKQUEUE log_queue = {0};
|
||||
DECLSPEC_SELECTANY R_WORKQUEUE resolver_queue = {0};
|
||||
DECLSPEC_SELECTANY R_WORKQUEUE resolve_notify_queue = {0};
|
||||
DECLSPEC_SELECTANY R_WORKQUEUE wfp_queue = {0};
|
||||
|
||||
DECLSPEC_SELECTANY R_FREE_LIST context_free_list = {0};
|
||||
DECLSPEC_SELECTANY R_FREE_LIST listview_free_list = {0};
|
||||
|
||||
// timers array
|
||||
DECLSPEC_SELECTANY const LONG64 timer_array[] =
|
||||
{
|
||||
2LL * 60LL, // 2 min
|
||||
5LL * 60LL, // 5 min
|
||||
10LL * 60LL, // 10 min
|
||||
30LL * 60LL, // 30 min
|
||||
1LL * 3600LL, // 1 hour
|
||||
2LL * 3600LL, // 2 hour
|
||||
4LL * 3600LL, // 4 hour
|
||||
6LL * 3600LL, // 6 hour
|
||||
12LL * 3600LL, // 12 hour
|
||||
24LL * 3600LL // 24 hour
|
||||
};
|
||||
|
||||
// dropped events callback subscription (win7+)
|
||||
#if !defined(FWP_DIRECTION_IN)
|
||||
#define FWP_DIRECTION_IN 0x00003900L
|
||||
#endif // !FWP_DIRECTION_IN
|
||||
|
||||
#if !defined(FWP_DIRECTION_OUT)
|
||||
#define FWP_DIRECTION_OUT 0x00003901L
|
||||
#endif // !FWP_DIRECTION_OUT
|
||||
|
||||
#if !defined(FWP_DIRECTION_FORWARD)
|
||||
#define FWP_DIRECTION_FORWARD 0x00003902L
|
||||
#endif // !FWP_DIRECTION_FORWARD
|
||||
|
||||
#if !defined(FWP_DIRECTION_FORWARD2)
|
||||
#define FWP_DIRECTION_FORWARD2 0x00003903L
|
||||
#endif // !FWP_DIRECTION_FORWARD2
|
||||
|
||||
#define WM_NOTIFICATION (WM_APP + 21)
|
||||
|
||||
#include "controls.h"
|
||||
#include "db.h"
|
||||
#include "editor.h"
|
||||
#include "helper.h"
|
||||
#include "icons.h"
|
||||
#include "listview.h"
|
||||
#include "log.h"
|
||||
#include "messages.h"
|
||||
#include "network.h"
|
||||
#include "notifications.h"
|
||||
#include "packages.h"
|
||||
#include "profile.h"
|
||||
#include "search.h"
|
||||
#include "security.h"
|
||||
#include "timer.h"
|
||||
#include "udpstats.h"
|
||||
#include "uwp.h"
|
||||
#include "wfp.h"
|
||||
@@ -1,84 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "routine.hpp"
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <ws2ipdef.h>
|
||||
#include <ws2tcpip.h>
|
||||
#include <windns.h>
|
||||
#include <mstcpip.h>
|
||||
#include <iphlpapi.h>
|
||||
#include <aclapi.h>
|
||||
#include <dbt.h>
|
||||
#include <fwpmu.h>
|
||||
#include <mmsystem.h>
|
||||
#include <netfw.h>
|
||||
#include <shlguid.h>
|
||||
#include <shobjidl.h>
|
||||
#include <softpub.h>
|
||||
#include <subauth.h>
|
||||
#include <wincodec.h>
|
||||
|
||||
#include "app.hpp"
|
||||
#include "rapp.hpp"
|
||||
#include "main.hpp"
|
||||
|
||||
#include "controls.hpp"
|
||||
#include "editor.hpp"
|
||||
#include "helper.hpp"
|
||||
#include "log.hpp"
|
||||
#include "notifications.hpp"
|
||||
#include "profile.hpp"
|
||||
#include "security.hpp"
|
||||
#include "timer.hpp"
|
||||
#include "wfp.hpp"
|
||||
|
||||
#include "pugiconfig.hpp"
|
||||
#include "..\..\pugixml\src\pugixml.hpp"
|
||||
|
||||
#include "resource.hpp"
|
||||
|
||||
inline rapp app;
|
||||
|
||||
inline STATIC_DATA config;
|
||||
|
||||
inline OBJECTS_APP_MAP apps;
|
||||
inline OBJECTS_APP_HELPER_MAP apps_helper;
|
||||
inline OBJECTS_RULE_VECTOR rules_arr;
|
||||
inline OBJECTS_RULE_CONFIG_MAP rules_config;
|
||||
inline OBJECTS_NETWORK_MAP network_map;
|
||||
inline OBJECTS_LOG_VECTOR log_arr;
|
||||
|
||||
inline OBJECTS_STRINGS_MAP cache_arpa;
|
||||
inline OBJECTS_STRINGS_MAP cache_signatures;
|
||||
inline OBJECTS_STRINGS_MAP cache_versions;
|
||||
inline OBJECTS_STRINGS_MAP cache_dns;
|
||||
inline OBJECTS_STRINGS_MAP cache_hosts;
|
||||
inline TYPES_MAP cache_types;
|
||||
|
||||
inline THREADS_VEC threads_pool;
|
||||
|
||||
inline std::vector<PITEM_COLOR> colors;
|
||||
inline std::vector<time_t> timers;
|
||||
|
||||
inline GUIDS_VEC filter_ids;
|
||||
|
||||
inline ITEM_LIST_HEAD log_stack;
|
||||
|
||||
inline _R_FASTLOCK lock_apply;
|
||||
inline _R_FASTLOCK lock_checkbox;
|
||||
inline _R_FASTLOCK lock_logbusy;
|
||||
inline _R_FASTLOCK lock_logthread;
|
||||
inline _R_FASTLOCK lock_transaction;
|
||||
|
||||
// dropped events callback subscription (win7+)
|
||||
#ifndef FWP_DIRECTION_IN
|
||||
#define FWP_DIRECTION_IN 0x00003900L
|
||||
#endif
|
||||
|
||||
#ifndef FWP_DIRECTION_OUT
|
||||
#define FWP_DIRECTION_OUT 0x00003901L
|
||||
#endif
|
||||
+2095
File diff suppressed because it is too large.
Load diff
-3180
File diff suppressed because it is too large.
Load diff
+243
@@ -0,0 +1,243 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct _ICON_INFORMATION
|
||||
{
|
||||
HICON app_hicon;
|
||||
HICON service_hicon;
|
||||
HICON uwp_hicon;
|
||||
|
||||
LONG app_icon_id;
|
||||
LONG service_icon_id;
|
||||
LONG uwp_icon_id;
|
||||
} ICON_INFORMATION, *PICON_INFORMATION;
|
||||
|
||||
#define FMTADDR_AS_RULE 0x0001
|
||||
#define FMTADDR_USE_PROTOCOL 0x0002
|
||||
|
||||
VOID NTAPI _app_dereferenceapp (
|
||||
_In_ PVOID entry
|
||||
);
|
||||
|
||||
VOID NTAPI _app_dereferenceappinfo (
|
||||
_In_ PVOID entry
|
||||
);
|
||||
|
||||
VOID NTAPI _app_dereferenceruleconfig (
|
||||
_In_ PVOID entry
|
||||
);
|
||||
|
||||
VOID NTAPI _app_dereferencenetwork (
|
||||
_In_ PVOID entry
|
||||
);
|
||||
|
||||
VOID NTAPI _app_dereferencelog (
|
||||
_In_ PVOID entry
|
||||
);
|
||||
|
||||
VOID NTAPI _app_dereferencerule (
|
||||
_In_ PVOID entry
|
||||
);
|
||||
|
||||
VOID _app_addcachetable (
|
||||
_Inout_ PR_HASHTABLE hashtable,
|
||||
_In_ ULONG hash_code,
|
||||
_In_ PR_QUEUED_LOCK spin_lock,
|
||||
_In_opt_ PVOID string
|
||||
);
|
||||
|
||||
BOOLEAN _app_checkipisnotlocal (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address
|
||||
);
|
||||
|
||||
BOOLEAN _app_getcachetable (
|
||||
_Inout_ PR_HASHTABLE cache_table,
|
||||
_In_ ULONG hash_code,
|
||||
_In_ PR_QUEUED_LOCK spin_lock,
|
||||
_Out_ PR_STRING_PTR string
|
||||
);
|
||||
|
||||
PR_STRING _app_formatarpa (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_formataddress (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ UINT8 proto,
|
||||
_In_ LPCVOID address,
|
||||
_In_opt_ UINT16 port,
|
||||
_In_ ULONG flags
|
||||
);
|
||||
|
||||
PR_STRING _app_formataddress_interlocked (
|
||||
_In_ volatile PVOID_PTR string,
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address
|
||||
);
|
||||
|
||||
_Success_ (NT_SUCCESS (return))
|
||||
NTSTATUS _app_formatip (
|
||||
_Out_writes_to_ (buffer_length, buffer_length) LPWSTR buffer,
|
||||
_In_ ULONG buffer_length,
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address,
|
||||
_In_ BOOLEAN is_checkempty
|
||||
);
|
||||
|
||||
PR_STRING _app_formatport (
|
||||
_In_ UINT16 port,
|
||||
_In_ UINT8 proto
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PITEM_APP_INFO _app_getappinfobyhash2 (
|
||||
_In_ ULONG app_hash
|
||||
);
|
||||
|
||||
_Success_ (return)
|
||||
BOOLEAN _app_getappinfoparam2 (
|
||||
_In_ ULONG app_hash,
|
||||
_In_opt_ INT listview_id,
|
||||
_In_ ENUM_INFO_DATA2 info_data,
|
||||
_Out_writes_bytes_all_ (length) PVOID buffer,
|
||||
_In_ ULONG_PTR length
|
||||
);
|
||||
|
||||
BOOLEAN _app_isappsigned (
|
||||
_In_ ULONG app_hash
|
||||
);
|
||||
|
||||
BOOLEAN _app_isappvalidbinary (
|
||||
_In_opt_ PR_STRING path
|
||||
);
|
||||
|
||||
BOOLEAN _app_isappvalidpath (
|
||||
_In_opt_ PR_STRING path
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_getappdisplayname (
|
||||
_In_ PITEM_APP ptr_app,
|
||||
_In_ BOOLEAN is_shortened
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_getapppath (
|
||||
_In_ PITEM_APP ptr_app
|
||||
);
|
||||
|
||||
VOID _app_getfileicon (
|
||||
_Inout_ PITEM_APP_INFO ptr_app_info
|
||||
);
|
||||
|
||||
VOID _app_getfilesignatureinfo (
|
||||
_Inout_ PITEM_APP_INFO ptr_app_info,
|
||||
_In_ HANDLE hfile
|
||||
);
|
||||
|
||||
VOID _app_getfileversioninfo (
|
||||
_Inout_ PITEM_APP_INFO ptr_app_info
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_getfilehashinfo (
|
||||
_In_ HANDLE hfile,
|
||||
_In_ ULONG app_hash
|
||||
);
|
||||
|
||||
ULONG _app_addcolor (
|
||||
_In_ ULONG locale_id,
|
||||
_In_ LPCWSTR config_name,
|
||||
_In_ LPCWSTR config_value,
|
||||
_In_ COLORREF default_clr,
|
||||
_In_ BOOLEAN is_enabled
|
||||
);
|
||||
|
||||
_Success_ (return != 0)
|
||||
COLORREF _app_getcolorvalue (
|
||||
_In_ ULONG color_hash
|
||||
);
|
||||
|
||||
BOOLEAN _app_setruletoapp (
|
||||
_In_ HWND hwnd,
|
||||
_Inout_ PITEM_RULE ptr_rule,
|
||||
_In_ INT item_id,
|
||||
_In_ PITEM_APP ptr_app,
|
||||
_In_ BOOLEAN is_enable
|
||||
);
|
||||
|
||||
_Success_ (return)
|
||||
BOOLEAN _app_parsenetworkstring (
|
||||
_In_ PCR_STRINGREF network_string,
|
||||
_Inout_ PITEM_ADDRESS address
|
||||
);
|
||||
|
||||
_Success_ (return)
|
||||
BOOLEAN _app_parserulestring (
|
||||
_In_opt_ PCR_STRINGREF rule,
|
||||
_Out_ PITEM_ADDRESS address
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_resolveaddress (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address
|
||||
);
|
||||
|
||||
PR_STRING _app_resolveaddress_interlocked (
|
||||
_In_ volatile PVOID_PTR string,
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address,
|
||||
_In_ BOOLEAN is_resolutionenabled
|
||||
);
|
||||
|
||||
VOID _app_fileloggingenable ();
|
||||
|
||||
VOID NTAPI _app_timercallback (
|
||||
_In_opt_ PVOID context
|
||||
);
|
||||
|
||||
VOID _app_getfileinformation (
|
||||
_In_ PR_STRING path,
|
||||
_In_ ULONG app_hash,
|
||||
_In_ ENUM_TYPE_DATA type,
|
||||
_In_ INT listview_id
|
||||
);
|
||||
|
||||
VOID _app_queue_resolver (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ ULONG hash_code,
|
||||
_In_ PVOID base_address
|
||||
);
|
||||
|
||||
VOID NTAPI _app_queue_fileinformation (
|
||||
_In_ PVOID arglist
|
||||
);
|
||||
|
||||
VOID NTAPI _app_queue_notifyinformation (
|
||||
_In_ PVOID arglist
|
||||
);
|
||||
|
||||
VOID NTAPI _app_queue_resolveinformation (
|
||||
_In_ PVOID arglist
|
||||
);
|
||||
|
||||
BOOLEAN _app_wufixenabled ();
|
||||
|
||||
VOID _app_wufixhelper (
|
||||
_In_ SC_HANDLE hsvcmgr,
|
||||
_In_ LPCWSTR service_name,
|
||||
_In_ LPCWSTR k_value,
|
||||
_In_ BOOLEAN is_enable
|
||||
);
|
||||
|
||||
VOID _app_wufixenable (
|
||||
_In_ HWND hwnd,
|
||||
_In_ BOOLEAN is_install
|
||||
);
|
||||
@@ -1,63 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#define FMTADDR_AS_ARPA 0x0001
|
||||
#define FMTADDR_AS_RULE 0x0002
|
||||
#define FMTADDR_USE_PROTOCOL 0x0004
|
||||
#define FMTADDR_RESOLVE_HOST 0x0008
|
||||
|
||||
VOID NTAPI _app_dereferenceapp (PVOID pdata);
|
||||
VOID NTAPI _app_dereferenceappshelper (PVOID pdata);
|
||||
VOID NTAPI _app_dereferencelog (PVOID pdata);
|
||||
VOID NTAPI _app_dereferencenetwork (PVOID pdata);
|
||||
VOID NTAPI _app_dereferencerule (PVOID pdata);
|
||||
VOID NTAPI _app_dereferenceruleconfig (PVOID pdata);
|
||||
|
||||
PR_STRING _app_resolveaddress (ADDRESS_FAMILY af, LPCVOID paddr);
|
||||
PR_STRING _app_formataddress (ADDRESS_FAMILY af, UINT8 proto, LPCVOID paddr, UINT16 port, DWORD flags);
|
||||
BOOLEAN _app_formatip (ADDRESS_FAMILY af, LPCVOID paddr, LPWSTR out_buffer, ULONG buffer_size, BOOLEAN is_checkempty);
|
||||
PR_STRING _app_formatport (UINT16 port, BOOLEAN is_noempty);
|
||||
|
||||
VOID _app_freestrings_map (OBJECTS_STRINGS_MAP* ptr_map, SIZE_T max_size);
|
||||
VOID _app_freeapps_map (OBJECTS_APP_MAP* ptr_map);
|
||||
VOID _app_freeappshelper_map (OBJECTS_APP_HELPER_MAP* ptr_map);
|
||||
VOID _app_freerulesconfig_map (OBJECTS_RULE_CONFIG_MAP* ptr_map);
|
||||
VOID _app_freeapps_vec (OBJECTS_APP_VECTOR* ptr_vec);
|
||||
VOID _app_freerules_vec (OBJECTS_RULE_VECTOR* ptr_vec);
|
||||
VOID _app_freelogobjects_vec (OBJECTS_LOG_VECTOR* ptr_vec);
|
||||
VOID _app_freethreadpool (THREADS_VEC* ptr_vec);
|
||||
VOID _app_freelogstack ();
|
||||
|
||||
VOID _app_getappicon (const PITEM_APP ptr_app, BOOLEAN is_small, PINT picon_id, HICON* picon);
|
||||
PR_STRING _app_getdisplayname (SIZE_T app_hash, PITEM_APP ptr_app);
|
||||
BOOLEAN _app_getfileicon (LPCWSTR path, BOOLEAN is_small, PINT picon_id, HICON* picon);
|
||||
PR_STRING _app_getsignatureinfo (SIZE_T app_hash, const PITEM_APP ptr_app);
|
||||
PR_STRING _app_getversioninfo (SIZE_T app_hash, const PITEM_APP ptr_app);
|
||||
LPCWSTR _app_getservicename (UINT16 port, LPCWSTR default_value);
|
||||
LPCWSTR _app_getprotoname (UINT8 proto, ADDRESS_FAMILY af, LPCWSTR default_value);
|
||||
LPCWSTR _app_getconnectionstatusname (DWORD state, LPCWSTR default_value);
|
||||
PR_STRING _app_getdirectionname (FWP_DIRECTION direction, BOOLEAN is_loopback, BOOLEAN is_localized);
|
||||
COLORREF _app_getcolorvalue (SIZE_T color_hash);
|
||||
|
||||
VOID _app_generate_connections (OBJECTS_NETWORK_MAP* ptr_map, HASHER_MAP* checker_map);
|
||||
VOID _app_generate_packages ();
|
||||
VOID _app_generate_services ();
|
||||
|
||||
VOID _app_generate_rulesmenu (HMENU hsubmenu, SIZE_T app_hash);
|
||||
VOID _app_generate_timermenu (HMENU hsubmenu, SIZE_T app_hash);
|
||||
|
||||
BOOLEAN _app_item_get (ENUM_TYPE_DATA type, SIZE_T app_hash, PR_STRING* displayName, PR_STRING* realPath, time_t* ptime, PVOID* lpdata);
|
||||
|
||||
PR_STRING _app_parsehostaddress_dns (LPCWSTR hostname, USHORT port);
|
||||
|
||||
BOOLEAN _app_parsenetworkstring (LPCWSTR network_string, NET_ADDRESS_FORMAT* format_ptr, PUSHORT port_ptr, FWP_V4_ADDR_AND_MASK* paddr4, FWP_V6_ADDR_AND_MASK* paddr6, LPWSTR dnsString, SIZE_T dnsLength);
|
||||
BOOLEAN _app_parserulestring (PR_STRING rule, PITEM_ADDRESS ptr_addr);
|
||||
|
||||
INT _app_getlistview_id (ENUM_TYPE_DATA type);
|
||||
|
||||
HBITMAP _app_bitmapfromico (HICON hicon, INT icon_size);
|
||||
HBITMAP _app_bitmapfrompng (HINSTANCE hinst, LPCWSTR name, INT icon_size);
|
||||
|
||||
VOID _app_load_appxmanifest (PITEM_APP_HELPER ptr_app_item);
|
||||
+207
@@ -0,0 +1,207 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#include "global.h"
|
||||
|
||||
PICON_INFORMATION _app_icons_getdefault ()
|
||||
{
|
||||
static R_INITONCE init_once = PR_INITONCE_INIT;
|
||||
static ICON_INFORMATION icon_info = {0};
|
||||
|
||||
PR_STRING path;
|
||||
|
||||
if (_r_initonce_begin (&init_once))
|
||||
{
|
||||
// load default app icon
|
||||
_app_icons_loadfromfile (config.svchost_path, DATA_UNKNOWN, &icon_info.app_icon_id, &icon_info.app_hicon, FALSE);
|
||||
|
||||
// load default service icon
|
||||
path = _r_obj_concatstrings (
|
||||
2,
|
||||
_r_sys_getsystemdirectory ()->buffer,
|
||||
L"\\shell32.dll"
|
||||
);
|
||||
|
||||
_app_icons_loadfromfile (path, DATA_UNKNOWN, &icon_info.service_icon_id, &icon_info.service_hicon, FALSE);
|
||||
|
||||
_r_obj_dereference (path);
|
||||
|
||||
// load default uwp icon
|
||||
if (_r_sys_isosversiongreaterorequal (WINDOWS_8))
|
||||
{
|
||||
path = _r_obj_concatstrings (
|
||||
2,
|
||||
_r_sys_getsystemdirectory ()->buffer,
|
||||
L"\\wsreset.exe"
|
||||
);
|
||||
|
||||
_app_icons_loadfromfile (path, DATA_UNKNOWN, &icon_info.uwp_icon_id, &icon_info.uwp_hicon, FALSE);
|
||||
|
||||
_r_obj_dereference (path);
|
||||
}
|
||||
|
||||
_r_initonce_end (&init_once);
|
||||
}
|
||||
|
||||
return &icon_info;
|
||||
}
|
||||
|
||||
_Ret_maybenull_
|
||||
HICON _app_icons_getdefaultapp_hicon ()
|
||||
{
|
||||
PICON_INFORMATION icon_info = _app_icons_getdefault ();
|
||||
|
||||
return icon_info->app_hicon ? CopyIcon (icon_info->app_hicon) : NULL;
|
||||
}
|
||||
|
||||
_Ret_maybenull_
|
||||
HICON _app_icons_getdefaulttype_hicon (
|
||||
_In_ ENUM_TYPE_DATA type,
|
||||
_In_ PICON_INFORMATION icon_info
|
||||
)
|
||||
{
|
||||
if (type == DATA_APP_SERVICE)
|
||||
{
|
||||
if (icon_info->service_hicon)
|
||||
return CopyIcon (icon_info->service_hicon);
|
||||
}
|
||||
else if (type == DATA_APP_UWP)
|
||||
{
|
||||
if (icon_info->uwp_hicon)
|
||||
return CopyIcon (icon_info->uwp_hicon);
|
||||
}
|
||||
|
||||
return icon_info->app_hicon ? CopyIcon (icon_info->app_hicon) : NULL;
|
||||
}
|
||||
|
||||
LONG _app_icons_getdefaultapp_id (
|
||||
_In_ ENUM_TYPE_DATA type
|
||||
)
|
||||
{
|
||||
PICON_INFORMATION icon_info = _app_icons_getdefault ();
|
||||
|
||||
if (type == DATA_APP_SERVICE)
|
||||
{
|
||||
return icon_info->service_icon_id;
|
||||
}
|
||||
else if (type == DATA_APP_UWP)
|
||||
{
|
||||
return icon_info->uwp_icon_id;
|
||||
}
|
||||
|
||||
return icon_info->app_icon_id;
|
||||
}
|
||||
|
||||
_Ret_maybenull_
|
||||
HICON _app_icons_getsafeapp_hicon (
|
||||
_In_ ULONG app_hash
|
||||
)
|
||||
{
|
||||
PICON_INFORMATION icon_info;
|
||||
PITEM_APP ptr_app;
|
||||
HICON hicon;
|
||||
LONG icon_id;
|
||||
|
||||
icon_info = _app_icons_getdefault ();
|
||||
ptr_app = _app_getappitem (app_hash);
|
||||
|
||||
if (!ptr_app)
|
||||
return icon_info->app_hicon ? CopyIcon (icon_info->app_hicon) : NULL;
|
||||
|
||||
if (_r_obj_isstringempty (ptr_app->real_path))
|
||||
return NULL;
|
||||
|
||||
if (_r_config_getboolean (L"IsIconsHidden", FALSE, NULL) || !_app_isappvalidbinary (ptr_app->real_path))
|
||||
{
|
||||
hicon = _app_icons_getdefaulttype_hicon (ptr_app->type, icon_info);
|
||||
|
||||
_r_obj_dereference (ptr_app);
|
||||
|
||||
return hicon;
|
||||
}
|
||||
|
||||
_app_icons_loadfromfile (ptr_app->real_path, ptr_app->type, &icon_id, &hicon, TRUE);
|
||||
|
||||
if (!icon_id || ((ptr_app->type == DATA_APP_SERVICE || ptr_app->type == DATA_APP_UWP) && icon_id == icon_info->app_icon_id))
|
||||
{
|
||||
if (hicon)
|
||||
DestroyIcon (hicon);
|
||||
|
||||
hicon = _app_icons_getdefaulttype_hicon (ptr_app->type, icon_info);
|
||||
}
|
||||
|
||||
_r_obj_dereference (ptr_app);
|
||||
|
||||
return hicon;
|
||||
}
|
||||
|
||||
VOID _app_icons_loaddefaults (
|
||||
_In_ ENUM_TYPE_DATA type,
|
||||
_Inout_opt_ HICON_PTR out_hicon,
|
||||
_Inout_opt_ PLONG out_icon_id
|
||||
)
|
||||
{
|
||||
PICON_INFORMATION icon_info;
|
||||
|
||||
icon_info = _app_icons_getdefault ();
|
||||
|
||||
if (out_hicon)
|
||||
{
|
||||
if (*out_hicon == NULL && type == DATA_APP_UWP)
|
||||
{
|
||||
if (type == DATA_APP_UWP)
|
||||
{
|
||||
if (icon_info->uwp_hicon)
|
||||
*out_hicon = CopyIcon (icon_info->uwp_hicon);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (icon_info->app_hicon)
|
||||
*out_hicon = CopyIcon (icon_info->app_hicon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (out_icon_id)
|
||||
{
|
||||
if (*out_icon_id == 0 || ((type == DATA_APP_SERVICE && *out_icon_id == icon_info->app_icon_id) || (type == DATA_APP_UWP && *out_icon_id == icon_info->app_icon_id)))
|
||||
{
|
||||
if (type == DATA_APP_SERVICE)
|
||||
{
|
||||
*out_icon_id = icon_info->service_icon_id;
|
||||
}
|
||||
else if (type == DATA_APP_UWP)
|
||||
{
|
||||
*out_icon_id = icon_info->uwp_icon_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
*out_icon_id = icon_info->app_icon_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VOID _app_icons_loadfromfile (
|
||||
_In_opt_ PR_STRING path,
|
||||
_In_ ENUM_TYPE_DATA type,
|
||||
_Out_opt_ PLONG out_icon_id,
|
||||
_Out_opt_ HICON_PTR out_hicon,
|
||||
_In_ BOOLEAN is_loaddefaults
|
||||
)
|
||||
{
|
||||
if (!out_icon_id && !out_hicon)
|
||||
return; // STATUS_INVALID_PARAMETER_MIX
|
||||
|
||||
if (out_icon_id)
|
||||
*out_icon_id = 0;
|
||||
|
||||
if (out_hicon)
|
||||
*out_hicon = NULL;
|
||||
|
||||
if (!_r_obj_isstringempty (path))
|
||||
_r_path_geticon (&path->sr, out_hicon, out_icon_id);
|
||||
|
||||
if (is_loaddefaults)
|
||||
_app_icons_loaddefaults (type, out_hicon, out_icon_id);
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
PICON_INFORMATION _app_icons_getdefault ();
|
||||
|
||||
_Ret_maybenull_
|
||||
HICON _app_icons_getdefaultapp_hicon ();
|
||||
|
||||
_Ret_maybenull_
|
||||
HICON _app_icons_getdefaulttype_hicon (
|
||||
_In_ ENUM_TYPE_DATA type,
|
||||
_In_ PICON_INFORMATION icon_info
|
||||
);
|
||||
|
||||
LONG _app_icons_getdefaultapp_id (
|
||||
_In_ ENUM_TYPE_DATA type
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
HICON _app_icons_getsafeapp_hicon (
|
||||
_In_ ULONG app_hash
|
||||
);
|
||||
|
||||
VOID _app_icons_loaddefaults (
|
||||
_In_ ENUM_TYPE_DATA type,
|
||||
_Inout_opt_ HICON_PTR out_hicon,
|
||||
_Inout_opt_ PLONG out_icon_id
|
||||
);
|
||||
|
||||
VOID _app_icons_loadfromfile (
|
||||
_In_opt_ PR_STRING path,
|
||||
_In_ ENUM_TYPE_DATA type,
|
||||
_Out_opt_ PLONG out_icon_id,
|
||||
_Out_opt_ HICON_PTR out_hicon,
|
||||
_In_ BOOLEAN is_loaddefaults
|
||||
);
|
||||
+1082
File diff suppressed because it is too large.
Load diff
+198
@@ -0,0 +1,198 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct _ITEM_LISTVIEW_CONTEXT
|
||||
{
|
||||
ULONG_PTR id_code;
|
||||
|
||||
struct
|
||||
{
|
||||
ULONG is_hidden : 1;
|
||||
ULONG spare_bits : 31;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} ITEM_LISTVIEW_CONTEXT, *PITEM_LISTVIEW_CONTEXT;
|
||||
|
||||
#define PR_SETITEM_REDRAW 0x0001
|
||||
#define PR_SETITEM_UPDATE 0x0002
|
||||
|
||||
#define PR_UPDATE_TYPE 0x0001
|
||||
#define PR_UPDATE_FORCE 0x0002
|
||||
#define PR_UPDATE_NOREFRESH 0x0004
|
||||
#define PR_UPDATE_NOSORT 0x0008
|
||||
#define PR_UPDATE_NORESIZE 0x0010
|
||||
#define PR_UPDATE_NOREDRAW 0x0020
|
||||
#define PR_UPDATE_NOSETVIEW 0x0040
|
||||
|
||||
_Ret_maybenull_
|
||||
PITEM_TAB_CONTEXT _app_listview_getcontext (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT tab_id
|
||||
);
|
||||
|
||||
_Success_ (return != 0)
|
||||
INT _app_listview_getbytype (
|
||||
_In_ ENUM_TYPE_DATA type
|
||||
);
|
||||
|
||||
VOID _app_listview_additems (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_listview_addappitem (
|
||||
_In_ HWND hwnd,
|
||||
_In_ PITEM_APP ptr_app
|
||||
);
|
||||
|
||||
VOID _app_listview_addruleitem (
|
||||
_In_ HWND hwnd,
|
||||
_In_ PITEM_RULE ptr_rule,
|
||||
_In_ ULONG_PTR rule_idx,
|
||||
_In_ BOOLEAN is_forapp
|
||||
);
|
||||
|
||||
VOID _app_listview_addnetworkitem (
|
||||
_In_ HWND hwnd,
|
||||
_In_ ULONG network_hash
|
||||
);
|
||||
|
||||
VOID _app_listview_addlogitem (
|
||||
_In_ HWND hwnd,
|
||||
_In_ PITEM_LOG ptr_log,
|
||||
_In_ ULONG log_hash
|
||||
);
|
||||
|
||||
VOID _app_listview_clearitems (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
BOOLEAN _app_listview_islocked (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id
|
||||
);
|
||||
|
||||
BOOLEAN _app_listview_lock (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id
|
||||
);
|
||||
|
||||
BOOLEAN _app_listview_unlock (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id
|
||||
);
|
||||
|
||||
LONG_PTR _app_listview_createcontext (
|
||||
_In_ ULONG_PTR id_code
|
||||
);
|
||||
|
||||
VOID _app_listview_destroycontext (
|
||||
_In_ PITEM_LISTVIEW_CONTEXT context
|
||||
);
|
||||
|
||||
ULONG_PTR _app_listview_getcontextcode (
|
||||
_In_ LONG_PTR lparam
|
||||
);
|
||||
|
||||
_Success_ (return != 0)
|
||||
ULONG _app_listview_getappcontext (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ INT item_id
|
||||
);
|
||||
|
||||
_Success_ (return != 0)
|
||||
ULONG_PTR _app_listview_getitemcontext (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ INT item_id
|
||||
);
|
||||
|
||||
_Success_ (return)
|
||||
BOOLEAN _app_listview_isitemhidden (
|
||||
_In_ LPARAM lparam
|
||||
);
|
||||
|
||||
_Success_ (return != INT_ERROR)
|
||||
INT _app_listview_finditem (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ ULONG_PTR id_code
|
||||
);
|
||||
|
||||
VOID _app_listview_showitemby_id (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ INT item_id,
|
||||
_In_opt_ LONG scroll_pos
|
||||
);
|
||||
|
||||
VOID _app_listview_showitemby_param (
|
||||
_In_ HWND hwnd,
|
||||
_In_ ULONG_PTR lparam,
|
||||
_In_ BOOLEAN is_app
|
||||
);
|
||||
|
||||
VOID _app_listview_updateby_id (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT lparam,
|
||||
_In_ ULONG flags
|
||||
);
|
||||
|
||||
VOID _app_listview_updateby_param (
|
||||
_In_ HWND hwnd,
|
||||
_In_ ULONG_PTR lparam,
|
||||
_In_ ULONG flags,
|
||||
_In_ BOOLEAN is_app
|
||||
);
|
||||
|
||||
VOID _app_listview_updateitemby_param (
|
||||
_In_ HWND hwnd,
|
||||
_In_ ULONG_PTR lparam,
|
||||
_In_ BOOLEAN is_app
|
||||
);
|
||||
|
||||
VOID _app_listview_updateitemby_id (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ INT item_id
|
||||
);
|
||||
|
||||
VOID _app_listview_loadfont (
|
||||
_In_ LONG dpi_value,
|
||||
_In_ BOOLEAN is_forced
|
||||
);
|
||||
|
||||
VOID _app_listview_refreshgroups (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id
|
||||
);
|
||||
|
||||
VOID _app_listview_resize (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ BOOLEAN is_forced
|
||||
);
|
||||
|
||||
VOID _app_listview_setfont (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id
|
||||
);
|
||||
|
||||
VOID _app_listview_setview (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id
|
||||
);
|
||||
|
||||
INT CALLBACK _app_listview_compare_callback (
|
||||
_In_ LPARAM lparam1,
|
||||
_In_ LPARAM lparam2,
|
||||
_In_ LPARAM lparam
|
||||
);
|
||||
|
||||
VOID _app_listview_sort (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_In_ LONG column_id,
|
||||
_In_ BOOLEAN is_notifycode
|
||||
);
|
||||
-960
@@ -1,960 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#include "global.hpp"
|
||||
|
||||
PR_STRING _app_getlogviewer ()
|
||||
{
|
||||
LPCWSTR result = app.ConfigGetString (L"LogViewer", LOG_VIEWER_DEFAULT);
|
||||
|
||||
if (_r_str_isempty (result))
|
||||
return _r_path_expand (LOG_VIEWER_DEFAULT);
|
||||
|
||||
return _r_path_expand (result);
|
||||
}
|
||||
|
||||
VOID _app_loginit (BOOLEAN is_install)
|
||||
{
|
||||
// dropped packets logging (win7+)
|
||||
if (!config.hnetevent)
|
||||
return;
|
||||
|
||||
// reset log handle
|
||||
SAFE_DELETE_HANDLE (config.hlogfile);
|
||||
|
||||
if (!is_install || !app.ConfigGetBoolean (L"IsLogEnabled", FALSE))
|
||||
return; // already closed or not enabled
|
||||
|
||||
PR_STRING logPath = _r_path_expand (app.ConfigGetString (L"LogPath", LOG_PATH_DEFAULT));
|
||||
|
||||
if (!logPath)
|
||||
return;
|
||||
|
||||
config.hlogfile = CreateFile (logPath->Buffer, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
|
||||
if (_r_fs_isvalidhandle (config.hlogfile))
|
||||
{
|
||||
if (GetLastError () != ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
ULONG written;
|
||||
BYTE bom[] = {0xFF, 0xFE};
|
||||
|
||||
WriteFile (config.hlogfile, bom, sizeof (bom), &written, NULL); // write utf-16 le byte order mask
|
||||
}
|
||||
else
|
||||
{
|
||||
_r_fs_setpos (config.hlogfile, 0, FILE_END);
|
||||
}
|
||||
|
||||
_r_obj_dereference (logPath);
|
||||
}
|
||||
}
|
||||
|
||||
VOID _app_logwrite (PITEM_LOG ptr_log)
|
||||
{
|
||||
PR_STRING path = NULL;
|
||||
WCHAR dateString[256];
|
||||
PR_STRING localAddressString;
|
||||
PR_STRING localPortString;
|
||||
PR_STRING remoteAddressString;
|
||||
PR_STRING remotePortString;
|
||||
PR_STRING directionString;
|
||||
PR_STRING buffer;
|
||||
|
||||
// parse path
|
||||
{
|
||||
PITEM_APP ptr_app = _app_getappitem (ptr_log->app_hash);
|
||||
|
||||
if (ptr_app)
|
||||
{
|
||||
if (ptr_app->type == DataAppUWP || ptr_app->type == DataAppService)
|
||||
{
|
||||
if (!_r_str_isempty (ptr_app->real_path))
|
||||
{
|
||||
path = _r_obj_reference (ptr_app->real_path);
|
||||
}
|
||||
else if (!_r_str_isempty (ptr_app->display_name))
|
||||
{
|
||||
path = _r_obj_reference (ptr_app->display_name);
|
||||
}
|
||||
}
|
||||
else if (!_r_str_isempty (ptr_app->original_path))
|
||||
{
|
||||
path = _r_obj_reference (ptr_app->original_path);
|
||||
}
|
||||
|
||||
_r_obj_dereference (ptr_app);
|
||||
}
|
||||
}
|
||||
|
||||
_r_format_dateex (dateString, RTL_NUMBER_OF (dateString), ptr_log->timestamp, FDTF_SHORTDATE | FDTF_SHORTTIME);
|
||||
|
||||
localAddressString = _app_formataddress (ptr_log->af, 0, &ptr_log->local_addr, 0, FMTADDR_RESOLVE_HOST);
|
||||
remoteAddressString = _app_formataddress (ptr_log->af, 0, &ptr_log->remote_addr, 0, FMTADDR_RESOLVE_HOST);
|
||||
|
||||
localPortString = _app_formatport (ptr_log->local_port, TRUE);
|
||||
remotePortString = _app_formatport (ptr_log->remote_port, TRUE);
|
||||
|
||||
directionString = _app_getdirectionname (ptr_log->direction, ptr_log->is_loopback, FALSE);
|
||||
|
||||
buffer = _r_format_string (SZ_LOG_BODY,
|
||||
dateString,
|
||||
_r_obj_getstringordefault (ptr_log->username, SZ_EMPTY),
|
||||
_r_obj_getstringordefault (path, SZ_EMPTY),
|
||||
_r_obj_getstringordefault (localAddressString, SZ_EMPTY),
|
||||
_r_obj_getstringordefault (localPortString, SZ_EMPTY),
|
||||
_r_obj_getstringordefault (remoteAddressString, SZ_EMPTY),
|
||||
_r_obj_getstringordefault (remotePortString, SZ_EMPTY),
|
||||
_app_getprotoname (ptr_log->protocol, ptr_log->af, SZ_UNKNOWN),
|
||||
_r_obj_getstringorempty (ptr_log->provider_name),
|
||||
_r_obj_getstringorempty (ptr_log->filter_name),
|
||||
ptr_log->filter_id,
|
||||
_r_obj_getstringordefault (directionString, SZ_EMPTY),
|
||||
(ptr_log->is_allow ? SZ_STATE_ALLOW : SZ_STATE_BLOCK)
|
||||
);
|
||||
|
||||
if (_app_logislimitreached ())
|
||||
_app_logclear ();
|
||||
|
||||
ULONG written;
|
||||
|
||||
if (_r_fs_size (config.hlogfile) == 2)
|
||||
WriteFile (config.hlogfile, SZ_LOG_TITLE, (ULONG)(_r_str_length (SZ_LOG_TITLE) * sizeof (WCHAR)), &written, NULL); // adds csv header
|
||||
|
||||
WriteFile (config.hlogfile, buffer->Buffer, (ULONG)buffer->Length, &written, NULL);
|
||||
|
||||
SAFE_DELETE_REFERENCE (localAddressString);
|
||||
SAFE_DELETE_REFERENCE (localPortString);
|
||||
SAFE_DELETE_REFERENCE (remoteAddressString);
|
||||
SAFE_DELETE_REFERENCE (remotePortString);
|
||||
SAFE_DELETE_REFERENCE (directionString);
|
||||
SAFE_DELETE_REFERENCE (path);
|
||||
|
||||
_r_obj_dereference (buffer);
|
||||
}
|
||||
|
||||
BOOLEAN _app_logisexists (HWND hwnd, PITEM_LOG ptr_log_new)
|
||||
{
|
||||
BOOLEAN is_duplicate_found = FALSE;
|
||||
|
||||
for (auto it = log_arr.begin (); it != log_arr.end (); ++it)
|
||||
{
|
||||
if (!*it)
|
||||
continue;
|
||||
|
||||
PITEM_LOG ptr_log = (PITEM_LOG)_r_obj_reference (*it);
|
||||
|
||||
if (
|
||||
ptr_log->is_allow == ptr_log_new->is_allow &&
|
||||
ptr_log->af == ptr_log_new->af &&
|
||||
ptr_log->direction == ptr_log_new->direction &&
|
||||
ptr_log->protocol == ptr_log_new->protocol &&
|
||||
ptr_log->remote_port == ptr_log_new->remote_port &&
|
||||
ptr_log->local_port == ptr_log_new->local_port
|
||||
)
|
||||
{
|
||||
if (ptr_log->af == AF_INET)
|
||||
{
|
||||
if (
|
||||
ptr_log->remote_addr.S_un.S_addr == ptr_log_new->remote_addr.S_un.S_addr &&
|
||||
ptr_log->local_addr.S_un.S_addr == ptr_log_new->local_addr.S_un.S_addr
|
||||
)
|
||||
{
|
||||
is_duplicate_found = TRUE;
|
||||
}
|
||||
}
|
||||
else if (ptr_log->af == AF_INET6)
|
||||
{
|
||||
if (
|
||||
RtlEqualMemory (ptr_log->remote_addr6.u.Byte, ptr_log_new->remote_addr6.u.Byte, FWP_V6_ADDR_SIZE) &&
|
||||
RtlEqualMemory (ptr_log->local_addr6.u.Byte, ptr_log_new->local_addr6.u.Byte, FWP_V6_ADDR_SIZE)
|
||||
)
|
||||
{
|
||||
is_duplicate_found = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_duplicate_found)
|
||||
{
|
||||
ptr_log_new->timestamp = ptr_log->timestamp; // upd date
|
||||
_r_obj_dereference (ptr_log);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
_r_obj_dereference (ptr_log);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
VOID _app_logwrite_ui (HWND hwnd, PITEM_LOG ptr_log)
|
||||
{
|
||||
INT listview_id;
|
||||
SIZE_T index;
|
||||
INT icon_id;
|
||||
INT item_id;
|
||||
LPCWSTR display_name;
|
||||
PR_STRING localAddressString;
|
||||
PR_STRING localPortString;
|
||||
PR_STRING remoteAddressString;
|
||||
PR_STRING remotePortString;
|
||||
PR_STRING directionString;
|
||||
|
||||
if (_app_logisexists (hwnd, ptr_log))
|
||||
return;
|
||||
|
||||
listview_id = IDC_LOG;
|
||||
index = log_arr.size ();
|
||||
|
||||
log_arr.emplace_back ((PITEM_LOG)_r_obj_reference (ptr_log));
|
||||
|
||||
icon_id = (INT)_app_getappinfo (ptr_log->app_hash, InfoIconId);
|
||||
|
||||
if (!icon_id)
|
||||
icon_id = config.icon_id;
|
||||
|
||||
display_name = (LPCWSTR)_app_getappinfo (ptr_log->app_hash, InfoName);
|
||||
|
||||
if (!display_name && !_r_str_isempty (ptr_log->path))
|
||||
display_name = ptr_log->path->Buffer;
|
||||
|
||||
localAddressString = _app_formataddress (ptr_log->af, 0, &ptr_log->local_addr, 0, 0);
|
||||
remoteAddressString = _app_formataddress (ptr_log->af, 0, &ptr_log->remote_addr, 0, 0);
|
||||
|
||||
localPortString = _app_formatport (ptr_log->local_port, TRUE);
|
||||
remotePortString = _app_formatport (ptr_log->remote_port, TRUE);
|
||||
|
||||
directionString = _app_getdirectionname (ptr_log->direction, ptr_log->is_loopback, FALSE);
|
||||
|
||||
item_id = _r_listview_getitemcount (hwnd, listview_id, FALSE);
|
||||
|
||||
_r_listview_additem (hwnd, listview_id, item_id, 0, !_r_str_isempty (display_name) ? display_name : SZ_EMPTY, icon_id, I_GROUPIDNONE, index);
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 1, _r_obj_getstringordefault (localAddressString, SZ_EMPTY));
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 3, _r_obj_getstringordefault (remoteAddressString, SZ_EMPTY));
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 5, _app_getprotoname (ptr_log->protocol, ptr_log->af, SZ_EMPTY));
|
||||
|
||||
if (localPortString)
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 2, _r_obj_getstringorempty (localPortString));
|
||||
|
||||
if (remotePortString)
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 4, _r_obj_getstringorempty (remotePortString));
|
||||
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 6, _r_obj_getstringordefault (ptr_log->filter_name, SZ_EMPTY));
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 7, _r_obj_getstringorempty (directionString));
|
||||
_r_listview_setitem (hwnd, listview_id, item_id, 8, ptr_log->is_allow ? SZ_STATE_ALLOW : SZ_STATE_BLOCK);
|
||||
|
||||
SAFE_DELETE_REFERENCE (localAddressString);
|
||||
SAFE_DELETE_REFERENCE (remoteAddressString);
|
||||
SAFE_DELETE_REFERENCE (localPortString);
|
||||
SAFE_DELETE_REFERENCE (remotePortString);
|
||||
SAFE_DELETE_REFERENCE (directionString);
|
||||
|
||||
if (listview_id == (INT)_r_tab_getlparam (hwnd, IDC_TAB, INVALID_INT))
|
||||
{
|
||||
_app_listviewresize (hwnd, listview_id, FALSE);
|
||||
_app_listviewsort (hwnd, listview_id, INVALID_INT, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
BOOLEAN _app_logislimitreached ()
|
||||
{
|
||||
ULONG limit = app.ConfigGetUlong (L"LogSizeLimitKb", LOG_SIZE_LIMIT_DEFAULT);
|
||||
|
||||
if (!limit || !_r_fs_isvalidhandle (config.hlogfile))
|
||||
return FALSE;
|
||||
|
||||
return (_r_fs_size (config.hlogfile) >= (_r_calc_kilobytes2bytes (LONG64, limit)));
|
||||
}
|
||||
|
||||
VOID _app_logclear ()
|
||||
{
|
||||
if (_r_fs_isvalidhandle (config.hlogfile))
|
||||
{
|
||||
_r_fs_setpos (config.hlogfile, 2, FILE_BEGIN);
|
||||
|
||||
SetEndOfFile (config.hlogfile);
|
||||
|
||||
FlushFileBuffers (config.hlogfile);
|
||||
}
|
||||
else
|
||||
{
|
||||
PR_STRING logPath = _r_path_expand (app.ConfigGetString (L"LogPath", LOG_PATH_DEFAULT));
|
||||
|
||||
if (logPath)
|
||||
{
|
||||
_r_fs_remove (logPath->Buffer, _R_FLAG_REMOVE_FORCE);
|
||||
_r_obj_dereference (logPath);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VOID _app_logclear_ui (HWND hwnd)
|
||||
{
|
||||
SendDlgItemMessage (hwnd, IDC_LOG, LVM_DELETEALLITEMS, 0, 0);
|
||||
//SendDlgItemMessage (hwnd, IDC_LOG, LVM_SETITEMCOUNT, 0, 0);
|
||||
|
||||
_app_freelogobjects_vec (&log_arr);
|
||||
}
|
||||
|
||||
VOID _wfp_logsubscribe (HANDLE hengine)
|
||||
{
|
||||
if (config.hnetevent)
|
||||
return; // already subscribed
|
||||
|
||||
HMODULE hlib = LoadLibraryEx (L"fwpuclnt.dll", NULL, LOAD_LIBRARY_SEARCH_USER_DIRS | LOAD_LIBRARY_SEARCH_SYSTEM32);
|
||||
|
||||
if (hlib)
|
||||
{
|
||||
typedef ULONG (WINAPI *FWPMNES4)(HANDLE engineHandle, const FWPM_NET_EVENT_SUBSCRIPTION0* subscription, FWPM_NET_EVENT_CALLBACK4 callback, void* context, HANDLE* eventsHandle); // win10rs5+
|
||||
typedef ULONG (WINAPI *FWPMNES3)(HANDLE engineHandle, const FWPM_NET_EVENT_SUBSCRIPTION0* subscription, FWPM_NET_EVENT_CALLBACK3 callback, void* context, HANDLE* eventsHandle); // win10rs4+
|
||||
typedef ULONG (WINAPI *FWPMNES2)(HANDLE engineHandle, const FWPM_NET_EVENT_SUBSCRIPTION0* subscription, FWPM_NET_EVENT_CALLBACK2 callback, void* context, HANDLE* eventsHandle); // win10rs1+
|
||||
typedef ULONG (WINAPI *FWPMNES1)(HANDLE engineHandle, const FWPM_NET_EVENT_SUBSCRIPTION0* subscription, FWPM_NET_EVENT_CALLBACK1 callback, void* context, HANDLE* eventsHandle); // win8+
|
||||
typedef ULONG (WINAPI *FWPMNES0)(HANDLE engineHandle, const FWPM_NET_EVENT_SUBSCRIPTION0* subscription, FWPM_NET_EVENT_CALLBACK0 callback, void* context, HANDLE* eventsHandle); // win7+
|
||||
|
||||
const FWPMNES4 _FwpmNetEventSubscribe4 = (FWPMNES4)GetProcAddress (hlib, "FwpmNetEventSubscribe4");
|
||||
const FWPMNES3 _FwpmNetEventSubscribe3 = (FWPMNES3)GetProcAddress (hlib, "FwpmNetEventSubscribe3");
|
||||
const FWPMNES2 _FwpmNetEventSubscribe2 = (FWPMNES2)GetProcAddress (hlib, "FwpmNetEventSubscribe2");
|
||||
const FWPMNES1 _FwpmNetEventSubscribe1 = (FWPMNES1)GetProcAddress (hlib, "FwpmNetEventSubscribe1");
|
||||
const FWPMNES0 _FwpmNetEventSubscribe0 = (FWPMNES0)GetProcAddress (hlib, "FwpmNetEventSubscribe0");
|
||||
|
||||
if (_FwpmNetEventSubscribe4 || _FwpmNetEventSubscribe3 || _FwpmNetEventSubscribe2 || _FwpmNetEventSubscribe1 || _FwpmNetEventSubscribe0)
|
||||
{
|
||||
FWPM_NET_EVENT_SUBSCRIPTION subscription;
|
||||
FWPM_NET_EVENT_ENUM_TEMPLATE enum_template;
|
||||
|
||||
RtlSecureZeroMemory (&subscription, sizeof (subscription));
|
||||
RtlSecureZeroMemory (&enum_template, sizeof (enum_template));
|
||||
|
||||
//enum_template.numFilterConditions = 0; // get events for all conditions
|
||||
|
||||
subscription.enumTemplate = &enum_template;
|
||||
|
||||
ULONG code;
|
||||
|
||||
if (_FwpmNetEventSubscribe4)
|
||||
code = _FwpmNetEventSubscribe4 (hengine, &subscription, &_wfp_logcallback4, NULL, &config.hnetevent); // win10rs5+
|
||||
|
||||
else if (_FwpmNetEventSubscribe3)
|
||||
code = _FwpmNetEventSubscribe3 (hengine, &subscription, &_wfp_logcallback3, NULL, &config.hnetevent); // win10rs4+
|
||||
|
||||
else if (_FwpmNetEventSubscribe2)
|
||||
code = _FwpmNetEventSubscribe2 (hengine, &subscription, &_wfp_logcallback2, NULL, &config.hnetevent); // win10rs1+
|
||||
|
||||
else if (_FwpmNetEventSubscribe1)
|
||||
code = _FwpmNetEventSubscribe1 (hengine, &subscription, &_wfp_logcallback1, NULL, &config.hnetevent); // win8+
|
||||
|
||||
else if (_FwpmNetEventSubscribe0)
|
||||
code = _FwpmNetEventSubscribe0 (hengine, &subscription, &_wfp_logcallback0, NULL, &config.hnetevent); // win7+
|
||||
|
||||
else
|
||||
code = ERROR_INVALID_FUNCTION;
|
||||
|
||||
if (code != ERROR_SUCCESS)
|
||||
{
|
||||
app.LogError (0, L"FwpmNetEventSubscribe", code, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
_app_loginit (TRUE); // create log file
|
||||
}
|
||||
}
|
||||
|
||||
FreeLibrary (hlib);
|
||||
}
|
||||
}
|
||||
|
||||
VOID _wfp_logunsubscribe (HANDLE hengine)
|
||||
{
|
||||
if (config.hnetevent)
|
||||
{
|
||||
_app_loginit (FALSE); // destroy log file handle if present
|
||||
|
||||
ULONG code = FwpmNetEventUnsubscribe (hengine, config.hnetevent);
|
||||
|
||||
if (code == ERROR_SUCCESS)
|
||||
config.hnetevent = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
VOID CALLBACK _wfp_logcallback (UINT32 flags, FILETIME const* pft, UINT8 const* app_id, SID* package_id, SID* user_id, UINT8 proto, FWP_IP_VERSION ipver, UINT32 remote_addr4, FWP_BYTE_ARRAY16 const* remote_addr6, UINT16 remote_port, UINT32 local_addr4, FWP_BYTE_ARRAY16 const* local_addr6, UINT16 local_port, UINT16 layer_id, UINT64 filter_id, UINT32 direction, BOOLEAN is_allow, BOOLEAN is_loopback)
|
||||
{
|
||||
HANDLE hengine = _wfp_getenginehandle ();
|
||||
|
||||
if (!hengine || !filter_id || !layer_id || _wfp_isfiltersapplying () || (is_allow && app.ConfigGetBoolean (L"IsExcludeClassifyAllow", TRUE)))
|
||||
return;
|
||||
|
||||
// set allowed directions
|
||||
switch (direction)
|
||||
{
|
||||
case FWP_DIRECTION_IN:
|
||||
case FWP_DIRECTION_INBOUND:
|
||||
case FWP_DIRECTION_OUT:
|
||||
case FWP_DIRECTION_OUTBOUND:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// do not parse when tcp connection has been established, or when non-tcp traffic has been authorized
|
||||
{
|
||||
FWPM_LAYER *layer = NULL;
|
||||
|
||||
if (FwpmLayerGetById (hengine, layer_id, &layer) == ERROR_SUCCESS && layer)
|
||||
{
|
||||
if (RtlEqualMemory (&layer->layerKey, &FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4, sizeof (GUID)) || RtlEqualMemory (&layer->layerKey, &FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6, sizeof (GUID)))
|
||||
{
|
||||
FwpmFreeMemory ((PVOID*)&layer);
|
||||
return;
|
||||
}
|
||||
else if (RtlEqualMemory (&layer->layerKey, &FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4, sizeof (GUID)) || RtlEqualMemory (&layer->layerKey, &FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V6, sizeof (GUID)))
|
||||
{
|
||||
direction = FWP_DIRECTION_INBOUND; // HACK!!! (issue #581)
|
||||
}
|
||||
|
||||
FwpmFreeMemory ((PVOID*)&layer);
|
||||
}
|
||||
}
|
||||
|
||||
// get filter information
|
||||
BOOLEAN is_myprovider = FALSE;
|
||||
|
||||
PR_STRING filterName = NULL;
|
||||
PR_STRING providerName = NULL;
|
||||
|
||||
UINT8 filter_weight = 0;
|
||||
|
||||
{
|
||||
FWPM_FILTER *ptr_filter = NULL;
|
||||
FWPM_PROVIDER *ptr_provider = NULL;
|
||||
|
||||
if (FwpmFilterGetById (hengine, filter_id, &ptr_filter) == ERROR_SUCCESS && ptr_filter)
|
||||
{
|
||||
if (!_r_str_isempty (ptr_filter->displayData.description))
|
||||
filterName = _r_obj_createstring (ptr_filter->displayData.description);
|
||||
|
||||
else if (!_r_str_isempty (ptr_filter->displayData.name))
|
||||
filterName = _r_obj_createstring (ptr_filter->displayData.name);
|
||||
|
||||
if (ptr_filter->weight.type == FWP_UINT8)
|
||||
filter_weight = ptr_filter->weight.uint8;
|
||||
|
||||
if (ptr_filter->providerKey)
|
||||
{
|
||||
if (RtlEqualMemory (ptr_filter->providerKey, &GUID_WfpProvider, sizeof (GUID)))
|
||||
is_myprovider = TRUE;
|
||||
|
||||
if (FwpmProviderGetByKey (hengine, ptr_filter->providerKey, &ptr_provider) == ERROR_SUCCESS && ptr_provider)
|
||||
{
|
||||
if (!_r_str_isempty (ptr_provider->displayData.name))
|
||||
providerName = _r_obj_createstring (ptr_provider->displayData.name);
|
||||
|
||||
else if (!_r_str_isempty (ptr_provider->displayData.description))
|
||||
providerName = _r_obj_createstring (ptr_provider->displayData.description);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ptr_filter)
|
||||
FwpmFreeMemory ((PVOID*)&ptr_filter);
|
||||
|
||||
if (ptr_provider)
|
||||
FwpmFreeMemory ((PVOID*)&ptr_provider);
|
||||
|
||||
// prevent filter "not found" items
|
||||
if (!filterName && !providerName)
|
||||
return;
|
||||
}
|
||||
|
||||
PITEM_LOG_LISTENTRY ptr_entry = (PITEM_LOG_LISTENTRY)_aligned_malloc (sizeof (ITEM_LOG_LISTENTRY), MEMORY_ALLOCATION_ALIGNMENT);
|
||||
|
||||
if (!ptr_entry)
|
||||
return;
|
||||
|
||||
PITEM_LOG ptr_log = (PITEM_LOG)_r_obj_allocateex (sizeof (ITEM_LOG), &_app_dereferencelog);
|
||||
|
||||
// get package id (win8+)
|
||||
PR_STRING sidString = NULL;
|
||||
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_PACKAGE_ID_SET) != 0 && package_id)
|
||||
{
|
||||
sidString = _r_str_fromsid (package_id);
|
||||
|
||||
if (sidString)
|
||||
{
|
||||
if (!_app_item_get (DataAppUWP, _r_str_hash (sidString), NULL, NULL, NULL, NULL))
|
||||
_r_obj_clearreference (&sidString);
|
||||
}
|
||||
}
|
||||
|
||||
// copy converted nt device path into win32
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_PACKAGE_ID_SET) != 0 && sidString)
|
||||
{
|
||||
_r_obj_movereference (&ptr_log->path, sidString);
|
||||
ptr_log->app_hash = _r_str_hash (ptr_log->path);
|
||||
|
||||
sidString = NULL;
|
||||
}
|
||||
else if ((flags & FWPM_NET_EVENT_FLAG_APP_ID_SET) != 0 && app_id)
|
||||
{
|
||||
PR_STRING path = _r_path_dospathfromnt ((LPCWSTR)app_id);
|
||||
|
||||
if (path)
|
||||
{
|
||||
_r_obj_movereference (&ptr_log->path, path);
|
||||
ptr_log->app_hash = _r_str_hash (ptr_log->path);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ptr_log->app_hash = 0;
|
||||
}
|
||||
|
||||
if (sidString)
|
||||
_r_obj_clearreference (&sidString);
|
||||
|
||||
// copy date and time
|
||||
if (pft)
|
||||
ptr_log->timestamp = _r_unixtime_from_filetime (pft);
|
||||
|
||||
// get username information
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_USER_ID_SET) != 0 && user_id)
|
||||
ptr_log->username = _r_sys_getusernamefromsid (user_id);
|
||||
|
||||
// indicates the direction of the packet transmission
|
||||
switch (direction)
|
||||
{
|
||||
case FWP_DIRECTION_IN:
|
||||
case FWP_DIRECTION_INBOUND:
|
||||
{
|
||||
ptr_log->direction = FWP_DIRECTION_INBOUND;
|
||||
break;
|
||||
}
|
||||
|
||||
case FWP_DIRECTION_OUT:
|
||||
case FWP_DIRECTION_OUTBOUND:
|
||||
{
|
||||
ptr_log->direction = FWP_DIRECTION_OUTBOUND;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// destination
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_IP_VERSION_SET) != 0)
|
||||
{
|
||||
if (ipver == FWP_IP_VERSION_V4)
|
||||
{
|
||||
ptr_log->af = AF_INET;
|
||||
|
||||
// remote address
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_REMOTE_ADDR_SET) != 0 && remote_addr4)
|
||||
ptr_log->remote_addr.S_un.S_addr = _r_byteswap_ulong (remote_addr4);
|
||||
|
||||
// local address
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_LOCAL_ADDR_SET) != 0 && local_addr4)
|
||||
ptr_log->local_addr.S_un.S_addr = _r_byteswap_ulong (local_addr4);
|
||||
}
|
||||
else if (ipver == FWP_IP_VERSION_V6)
|
||||
{
|
||||
ptr_log->af = AF_INET6;
|
||||
|
||||
// remote address
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_REMOTE_ADDR_SET) != 0 && remote_addr6)
|
||||
RtlCopyMemory (ptr_log->remote_addr6.u.Byte, remote_addr6->byteArray16, FWP_V6_ADDR_SIZE);
|
||||
|
||||
// local address
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_LOCAL_ADDR_SET) != 0 && local_addr6)
|
||||
RtlCopyMemory (ptr_log->local_addr6.u.Byte, local_addr6->byteArray16, FWP_V6_ADDR_SIZE);
|
||||
}
|
||||
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_REMOTE_PORT_SET) != 0 && remote_port)
|
||||
ptr_log->remote_port = remote_port;
|
||||
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_LOCAL_PORT_SET) != 0 && local_port)
|
||||
ptr_log->local_port = local_port;
|
||||
}
|
||||
|
||||
// protocol
|
||||
if ((flags & FWPM_NET_EVENT_FLAG_IP_PROTOCOL_SET) != 0)
|
||||
ptr_log->protocol = proto;
|
||||
|
||||
// indicates FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW state
|
||||
ptr_log->is_allow = is_allow;
|
||||
|
||||
// indicates whether the packet originated from (or was heading to) the loopback adapter
|
||||
ptr_log->is_loopback = is_loopback;
|
||||
|
||||
// set filter information
|
||||
ptr_log->filter_id = filter_id;
|
||||
|
||||
ptr_log->is_myprovider = is_myprovider;
|
||||
|
||||
_r_obj_movereference (&ptr_log->filter_name, filterName);
|
||||
_r_obj_movereference (&ptr_log->provider_name, providerName);
|
||||
|
||||
ptr_log->is_blocklist = (filter_weight == FILTER_WEIGHT_BLOCKLIST);
|
||||
ptr_log->is_system = (filter_weight == FILTER_WEIGHT_HIGHEST) || (filter_weight == FILTER_WEIGHT_HIGHEST_IMPORTANT);
|
||||
ptr_log->is_custom = (filter_weight == FILTER_WEIGHT_CUSTOM) || (filter_weight == FILTER_WEIGHT_CUSTOM_BLOCK);
|
||||
|
||||
// push into a slist
|
||||
{
|
||||
ptr_entry->Body = ptr_log;
|
||||
|
||||
RtlInterlockedPushEntrySList (&log_stack.ListHead, &ptr_entry->ListEntry);
|
||||
InterlockedIncrement (&log_stack.item_count);
|
||||
|
||||
// check if thread has been terminated
|
||||
LONG thread_count = InterlockedCompareExchange (&log_stack.thread_count, 0, 0);
|
||||
|
||||
if (!thread_count || !_r_fastlock_islocked (&lock_logthread))
|
||||
{
|
||||
_app_freethreadpool (&threads_pool);
|
||||
|
||||
HANDLE hthread = _r_sys_createthreadex (&LogThread, app.GetHWND (), TRUE, THREAD_PRIORITY_HIGHEST);
|
||||
|
||||
if (hthread)
|
||||
{
|
||||
InterlockedIncrement (&log_stack.thread_count);
|
||||
|
||||
threads_pool.emplace_back (hthread);
|
||||
|
||||
NtResumeThread (hthread, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// win7+ callback
|
||||
VOID CALLBACK _wfp_logcallback0 (PVOID pContext, const FWPM_NET_EVENT1* pEvent)
|
||||
{
|
||||
UINT16 layer_id;
|
||||
UINT64 filter_id;
|
||||
UINT32 direction;
|
||||
BOOLEAN is_loopback;
|
||||
|
||||
if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP && pEvent->classifyDrop)
|
||||
{
|
||||
layer_id = pEvent->classifyDrop->layerId;
|
||||
filter_id = pEvent->classifyDrop->filterId;
|
||||
direction = pEvent->classifyDrop->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDrop->isLoopback;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP && pEvent->ipsecDrop)
|
||||
{
|
||||
layer_id = pEvent->ipsecDrop->layerId;
|
||||
filter_id = pEvent->ipsecDrop->filterId;
|
||||
direction = pEvent->ipsecDrop->direction;
|
||||
is_loopback = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_wfp_logcallback (pEvent->header.flags, &pEvent->header.timeStamp, pEvent->header.appId.data, NULL, pEvent->header.userId, pEvent->header.ipProtocol, pEvent->header.ipVersion, pEvent->header.remoteAddrV4, &pEvent->header.remoteAddrV6, pEvent->header.remotePort, pEvent->header.localAddrV4, &pEvent->header.localAddrV6, pEvent->header.localPort, layer_id, filter_id, direction, FALSE, is_loopback);
|
||||
}
|
||||
|
||||
// win8+ callback
|
||||
VOID CALLBACK _wfp_logcallback1 (PVOID pContext, const FWPM_NET_EVENT2* pEvent)
|
||||
{
|
||||
UINT16 layer_id;
|
||||
UINT64 filter_id;
|
||||
UINT32 direction;
|
||||
|
||||
BOOLEAN is_loopback;
|
||||
BOOLEAN is_allow = FALSE;
|
||||
|
||||
if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP && pEvent->classifyDrop)
|
||||
{
|
||||
layer_id = pEvent->classifyDrop->layerId;
|
||||
filter_id = pEvent->classifyDrop->filterId;
|
||||
direction = pEvent->classifyDrop->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDrop->isLoopback;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP && pEvent->ipsecDrop)
|
||||
{
|
||||
layer_id = pEvent->ipsecDrop->layerId;
|
||||
filter_id = pEvent->ipsecDrop->filterId;
|
||||
direction = pEvent->ipsecDrop->direction;
|
||||
is_loopback = FALSE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW && pEvent->classifyAllow)
|
||||
{
|
||||
layer_id = pEvent->classifyAllow->layerId;
|
||||
filter_id = pEvent->classifyAllow->filterId;
|
||||
direction = pEvent->classifyAllow->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyAllow->isLoopback;
|
||||
|
||||
is_allow = TRUE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP_MAC && pEvent->classifyDropMac)
|
||||
{
|
||||
layer_id = pEvent->classifyDropMac->layerId;
|
||||
filter_id = pEvent->classifyDropMac->filterId;
|
||||
direction = pEvent->classifyDropMac->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDropMac->isLoopback;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_wfp_logcallback (pEvent->header.flags, &pEvent->header.timeStamp, pEvent->header.appId.data, pEvent->header.packageSid, pEvent->header.userId, pEvent->header.ipProtocol, pEvent->header.ipVersion, pEvent->header.remoteAddrV4, &pEvent->header.remoteAddrV6, pEvent->header.remotePort, pEvent->header.localAddrV4, &pEvent->header.localAddrV6, pEvent->header.localPort, layer_id, filter_id, direction, is_allow, is_loopback);
|
||||
}
|
||||
|
||||
// win10rs1+ callback
|
||||
VOID CALLBACK _wfp_logcallback2 (PVOID pContext, const FWPM_NET_EVENT3* pEvent)
|
||||
{
|
||||
UINT16 layer_id;
|
||||
UINT64 filter_id;
|
||||
UINT32 direction;
|
||||
|
||||
BOOLEAN is_loopback;
|
||||
BOOLEAN is_allow = FALSE;
|
||||
|
||||
if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP && pEvent->classifyDrop)
|
||||
{
|
||||
layer_id = pEvent->classifyDrop->layerId;
|
||||
filter_id = pEvent->classifyDrop->filterId;
|
||||
direction = pEvent->classifyDrop->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDrop->isLoopback;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP && pEvent->ipsecDrop)
|
||||
{
|
||||
layer_id = pEvent->ipsecDrop->layerId;
|
||||
filter_id = pEvent->ipsecDrop->filterId;
|
||||
direction = pEvent->ipsecDrop->direction;
|
||||
is_loopback = FALSE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW && pEvent->classifyAllow)
|
||||
{
|
||||
layer_id = pEvent->classifyAllow->layerId;
|
||||
filter_id = pEvent->classifyAllow->filterId;
|
||||
direction = pEvent->classifyAllow->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyAllow->isLoopback;
|
||||
|
||||
is_allow = TRUE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP_MAC && pEvent->classifyDropMac)
|
||||
{
|
||||
layer_id = pEvent->classifyDropMac->layerId;
|
||||
filter_id = pEvent->classifyDropMac->filterId;
|
||||
direction = pEvent->classifyDropMac->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDropMac->isLoopback;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_wfp_logcallback (pEvent->header.flags, &pEvent->header.timeStamp, pEvent->header.appId.data, pEvent->header.packageSid, pEvent->header.userId, pEvent->header.ipProtocol, pEvent->header.ipVersion, pEvent->header.remoteAddrV4, &pEvent->header.remoteAddrV6, pEvent->header.remotePort, pEvent->header.localAddrV4, &pEvent->header.localAddrV6, pEvent->header.localPort, layer_id, filter_id, direction, is_allow, is_loopback);
|
||||
}
|
||||
|
||||
// win10rs4+ callback
|
||||
VOID CALLBACK _wfp_logcallback3 (PVOID pContext, const FWPM_NET_EVENT4* pEvent)
|
||||
{
|
||||
UINT16 layer_id;
|
||||
UINT64 filter_id;
|
||||
UINT32 direction;
|
||||
|
||||
BOOLEAN is_loopback;
|
||||
BOOLEAN is_allow = FALSE;
|
||||
|
||||
if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP && pEvent->classifyDrop)
|
||||
{
|
||||
layer_id = pEvent->classifyDrop->layerId;
|
||||
filter_id = pEvent->classifyDrop->filterId;
|
||||
direction = pEvent->classifyDrop->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDrop->isLoopback;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP && pEvent->ipsecDrop)
|
||||
{
|
||||
layer_id = pEvent->ipsecDrop->layerId;
|
||||
filter_id = pEvent->ipsecDrop->filterId;
|
||||
direction = pEvent->ipsecDrop->direction;
|
||||
is_loopback = FALSE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW && pEvent->classifyAllow)
|
||||
{
|
||||
layer_id = pEvent->classifyAllow->layerId;
|
||||
filter_id = pEvent->classifyAllow->filterId;
|
||||
direction = pEvent->classifyAllow->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyAllow->isLoopback;
|
||||
|
||||
is_allow = TRUE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP_MAC && pEvent->classifyDropMac)
|
||||
{
|
||||
layer_id = pEvent->classifyDropMac->layerId;
|
||||
filter_id = pEvent->classifyDropMac->filterId;
|
||||
direction = pEvent->classifyDropMac->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDropMac->isLoopback;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_wfp_logcallback (pEvent->header.flags, &pEvent->header.timeStamp, pEvent->header.appId.data, pEvent->header.packageSid, pEvent->header.userId, pEvent->header.ipProtocol, pEvent->header.ipVersion, pEvent->header.remoteAddrV4, &pEvent->header.remoteAddrV6, pEvent->header.remotePort, pEvent->header.localAddrV4, &pEvent->header.localAddrV6, pEvent->header.localPort, layer_id, filter_id, direction, is_allow, is_loopback);
|
||||
}
|
||||
|
||||
// win10rs5+ callback
|
||||
VOID CALLBACK _wfp_logcallback4 (PVOID pContext, const FWPM_NET_EVENT5* pEvent)
|
||||
{
|
||||
UINT16 layer_id;
|
||||
UINT64 filter_id;
|
||||
UINT32 direction;
|
||||
|
||||
BOOLEAN is_loopback;
|
||||
BOOLEAN is_allow = FALSE;
|
||||
|
||||
if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP && pEvent->classifyDrop)
|
||||
{
|
||||
layer_id = pEvent->classifyDrop->layerId;
|
||||
filter_id = pEvent->classifyDrop->filterId;
|
||||
direction = pEvent->classifyDrop->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDrop->isLoopback;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP && pEvent->ipsecDrop)
|
||||
{
|
||||
layer_id = pEvent->ipsecDrop->layerId;
|
||||
filter_id = pEvent->ipsecDrop->filterId;
|
||||
direction = pEvent->ipsecDrop->direction;
|
||||
is_loopback = FALSE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_ALLOW && pEvent->classifyAllow)
|
||||
{
|
||||
layer_id = pEvent->classifyAllow->layerId;
|
||||
filter_id = pEvent->classifyAllow->filterId;
|
||||
direction = pEvent->classifyAllow->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyAllow->isLoopback;
|
||||
|
||||
is_allow = TRUE;
|
||||
}
|
||||
else if (pEvent->type == FWPM_NET_EVENT_TYPE_CLASSIFY_DROP_MAC && pEvent->classifyDropMac)
|
||||
{
|
||||
layer_id = pEvent->classifyDropMac->layerId;
|
||||
filter_id = pEvent->classifyDropMac->filterId;
|
||||
direction = pEvent->classifyDropMac->msFwpDirection;
|
||||
is_loopback = !!pEvent->classifyDropMac->isLoopback;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_wfp_logcallback (pEvent->header.flags, &pEvent->header.timeStamp, pEvent->header.appId.data, pEvent->header.packageSid, pEvent->header.userId, pEvent->header.ipProtocol, pEvent->header.ipVersion, pEvent->header.remoteAddrV4, &pEvent->header.remoteAddrV6, pEvent->header.remotePort, pEvent->header.localAddrV4, &pEvent->header.localAddrV6, pEvent->header.localPort, layer_id, filter_id, direction, is_allow, is_loopback);
|
||||
}
|
||||
|
||||
THREAD_FN LogThread (PVOID lparam)
|
||||
{
|
||||
HWND hwnd = (HWND)lparam;
|
||||
|
||||
_r_fastlock_acquireshared (&lock_logthread);
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
PSLIST_ENTRY listEntry = RtlInterlockedPopEntrySList (&log_stack.ListHead);
|
||||
|
||||
if (!listEntry)
|
||||
break;
|
||||
|
||||
InterlockedDecrement (&log_stack.item_count);
|
||||
|
||||
PITEM_LOG_LISTENTRY ptr_entry = CONTAINING_RECORD (listEntry, ITEM_LOG_LISTENTRY, ListEntry);
|
||||
PITEM_LOG ptr_log = (PITEM_LOG)ptr_entry->Body;
|
||||
|
||||
_aligned_free (ptr_entry);
|
||||
|
||||
if (!ptr_log)
|
||||
continue;
|
||||
|
||||
BOOLEAN is_logenabled = app.ConfigGetBoolean (L"IsLogEnabled", FALSE);
|
||||
BOOLEAN is_loguienabled = app.ConfigGetBoolean (L"IsLogUiEnabled", FALSE);
|
||||
BOOLEAN is_notificationenabled = app.ConfigGetBoolean (L"IsNotificationsEnabled", TRUE);
|
||||
|
||||
BOOLEAN is_exludestealth = !(ptr_log->is_system && app.ConfigGetBoolean (L"IsExcludeStealth", TRUE));
|
||||
|
||||
// apps collector
|
||||
BOOLEAN is_notexist = ptr_log->app_hash && !_r_str_isempty (ptr_log->path) && !ptr_log->is_allow && !_app_isappfound (ptr_log->app_hash);
|
||||
|
||||
if (is_notexist)
|
||||
{
|
||||
_r_fastlock_acquireshared (&lock_logbusy);
|
||||
ptr_log->app_hash = _app_addapplication (hwnd, ptr_log->path->Buffer, 0, 0, 0, FALSE, FALSE);
|
||||
_r_fastlock_releaseshared (&lock_logbusy);
|
||||
|
||||
INT app_listview_id = (INT)_app_getappinfo (ptr_log->app_hash, InfoListviewId);
|
||||
|
||||
if (app_listview_id && app_listview_id == (INT)_r_tab_getlparam (hwnd, IDC_TAB, INVALID_INT))
|
||||
{
|
||||
_app_listviewsort (hwnd, app_listview_id, INVALID_INT, FALSE);
|
||||
_app_refreshstatus (hwnd, app_listview_id);
|
||||
}
|
||||
|
||||
_app_profile_save ();
|
||||
}
|
||||
|
||||
// made network name resolution
|
||||
{
|
||||
_r_fastlock_acquireshared (&lock_logbusy);
|
||||
|
||||
PR_STRING addressFormat;
|
||||
|
||||
addressFormat = _app_formataddress (ptr_log->af, ptr_log->protocol, &ptr_log->remote_addr, 0, FMTADDR_RESOLVE_HOST);
|
||||
SAFE_DELETE_REFERENCE (addressFormat);
|
||||
|
||||
addressFormat = _app_formataddress (ptr_log->af, ptr_log->protocol, &ptr_log->local_addr, 0, FMTADDR_RESOLVE_HOST);
|
||||
SAFE_DELETE_REFERENCE (addressFormat);
|
||||
|
||||
_r_fastlock_releaseshared (&lock_logbusy);
|
||||
}
|
||||
|
||||
if ((is_logenabled || is_loguienabled || is_notificationenabled) && is_exludestealth)
|
||||
{
|
||||
// write log to a file
|
||||
if (is_logenabled)
|
||||
_app_logwrite (ptr_log);
|
||||
|
||||
// only for my own provider
|
||||
if (ptr_log->is_myprovider)
|
||||
{
|
||||
// write log to a ui
|
||||
if (is_loguienabled)
|
||||
_app_logwrite_ui (hwnd, ptr_log);
|
||||
|
||||
// display notification
|
||||
if (is_notificationenabled && ptr_log->app_hash && !ptr_log->is_allow)
|
||||
{
|
||||
if (!(ptr_log->is_blocklist && app.ConfigGetBoolean (L"IsExcludeBlocklist", TRUE)) && !(ptr_log->is_custom && app.ConfigGetBoolean (L"IsExcludeCustomRules", TRUE)))
|
||||
{
|
||||
PITEM_APP ptr_app = _app_getappitem (ptr_log->app_hash);
|
||||
|
||||
if (ptr_app)
|
||||
{
|
||||
if (!ptr_app->is_silent)
|
||||
_app_notifyadd (config.hnotification, (PITEM_LOG)_r_obj_reference (ptr_log), ptr_app);
|
||||
|
||||
_r_obj_dereference (ptr_app);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_r_obj_dereference (ptr_log);
|
||||
}
|
||||
|
||||
_r_fastlock_releaseshared (&lock_logthread);
|
||||
|
||||
InterlockedDecrement (&log_stack.thread_count);
|
||||
|
||||
return _r_sys_endthread (ERROR_SUCCESS);
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
// FwpmNetEventSubscribe4 (win10rs5+)
|
||||
typedef ULONG (WINAPI *FWPMNES4)(
|
||||
_In_ HANDLE engine_handle,
|
||||
_In_ const FWPM_NET_EVENT_SUBSCRIPTION0 *subscription,
|
||||
_In_ FWPM_NET_EVENT_CALLBACK4 callback,
|
||||
_In_opt_ PVOID context,
|
||||
_Out_ PHANDLE events_handle
|
||||
);
|
||||
|
||||
// FwpmNetEventSubscribe3 (win10rs4+)
|
||||
typedef ULONG (WINAPI *FWPMNES3)(
|
||||
_In_ HANDLE engine_handle,
|
||||
_In_ const FWPM_NET_EVENT_SUBSCRIPTION0 *subscription,
|
||||
_In_ FWPM_NET_EVENT_CALLBACK3 callback,
|
||||
_In_opt_ PVOID context,
|
||||
_Out_ PHANDLE events_handle
|
||||
);
|
||||
|
||||
// FwpmNetEventSubscribe2 (win10th1+)
|
||||
typedef ULONG (WINAPI *FWPMNES2)(
|
||||
_In_ HANDLE engine_handle,
|
||||
_In_ const FWPM_NET_EVENT_SUBSCRIPTION0 *subscription,
|
||||
_In_ FWPM_NET_EVENT_CALLBACK2 callback,
|
||||
_In_opt_ PVOID context,
|
||||
_Out_ PHANDLE events_handle
|
||||
);
|
||||
|
||||
// FwpmNetEventSubscribe1 (win8+)
|
||||
typedef ULONG (WINAPI *FWPMNES1)(
|
||||
_In_ HANDLE engine_handle,
|
||||
_In_ const FWPM_NET_EVENT_SUBSCRIPTION0 *subscription,
|
||||
_In_ FWPM_NET_EVENT_CALLBACK1 callback,
|
||||
_In_opt_ PVOID context,
|
||||
_Out_ PHANDLE events_handle
|
||||
);
|
||||
|
||||
VOID _app_loginit (
|
||||
_In_ BOOLEAN is_install
|
||||
);
|
||||
|
||||
VOID _app_loginitfile (
|
||||
_In_ HANDLE hfile
|
||||
);
|
||||
|
||||
ULONG _app_getloghash (
|
||||
_In_ PITEM_LOG ptr_log
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_getlogpath ();
|
||||
|
||||
_Ret_maybenull_
|
||||
PR_STRING _app_getlogviewer ();
|
||||
|
||||
BOOLEAN _app_islogfound (
|
||||
_In_ ULONG log_hash
|
||||
);
|
||||
|
||||
BOOLEAN _app_logislimitreached (
|
||||
_In_ HANDLE hfile
|
||||
);
|
||||
|
||||
VOID _app_logclear (
|
||||
_In_opt_ HANDLE hfile
|
||||
);
|
||||
|
||||
VOID _app_logclear_ui (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_logwrite (
|
||||
_In_ PITEM_LOG ptr_log
|
||||
);
|
||||
|
||||
VOID _app_logwrite_ui (
|
||||
_In_ HWND hwnd,
|
||||
_In_ PITEM_LOG ptr_log
|
||||
);
|
||||
|
||||
VOID _wfp_logsubscribe (
|
||||
_In_opt_ HWND hwnd,
|
||||
_In_ HANDLE engine_handle
|
||||
);
|
||||
|
||||
VOID _wfp_logunsubscribe (
|
||||
_In_ HANDLE engine_handle
|
||||
);
|
||||
|
||||
VOID _wfp_logsetoption (
|
||||
_In_ HANDLE engine_handle
|
||||
);
|
||||
|
||||
VOID CALLBACK _wfp_logcallback (
|
||||
_In_ PITEM_LOG_CALLBACK log
|
||||
);
|
||||
|
||||
// win7+ callback
|
||||
VOID CALLBACK _wfp_logcallback0 (
|
||||
_Inout_ PVOID context,
|
||||
_In_ const FWPM_NET_EVENT1* event_data
|
||||
);
|
||||
|
||||
// win8+ callback
|
||||
VOID CALLBACK _wfp_logcallback1 (
|
||||
_Inout_ PVOID context,
|
||||
_In_ const FWPM_NET_EVENT2* event_data
|
||||
);
|
||||
|
||||
// win10rs1+ callback
|
||||
VOID CALLBACK _wfp_logcallback2 (
|
||||
_Inout_ PVOID context,
|
||||
_In_ const FWPM_NET_EVENT3* event_data
|
||||
);
|
||||
|
||||
// win10rs2+ callback
|
||||
VOID CALLBACK _wfp_logcallback3 (
|
||||
_Inout_ PVOID context,
|
||||
_In_ const FWPM_NET_EVENT4* event_data
|
||||
);
|
||||
|
||||
// win10rs5+ callback
|
||||
VOID CALLBACK _wfp_logcallback4 (
|
||||
_Inout_ PVOID context,
|
||||
_In_ const FWPM_NET_EVENT5* event_data
|
||||
);
|
||||
|
||||
VOID NTAPI _app_logthread (
|
||||
_In_ PVOID arglist
|
||||
);
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
PR_STRING _app_getlogviewer ();
|
||||
|
||||
VOID _app_loginit (BOOLEAN is_install);
|
||||
VOID _app_logwrite (PITEM_LOG ptr_log);
|
||||
BOOLEAN _app_logisexists (HWND hwnd, PITEM_LOG ptr_log_new);
|
||||
VOID _app_logwrite_ui (HWND hwnd, PITEM_LOG ptr_log);
|
||||
BOOLEAN _app_logislimitreached ();
|
||||
VOID _app_logclear ();
|
||||
VOID _app_logclear_ui (HWND hwnd);
|
||||
|
||||
VOID _wfp_logsubscribe (HANDLE hengine);
|
||||
VOID _wfp_logunsubscribe (HANDLE hengine);
|
||||
|
||||
VOID CALLBACK _wfp_logcallback (UINT32 flags, FILETIME const* pft, UINT8 const* app_id, SID* package_id, SID* user_id, UINT8 proto, FWP_IP_VERSION ipver, UINT32 remote_addr4, FWP_BYTE_ARRAY16 const* remote_addr6, UINT16 remote_port, UINT32 local_addr4, FWP_BYTE_ARRAY16 const* local_addr6, UINT16 local_port, UINT16 layer_id, UINT64 filter_id, UINT32 direction, BOOLEAN is_allow, BOOLEAN is_loopback);
|
||||
|
||||
VOID CALLBACK _wfp_logcallback0 (PVOID pContext, const FWPM_NET_EVENT1* pEvent);
|
||||
VOID CALLBACK _wfp_logcallback1 (PVOID pContext, const FWPM_NET_EVENT2* pEvent);
|
||||
VOID CALLBACK _wfp_logcallback2 (PVOID pContext, const FWPM_NET_EVENT3* pEvent);
|
||||
VOID CALLBACK _wfp_logcallback3 (PVOID pContext, const FWPM_NET_EVENT4* pEvent);
|
||||
VOID CALLBACK _wfp_logcallback4 (PVOID pContext, const FWPM_NET_EVENT5* pEvent);
|
||||
|
||||
THREAD_FN LogThread (PVOID lparam);
|
||||
+3648
File diff suppressed because it is too large.
Load diff
-5158
File diff suppressed because it is too large.
Load diff
+620
@@ -0,0 +1,620 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "routine.h"
|
||||
|
||||
#include "resource.h"
|
||||
#include "app.h"
|
||||
#include "global.h"
|
||||
|
||||
// libs
|
||||
#pragma comment(lib, "msimg32.lib")
|
||||
#pragma comment(lib, "crypt32.lib")
|
||||
#pragma comment(lib, "dnsapi.lib")
|
||||
#pragma comment(lib, "fwpuclnt.lib")
|
||||
#pragma comment(lib, "iphlpapi.lib")
|
||||
#pragma comment(lib, "rpcrt4.lib")
|
||||
#pragma comment(lib, "version.lib")
|
||||
#pragma comment(lib, "ws2_32.lib")
|
||||
#pragma comment(lib, "winmm.lib")
|
||||
#pragma comment(lib, "wintrust.lib")
|
||||
|
||||
// log
|
||||
#define DBG_ARG _r_path_getbasename2 (TEXT (__FILE__)), __LINE__
|
||||
#define DBG_ARG_VAR file_name, line
|
||||
|
||||
// guids
|
||||
DEFINE_GUID (GUID_TrayIcon, 0xDAB4837E, 0xCB0F, 0x47DA, 0x92, 0x22, 0x21, 0x20, 0x74, 0x9F, 0x5C, 0x41);
|
||||
|
||||
// enums
|
||||
typedef enum _ENUM_TYPE_DATA
|
||||
{
|
||||
DATA_UNKNOWN = 0,
|
||||
DATA_APP_REGULAR,
|
||||
DATA_APP_DEVICE,
|
||||
DATA_APP_NETWORK,
|
||||
DATA_APP_SERVICE,
|
||||
DATA_APP_UWP, // win8+
|
||||
DATA_APP_PICO, // win10+
|
||||
DATA_RULE_BLOCKLIST,
|
||||
DATA_RULE_SYSTEM,
|
||||
DATA_RULE_SYSTEM_USER,
|
||||
DATA_RULE_USER,
|
||||
DATA_RULE_CONFIG,
|
||||
DATA_TYPE_PORT,
|
||||
DATA_TYPE_IP,
|
||||
DATA_FILTER_GENERAL,
|
||||
DATA_LISTVIEW_CURRENT,
|
||||
} ENUM_TYPE_DATA;
|
||||
|
||||
typedef enum _ENUM_INSTALL_TYPE
|
||||
{
|
||||
INSTALL_DISABLED = 0,
|
||||
INSTALL_ENABLED,
|
||||
INSTALL_ENABLED_TEMPORARY,
|
||||
} ENUM_INSTALL_TYPE;
|
||||
|
||||
typedef enum _ENUM_INFO_DATA
|
||||
{
|
||||
INFO_PATH = 1,
|
||||
INFO_BYTES_DATA,
|
||||
INFO_DISPLAY_NAME,
|
||||
INFO_COMMENT,
|
||||
INFO_HASH,
|
||||
INFO_TIMESTAMP,
|
||||
INFO_TIMER,
|
||||
INFO_LISTVIEW_ID,
|
||||
INFO_DISABLE,
|
||||
INFO_IS_ENABLED,
|
||||
INFO_IS_READONLY,
|
||||
INFO_IS_SILENT,
|
||||
INFO_IS_UNDELETABLE,
|
||||
} ENUM_INFO_DATA;
|
||||
|
||||
typedef enum _ENUM_INFO_DATA2
|
||||
{
|
||||
INFO_ICON_ID = 0,
|
||||
INFO_SIGNATURE_STRING, // dereference required
|
||||
INFO_VERSION_STRING, // dereference required
|
||||
} ENUM_INFO_DATA2;
|
||||
|
||||
#define LOG_PATH_DEFAULT L"%USERPROFILE%\\" APP_NAME_SHORT L".csv"
|
||||
#define LOG_VIEWER_DEFAULT L"%SystemRoot%\\notepad.exe"
|
||||
#define LOG_SIZE_LIMIT_DEFAULT _r_calc_kilobytes2bytes (1)
|
||||
|
||||
#define PROC_WAITING_PID 0
|
||||
#define PROC_WAITING_NAME L"Waiting connections"
|
||||
|
||||
#define PROC_SYSTEM_PID 4
|
||||
#define PROC_SYSTEM_NAME L"System"
|
||||
|
||||
#define PATH_SVCHOST L"\\svchost.exe"
|
||||
#define PATH_WUSVC L"\\wusvc.exe"
|
||||
|
||||
#define WINDOWSSPYBLOCKER_TITLE L"Author: <a href=\"%s\">WindowsSpyBlocker</a> - block spying and tracking on Windows systems."
|
||||
#define WINDOWSSPYBLOCKER_URL L"https://github.com/crazy-max/WindowsSpyBlocker"
|
||||
|
||||
#define SZ_TAB L" "
|
||||
#define SZ_CRLF L"\r\n"
|
||||
#define SZ_TAB_CRLF SZ_CRLF SZ_TAB
|
||||
#define SZ_RULE_INTERNAL_MENU L"*"
|
||||
|
||||
#define SZ_STATE_ALLOW L"Allowed"
|
||||
#define SZ_STATE_BLOCK L"Blocked"
|
||||
#define SZ_DIRECTION_IN L"Inbound"
|
||||
#define SZ_DIRECTION_OUT L"Outbound"
|
||||
#define SZ_DIRECTION_ANY L"Any"
|
||||
#define SZ_DIRECTION_LOOPBACK L"Loopback"
|
||||
|
||||
#define SZ_LOG_TITLE L"Date,Username,Path,Address (Local)," \
|
||||
L"Port (Local),Address (Remote),Port (Remote)," \
|
||||
L"Protocol,Layer,Filter name,Filter ID,Direction,State" SZ_CRLF
|
||||
|
||||
#define SZ_LOG_BODY L"\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"," \
|
||||
L"\"%s\",\"%s\",\"#%" TEXT (PRIu64) L"\",\"%s\",\"%s\"" SZ_CRLF
|
||||
|
||||
#define SZ_HELP L"\"simplewall.exe -install\" - enable filtering." SZ_CRLF \
|
||||
L"\"simplewall.exe -install -temp\" - enable filtering until reboot." SZ_CRLF \
|
||||
L"\"simplewall.exe -install -silent\" - enable filtering without prompt." SZ_CRLF \
|
||||
L"\"simplewall.exe -uninstall\" - remove all installed filters." SZ_CRLF \
|
||||
L"\"simlewall.exe -help\" - show this message."
|
||||
|
||||
#define DIVIDER_COPY L", "
|
||||
#define DIVIDER_APP L"|"
|
||||
#define DIVIDER_RULE L";"
|
||||
#define DIVIDER_RULE_RANGE L'-'
|
||||
#define DIVIDER_TRIM SZ_CRLF L" "
|
||||
|
||||
#define BACKUP_HOURS_PERIOD _r_calc_hours2seconds (4) // made backup every X hour(s) (default)
|
||||
|
||||
#define LEN_IP_MAX 0x44
|
||||
#define MAP_CACHE_MAX 0x0384 // limit for caching hashtable
|
||||
|
||||
#define TRANSACTION_TIMEOUT 9000
|
||||
|
||||
// ui
|
||||
#define ICONS_MENU 6
|
||||
#define LANG_SUBMENU 2
|
||||
#define LANG_MENU 7
|
||||
#define NOTIFICATIONS_ID 4
|
||||
#define LOGGING_ID 5
|
||||
#define ERRLOG_ID 6
|
||||
|
||||
#define REBAR_TOOLBAR_ID 0
|
||||
#define REBAR_SEARCH_ID 1
|
||||
|
||||
#define LV_HIDDEN_GROUP_ID GENERAL_ID
|
||||
|
||||
#define STATUSBAR_PARTS_COUNT 3
|
||||
|
||||
// notifications
|
||||
#define NOTIFY_TIMER_SAFETY_TIMEOUT 900
|
||||
#define NOTIFY_TIMEOUT_DEFAULT 60 // sec.
|
||||
#define NOTIFY_SOUND_NAME L"MailBeep"
|
||||
|
||||
// default colors
|
||||
#define LV_COLOR_INVALID RGB(0xFF, 0x7C, 0x94)
|
||||
#define LV_COLOR_SPECIAL RGB(0xFF, 0xFF, 0xAA)
|
||||
#define LV_COLOR_SIGNED RGB(0xAE, 0xE4, 0xA2)
|
||||
#define LV_COLOR_PICO RGB(0x32, 0x98, 0xFF)
|
||||
#define LV_COLOR_SYSTEM RGB(0x96, 0xC4, 0xFA)
|
||||
#define LV_COLOR_CONNECTION RGB(0xFF, 0xA8, 0xF2)
|
||||
#define LV_COLOR_UNDELETE RGB(0xD4, 0xD4, 0xD4)
|
||||
|
||||
// memory limitation for 1 rule
|
||||
#define RULE_NAME_CCH_MAX 0x0040 // 64
|
||||
#define RULE_RULE_CCH_MAX 0x0400 // 1024
|
||||
|
||||
typedef struct _STATIC_DATA
|
||||
{
|
||||
R_STRINGREF windows_dir;
|
||||
|
||||
GUID session_key;
|
||||
|
||||
PR_STRING search_string;
|
||||
PR_STRING ntoskrnl_path;
|
||||
PR_STRING svchost_path;
|
||||
PR_STRING system_path;
|
||||
PR_STRING wusvc_path;
|
||||
PR_STRING my_path;
|
||||
|
||||
PR_BYTE service_wdiservicehost_sid;
|
||||
PR_BYTE service_policyagent_sid;
|
||||
PR_BYTE service_mpssvc_sid;
|
||||
PR_BYTE service_nlasvc_sid;
|
||||
PR_BYTE service_rpcss_sid;
|
||||
|
||||
HIMAGELIST himg_rules_small;
|
||||
HIMAGELIST himg_rules_large;
|
||||
HIMAGELIST himg_toolbar;
|
||||
|
||||
HBITMAP hbmp_disable;
|
||||
HBITMAP hbmp_enable;
|
||||
HBITMAP hbmp_allow;
|
||||
HBITMAP hbmp_block;
|
||||
|
||||
HANDLE hmonitor_thread;
|
||||
HANDLE hnotify_evt;
|
||||
|
||||
HFONT wnd_font;
|
||||
HFONT hfont;
|
||||
|
||||
HWND hsearchbar;
|
||||
HWND htoolbar;
|
||||
HWND hrebar;
|
||||
|
||||
PSID builtin_current_sid;
|
||||
PSID builtin_netops_sid;
|
||||
PSID builtin_admins_sid;
|
||||
|
||||
volatile HWND hnotification;
|
||||
volatile HANDLE hnetevent;
|
||||
volatile HANDLE hlogfile;
|
||||
volatile LONG log_id;
|
||||
|
||||
ULONG color_nonremovable;
|
||||
ULONG color_network;
|
||||
ULONG color_invalid;
|
||||
ULONG color_special;
|
||||
ULONG color_signed;
|
||||
ULONG color_system;
|
||||
ULONG color_pico;
|
||||
|
||||
ULONG ntoskrnl_hash;
|
||||
ULONG svchost_hash;
|
||||
ULONG wusvc_hash;
|
||||
ULONG my_hash;
|
||||
|
||||
BOOLEAN is_filterstemporary;
|
||||
BOOLEAN is_neteventenabled;
|
||||
BOOLEAN is_notifytimeout;
|
||||
BOOLEAN is_notifymouse;
|
||||
BOOLEAN is_neteventset;
|
||||
} STATIC_DATA, *PSTATIC_DATA;
|
||||
|
||||
typedef struct _PROFILE_DATA
|
||||
{
|
||||
PR_STRING profile_path_internal;
|
||||
PR_STRING profile_path_backup;
|
||||
PR_STRING profile_path;
|
||||
|
||||
LONG64 profile_internal_timestamp;
|
||||
} PROFILE_DATA, *PPROFILE_DATA;
|
||||
|
||||
typedef struct _ITEM_LOG
|
||||
{
|
||||
union
|
||||
{
|
||||
IN6_ADDR remote_addr6;
|
||||
IN_ADDR remote_addr;
|
||||
} DUMMYUNIONNAME;
|
||||
|
||||
union
|
||||
{
|
||||
IN6_ADDR local_addr6;
|
||||
IN_ADDR local_addr;
|
||||
} DUMMYUNIONNAME2;
|
||||
|
||||
PR_STRING protocol_str;
|
||||
PR_STRING filter_name;
|
||||
PR_STRING layer_name;
|
||||
PR_STRING username;
|
||||
PR_STRING path;
|
||||
|
||||
volatile PR_STRING remote_addr_str;
|
||||
volatile PR_STRING local_addr_str;
|
||||
volatile PR_STRING remote_host_str;
|
||||
volatile PR_STRING local_host_str;
|
||||
|
||||
LONG64 timestamp;
|
||||
UINT64 filter_id;
|
||||
|
||||
ULONG app_hash;
|
||||
|
||||
volatile LONG log_id;
|
||||
|
||||
FWP_DIRECTION direction;
|
||||
ADDRESS_FAMILY af;
|
||||
|
||||
UINT16 remote_port;
|
||||
UINT16 local_port;
|
||||
UINT8 protocol;
|
||||
|
||||
BOOLEAN is_myprovider;
|
||||
BOOLEAN is_blocklist;
|
||||
BOOLEAN is_loopback;
|
||||
BOOLEAN is_custom;
|
||||
BOOLEAN is_system;
|
||||
BOOLEAN is_allow;
|
||||
} ITEM_LOG, *PITEM_LOG;
|
||||
|
||||
typedef struct _ITEM_APP
|
||||
{
|
||||
PR_ARRAY guids;
|
||||
|
||||
PR_STRING original_path;
|
||||
PR_STRING display_name;
|
||||
PR_STRING short_name;
|
||||
PR_STRING real_path;
|
||||
PR_STRING comment;
|
||||
PR_STRING hash;
|
||||
|
||||
PITEM_LOG notification;
|
||||
PR_BYTE bytes; // service - PSECURITY_DESCRIPTOR / uwp - PSID (win8+)
|
||||
|
||||
PTP_TIMER htimer;
|
||||
|
||||
LONG64 last_notify;
|
||||
LONG64 timestamp;
|
||||
LONG64 timer;
|
||||
|
||||
ULONG app_hash;
|
||||
|
||||
ENUM_TYPE_DATA type;
|
||||
|
||||
UINT8 profile; // reserved ffu!
|
||||
|
||||
struct
|
||||
{
|
||||
ULONG is_undeletable : 1;
|
||||
ULONG is_haveerrors : 1;
|
||||
ULONG is_enabled : 1;
|
||||
ULONG is_silent : 1;
|
||||
ULONG spare_bits : 28;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} ITEM_APP, *PITEM_APP;
|
||||
|
||||
typedef struct _ITEM_APP_INFO
|
||||
{
|
||||
PR_STRING signature_info;
|
||||
PR_STRING version_info;
|
||||
PR_STRING path;
|
||||
|
||||
ULONG app_hash;
|
||||
LONG icon_id;
|
||||
ENUM_TYPE_DATA type;
|
||||
INT listview_id;
|
||||
|
||||
BOOLEAN is_loaded;
|
||||
} ITEM_APP_INFO, *PITEM_APP_INFO;
|
||||
|
||||
typedef struct _ITEM_FILTER_CONFIG
|
||||
{
|
||||
FWP_DIRECTION direction;
|
||||
UINT8 protocol;
|
||||
ADDRESS_FAMILY af;
|
||||
} ITEM_FILTER_CONFIG, *PITEM_FILTER_CONFIG;
|
||||
|
||||
typedef struct _ITEM_RULE
|
||||
{
|
||||
PR_HASHTABLE apps;
|
||||
PR_ARRAY guids;
|
||||
|
||||
PR_STRING protocol_str;
|
||||
PR_STRING rule_remote;
|
||||
PR_STRING rule_local;
|
||||
PR_STRING comment;
|
||||
PR_STRING name;
|
||||
|
||||
union
|
||||
{
|
||||
ITEM_FILTER_CONFIG config;
|
||||
|
||||
struct
|
||||
{
|
||||
FWP_DIRECTION direction;
|
||||
UINT8 protocol;
|
||||
ADDRESS_FAMILY af;
|
||||
} DUMMYSTRUCTNAME2;
|
||||
} DUMMYUNIONNAME;
|
||||
|
||||
struct
|
||||
{
|
||||
ULONG is_enabled_default : 1;
|
||||
ULONG is_forservice : 1;
|
||||
ULONG is_fordriver : 1;
|
||||
ULONG is_haveerrors : 1;
|
||||
ULONG is_readonly : 1;
|
||||
ULONG is_enabled : 1;
|
||||
ULONG spare_bits : 26;
|
||||
} DUMMYSTRUCTNAME2;
|
||||
|
||||
ULONG rule_hash;
|
||||
ENUM_TYPE_DATA type;
|
||||
FWP_ACTION_TYPE action;
|
||||
|
||||
UINT8 profile; // reserved ffu!
|
||||
UINT8 weight;
|
||||
} ITEM_RULE, *PITEM_RULE;
|
||||
|
||||
typedef struct _ITEM_RULE_CONFIG
|
||||
{
|
||||
PR_STRING name;
|
||||
PR_STRING apps;
|
||||
|
||||
BOOLEAN is_enabled;
|
||||
} ITEM_RULE_CONFIG, *PITEM_RULE_CONFIG;
|
||||
|
||||
typedef struct _ITEM_NETWORK
|
||||
{
|
||||
union
|
||||
{
|
||||
IN_ADDR remote_addr;
|
||||
IN6_ADDR remote_addr6;
|
||||
} DUMMYUNIONNAME;
|
||||
|
||||
union
|
||||
{
|
||||
IN_ADDR local_addr;
|
||||
IN6_ADDR local_addr6;
|
||||
} DUMMYUNIONNAME2;
|
||||
|
||||
volatile PR_STRING local_addr_str;
|
||||
volatile PR_STRING remote_addr_str;
|
||||
volatile PR_STRING local_host_str;
|
||||
volatile PR_STRING remote_host_str;
|
||||
|
||||
PR_STRING protocol_str;
|
||||
PR_STRING path;
|
||||
|
||||
ULONG app_hash;
|
||||
ULONG state;
|
||||
|
||||
FWP_DIRECTION direction;
|
||||
ENUM_TYPE_DATA type;
|
||||
ADDRESS_FAMILY af;
|
||||
|
||||
UINT16 remote_port;
|
||||
UINT16 local_port;
|
||||
UINT8 protocol;
|
||||
|
||||
BOOLEAN is_stats_initialized;
|
||||
BOOLEAN is_stats_enabled;
|
||||
BOOLEAN is_connection;
|
||||
|
||||
volatile LONG64 download_speed;
|
||||
volatile LONG64 upload_speed;
|
||||
volatile LONG64 download_total;
|
||||
volatile LONG64 upload_total;
|
||||
|
||||
ULONG64 last_bytes_in;
|
||||
ULONG64 last_bytes_out;
|
||||
ULONG64 last_stats_tick;
|
||||
ULONG64 udp_created;
|
||||
|
||||
volatile LONG traffic_error;
|
||||
} ITEM_NETWORK, *PITEM_NETWORK;
|
||||
|
||||
typedef struct _ITEM_STATUS
|
||||
{
|
||||
ULONG_PTR rules_predefined_count;
|
||||
ULONG_PTR apps_unused_count;
|
||||
ULONG_PTR apps_timer_count;
|
||||
ULONG_PTR rules_global_count;
|
||||
ULONG_PTR rules_user_count;
|
||||
ULONG_PTR rules_count;
|
||||
ULONG_PTR apps_count;
|
||||
} ITEM_STATUS, *PITEM_STATUS;
|
||||
|
||||
typedef struct _ITEM_CONTEXT
|
||||
{
|
||||
HWND hwnd;
|
||||
INT listview_id;
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
PVOID base_address;
|
||||
LPARAM lparam;
|
||||
} DUMMYSTRUCTNAME;
|
||||
|
||||
ULONG_PTR is_install;
|
||||
} DUMMYUNIONNAME;
|
||||
} ITEM_CONTEXT, *PITEM_CONTEXT;
|
||||
|
||||
typedef struct _ITEM_COLOR
|
||||
{
|
||||
PR_STRING config_value;
|
||||
PR_STRING config_name;
|
||||
COLORREF default_clr;
|
||||
COLORREF new_clr;
|
||||
ULONG locale_id;
|
||||
BOOLEAN is_enabled;
|
||||
} ITEM_COLOR, *PITEM_COLOR;
|
||||
|
||||
typedef struct _ITEM_ADDRESS
|
||||
{
|
||||
WCHAR range_start[LEN_IP_MAX];
|
||||
WCHAR range_end[LEN_IP_MAX];
|
||||
|
||||
union
|
||||
{
|
||||
FWP_V4_ADDR_AND_MASK addr4;
|
||||
FWP_V6_ADDR_AND_MASK addr6;
|
||||
|
||||
struct
|
||||
{
|
||||
FWP_RANGE0 range;
|
||||
|
||||
UINT8 addr6_high[FWP_V6_ADDR_SIZE];
|
||||
UINT8 addr6_low[FWP_V6_ADDR_SIZE];
|
||||
} DUMMYSTRUCTNAME;
|
||||
} DUMMYUNIONNAME;
|
||||
|
||||
NET_ADDRESS_FORMAT format;
|
||||
ENUM_TYPE_DATA type;
|
||||
|
||||
UINT16 port;
|
||||
|
||||
BOOLEAN is_range;
|
||||
} ITEM_ADDRESS, *PITEM_ADDRESS;
|
||||
|
||||
typedef struct _ITEM_LOG_CALLBACK
|
||||
{
|
||||
union
|
||||
{
|
||||
const FWP_BYTE_ARRAY16 *remote_addr6;
|
||||
ULONG remote_addr4;
|
||||
} DUMMYUNIONNAME;
|
||||
|
||||
union
|
||||
{
|
||||
const FWP_BYTE_ARRAY16 *local_addr6;
|
||||
ULONG local_addr4;
|
||||
} DUMMYUNIONNAME2;
|
||||
|
||||
FILETIME timestamp;
|
||||
PUINT8 app_id;
|
||||
PSID package_id;
|
||||
PSID user_id;
|
||||
|
||||
UINT64 filter_id;
|
||||
|
||||
FWP_IP_VERSION version;
|
||||
|
||||
UINT32 direction;
|
||||
UINT32 flags;
|
||||
UINT16 remote_port;
|
||||
UINT16 local_port;
|
||||
UINT16 layer_id;
|
||||
UINT8 protocol;
|
||||
|
||||
BOOLEAN is_loopback;
|
||||
BOOLEAN is_allow;
|
||||
} ITEM_LOG_CALLBACK, *PITEM_LOG_CALLBACK;
|
||||
|
||||
typedef struct _ITEM_TAB_CONTEXT
|
||||
{
|
||||
INT listview_id;
|
||||
INT locale_id;
|
||||
} ITEM_TAB_CONTEXT, *PITEM_TAB_CONTEXT;
|
||||
|
||||
typedef struct _UDP_ENDPOINT
|
||||
{
|
||||
BYTE address[0x10];
|
||||
ULONG64 created; // UDP owner table bind timestamp, in FILETIME units
|
||||
ULONG scope_id;
|
||||
ULONG pid;
|
||||
ADDRESS_FAMILY af;
|
||||
USHORT port; // host byte order
|
||||
} UDP_ENDPOINT, *PUDP_ENDPOINT;
|
||||
|
||||
typedef struct UDP_ENTRY
|
||||
{
|
||||
struct UDP_ENTRY *next;
|
||||
UDP_ENDPOINT endpoint;
|
||||
ULONG64 since;
|
||||
ULONG64 received;
|
||||
ULONG64 sent;
|
||||
ULONG error_code;
|
||||
ULONG epoch;
|
||||
BOOLEAN is_observed;
|
||||
} UDP_ENTRY, *PUDP_ENTRY;
|
||||
|
||||
typedef struct UDP_AFD_SOCKET
|
||||
{
|
||||
struct UDP_AFD_SOCKET *next;
|
||||
UDP_ENDPOINT endpoint;
|
||||
ULONG64 handle;
|
||||
BOOLEAN is_bound;
|
||||
BOOLEAN is_unsupported;
|
||||
} UDP_AFD_SOCKET, *PUDP_AFD_SOCKET;
|
||||
|
||||
typedef struct _UDP_TRACE_PROPERTIES
|
||||
{
|
||||
EVENT_TRACE_PROPERTIES properties;
|
||||
WCHAR name[0x40];
|
||||
} UDP_TRACE_PROPERTIES, *PUDP_TRACE_PROPERTIES;
|
||||
|
||||
#define UDP_SESSION_SEMAPHORE L"Global\\simplewall-UDP-owner"
|
||||
#define UDP_SESSION_NAME L"simplewall-UDP"
|
||||
#define UDP_MAX_ENDPOINTS 0x2000
|
||||
#define UDP_BUCKETS 0x100
|
||||
|
||||
typedef struct _SW_UDP_STATS
|
||||
{
|
||||
RTL_SRWLOCK control_lock;
|
||||
RTL_SRWLOCK lock;
|
||||
UDP_ENTRY *buckets[UDP_BUCKETS];
|
||||
UDP_AFD_SOCKET *sockets[UDP_BUCKETS]; // owned by the ETW consumer thread
|
||||
HANDLE hthread;
|
||||
HANDLE hguard;
|
||||
TRACEHANDLE hsession;
|
||||
TRACEHANDLE hconsumer;
|
||||
ULONG socket_count;
|
||||
ULONG count;
|
||||
ULONG epoch;
|
||||
volatile LONG error_code;
|
||||
volatile LONG stopping;
|
||||
BOOLEAN is_owns_guard;
|
||||
} SW_UDP_STATS, *PSW_UDP_STATS;
|
||||
|
||||
typedef struct _UDP_SNAPSHOT
|
||||
{
|
||||
ULONG64 received;
|
||||
ULONG64 sent;
|
||||
ULONG error_code; // nonzero means totals must not be presented as complete
|
||||
} UDP_SNAPSHOT, *PUDP_SNAPSHOT;
|
||||
-512
@@ -1,512 +0,0 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2016-2020 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "routine.hpp"
|
||||
|
||||
#include "resource.hpp"
|
||||
#include "app.hpp"
|
||||
#include "global.hpp"
|
||||
|
||||
// libs
|
||||
#pragma comment(lib, "msimg32.lib")
|
||||
#pragma comment(lib, "crypt32.lib")
|
||||
#pragma comment(lib, "dnsapi.lib")
|
||||
#pragma comment(lib, "fwpuclnt.lib")
|
||||
#pragma comment(lib, "iphlpapi.lib")
|
||||
#pragma comment(lib, "rpcrt4.lib")
|
||||
#pragma comment(lib, "version.lib")
|
||||
#pragma comment(lib, "ws2_32.lib")
|
||||
#pragma comment(lib, "winmm.lib")
|
||||
#pragma comment(lib, "wintrust.lib")
|
||||
#pragma comment(lib, "windowscodecs.lib")
|
||||
|
||||
// guids
|
||||
EXTERN_C static const GUID GUID_WfpProvider = {0xb0d553e2, 0xc6a0, 0x4a9a, {0xae, 0xb8, 0xc7, 0x52, 0x48, 0x3e, 0xd6, 0x2f}};
|
||||
EXTERN_C static const GUID GUID_WfpSublayer = {0x9fee6f59, 0xb951, 0x4f9a, {0xb5, 0x2f, 0x13, 0x3d, 0xcf, 0x7a, 0x42, 0x79}};
|
||||
|
||||
// deprecated and not used, but need for compatibility
|
||||
EXTERN_C static GUID GUID_WfpOutboundCallout4_DEPRECATED = {0xf1251f1a, 0xab09, 0x4ce7, {0xba, 0xe3, 0x6c, 0xcc, 0xce, 0xf2, 0xc8, 0xca}};
|
||||
EXTERN_C static GUID GUID_WfpOutboundCallout6_DEPRECATED = {0xfd497f2e, 0x46f5, 0x486d, {0xb0, 0xc, 0x3f, 0x7f, 0xe0, 0x7a, 0x94, 0xa6}};
|
||||
EXTERN_C static GUID GUID_WfpInboundCallout4_DEPRECATED = {0xefc879ce, 0x3066, 0x45bb, {0x8a, 0x70, 0x17, 0xfe, 0x29, 0x78, 0x53, 0xc0}};
|
||||
EXTERN_C static GUID GUID_WfpInboundCallout6_DEPRECATED = {0xd0420299, 0x52d8, 0x4f18, {0xbc, 0x80, 0x47, 0x3a, 0x24, 0x93, 0xf2, 0x69}};
|
||||
EXTERN_C static GUID GUID_WfpListenCallout4_DEPRECATED = {0x51fa679d, 0x578b, 0x4835, {0xa6, 0x3e, 0xca, 0xd7, 0x68, 0x7f, 0x74, 0x95}};
|
||||
EXTERN_C static GUID GUID_WfpListenCallout6_DEPRECATED = {0xa02187ca, 0xe655, 0x4adb, {0xa1, 0xf2, 0x47, 0xa2, 0xc9, 0x78, 0xf9, 0xce}};
|
||||
|
||||
// enums
|
||||
typedef enum _ENUM_TYPE_DATA
|
||||
{
|
||||
DataUnknown,
|
||||
DataAppRegular,
|
||||
DataAppDevice,
|
||||
DataAppNetwork,
|
||||
DataAppPico, // win10+
|
||||
DataAppService,
|
||||
DataAppUWP, // win8+
|
||||
DataRuleBlocklist,
|
||||
DataRuleSystem,
|
||||
DataRuleCustom,
|
||||
DataRulesConfig,
|
||||
DataTypePort,
|
||||
DataTypeIp,
|
||||
DataTypeHost,
|
||||
} ENUM_TYPE_DATA;
|
||||
|
||||
typedef enum _ENUM_TYPE_XML
|
||||
{
|
||||
XmlApps = 0,
|
||||
XmlRules = 1,
|
||||
XmlRulesConfig = 2,
|
||||
XmlProfileV3 = 3,
|
||||
XmlProfileInternalV3 = 4,
|
||||
} ENUM_TYPE_XML;
|
||||
|
||||
typedef enum _ENUM_INFO_DATA
|
||||
{
|
||||
InfoName = 0,
|
||||
InfoPath = 1,
|
||||
InfoTimestampPtr = 2,
|
||||
InfoTimerPtr = 3,
|
||||
InfoIconId = 4,
|
||||
InfoListviewId = 5,
|
||||
InfoIsSilent = 6,
|
||||
InfoIsUndeletable = 7,
|
||||
} ENUM_INFO_DATA;
|
||||
|
||||
typedef enum _ENUM_INSTALL_TYPE
|
||||
{
|
||||
InstallDisabled = 0,
|
||||
InstallEnabled = 1,
|
||||
InstallEnabledTemporary = 2,
|
||||
} ENUM_INSTALL_TYPE;
|
||||
|
||||
// config
|
||||
#define LANG_MENU 6
|
||||
#define UID 1984 // if you want to keep a secret, you must also hide it from yourself.
|
||||
|
||||
#define XML_PROFILE_VER_3 3
|
||||
#define XML_PROFILE_VER_CURRENT XML_PROFILE_VER_3
|
||||
|
||||
#define XML_PROFILE L"profile.xml"
|
||||
#define XML_PROFILE_INTERNAL L"profile_internal.xml"
|
||||
|
||||
#define LOG_PATH_EXT L"log"
|
||||
#define LOG_PATH_DEFAULT L"%USERPROFILE%\\" APP_NAME_SHORT L"." LOG_PATH_EXT
|
||||
#define LOG_VIEWER_DEFAULT L"%SystemRoot%\\notepad.exe"
|
||||
#define LOG_SIZE_LIMIT_DEFAULT _r_calc_kilobytes2bytes (DWORD, 1)
|
||||
|
||||
#define PROC_WAITING_PID 0
|
||||
#define PROC_WAITING_NAME L"Waiting connections"
|
||||
|
||||
#define PROC_SYSTEM_PID 4
|
||||
#define PROC_SYSTEM_NAME L"System"
|
||||
|
||||
#define PATH_NTOSKRNL L"%SystemRoot%\\system32\\ntoskrnl.exe"
|
||||
#define PATH_SVCHOST L"%SystemRoot%\\system32\\svchost.exe"
|
||||
#define PATH_SHELL32 L"%SystemRoot%\\system32\\shell32.dll"
|
||||
#define PATH_WINSTORE L"%SystemRoot%\\system32\\wsreset.exe"
|
||||
|
||||
#define WINDOWSSPYBLOCKER_URL L"https://github.com/crazy-max/WindowsSpyBlocker"
|
||||
|
||||
#define BOOTTIME_FILTER_NAME L"Boot-time filter"
|
||||
#define SUBLAYER_WEIGHT_DEFAULT 0xFFFE
|
||||
|
||||
#define DIVIDER_COPY L", "
|
||||
#define DIVIDER_CSV L","
|
||||
#define DIVIDER_APP L"|"
|
||||
#define DIVIDER_RULE L";"
|
||||
#define DIVIDER_RULE_RANGE L'-'
|
||||
#define DIVIDER_TRIM L"\r\n "
|
||||
|
||||
#define SZ_TAB L" "
|
||||
#define SZ_TAB_CRLF L"\r\n" SZ_TAB
|
||||
#define SZ_EMPTY L"<empty>"
|
||||
#define SZ_RULE_INTERNAL_MENU L"*"
|
||||
#define SZ_RULE_INTERNAL_TITLE L"Internal rule"
|
||||
#define SZ_RULE_NEW_TITLE L"<new rule>"
|
||||
#define SZ_UNKNOWN L"unknown"
|
||||
|
||||
#define SZ_DIRECTION_REMOTE L"Remote"
|
||||
#define SZ_DIRECTION_LOCAL L"Local"
|
||||
#define SZ_STATE_ALLOW L"Allowed"
|
||||
#define SZ_STATE_BLOCK L"Blocked"
|
||||
#define SZ_DIRECTION_IN L"Inbound"
|
||||
#define SZ_DIRECTION_OUT L"Outbound"
|
||||
#define SZ_DIRECTION_ANY L"Any"
|
||||
#define SZ_DIRECTION_LOOPBACK L"Loopback"
|
||||
|
||||
#define SZ_LOG_TITLE L"Date" DIVIDER_CSV L"User" DIVIDER_CSV L"Path" DIVIDER_CSV L"Address (" SZ_DIRECTION_LOCAL L")" DIVIDER_CSV L"Port (" SZ_DIRECTION_LOCAL L")" DIVIDER_CSV L"Address (" SZ_DIRECTION_REMOTE L")" DIVIDER_CSV L"Port (" SZ_DIRECTION_REMOTE L")" DIVIDER_CSV L"Protocol" DIVIDER_CSV L"Filter name" DIVIDER_CSV L"Filter ID" DIVIDER_CSV L"Direction" DIVIDER_CSV L"State\r\n"
|
||||
#define SZ_LOG_BODY L"\"%s\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\\%s\"" DIVIDER_CSV L"\"#%" TEXT (PRIu64) L"\"" DIVIDER_CSV L"\"%s\"" DIVIDER_CSV L"\"%s\"\r\n"
|
||||
|
||||
#define UI_FONT L"Segoe UI"
|
||||
#define BACKUP_HOURS_PERIOD _r_calc_hours2seconds (time_t, 4) // make backup every X hour(s) (default)
|
||||
|
||||
#define LEN_IP_MAX 68
|
||||
#define MAP_CACHE_MAX 500 // half of thousand limit for unordered_map
|
||||
|
||||
#define FILTERS_TIMEOUT 9000
|
||||
#define TRANSACTION_TIMEOUT 6000
|
||||
#define NETWORK_TIMEOUT 3500
|
||||
|
||||
// notifications
|
||||
#define NOTIFY_GRADIENT_1 RGB (0, 68, 112)
|
||||
#define NOTIFY_GRADIENT_2 RGB (7, 111, 95)
|
||||
|
||||
#define NOTIFY_TIMER_SAFETY_ID 666
|
||||
#define NOTIFY_TIMER_SAFETY_TIMEOUT 600
|
||||
|
||||
#define NOTIFY_TIMEOUT_DEFAULT 30LL // sec.
|
||||
|
||||
#define NOTIFY_LIMIT_POOL_SIZE 128
|
||||
#define NOTIFY_LIMIT_THREAD_COUNT 2
|
||||
#define NOTIFY_LIMIT_THREAD_MAX 4
|
||||
|
||||
// pugixml document configuration
|
||||
#define PUGIXML_LOAD_FLAGS (pugi::parse_escapes)
|
||||
#define PUGIXML_LOAD_ENCODING (pugi::encoding_auto)
|
||||
|
||||
#define PUGIXML_SAVE_FLAGS (pugi::format_indent | pugi::format_write_bom)
|
||||
#define PUGIXML_SAVE_ENCODING (pugi::encoding_wchar)
|
||||
|
||||
// default colors
|
||||
#define LISTVIEW_COLOR_TIMER RGB(255, 190, 142)
|
||||
#define LISTVIEW_COLOR_INVALID RGB (255, 125, 148)
|
||||
#define LISTVIEW_COLOR_SPECIAL RGB (255, 255, 170)
|
||||
#define LISTVIEW_COLOR_SILENT RGB (201, 201, 201)
|
||||
#define LISTVIEW_COLOR_SIGNED RGB (175, 228, 163)
|
||||
#define LISTVIEW_COLOR_PICO RGB (51, 153, 255)
|
||||
#define LISTVIEW_COLOR_SYSTEM RGB(151, 196, 251)
|
||||
#define LISTVIEW_COLOR_SERVICE RGB (207, 189, 255)
|
||||
#define LISTVIEW_COLOR_PACKAGE RGB(134, 227, 227)
|
||||
#define LISTVIEW_COLOR_CONNECTION RGB(255, 168, 242)
|
||||
|
||||
// filter weights
|
||||
#define FILTER_WEIGHT_HIGHEST_IMPORTANT 0x0F
|
||||
#define FILTER_WEIGHT_HIGHEST 0x0E
|
||||
#define FILTER_WEIGHT_BLOCKLIST 0x0D
|
||||
#define FILTER_WEIGHT_CUSTOM_BLOCK 0x0C
|
||||
#define FILTER_WEIGHT_CUSTOM 0x0B
|
||||
#define FILTER_WEIGHT_SYSTEM 0x0A
|
||||
#define FILTER_WEIGHT_APPLICATION 0x09
|
||||
#define FILTER_WEIGHT_LOWEST 0x08
|
||||
|
||||
// memory limitation for 1 rule
|
||||
#define RULE_NAME_CCH_MAX 64
|
||||
#define RULE_RULE_CCH_MAX 256
|
||||
|
||||
typedef std::vector<HANDLE> THREADS_VEC;
|
||||
typedef std::vector<GUID> GUIDS_VEC;
|
||||
typedef std::vector<SIZE_T> HASH_VEC;
|
||||
typedef std::unordered_map<SIZE_T, ENUM_TYPE_DATA> TYPES_MAP;
|
||||
typedef std::unordered_map<SIZE_T, BOOLEAN> HASHER_MAP;
|
||||
|
||||
typedef struct tagSTATIC_DATA
|
||||
{
|
||||
WCHAR profile_path[MAX_PATH] = {0};
|
||||
WCHAR profile_path_backup[MAX_PATH] = {0};
|
||||
WCHAR profile_internal_path[MAX_PATH] = {0};
|
||||
|
||||
WCHAR windows_dir[MAX_PATH] = {0};
|
||||
|
||||
WCHAR search_string[128] = {0};
|
||||
|
||||
PR_STRING ntoskrnl_path = NULL;
|
||||
PR_STRING svchost_path = NULL;
|
||||
PR_STRING shell32_path = NULL;
|
||||
PR_STRING winstore_path = NULL;
|
||||
|
||||
PSID pbuiltin_current_sid = NULL;
|
||||
PSID pbuiltin_world_sid = NULL;
|
||||
PSID pbuiltin_localservice_sid = NULL;
|
||||
PSID pbuiltin_admins_sid = NULL;
|
||||
PSID pbuiltin_netops_sid = NULL;
|
||||
|
||||
PSID pservice_mpssvc_sid = NULL;
|
||||
PSID pservice_nlasvc_sid = NULL;
|
||||
PSID pservice_policyagent_sid = NULL;
|
||||
PSID pservice_rpcss_sid = NULL;
|
||||
PSID pservice_wdiservicehost_sid = NULL;
|
||||
|
||||
HIMAGELIST himg_toolbar = NULL;
|
||||
HIMAGELIST himg_rules_small = NULL;
|
||||
HIMAGELIST himg_rules_large = NULL;
|
||||
|
||||
HBITMAP hbmp_enable = NULL;
|
||||
HBITMAP hbmp_disable = NULL;
|
||||
HBITMAP hbmp_allow = NULL;
|
||||
HBITMAP hbmp_block = NULL;
|
||||
HBITMAP hbmp_cross = NULL;
|
||||
HBITMAP hbmp_rules = NULL;
|
||||
HBITMAP hbmp_checked = NULL;
|
||||
HBITMAP hbmp_unchecked = NULL;
|
||||
|
||||
HANDLE hlogfile = NULL;
|
||||
HANDLE hnetevent = NULL;
|
||||
HANDLE done_evt = NULL;
|
||||
HANDLE htimer = NULL;
|
||||
HFONT hfont = NULL;
|
||||
HICON hicon_large = NULL;
|
||||
HICON hicon_small = NULL;
|
||||
HICON hicon_uwp = NULL;
|
||||
HWND hnotification = NULL;
|
||||
HWND hrebar = NULL;
|
||||
HWND hfind = NULL;
|
||||
|
||||
time_t profile_internal_timestamp = 0;
|
||||
|
||||
SIZE_T ntoskrnl_hash = 0;
|
||||
SIZE_T svchost_hash = 0;
|
||||
SIZE_T my_hash = 0;
|
||||
|
||||
SIZE_T wd_length = 0;
|
||||
|
||||
INT icon_id = 0;
|
||||
INT icon_service_id = 0;
|
||||
INT icon_uwp_id = 0;
|
||||
|
||||
BOOLEAN is_notifytimeout = FALSE;
|
||||
BOOLEAN is_notifymouse = FALSE;
|
||||
BOOLEAN is_neteventset = FALSE;
|
||||
BOOLEAN is_filterstemporary = FALSE;
|
||||
} STATIC_DATA, *PSTATIC_DATA;
|
||||
|
||||
typedef struct tagITEM_LOG
|
||||
{
|
||||
union
|
||||
{
|
||||
IN_ADDR remote_addr;
|
||||
IN6_ADDR remote_addr6;
|
||||
};
|
||||
|
||||
union
|
||||
{
|
||||
IN_ADDR local_addr;
|
||||
IN6_ADDR local_addr6;
|
||||
};
|
||||
|
||||
PR_STRING path;
|
||||
PR_STRING provider_name;
|
||||
PR_STRING filter_name;
|
||||
PR_STRING username;
|
||||
|
||||
HICON hicon;
|
||||
|
||||
time_t timestamp;
|
||||
|
||||
UINT64 filter_id;
|
||||
|
||||
SIZE_T app_hash;
|
||||
|
||||
FWP_DIRECTION direction;
|
||||
|
||||
ADDRESS_FAMILY af;
|
||||
|
||||
UINT16 remote_port;
|
||||
UINT16 local_port;
|
||||
|
||||
UINT8 protocol;
|
||||
|
||||
BOOLEAN is_allow;
|
||||
BOOLEAN is_loopback;
|
||||
BOOLEAN is_blocklist;
|
||||
BOOLEAN is_custom;
|
||||
BOOLEAN is_system;
|
||||
BOOLEAN is_myprovider;
|
||||
} ITEM_LOG, *PITEM_LOG;
|
||||
|
||||
typedef struct tagITEM_APP
|
||||
{
|
||||
GUIDS_VEC* guids;
|
||||
|
||||
PR_STRING display_name;
|
||||
PR_STRING original_path;
|
||||
PR_STRING real_path;
|
||||
|
||||
PITEM_LOG pnotification;
|
||||
|
||||
HANDLE htimer;
|
||||
|
||||
time_t timestamp;
|
||||
time_t timer;
|
||||
time_t last_notify;
|
||||
|
||||
INT icon_id;
|
||||
|
||||
ENUM_TYPE_DATA type;
|
||||
|
||||
UINT8 profile; // reserved ffu!
|
||||
|
||||
BOOLEAN is_enabled;
|
||||
BOOLEAN is_haveerrors;
|
||||
BOOLEAN is_system;
|
||||
BOOLEAN is_silent;
|
||||
BOOLEAN is_signed;
|
||||
BOOLEAN is_undeletable;
|
||||
} ITEM_APP, *PITEM_APP;
|
||||
|
||||
typedef struct tagITEM_APP_HELPER
|
||||
{
|
||||
PR_STRING display_name;
|
||||
PR_STRING real_path;
|
||||
PR_STRING internal_name;
|
||||
|
||||
PVOID pdata; // service - PSECURITY_DESCRIPTOR / uwp - PSID (win8+)
|
||||
|
||||
time_t timestamp;
|
||||
|
||||
ENUM_TYPE_DATA type;
|
||||
} ITEM_APP_HELPER, *PITEM_APP_HELPER;
|
||||
|
||||
typedef struct tagITEM_RULE
|
||||
{
|
||||
HASHER_MAP* apps;
|
||||
GUIDS_VEC* guids;
|
||||
|
||||
PR_STRING name;
|
||||
PR_STRING rule_remote;
|
||||
PR_STRING rule_local;
|
||||
|
||||
ADDRESS_FAMILY af;
|
||||
|
||||
FWP_DIRECTION direction;
|
||||
|
||||
UINT8 profile; // reserved ffu!
|
||||
|
||||
UINT8 weight;
|
||||
UINT8 protocol;
|
||||
|
||||
ENUM_TYPE_DATA type;
|
||||
|
||||
BOOLEAN is_haveerrors;
|
||||
BOOLEAN is_forservices;
|
||||
BOOLEAN is_readonly;
|
||||
BOOLEAN is_enabled;
|
||||
BOOLEAN is_enabled_default;
|
||||
BOOLEAN is_block;
|
||||
} ITEM_RULE, *PITEM_RULE;
|
||||
|
||||
typedef struct tagITEM_RULE_CONFIG
|
||||
{
|
||||
PR_STRING name;
|
||||
PR_STRING apps;
|
||||
|
||||
BOOLEAN is_enabled;
|
||||
} ITEM_RULE_CONFIG, *PITEM_RULE_CONFIG;
|
||||
|
||||
typedef struct tagITEM_NETWORK
|
||||
{
|
||||
union
|
||||
{
|
||||
IN_ADDR remote_addr;
|
||||
IN6_ADDR remote_addr6;
|
||||
};
|
||||
|
||||
union
|
||||
{
|
||||
IN_ADDR local_addr;
|
||||
IN6_ADDR local_addr6;
|
||||
};
|
||||
|
||||
PR_STRING path;
|
||||
SIZE_T app_hash;
|
||||
|
||||
FWP_DIRECTION direction;
|
||||
|
||||
ADDRESS_FAMILY af;
|
||||
|
||||
DWORD state;
|
||||
|
||||
INT icon_id;
|
||||
|
||||
UINT16 remote_port;
|
||||
UINT16 local_port;
|
||||
|
||||
UINT8 protocol;
|
||||
|
||||
BOOLEAN is_connection;
|
||||
} ITEM_NETWORK, *PITEM_NETWORK;
|
||||
|
||||
typedef struct tagITEM_STATUS
|
||||
{
|
||||
SIZE_T apps_count;
|
||||
SIZE_T apps_timer_count;
|
||||
SIZE_T apps_unused_count;
|
||||
SIZE_T rules_count;
|
||||
SIZE_T rules_global_count;
|
||||
SIZE_T rules_predefined_count;
|
||||
SIZE_T rules_user_count;
|
||||
} ITEM_STATUS, *PITEM_STATUS;
|
||||
|
||||
typedef struct tagITEM_CONTEXT
|
||||
{
|
||||
HWND hwnd;
|
||||
INT listview_id;
|
||||
INT item_id;
|
||||
BOOLEAN is_install;
|
||||
} ITEM_CONTEXT, *PITEM_CONTEXT;
|
||||
|
||||
typedef struct tagITEM_COLOR
|
||||
{
|
||||
PR_STRING configName;
|
||||
PR_STRING configValue;
|
||||
SIZE_T hash;
|
||||
COLORREF default_clr;
|
||||
COLORREF new_clr;
|
||||
UINT locale_id;
|
||||
BOOLEAN is_enabled;
|
||||
} ITEM_COLOR, *PITEM_COLOR;
|
||||
|
||||
typedef struct tagITEM_ADDRESS
|
||||
{
|
||||
WCHAR host[NI_MAXHOST];
|
||||
|
||||
FWP_V4_ADDR_AND_MASK* paddr4;
|
||||
FWP_V6_ADDR_AND_MASK* paddr6;
|
||||
|
||||
FWP_RANGE* prange;
|
||||
|
||||
ENUM_TYPE_DATA type;
|
||||
|
||||
NET_ADDRESS_FORMAT format;
|
||||
|
||||
UINT16 port;
|
||||
|
||||
BOOLEAN is_range;
|
||||
} ITEM_ADDRESS, *PITEM_ADDRESS;
|
||||
|
||||
typedef struct tagITEM_LIST_HEAD
|
||||
{
|
||||
SLIST_HEADER ListHead;
|
||||
|
||||
volatile LONG item_count;
|
||||
volatile LONG thread_count;
|
||||
} ITEM_LIST_HEAD, *PITEM_LIST_HEAD;
|
||||
|
||||
typedef struct tagITEM_LOG_LISTENTRY
|
||||
{
|
||||
SLIST_ENTRY ListEntry;
|
||||
|
||||
#ifndef _WIN64
|
||||
ULONG_PTR Reserved;
|
||||
#endif // _WIN64
|
||||
|
||||
PITEM_LOG Body;
|
||||
|
||||
//SLIST_ENTRY ListEntry;
|
||||
//QUAD_PTR Body;
|
||||
} ITEM_LOG_LISTENTRY, *PITEM_LOG_LISTENTRY;
|
||||
|
||||
C_ASSERT (FIELD_OFFSET (ITEM_LOG_LISTENTRY, ListEntry) == 0x00);
|
||||
C_ASSERT (FIELD_OFFSET (ITEM_LOG_LISTENTRY, Body) == MEMORY_ALLOCATION_ALIGNMENT);
|
||||
|
||||
typedef std::unordered_map<SIZE_T, PITEM_APP> OBJECTS_APP_MAP;
|
||||
typedef std::unordered_map<SIZE_T, PITEM_APP_HELPER> OBJECTS_APP_HELPER_MAP;
|
||||
typedef std::unordered_map<SIZE_T, PITEM_RULE_CONFIG> OBJECTS_RULE_CONFIG_MAP;
|
||||
typedef std::unordered_map<SIZE_T, PITEM_NETWORK> OBJECTS_NETWORK_MAP;
|
||||
typedef std::unordered_map<SIZE_T, PR_STRING> OBJECTS_STRINGS_MAP;
|
||||
|
||||
typedef std::vector<PITEM_APP> OBJECTS_APP_VECTOR;
|
||||
typedef std::vector<PITEM_RULE> OBJECTS_RULE_VECTOR;
|
||||
typedef std::vector<PITEM_LOG> OBJECTS_LOG_VECTOR;
|
||||
|
||||
+2978
File diff suppressed because it is too large.
Load diff
+133
@@ -0,0 +1,133 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2021-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
VOID _app_message_initialize (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
FORCEINLINE VOID _app_message_uninitialize (
|
||||
_In_ HWND hwnd
|
||||
)
|
||||
{
|
||||
_r_tray_destroy (hwnd, &GUID_TrayIcon);
|
||||
}
|
||||
|
||||
VOID _app_message_localize (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_generate_appmenu (
|
||||
_In_ HMENU hmenu,
|
||||
_In_opt_ HMENU hsubmenu_rules,
|
||||
_In_opt_ HMENU hsubmenu_timers,
|
||||
_In_ ULONG app_hash
|
||||
);
|
||||
|
||||
VOID _app_generate_rulescontrol (
|
||||
_In_ HMENU hsubmenu,
|
||||
_In_ ULONG app_hash,
|
||||
_In_opt_ PITEM_LOG ptr_log
|
||||
);
|
||||
|
||||
VOID _app_generate_timerscontrol (
|
||||
_In_ HMENU hsubmenu,
|
||||
_In_ ULONG app_hash
|
||||
);
|
||||
|
||||
VOID _app_message_contextmenu (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LPNMITEMACTIVATE lpnmlv
|
||||
);
|
||||
|
||||
VOID _app_message_contextmenu_columns (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LPNMHDR nmlp
|
||||
);
|
||||
|
||||
VOID _app_message_traycontextmenu (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
LONG_PTR _app_message_custdraw (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LPNMLVCUSTOMDRAW lpnmlv
|
||||
);
|
||||
|
||||
VOID _app_message_dpichanged (
|
||||
_In_ HWND hwnd,
|
||||
_In_ LONG dpi_value
|
||||
);
|
||||
|
||||
BOOLEAN _app_message_displayinfo (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT listview_id,
|
||||
_Inout_ LPNMLVDISPINFOW lpnmlv
|
||||
);
|
||||
|
||||
VOID _app_command_idtorules (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id
|
||||
);
|
||||
|
||||
VOID _app_command_idtotimers (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id
|
||||
);
|
||||
|
||||
VOID _app_command_logshow (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_logclear (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_logerrshow (
|
||||
_In_opt_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_logerrclear (
|
||||
_In_opt_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_copy (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id,
|
||||
_In_ INT column_id
|
||||
);
|
||||
|
||||
VOID _app_command_checkbox (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id
|
||||
);
|
||||
|
||||
VOID _app_command_delete (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_disable (
|
||||
_In_ HWND hwnd,
|
||||
_In_ INT ctrl_id
|
||||
);
|
||||
|
||||
VOID _app_command_openeditor (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_properties (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_purgeunused (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_purgetimers (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_command_selectfont (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
+974
@@ -0,0 +1,974 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2019-2026 Henry++
|
||||
|
||||
#include "global.h"
|
||||
|
||||
static VOID _app_network_update_stats_values (
|
||||
_Inout_ PITEM_NETWORK ptr_network,
|
||||
_In_ ULONG64 bytes_in,
|
||||
_In_ ULONG64 bytes_out
|
||||
)
|
||||
{
|
||||
ULONG64 bytes_delta, current_tick, elapsed;
|
||||
|
||||
current_tick = _r_sys_gettickcount64 ();
|
||||
|
||||
if (!ptr_network->is_stats_initialized)
|
||||
{
|
||||
ptr_network->last_bytes_in = bytes_in;
|
||||
ptr_network->last_bytes_out = bytes_out;
|
||||
ptr_network->last_stats_tick = current_tick;
|
||||
ptr_network->is_stats_initialized = TRUE;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
elapsed = current_tick - ptr_network->last_stats_tick;
|
||||
|
||||
if (!elapsed)
|
||||
return;
|
||||
|
||||
bytes_delta = bytes_in >= ptr_network->last_bytes_in ? bytes_in - ptr_network->last_bytes_in : 0;
|
||||
|
||||
_InterlockedExchangeAdd64 (&ptr_network->download_total, bytes_delta);
|
||||
_InterlockedExchange64 (&ptr_network->download_speed, (bytes_delta * 1000) / elapsed);
|
||||
|
||||
bytes_delta = bytes_out >= ptr_network->last_bytes_out ? bytes_out - ptr_network->last_bytes_out : 0;
|
||||
|
||||
_InterlockedExchangeAdd64 (&ptr_network->upload_total, bytes_delta);
|
||||
_InterlockedExchange64 (&ptr_network->upload_speed, (bytes_delta * 1000) / elapsed);
|
||||
|
||||
ptr_network->last_bytes_in = bytes_in;
|
||||
ptr_network->last_bytes_out = bytes_out;
|
||||
ptr_network->last_stats_tick = current_tick;
|
||||
}
|
||||
|
||||
static VOID _app_network_update_tcp4_stats (
|
||||
_Inout_ PITEM_NETWORK ptr_network,
|
||||
_In_ PMIB_TCPROW_OWNER_MODULE row
|
||||
)
|
||||
{
|
||||
TCP_ESTATS_DATA_ROD_v0 data_rod = {0};
|
||||
TCP_ESTATS_DATA_RW_v0 data_rw = {0};
|
||||
MIB_TCPROW tcp_row = {0};
|
||||
ULONG status;
|
||||
|
||||
tcp_row.dwState = row->dwState;
|
||||
tcp_row.dwLocalAddr = row->dwLocalAddr;
|
||||
tcp_row.dwLocalPort = row->dwLocalPort;
|
||||
tcp_row.dwRemoteAddr = row->dwRemoteAddr;
|
||||
tcp_row.dwRemotePort = row->dwRemotePort;
|
||||
|
||||
if (!ptr_network->is_stats_enabled)
|
||||
{
|
||||
data_rw.EnableCollection = TRUE;
|
||||
|
||||
status = SetPerTcpConnectionEStats (&tcp_row, TcpConnectionEstatsData, (PUCHAR)&data_rw, 0, sizeof (TCP_ESTATS_DATA_RW_v0), 0);
|
||||
|
||||
if (status != NO_ERROR)
|
||||
return;
|
||||
|
||||
ptr_network->is_stats_enabled = TRUE;
|
||||
}
|
||||
|
||||
status = GetPerTcpConnectionEStats (&tcp_row, TcpConnectionEstatsData, (PUCHAR)&data_rw, 0, sizeof (data_rw), NULL, 0, 0, (PUCHAR)&data_rod, 0, sizeof (TCP_ESTATS_DATA_ROD_v0));
|
||||
|
||||
if (status == NO_ERROR && data_rw.EnableCollection)
|
||||
_app_network_update_stats_values (ptr_network, data_rod.DataBytesIn, data_rod.DataBytesOut);
|
||||
}
|
||||
|
||||
static VOID _app_network_update_tcp6_stats (
|
||||
_Inout_ PITEM_NETWORK ptr_network,
|
||||
_In_ PMIB_TCP6ROW_OWNER_MODULE row
|
||||
)
|
||||
{
|
||||
TCP_ESTATS_DATA_ROD_v0 data_rod = {0};
|
||||
TCP_ESTATS_DATA_RW_v0 data_rw = {0};
|
||||
MIB_TCP6ROW tcp_row = {0};
|
||||
ULONG status;
|
||||
|
||||
RtlCopyMemory (&tcp_row.LocalAddr, row->ucLocalAddr, sizeof (IN6_ADDR));
|
||||
tcp_row.dwLocalScopeId = row->dwLocalScopeId;
|
||||
tcp_row.dwLocalPort = row->dwLocalPort;
|
||||
RtlCopyMemory (&tcp_row.RemoteAddr, row->ucRemoteAddr, sizeof (IN6_ADDR));
|
||||
tcp_row.dwRemoteScopeId = row->dwRemoteScopeId;
|
||||
tcp_row.dwRemotePort = row->dwRemotePort;
|
||||
tcp_row.State = row->dwState;
|
||||
|
||||
if (!ptr_network->is_stats_enabled)
|
||||
{
|
||||
data_rw.EnableCollection = TRUE;
|
||||
|
||||
status = SetPerTcp6ConnectionEStats (&tcp_row, TcpConnectionEstatsData, (PUCHAR)&data_rw, 0, sizeof (TCP_ESTATS_DATA_RW_v0), 0);
|
||||
|
||||
if (status != NO_ERROR)
|
||||
return;
|
||||
|
||||
ptr_network->is_stats_enabled = TRUE;
|
||||
}
|
||||
|
||||
status = GetPerTcp6ConnectionEStats (&tcp_row, TcpConnectionEstatsData, (PUCHAR)&data_rw, 0, sizeof (TCP_ESTATS_DATA_RW_v0), NULL, 0, 0, (PUCHAR)&data_rod, 0, sizeof (TCP_ESTATS_DATA_ROD_v0));
|
||||
|
||||
if (status == NO_ERROR && data_rw.EnableCollection)
|
||||
_app_network_update_stats_values (ptr_network, data_rod.DataBytesIn, data_rod.DataBytesOut);
|
||||
}
|
||||
|
||||
static VOID _app_network_update_udp_stats (
|
||||
_Inout_ PITEM_NETWORK ptr_network,
|
||||
_In_ PITEM_NETWORK_CONTEXT context,
|
||||
_In_ ULONG pid,
|
||||
_In_ ULONG64 created,
|
||||
_In_ ULONG scope_id
|
||||
)
|
||||
{
|
||||
UDP_ENDPOINT endpoint = {0};
|
||||
UDP_SNAPSHOT snapshot;
|
||||
|
||||
if (!context->udp_stats)
|
||||
return;
|
||||
|
||||
endpoint.pid = pid;
|
||||
endpoint.af = ptr_network->af;
|
||||
endpoint.port = ptr_network->local_port;
|
||||
endpoint.created = created;
|
||||
endpoint.scope_id = scope_id;
|
||||
|
||||
RtlCopyMemory (endpoint.address, &ptr_network->local_addr, endpoint.af == AF_INET ? 4 : 16); // set correct sizes
|
||||
|
||||
udp_stats_read (context->udp_stats, &endpoint, &snapshot);
|
||||
|
||||
_InterlockedExchange (&ptr_network->traffic_error, snapshot.error_code);
|
||||
|
||||
if (snapshot.error_code)
|
||||
{
|
||||
ptr_network->is_stats_initialized = FALSE;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (ptr_network->udp_created != created)
|
||||
{
|
||||
ptr_network->udp_created = created;
|
||||
ptr_network->is_stats_initialized = FALSE;
|
||||
|
||||
_InterlockedExchange64 (&ptr_network->download_speed, 0);
|
||||
_InterlockedExchange64 (&ptr_network->upload_speed, 0);
|
||||
}
|
||||
|
||||
_app_network_update_stats_values (ptr_network, snapshot.received, snapshot.sent);
|
||||
|
||||
_InterlockedExchange64 (&ptr_network->download_total, snapshot.received);
|
||||
_InterlockedExchange64 (&ptr_network->upload_total, snapshot.sent);
|
||||
}
|
||||
|
||||
PITEM_NETWORK_CONTEXT _app_network_getcontext ()
|
||||
{
|
||||
static R_INITONCE init_once = PR_INITONCE_INIT;
|
||||
static PITEM_NETWORK_CONTEXT network_context = NULL;
|
||||
|
||||
if (_r_initonce_begin (&init_once))
|
||||
{
|
||||
network_context = (PITEM_NETWORK_CONTEXT)_r_mem_allocate (sizeof (ITEM_NETWORK_CONTEXT));
|
||||
|
||||
network_context->network_ptr = _r_obj_createhashtablepointer (0x100);
|
||||
network_context->checker_ptr = _r_obj_createhashtablepointer (0x100);
|
||||
|
||||
_r_initonce_end (&init_once);
|
||||
}
|
||||
|
||||
return network_context;
|
||||
}
|
||||
|
||||
VOID _app_network_stop ()
|
||||
{
|
||||
// the original network worker lives until process exit. keep the stopped context valid for that worker; stop/join only our independent ETW consumer.
|
||||
udp_stats_stop (_app_network_getcontext ()->udp_stats);
|
||||
}
|
||||
|
||||
VOID _app_network_initialize (
|
||||
_In_ HWND hwnd
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK_CONTEXT network_context;
|
||||
R_ENVIRONMENT environment;
|
||||
ULONG status;
|
||||
|
||||
if (!_r_config_getboolean (L"IsNetworkMonitorEnabled", TRUE, NULL))
|
||||
return;
|
||||
|
||||
network_context = _app_network_getcontext ();
|
||||
|
||||
if (!network_context) // USELESS!
|
||||
return;
|
||||
|
||||
network_context->hwnd = hwnd;
|
||||
|
||||
// opt-in: sockets created before capture cannot be mapped by AFD events
|
||||
if (_r_config_getboolean (L"IsUdpTrafficEnabled", FALSE, NULL))
|
||||
{
|
||||
network_context->udp_stats = udp_stats_create ();
|
||||
|
||||
status = udp_stats_start (network_context->udp_stats);
|
||||
|
||||
if (status != STATUS_SUCCESS && status != STATUS_ALREADY_INITIALIZED)
|
||||
_r_log (LOG_LEVEL_WARNING, NULL, L"udp_stats_start", NULL, status);
|
||||
}
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_network);
|
||||
_r_obj_clearhashtable (network_context->network_ptr);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_network);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_clearhashtable (network_context->checker_ptr);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
|
||||
// create network monitor thread
|
||||
_r_sys_setenvironment (&environment, THREAD_PRIORITY_ABOVE_NORMAL, IoPriorityNormal, MEMORY_PRIORITY_NORMAL);
|
||||
|
||||
_r_sys_createthread (NULL, NtCurrentProcess (), &_app_network_threadproc, network_context, &environment, L"NetworkMonitor");
|
||||
}
|
||||
|
||||
VOID _app_network_uninitialize (
|
||||
_In_ PITEM_NETWORK_CONTEXT context
|
||||
)
|
||||
{
|
||||
_r_queuedlock_acquireexclusive (&context->lock_network);
|
||||
_r_obj_clearhashtable (context->network_ptr);
|
||||
_r_queuedlock_releaseexclusive (&context->lock_network);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&context->lock_checker);
|
||||
_r_obj_clearhashtable (context->checker_ptr);
|
||||
_r_queuedlock_releaseexclusive (&context->lock_checker);
|
||||
}
|
||||
|
||||
FORCEINLINE BOOLEAN _app_network_iswaitingconnection (
|
||||
_In_ ULONG pid
|
||||
)
|
||||
{
|
||||
if (pid == PROC_WAITING_PID && !_r_config_getboolean (L"IsNetworkShowWaitConnections", TRUE, NULL))
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
VOID _app_network_generatetable (
|
||||
_Inout_ PITEM_NETWORK_CONTEXT network_context
|
||||
)
|
||||
{
|
||||
PMIB_TCP6TABLE_OWNER_MODULE tcp6_table;
|
||||
PMIB_UDP6TABLE_OWNER_MODULE udp6_table;
|
||||
PMIB_TCPTABLE_OWNER_MODULE tcp4_table;
|
||||
PMIB_UDPTABLE_OWNER_MODULE udp4_table;
|
||||
IN_ADDR local_addr, remote_addr;
|
||||
PITEM_NETWORK ptr_network;
|
||||
PVOID buffer;
|
||||
ULONG allocated_size, network_hash, required_size = 0;
|
||||
BOOL udp4_complete = FALSE, udp6_complete = FALSE;
|
||||
ULONG status;
|
||||
|
||||
udp_stats_poll (network_context->udp_stats);
|
||||
udp_stats_begin_refresh (network_context->udp_stats);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_clearhashtable (network_context->checker_ptr);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
|
||||
// TCP IPv4
|
||||
GetExtendedTcpTable (NULL, &required_size, FALSE, AF_INET, TCP_TABLE_OWNER_MODULE_ALL, 0);
|
||||
|
||||
allocated_size = required_size;
|
||||
buffer = _r_mem_allocate (allocated_size);
|
||||
|
||||
if (required_size)
|
||||
{
|
||||
tcp4_table = (PMIB_TCPTABLE_OWNER_MODULE)buffer;
|
||||
status = GetExtendedTcpTable (tcp4_table, &required_size, FALSE, AF_INET, TCP_TABLE_OWNER_MODULE_ALL, 0);
|
||||
|
||||
if (status == NO_ERROR)
|
||||
{
|
||||
for (ULONG i = 0; i < tcp4_table->dwNumEntries; i++)
|
||||
{
|
||||
if (_app_network_iswaitingconnection (tcp4_table->table[i].dwOwningPid))
|
||||
continue;
|
||||
|
||||
RtlZeroMemory (&remote_addr, sizeof (IN_ADDR));
|
||||
RtlZeroMemory (&local_addr, sizeof (IN_ADDR));
|
||||
|
||||
remote_addr.S_un.S_addr = tcp4_table->table[i].dwRemoteAddr;
|
||||
local_addr.S_un.S_addr = tcp4_table->table[i].dwLocalAddr;
|
||||
|
||||
network_hash = _app_network_gethash (
|
||||
AF_INET,
|
||||
tcp4_table->table[i].dwOwningPid,
|
||||
&remote_addr,
|
||||
tcp4_table->table[i].dwRemotePort,
|
||||
&local_addr,
|
||||
tcp4_table->table[i].dwLocalPort,
|
||||
IPPROTO_TCP,
|
||||
tcp4_table->table[i].dwState
|
||||
);
|
||||
|
||||
ptr_network = _app_network_getitem (network_hash);
|
||||
|
||||
if (ptr_network)
|
||||
{
|
||||
_app_network_update_tcp4_stats (ptr_network, &tcp4_table->table[i]);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, NULL);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
ptr_network = (PITEM_NETWORK)_r_obj_allocate (sizeof (ITEM_NETWORK), &_app_dereferencenetwork);
|
||||
|
||||
if (!_app_network_getpath (ptr_network, tcp4_table->table[i].dwOwningPid, tcp4_table->table[i].OwningModuleInfo))
|
||||
{
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
ptr_network->af = AF_INET;
|
||||
ptr_network->protocol = IPPROTO_TCP;
|
||||
ptr_network->protocol_str = _r_obj_createstring (_app_db_getprotoname (ptr_network->protocol, ptr_network->af, L"<unknown protocol>"));
|
||||
|
||||
ptr_network->remote_addr.S_un.S_addr = tcp4_table->table[i].dwRemoteAddr;
|
||||
ptr_network->remote_port = _r_byteswap_ushort ((USHORT)tcp4_table->table[i].dwRemotePort);
|
||||
ptr_network->local_addr.S_un.S_addr = tcp4_table->table[i].dwLocalAddr;
|
||||
ptr_network->local_port = _r_byteswap_ushort ((USHORT)tcp4_table->table[i].dwLocalPort);
|
||||
|
||||
ptr_network->state = tcp4_table->table[i].dwState;
|
||||
|
||||
_app_network_update_tcp4_stats (ptr_network, &tcp4_table->table[i]);
|
||||
|
||||
if (tcp4_table->table[i].dwState == MIB_TCP_STATE_ESTAB)
|
||||
{
|
||||
if (_app_network_isvalidconnection (ptr_network->af, &ptr_network->remote_addr) || _app_network_isvalidconnection (ptr_network->af, &ptr_network->local_addr))
|
||||
ptr_network->is_connection = TRUE;
|
||||
}
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_network);
|
||||
_r_obj_addhashtablepointer (network_context->network_ptr, network_hash, ptr_network);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_network);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, _r_obj_reference (ptr_network->path));
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TCP IPv6
|
||||
required_size = 0;
|
||||
GetExtendedTcpTable (NULL, &required_size, FALSE, AF_INET6, TCP_TABLE_OWNER_MODULE_ALL, 0);
|
||||
|
||||
if (required_size)
|
||||
{
|
||||
if (allocated_size < required_size)
|
||||
{
|
||||
buffer = _r_mem_reallocate (buffer, required_size);
|
||||
|
||||
allocated_size = required_size;
|
||||
}
|
||||
|
||||
tcp6_table = (PMIB_TCP6TABLE_OWNER_MODULE)buffer;
|
||||
status = GetExtendedTcpTable (tcp6_table, &required_size, FALSE, AF_INET6, TCP_TABLE_OWNER_MODULE_ALL, 0);
|
||||
|
||||
if (status == NO_ERROR)
|
||||
{
|
||||
for (ULONG i = 0; i < tcp6_table->dwNumEntries; i++)
|
||||
{
|
||||
if (_app_network_iswaitingconnection (tcp6_table->table[i].dwOwningPid))
|
||||
continue;
|
||||
|
||||
network_hash = _app_network_gethash (
|
||||
AF_INET6,
|
||||
tcp6_table->table[i].dwOwningPid,
|
||||
tcp6_table->table[i].ucRemoteAddr,
|
||||
tcp6_table->table[i].dwRemotePort,
|
||||
tcp6_table->table[i].ucLocalAddr,
|
||||
tcp6_table->table[i].dwLocalPort,
|
||||
IPPROTO_TCP,
|
||||
tcp6_table->table[i].dwState
|
||||
);
|
||||
|
||||
ptr_network = _app_network_getitem (network_hash);
|
||||
|
||||
if (ptr_network)
|
||||
{
|
||||
_app_network_update_tcp6_stats (ptr_network, &tcp6_table->table[i]);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, NULL);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
ptr_network = (PITEM_NETWORK)_r_obj_allocate (sizeof (ITEM_NETWORK), &_app_dereferencenetwork);
|
||||
|
||||
if (!_app_network_getpath (ptr_network, tcp6_table->table[i].dwOwningPid, tcp6_table->table[i].OwningModuleInfo))
|
||||
{
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
ptr_network->af = AF_INET6;
|
||||
ptr_network->protocol = IPPROTO_TCP;
|
||||
ptr_network->protocol_str = _r_obj_createstring (_app_db_getprotoname (ptr_network->protocol, ptr_network->af, L"<unknown protocol>"));
|
||||
|
||||
RtlCopyMemory (ptr_network->remote_addr6.u.Byte, tcp6_table->table[i].ucRemoteAddr, FWP_V6_ADDR_SIZE);
|
||||
ptr_network->remote_port = _r_byteswap_ushort ((USHORT)tcp6_table->table[i].dwRemotePort);
|
||||
RtlCopyMemory (ptr_network->local_addr6.u.Byte, tcp6_table->table[i].ucLocalAddr, FWP_V6_ADDR_SIZE);
|
||||
ptr_network->local_port = _r_byteswap_ushort ((USHORT)tcp6_table->table[i].dwLocalPort);
|
||||
|
||||
ptr_network->state = tcp6_table->table[i].dwState;
|
||||
|
||||
_app_network_update_tcp6_stats (ptr_network, &tcp6_table->table[i]);
|
||||
|
||||
if (tcp6_table->table[i].dwState == MIB_TCP_STATE_ESTAB)
|
||||
{
|
||||
if (_app_network_isvalidconnection (ptr_network->af, &ptr_network->remote_addr6) || _app_network_isvalidconnection (ptr_network->af, &ptr_network->local_addr6))
|
||||
ptr_network->is_connection = TRUE;
|
||||
}
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_network);
|
||||
_r_obj_addhashtablepointer (network_context->network_ptr, network_hash, ptr_network);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_network);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, _r_obj_reference (ptr_network->path));
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// UDP IPv4
|
||||
required_size = 0;
|
||||
GetExtendedUdpTable (NULL, &required_size, FALSE, AF_INET, UDP_TABLE_OWNER_MODULE, 0);
|
||||
|
||||
if (required_size)
|
||||
{
|
||||
if (allocated_size < required_size)
|
||||
{
|
||||
buffer = _r_mem_reallocate (buffer, required_size);
|
||||
|
||||
allocated_size = required_size;
|
||||
}
|
||||
|
||||
udp4_table = (PMIB_UDPTABLE_OWNER_MODULE)buffer;
|
||||
status = GetExtendedUdpTable (udp4_table, &required_size, FALSE, AF_INET, UDP_TABLE_OWNER_MODULE, 0);
|
||||
|
||||
if (status == NO_ERROR)
|
||||
{
|
||||
udp4_complete = TRUE;
|
||||
|
||||
for (ULONG i = 0; i < udp4_table->dwNumEntries; i++)
|
||||
{
|
||||
RtlZeroMemory (&local_addr, sizeof (IN_ADDR));
|
||||
|
||||
local_addr.S_un.S_addr = udp4_table->table[i].dwLocalAddr;
|
||||
|
||||
network_hash = _app_network_gethash (AF_INET, udp4_table->table[i].dwOwningPid, NULL, 0, &local_addr, udp4_table->table[i].dwLocalPort, IPPROTO_UDP, 0);
|
||||
|
||||
ptr_network = _app_network_getitem (network_hash);
|
||||
|
||||
if (ptr_network)
|
||||
{
|
||||
_app_network_update_udp_stats (ptr_network, network_context, udp4_table->table[i].dwOwningPid, udp4_table->table[i].liCreateTimestamp.QuadPart, 0);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, NULL);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (_app_network_iswaitingconnection (udp4_table->table[i].dwOwningPid))
|
||||
continue;
|
||||
|
||||
ptr_network = (PITEM_NETWORK)_r_obj_allocate (sizeof (ITEM_NETWORK), &_app_dereferencenetwork);
|
||||
|
||||
if (!_app_network_getpath (ptr_network, udp4_table->table[i].dwOwningPid, udp4_table->table[i].OwningModuleInfo))
|
||||
{
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
ptr_network->af = AF_INET;
|
||||
ptr_network->protocol = IPPROTO_UDP;
|
||||
ptr_network->protocol_str = _r_obj_createstring (_app_db_getprotoname (ptr_network->protocol, ptr_network->af, L"<unknown protocol>"));
|
||||
|
||||
ptr_network->local_addr.S_un.S_addr = udp4_table->table[i].dwLocalAddr;
|
||||
ptr_network->local_port = _r_byteswap_ushort ((USHORT)udp4_table->table[i].dwLocalPort);
|
||||
|
||||
_app_network_update_udp_stats (ptr_network, network_context, udp4_table->table[i].dwOwningPid, udp4_table->table[i].liCreateTimestamp.QuadPart, 0);
|
||||
|
||||
if (_app_network_isvalidconnection (ptr_network->af, &ptr_network->local_addr))
|
||||
ptr_network->is_connection = TRUE;
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_network);
|
||||
_r_obj_addhashtablepointer (network_context->network_ptr, network_hash, ptr_network);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_network);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, _r_obj_reference (ptr_network->path));
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// UDP IPv6
|
||||
required_size = 0;
|
||||
GetExtendedUdpTable (NULL, &required_size, FALSE, AF_INET6, UDP_TABLE_OWNER_MODULE, 0);
|
||||
|
||||
if (required_size)
|
||||
{
|
||||
if (allocated_size < required_size)
|
||||
{
|
||||
buffer = _r_mem_reallocate (buffer, required_size);
|
||||
allocated_size = required_size;
|
||||
}
|
||||
|
||||
udp6_table = (PMIB_UDP6TABLE_OWNER_MODULE)buffer;
|
||||
status = GetExtendedUdpTable (udp6_table, &required_size, FALSE, AF_INET6, UDP_TABLE_OWNER_MODULE, 0);
|
||||
|
||||
if (status == NO_ERROR)
|
||||
{
|
||||
udp6_complete = TRUE;
|
||||
|
||||
for (ULONG i = 0; i < udp6_table->dwNumEntries; i++)
|
||||
{
|
||||
network_hash = _app_network_gethash (AF_INET6, udp6_table->table[i].dwOwningPid, NULL, 0, udp6_table->table[i].ucLocalAddr, udp6_table->table[i].dwLocalPort, IPPROTO_UDP, 0);
|
||||
|
||||
ptr_network = _app_network_getitem (network_hash);
|
||||
|
||||
if (ptr_network)
|
||||
{
|
||||
_app_network_update_udp_stats (ptr_network, network_context, udp6_table->table[i].dwOwningPid, udp6_table->table[i].liCreateTimestamp.QuadPart, udp6_table->table[i].dwLocalScopeId);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, NULL);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (_app_network_iswaitingconnection (udp6_table->table[i].dwOwningPid))
|
||||
continue;
|
||||
|
||||
ptr_network = (PITEM_NETWORK)_r_obj_allocate (sizeof (ITEM_NETWORK), &_app_dereferencenetwork);
|
||||
|
||||
if (!_app_network_getpath (ptr_network, udp6_table->table[i].dwOwningPid, udp6_table->table[i].OwningModuleInfo))
|
||||
{
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
ptr_network->af = AF_INET6;
|
||||
ptr_network->protocol = IPPROTO_UDP;
|
||||
ptr_network->protocol_str = _r_obj_createstring (_app_db_getprotoname (ptr_network->protocol, ptr_network->af, L"<unknown protocol>"));
|
||||
|
||||
RtlCopyMemory (ptr_network->local_addr6.u.Byte, udp6_table->table[i].ucLocalAddr, FWP_V6_ADDR_SIZE);
|
||||
ptr_network->local_port = _r_byteswap_ushort ((USHORT)udp6_table->table[i].dwLocalPort);
|
||||
|
||||
_app_network_update_udp_stats (ptr_network, network_context, udp6_table->table[i].dwOwningPid, udp6_table->table[i].liCreateTimestamp.QuadPart, udp6_table->table[i].dwLocalScopeId);
|
||||
|
||||
if (_app_network_isvalidconnection (ptr_network->af, &ptr_network->local_addr6))
|
||||
ptr_network->is_connection = TRUE;
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_network);
|
||||
_r_obj_addhashtablepointer (network_context->network_ptr, network_hash, ptr_network);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_network);
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_checker);
|
||||
_r_obj_addhashtablepointer (network_context->checker_ptr, network_hash, _r_obj_reference (ptr_network->path));
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_checker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
udp_stats_end_refresh (network_context->udp_stats, udp4_complete, udp6_complete);
|
||||
|
||||
if (buffer)
|
||||
_r_mem_free (buffer);
|
||||
}
|
||||
|
||||
_Ret_maybenull_
|
||||
PITEM_NETWORK _app_network_getitem (
|
||||
_In_ ULONG network_hash
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK_CONTEXT network_context;
|
||||
PITEM_NETWORK ptr_network;
|
||||
|
||||
network_context = _app_network_getcontext ();
|
||||
|
||||
if (!network_context)
|
||||
return NULL;
|
||||
|
||||
_r_queuedlock_acquireshared (&network_context->lock_network);
|
||||
ptr_network = (PITEM_NETWORK)_r_obj_findhashtablepointer (network_context->network_ptr, network_hash);
|
||||
_r_queuedlock_releaseshared (&network_context->lock_network);
|
||||
|
||||
return ptr_network;
|
||||
}
|
||||
|
||||
_Success_ (return != 0)
|
||||
ULONG _app_network_getappitem (
|
||||
_In_ ULONG network_hash
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK ptr_network;
|
||||
ULONG hash_code;
|
||||
|
||||
ptr_network = _app_network_getitem (network_hash);
|
||||
|
||||
if (!ptr_network)
|
||||
return 0;
|
||||
|
||||
hash_code = ptr_network->app_hash;
|
||||
|
||||
_r_obj_dereference (ptr_network);
|
||||
|
||||
return hash_code;
|
||||
}
|
||||
|
||||
ULONG _app_network_gethash (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ ULONG pid,
|
||||
_In_opt_ LPCVOID remote_addr,
|
||||
_In_opt_ ULONG remote_port,
|
||||
_In_opt_ LPCVOID local_addr,
|
||||
_In_opt_ ULONG local_port,
|
||||
_In_ UINT8 proto,
|
||||
_In_opt_ ULONG state
|
||||
)
|
||||
{
|
||||
WCHAR local_address[LEN_IP_MAX] = {0}, remote_address[LEN_IP_MAX] = {0}, network_string[0x100];
|
||||
|
||||
if (remote_addr)
|
||||
_app_formatip (remote_address, RTL_NUMBER_OF (remote_address), af, remote_addr, FALSE);
|
||||
|
||||
if (local_addr)
|
||||
_app_formatip (local_address, RTL_NUMBER_OF (local_address), af, local_addr, FALSE);
|
||||
|
||||
_r_str_printf (
|
||||
network_string,
|
||||
RTL_NUMBER_OF (network_string),
|
||||
L"%" TEXT (PRIu8) L"_%" TEXT (PR_ULONG) L"_%s_%" TEXT (PR_ULONG) L"_%s_%" TEXT (PR_ULONG) L"_%" TEXT (PRIu8) L"_%" TEXT (PR_ULONG),
|
||||
af,
|
||||
pid,
|
||||
remote_address,
|
||||
remote_port,
|
||||
local_address,
|
||||
local_port,
|
||||
proto,
|
||||
state
|
||||
);
|
||||
|
||||
return _r_str_gethash2 (network_string, TRUE);
|
||||
}
|
||||
|
||||
BOOLEAN _app_network_getpath (
|
||||
_Inout_ PITEM_NETWORK ptr_network,
|
||||
_In_ ULONG pid,
|
||||
_In_opt_ PULONG64 modules
|
||||
)
|
||||
{
|
||||
PTOKEN_APPCONTAINER_INFORMATION app_container = NULL;
|
||||
PR_STRING process_name = NULL;
|
||||
HANDLE hprocess, htoken;
|
||||
NTSTATUS status;
|
||||
|
||||
if (pid == PROC_WAITING_PID)
|
||||
{
|
||||
ptr_network->app_hash = 0;
|
||||
ptr_network->type = DATA_APP_REGULAR;
|
||||
ptr_network->path = _r_obj_createstring (PROC_WAITING_NAME);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else if (pid == PROC_SYSTEM_PID)
|
||||
{
|
||||
ptr_network->app_hash = config.ntoskrnl_hash;
|
||||
ptr_network->type = DATA_APP_REGULAR;
|
||||
ptr_network->path = _r_obj_createstring (PROC_SYSTEM_NAME);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (modules)
|
||||
{
|
||||
process_name = _r_sys_querytaginformation (pid, ULongToPtr (*(PULONG)modules));
|
||||
|
||||
if (process_name)
|
||||
ptr_network->type = DATA_APP_SERVICE;
|
||||
}
|
||||
|
||||
if (!process_name)
|
||||
{
|
||||
status = _r_sys_openprocess (&hprocess, pid, PROCESS_QUERY_LIMITED_INFORMATION);
|
||||
|
||||
if (NT_SUCCESS (status))
|
||||
{
|
||||
ptr_network->type = _r_sys_isprocessimmersive (hprocess) ? DATA_APP_UWP : DATA_APP_REGULAR;
|
||||
|
||||
if (ptr_network->type == DATA_APP_UWP)
|
||||
{
|
||||
status = NtOpenProcessTokenEx (hprocess, TOKEN_QUERY, 0, &htoken);
|
||||
|
||||
if (NT_SUCCESS (status))
|
||||
{
|
||||
status = _r_sys_querytokeninformation ((PVOID_PTR)&app_container, htoken, TokenAppContainerSid);
|
||||
|
||||
if (NT_SUCCESS (status))
|
||||
{
|
||||
_r_str_fromsid (&process_name, app_container->TokenAppContainer);
|
||||
|
||||
_r_mem_free (app_container);
|
||||
}
|
||||
|
||||
NtClose (htoken);
|
||||
}
|
||||
}
|
||||
|
||||
if (!process_name)
|
||||
{
|
||||
status = _r_sys_queryprocessstring (&process_name, hprocess, ProcessImageFileNameWin32);
|
||||
|
||||
// fix for WSL processes (issue #606)
|
||||
if (status == STATUS_UNSUCCESSFUL)
|
||||
status = _r_sys_queryprocessstring (&process_name, hprocess, ProcessImageFileName);
|
||||
}
|
||||
|
||||
NtClose (hprocess);
|
||||
}
|
||||
}
|
||||
|
||||
if (process_name)
|
||||
{
|
||||
ptr_network->app_hash = _r_str_gethash (&process_name->sr, TRUE);
|
||||
ptr_network->path = process_name;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN _app_network_isapphaveconnection (
|
||||
_In_ ULONG app_hash
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK_CONTEXT network_context;
|
||||
PITEM_NETWORK ptr_network = NULL;
|
||||
ULONG_PTR enum_key = 0;
|
||||
|
||||
network_context = _app_network_getcontext ();
|
||||
|
||||
if (!network_context)
|
||||
return FALSE;
|
||||
|
||||
_r_queuedlock_acquireshared (&network_context->lock_network);
|
||||
|
||||
while (_r_obj_enumhashtablepointer (network_context->network_ptr, (PVOID_PTR)&ptr_network, NULL, &enum_key))
|
||||
{
|
||||
if (ptr_network->app_hash != app_hash)
|
||||
continue;
|
||||
|
||||
if (ptr_network->is_connection)
|
||||
{
|
||||
_r_queuedlock_releaseshared (&network_context->lock_network);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
_r_queuedlock_releaseshared (&network_context->lock_network);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN _app_network_isitemfound (
|
||||
_In_ ULONG network_hash
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK_CONTEXT network_context;
|
||||
BOOLEAN is_found;
|
||||
|
||||
network_context = _app_network_getcontext ();
|
||||
|
||||
if (!network_context)
|
||||
return FALSE;
|
||||
|
||||
_r_queuedlock_acquireshared (&network_context->lock_network);
|
||||
is_found = (_r_obj_findhashtable (network_context->network_ptr, network_hash) != NULL);
|
||||
_r_queuedlock_releaseshared (&network_context->lock_network);
|
||||
|
||||
return is_found;
|
||||
}
|
||||
|
||||
BOOLEAN _app_network_isvalidconnection (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address
|
||||
)
|
||||
{
|
||||
PIN6_ADDR p6addr;
|
||||
PIN_ADDR p4addr;
|
||||
|
||||
switch (af)
|
||||
{
|
||||
case AF_INET:
|
||||
{
|
||||
p4addr = (const PIN_ADDR)address;
|
||||
|
||||
return (!IN4_IS_ADDR_UNSPECIFIED (p4addr) &&
|
||||
!IN4_IS_ADDR_LOOPBACK (p4addr) &&
|
||||
!IN4_IS_ADDR_LINKLOCAL (p4addr) &&
|
||||
!IN4_IS_ADDR_MULTICAST (p4addr) &&
|
||||
!IN4_IS_ADDR_MC_ADMINLOCAL (p4addr) &&
|
||||
!IN4_IS_ADDR_RFC1918 (p4addr));
|
||||
}
|
||||
|
||||
case AF_INET6:
|
||||
{
|
||||
p6addr = (const PIN6_ADDR)address;
|
||||
|
||||
return (!IN6_IS_ADDR_UNSPECIFIED (p6addr) &&
|
||||
!IN6_IS_ADDR_LOOPBACK (p6addr) &&
|
||||
!IN6_IS_ADDR_ANYCAST (p6addr) &&
|
||||
!IN6_IS_ADDR_LINKLOCAL (p6addr) &&
|
||||
!IN6_IS_ADDR_MULTICAST (p6addr) &&
|
||||
!IN6_IS_ADDR_SITELOCAL (p6addr));
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return FALSE; // unknown address family
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VOID _app_network_printlistviewtable (
|
||||
_Inout_ PITEM_NETWORK_CONTEXT network_context
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK ptr_network = NULL;
|
||||
PR_STRING string;
|
||||
ULONG_PTR enum_key = 0;
|
||||
ULONG app_hash, network_hash;
|
||||
INT item_count;
|
||||
BOOLEAN is_highlight = FALSE, is_refresh = FALSE;
|
||||
|
||||
if (_r_config_getboolean (L"IsEnableHighlighting", TRUE, NULL) && _r_config_getboolean (L"IsHighlightConnection", TRUE, L"colors"))
|
||||
is_highlight = TRUE;
|
||||
|
||||
// add new connections into listview
|
||||
_r_queuedlock_acquireshared (&network_context->lock_network);
|
||||
|
||||
while (_r_obj_enumhashtablepointer (network_context->network_ptr, (PVOID_PTR)&ptr_network, &network_hash, &enum_key))
|
||||
{
|
||||
string = (PR_STRING)_r_obj_findhashtablepointer (network_context->checker_ptr, network_hash);
|
||||
|
||||
if (!string)
|
||||
continue;
|
||||
|
||||
_app_listview_addnetworkitem (network_context->hwnd, network_hash);
|
||||
|
||||
if (ptr_network->app_hash && ptr_network->path)
|
||||
_app_getfileinformation (ptr_network->path, ptr_network->app_hash, ptr_network->type, IDC_NETWORK);
|
||||
|
||||
// resolve network address
|
||||
_app_queue_resolver (network_context->hwnd, IDC_NETWORK, network_hash, ptr_network);
|
||||
|
||||
_r_obj_dereference (string);
|
||||
|
||||
is_refresh = TRUE;
|
||||
}
|
||||
|
||||
_r_queuedlock_releaseshared (&network_context->lock_network);
|
||||
|
||||
// refresh network tab (traffic counters change on every pass)
|
||||
if (is_refresh)
|
||||
{
|
||||
_app_listview_updateby_id (network_context->hwnd, IDC_NETWORK, PR_UPDATE_NORESIZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
_r_listview_redraw (network_context->hwnd, IDC_NETWORK);
|
||||
_app_listview_sort (network_context->hwnd, IDC_NETWORK, INT_ERROR, FALSE);
|
||||
}
|
||||
|
||||
// remove closed connections from list
|
||||
item_count = _r_listview_getitemcount (network_context->hwnd, IDC_NETWORK);
|
||||
|
||||
if (!item_count)
|
||||
return;
|
||||
|
||||
for (INT i = item_count - 1; i != INT_ERROR; i--)
|
||||
{
|
||||
network_hash = (ULONG)_app_listview_getitemcontext (network_context->hwnd, IDC_NETWORK, i);
|
||||
|
||||
if (_r_obj_findhashtable (network_context->checker_ptr, network_hash))
|
||||
continue;
|
||||
|
||||
_r_listview_deleteitem (network_context->hwnd, IDC_NETWORK, i);
|
||||
|
||||
app_hash = _app_network_getappitem (network_hash);
|
||||
|
||||
_app_network_removeitem (network_hash);
|
||||
|
||||
if (app_hash && is_highlight)
|
||||
_app_listview_updateby_param (network_context->hwnd, app_hash, PR_SETITEM_REDRAW, TRUE); // redraw listview item
|
||||
}
|
||||
}
|
||||
|
||||
VOID _app_network_removeitem (
|
||||
_In_ ULONG network_hash
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK_CONTEXT network_context;
|
||||
|
||||
network_context = _app_network_getcontext ();
|
||||
|
||||
if (!network_context)
|
||||
return;
|
||||
|
||||
_r_queuedlock_acquireexclusive (&network_context->lock_network);
|
||||
_r_obj_removehashtableitem (network_context->network_ptr, network_hash);
|
||||
_r_queuedlock_releaseexclusive (&network_context->lock_network);
|
||||
}
|
||||
|
||||
VOID NTAPI _app_network_threadproc (
|
||||
_In_ PVOID arglist
|
||||
)
|
||||
{
|
||||
PITEM_NETWORK_CONTEXT network_context;
|
||||
|
||||
network_context = (PITEM_NETWORK_CONTEXT)arglist;
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
// update network table
|
||||
_app_network_generatetable (network_context);
|
||||
_app_network_printlistviewtable (network_context);
|
||||
|
||||
_r_sys_waitforsingleobject (NtCurrentThread (), 2000);
|
||||
}
|
||||
|
||||
_app_network_uninitialize (network_context);
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
// simplewall
|
||||
// Copyright (c) 2019-2026 Henry++
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "udpstats.h"
|
||||
|
||||
typedef struct _ITEM_NETWORK_CONTEXT
|
||||
{
|
||||
R_QUEUED_LOCK lock_network;
|
||||
R_QUEUED_LOCK lock_checker;
|
||||
|
||||
PR_HASHTABLE network_ptr;
|
||||
PR_HASHTABLE checker_ptr;
|
||||
|
||||
SW_UDP_STATS *udp_stats;
|
||||
|
||||
HWND hwnd;
|
||||
} ITEM_NETWORK_CONTEXT, *PITEM_NETWORK_CONTEXT;
|
||||
|
||||
PITEM_NETWORK_CONTEXT _app_network_getcontext ();
|
||||
|
||||
VOID _app_network_stop ();
|
||||
|
||||
VOID _app_network_initialize (
|
||||
_In_ HWND hwnd
|
||||
);
|
||||
|
||||
VOID _app_network_uninitialize (
|
||||
_In_ PITEM_NETWORK_CONTEXT context
|
||||
);
|
||||
|
||||
VOID _app_network_generatetable (
|
||||
_Inout_ PITEM_NETWORK_CONTEXT context
|
||||
);
|
||||
|
||||
_Ret_maybenull_
|
||||
PITEM_NETWORK _app_network_getitem (
|
||||
_In_ ULONG network_hash
|
||||
);
|
||||
|
||||
_Success_ (return != 0)
|
||||
ULONG _app_network_getappitem (
|
||||
_In_ ULONG network_hash
|
||||
);
|
||||
|
||||
ULONG _app_network_gethash (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ ULONG pid,
|
||||
_In_opt_ LPCVOID remote_addr,
|
||||
_In_opt_ ULONG remote_port,
|
||||
_In_opt_ LPCVOID local_addr,
|
||||
_In_opt_ ULONG local_port,
|
||||
_In_ UINT8 proto,
|
||||
_In_opt_ ULONG state
|
||||
);
|
||||
|
||||
BOOLEAN _app_network_getpath (
|
||||
_Inout_ PITEM_NETWORK ptr_network,
|
||||
_In_ ULONG pid,
|
||||
_In_opt_ PULONG64 modules
|
||||
);
|
||||
|
||||
BOOLEAN _app_network_isapphaveconnection (
|
||||
_In_ ULONG app_hash
|
||||
);
|
||||
|
||||
BOOLEAN _app_network_isitemfound (
|
||||
_In_ ULONG network_hash
|
||||
);
|
||||
|
||||
BOOLEAN _app_network_isvalidconnection (
|
||||
_In_ ADDRESS_FAMILY af,
|
||||
_In_ LPCVOID address
|
||||
);
|
||||
|
||||
VOID _app_network_printlistviewtable (
|
||||
_Inout_ PITEM_NETWORK_CONTEXT context
|
||||
);
|
||||
|
||||
VOID _app_network_removeitem (
|
||||
_In_ ULONG network_hash
|
||||
);
|
||||
|
||||
VOID NTAPI _app_network_threadproc (
|
||||
_In_ PVOID arglist
|
||||
);
|
||||
Loaded 100 of 155 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user