From 661b3417abbc2a61dfa151d915f595700998c104 Mon Sep 17 00:00:00 2001 From: henrypp Date: Fri, 19 May 2017 19:25:50 +0600 Subject: [PATCH] 1.6 --- CHANGELOG.md | 18 ++- bin/History.txt | 18 ++- bin/i18n/!example.txt | Bin 10956 -> 11886 bytes bin/i18n/Brazilian Portuguese.ini | Bin 12950 -> 13694 bytes bin/i18n/Farsi.ini | Bin 11128 -> 11904 bytes bin/i18n/French.ini | Bin 11922 -> 12834 bytes bin/i18n/German.ini | Bin 11832 -> 12690 bytes bin/i18n/Korean.ini | Bin 8644 -> 9744 bytes bin/i18n/Polish.ini | Bin 11842 -> 12754 bytes bin/i18n/Russian.ini | Bin 12376 -> 13294 bytes bin/i18n/Simplified Chinese.ini | Bin 8836 -> 9748 bytes bin/i18n/Spanish.ini | Bin 12162 -> 13000 bytes bin/rules_custom.xml | Bin 294 -> 0 bytes bin/rules_system.xml | Bin 5236 -> 5078 bytes build.bat | 2 +- src/main.cpp | Bin 354412 -> 378228 bytes src/main.h | Bin 17360 -> 20858 bytes src/resource.h | 198 +++++++++++++++++------------- src/resource.rc | Bin 37122 -> 39160 bytes 19 files changed, 145 insertions(+), 91 deletions(-) delete mode 100644 bin/rules_custom.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index ca4a4027..bce1917b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,26 @@ +v1.6 (19 May 2017) ++ added prevent port scanning option ++ added acl (access control list) to the engine ++ added gridline for the listview config ++ added item into the custom rules menu for open rules editor ++ added version-independent network events api call (win7 and above) ++ added dropped packets log file size limit to 1mb (win7 and above) ++ reset windows firewall to its initial state when restore it back ++ blocklist marked as experimental +- removed custom rules from package +- fixed dropped packets logging stop sometimes (win7 and above) +- fixed removing custom rules +- fixed classic ui +- fixed bugs +- ui fixes + v1.5.5 (6 May 2017) + added installer + added static wfp session key + copy filter name if description is not available for dropped packets log +- removed "file not found" xml parsing errors - revert trim rules back (request) - fixed index flag cannot be set (win8 and above) -- removed "file not found" xml parsing errors - fixed ui bugs v1.5.4 (30 April 2017) diff --git a/bin/History.txt b/bin/History.txt index ca4a4027..bce1917b 100644 --- a/bin/History.txt +++ b/bin/History.txt @@ -1,10 +1,26 @@ +v1.6 (19 May 2017) ++ added prevent port scanning option ++ added acl (access control list) to the engine ++ added gridline for the listview config ++ added item into the custom rules menu for open rules editor ++ added version-independent network events api call (win7 and above) ++ added dropped packets log file size limit to 1mb (win7 and above) ++ reset windows firewall to its initial state when restore it back ++ blocklist marked as experimental +- removed custom rules from package +- fixed dropped packets logging stop sometimes (win7 and above) +- fixed removing custom rules +- fixed classic ui +- fixed bugs +- ui fixes + v1.5.5 (6 May 2017) + added installer + added static wfp session key + copy filter name if description is not available for dropped packets log +- removed "file not found" xml parsing errors - revert trim rules back (request) - fixed index flag cannot be set (win8 and above) -- removed "file not found" xml parsing errors - fixed ui bugs v1.5.4 (30 April 2017) diff --git a/bin/i18n/!example.txt b/bin/i18n/!example.txt index 69ce7f3f2ae71add5e917a34566a325bcfe7fb56..36d40e4c5ce142f7a986af2f89dde068b84a8878 100644 GIT binary patch delta 933 zcmaKq%S%*o6vxkCnut=CqE|C+gN(hLbp$Tb8JtTqD$X6E5@cSQc;~@9?6Dc@4~XEm zaZ#&UOK=x~n>H<4vE0daiwK`jZK-aXD@_@!@;?w45oXsijzk`mV3>HZ_A2g|hI>*navklAu3%&Ykk^V#{N|C4#Lr{xZyK2SLl zr6g@Wy3Tl8I)oPi>HxkdH8VbR@st>EcCOciL<@gc+EOOA&ZjhX(R9)EWt9S3tNK=m zX;8as?Iq+cF%|xO3f$n`q(Gln5mm1q9r@GK!!y^j&T&ehZX7gS(Y_5Nm$uhQrA3t~ zsR)3Qh-2vh=|VxR2b?+@^-o#E|Cg1NF&VK_$;-Bw%d^Swc;@xspiamSAG!;%UY4G& z!rzkzbXtd(tB`jer7=HTAs}7!n!s7*ZHObO8|NFk~{M q0{J>XkxYg(AeqdN0TfAQ$cBrjG2}B8fpz2n)x&faZ{Do6of!ar0xY`# diff --git a/bin/i18n/Brazilian Portuguese.ini b/bin/i18n/Brazilian Portuguese.ini index 190deb35972fac8b3b2f7080768122b88d6e5c45..c3557b180652d78f1986e6f7235f5c7ced4feb18 100644 GIT binary patch delta 1309 zcmZ{kO-~b16owC?5J^}VHY!mjBz^)--1!kTd<7a?Aaoj|lIWBc8EHF&wjgf$4_r72 zTlF81%*vgKdw-9{M19^nj0F?Y%-l2g-1DCIob%ou)PBD?92i+Di|5wJ)@@6N$l8vl$0m|bS8n&k zU%i2D35xSJO&%ZgB1Gr-?&UfOMmVGcpxSVlvIab=>eq1E4lZzOM4(4qO)&;$o!YYokK@q*MPJ@tIc1QP{`9hP zHXH|I_mUr1&kUZ^nEm9>wQqgh0#jIkbl#pb3n`$;EspLR>~Ol9fWQ_g7)(zLEci|Bo~r;4(%NqHjC;8Egz zDqCY+BeuXP`87Asb}wV@xK^a26Nx>J>{~1THSuw9)A?)h=gDHj$dRW|WRBgb!P z0G(|R!XsZ=zi5Kz(rN(dDbddeOArx$l^GG=vRwRlgV!BnuIJeksoK!+3)47GnH7pXP#Ns*)8m_%h?DsmxG(bdz?dq-JtY23t!B)myn5 z9xJ1_4hEMmtn6x=TI5pzUKglGO+Ce?4)TURd&oo7xcs&_U392|Qw8;}xbFaOqSK~R z)P~fi4{+J|3sVaSRP%c}%U{lU+@)hWA)n9kyWL+EsI|e+0-H}&WHm&DMLZ$6ed>c( zP}xFN>lIZ2x}+n}ljJ^!lc*i&Sq3Ke!sR2x7ZfJ|$WU3R%lX1ac284_nedN{HQgAQ z3i&aa>blytSQdM-I{Av|!4v&&r;fgW4p7&C0GTUNq*j(4Xpv$dvMJm_^h|oeZE|RW LOxjZ0>&1~DskwV| diff --git a/bin/i18n/Farsi.ini b/bin/i18n/Farsi.ini index 3757d02d60635d2a8467184eb13ca7fa40589d12..804692b5886ca79dc8a452f7ecbf3ee49d39ff05 100644 GIT binary patch delta 1419 zcmaKsO-~bH6ooG;3DFo6CT0}!1!BS8soy}ywgIv&@?mie%$xmbI!eQf4x3=dv-dOS+jLpvQ^u#qU9Ln zc@`~e1zTfnj(5W<7MN#E>sXy}i*d!uR0$(9&T@h`I21B!iuDIZF^s9Vr2j{zQ$UzTXfg|igt_oOU{x~}-vFH!WDT1W* z|By9`mRak5z4K{wR2@+0zVfmoQH}~MLpW=1sDqkgg{Oe8=gzU>Q(6_Z!{cE_cy7!w z?4PnW%}$8~GefmW(C4Z50*zLL-$kY8LEU*m4|SZIebC*W+v>84?UG6|C0e~6xJs!h z;-3?#?w5OiE=76HS6HtBSSNDuP9#>zx};w{Zi4DoW`2n6s&2!M+?s0LubDEa=IUc* zK0?|y-)+w3h|+%2_Xl?wHks6bRNX}4koS?`ZL(#KFk{=tM&F0ucSz+#ZbjcqNKF1O^p+> zFGoVow+2&xn@U9sFcU!N00vX44|Rb&IW=-MOCmWt)TH_|+N4Fd OxCZ*)?f!UhdigJG917L| delta 529 zcmY*VJxc>Y5Zx#lf&>E*G2b2$bC*lJ<;;l)At2l(5foF1h{htlSXibIe}NLFva+#> zNEEM2`AJSNlmgzM;wtR`qaQ}lB=SJ zs;%lxR5eist^#~zQX5g7B;M=j+WcM0#@gaSw8gn-C}xd&@fAKZy8AjN>J-dt;t9El z*ucx6s*s{1YKmQ=BPV~>fvAJUQkyi$1J+TwB%3?YMa~s7Ytsrep{rdk!Q)`wq%F1o zHgbm~-<8umoS#bvN)77ce;b(xH1>xMNf!4OlKfgsoJ=$Sd!qyA;*2#I;BayNe3FVY za77b=XV?|@2Jkj86Bhm`C6|Lq?1ZjCo2svg3Q&Q=@SJbTdOpz8f(8#&7f1^@9UhGN OgK4&w68@VxnEeG09AxAG diff --git a/bin/i18n/French.ini b/bin/i18n/French.ini index 18922fb18edae044b3a0e4def9877510d72476b6..987f5f508b993381cf600a98539e4b305237ef08 100644 GIT binary patch delta 978 zcmZ{j%W6|m6o&tJrGnt3XiSAe)V2{@1QA3i(o1N9NgJ93QIL?!>4hfegeIxgNuV>Q zo+nVmnIfFA17EMM-uXQt!hsSj6{a+p5VI!<{23alFruBKJx z^aQA~b`|O+?mK|(0nug+3^KlY{afOOr+E%XE}|K9I0ZzhW0;BFq~@aEsqd+(<5-4a zR?7sc0AD2dnzGTSRC3tE!*@P?0xp0O63W+QU2@dQs*$VZ`A-aPbB=rk$|Z>UI{eGS zgIS2CPYOLXi4pKw3Oi^9=#Yo*V4@Yv=zD}ez_E*D#tq~Fdy8|0>Xg{G92w6+n%*q> z6P9@_i_SJps@8_SL#w+z1kWR_Kt*F*hutn~!;wgHMXy-9r}C)+W#RvuSNwIRdEvbE zvJ&6EIY8GpQW?`)zR zP0uXEzvezCk|*`H!i26!P4;&5F7qJzaq(L8Gc!9}1nn8x0sE-w=GWzG>lM23!x(kf z9>yVm3ws;fk#_81kH@Cox_1}Z*pBZ`qm6R$(hkOe8ZMl5)`!SGtBnfpFs|LXf9?-N C8oK8I delta 190 zcmZ3KGAVXL6X)h@oJ#~YACua|I5~oyXR?`$)Z{%f=O)jS*W2tSug1pe%HYEgu(?pR zlyP#LCeP+=>ITfRK@6n~ISi=`#S97zB@FpMG6~4fXGmtqW+>h)sJ)SqQE#%LsO01y zIueXQljU{w*%cTP8S)rXCQsB6woeBuP6CSLFz5g^XELM#$z+BMpphUWQW;Xf;%Pu5 Vi-0m9bvarhw-}%lt-<@yUUw1Fhhv!#q&C<4F>$Yjj z>^68(mNnm2Ih*BuWF@PaXUEpE3i}58k`=9NO{?2+a4|H}IUn}#&1P_ZZ%c$_fmr6f z;sAGS(K7Z9unjvP{=hnLI+M#o6STndk79Ys- zl?Y}=p9Pnrzk|8a!Sn`f(>6~^pF}xmr1DC(S zI^FVF1zBX3OOuv#T{+3(nRCA56s*BC9bDe6b>cjRT62W+kURL-+Houzp6FjKXF>rf z2YGW{$zW#eb?4`!TZ03du;2MLp6&}SW4GH&P|n&Gz1Q$_JU&zC^)3g2k5H^qN|odl zC`7&aL;tP2y1~EFCwH(81|;S0ID?7dg&S(f$nu1E*X_< zk5sBubxX)KH!Oq@e4mJSrk*bJGkYn0moRDLy57TPNtdA>J%p~w7WqDPH=;rGnLATO z(a@wcO})ya#Aj5t&ALtOGG4N4Y@VGwWP9vn5>8GePH{Q2Mld~j@kCbfpQI7GdKs!H z(55%`0r*h7v{6R2|+f>F4V8%|rGG{4zeWh24=z$>vCDJfWAadsL3p zQpc_))QN9&vwlv*+Kcc}Y~79aYBuRk7sf+@Wd?r0PDo{Z^=`Vhc=mzs7PjyjMfodO zd+fstqo2nN|HDP43r15fxOBQK(!yc4K_Zz9-p1mc Jx#xfS{{q8(09yb6 delta 536 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 F{suoK<8J@} delta 310 zcmX?++7!QG0q5o~oMi%=w@Gbaocv5ofVGH0fgxw|YFW$43G6(ZH^{g!PL@*8+q^+O zjg8fn!G|GWv$UEslh;xCs1gH`uqsI^fWW_M#G28;ml`v#7}2@tbz69fU~wmRfhexx%YsOK;XlU&)_zHdg%JRq@gD*J diff --git a/build.bat b/build.bat index 0690f3e2..d1156925 100644 --- a/build.bat +++ b/build.bat @@ -1,4 +1,4 @@ @echo off cd ..\builder -build simplewall simplewall 1.5.5 +build simplewall simplewall 1.6 diff --git a/src/main.cpp b/src/main.cpp index a4feabad64e23f20e832bf84399ef2f282561ec4..6c1f2b6c35281d78def88d707e765fa1b828319e 100644 GIT binary patch delta 21626 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 diff --git a/src/main.h b/src/main.h index 53e477e060ea7dcda928785b5c4c8670187ed29e..3f98f13c4a724173396ecb27bb1e3d89fd3648bd 100644 GIT binary patch delta 2624 zcmb7GOKcNY6uk~q#FTMBkWdNgIDiT*JjXX1cbMLwL+~0fu z{_K1Ao9~ZM&!(8{TVL;g*fY?VlNm`$Rzeb$BNEfAy^VW4rOlU)$uTS!q$m}s;=Ukx zso`0`YF?K0b6Hlf7LpsXs=pk;`(^y&+A>xw=@O)>SRu+ayx)|fdi%u*74!$y$t|xM zLH}N#I@ybtt^f2io(EoT+mV%&oRKh;Du6CaL9GXe)cyV28-MP3u|)+A_U;Y=t%{4- zIe51MyUS8j*N6Hc_^R>v!1FKF|J#02Q_+BWY6R=wgQ*GBBsh;k#gMIXN8kN20ee5- z%XvK0c!pe84IW&Bxh#m~@m7)Xrrs>%r=T?|BQ6a~za&eL{}BuzAA>m>nwJcWr}TYJ zJ43S5fC<4&Mdmawl3oFyarO4-&br$j{-b0@v#&vp?3Wy;7zaz66#WiKzkJwT;x1{l zJf0>pT!4i+8LKeH zx^vibWvRCq-omFV_{5&)lyP5S!~-)xcMzvm87{aZWOqPJ#yWI~RMCA@hK)72?lkX& zGbOC%^$u@QO1L;EIWI8e(9&dIY%;&A{xXIP*A!B@$S`Kp-oB1`r2aMr_q!zF+!Y`( zx*U7Wgj4Rsd30W;ZD!TrJPX4vimrV|?Nmx8p_`No=;j<|UmEubv=ryztlk}>upI`Y ztH4Zy4|B?l-hdx1D}E2Oa~^1sHnek}g_iU{Yxgbr5wrvtnW!h$-vnZo!(K3h=E%5a zcNqC&;#s|A7aZpHzQisa^o^o3_YB@d zY#8^D90HoSb7r525_Zx-vv zzrGF!I3m_ygfoz*18W%L)S!Ni_dgsv(D)^Cxlg@0bygMP5w&=FQT=y%N_}HKQ?Jc$ W)mL$@Kf>C88c2MH^|R_xBK97446>d8 delta 178 zcmV;j08Rh;q5;r{0k9wf1vLOJ05y{#0y_mY04xACk&zXW0tmBu0%io0?gccHcnBVo zln3OacnJZscnBN;laLG$v!n{50+S*yev^ZUA-wVE}9ZX#ixC!5S&ESR=#>lZ-STvqU~*50j=%Oq1|U goRf-9P?OkB!jqU!Fq6hlOp_2$oRg|hP?Pvjf&r&Nx&QzG diff --git a/src/resource.h b/src/resource.h index d49863e2..9b070847 100644 --- a/src/resource.h +++ b/src/resource.h @@ -73,36 +73,46 @@ #define IDC_USEBLOCKLIST_CHK 107 #define IDC_USEBLOCKLIST_HINT 108 -#define IDC_INSTALLBOOTTIMEFILTERS_CHK 109 -#define IDC_INSTALLBOOTTIMEFILTERS_HINT 110 -#define IDC_USEUPDATECHECKING_CHK 111 -#define IDC_USEUPDATECHECKING_HINT 112 + +#define IDC_USESTEALTHMODE_CHK 109 +#define IDC_USESTEALTHMODE_HINT 110 + +#define IDC_INSTALLBOOTTIMEFILTERS_CHK 111 +#define IDC_INSTALLBOOTTIMEFILTERS_HINT 112 #define IDC_RULE_ALLOWINBOUND 113 #define IDC_RULE_ALLOWLISTEN 114 -#define IDC_CONFIRMEXIT_CHK 115 -#define IDC_CONFIRMDELETE_CHK 116 -#define IDC_CONFIRMLOGCLEAR_CHK 117 -#define IDC_CONFIRMMODECHANGE_CHK 118 +#define IDC_USEUPDATECHECKING_CHK 115 +#define IDC_USEUPDATECHECKING_HINT 116 + +#define IDC_CONFIRMEXIT_CHK 117 +#define IDC_CONFIRMDELETE_CHK 118 +#define IDC_CONFIRMLOGCLEAR_CHK 119 +#define IDC_CONFIRMMODECHANGE_CHK 120 + +#define IDC_COLORS_HINT 121 -#define IDC_COLORS_HELP 119 +#define IDC_ENABLELOG_CHK 122 +#define IDC_LOGPATH 123 +#define IDC_LOGPATH_BTN 124 +#define IDC_LOGPATH_BTN2 125 -#define IDC_ENABLELOG_CHK 120 -#define IDC_LOGPATH 121 -#define IDC_LOGPATH_BTN 122 -#define IDC_LOGPATH_BTN2 123 +#define IDC_LOGSIZELIMIT_HINT 126 +#define IDC_LOGSIZELIMIT 127 -#define IDC_ENABLENOTIFICATIONS_CHK 124 -#define IDC_NOTIFICATIONSILENT_CHK 125 -#define IDC_NOTIFICATIONTIMEOUT_HINT 126 -#define IDC_NOTIFICATIONTIMEOUT 127 +#define IDC_LOGBACKUP_CHK 128 -#define IDC_ENABLEAPPSCOLLECTOR_CHK 128 +#define IDC_ENABLENOTIFICATIONS_CHK 129 +#define IDC_NOTIFICATIONSILENT_CHK 130 +#define IDC_NOTIFICATIONTIMEOUT_HINT 131 +#define IDC_NOTIFICATIONTIMEOUT 132 -#define IDC_RULES_BLOCKLIST_HINT 129 -#define IDC_RULES_SYSTEM_HINT 130 -#define IDC_RULES_CUSTOM_HINT 131 +#define IDC_ENABLEAPPSCOLLECTOR_CHK 133 + +#define IDC_RULES_BLOCKLIST_HINT 134 +#define IDC_RULES_SYSTEM_HINT 135 +#define IDC_RULES_CUSTOM_HINT 136 #define IDC_COLORS 200 #define IDC_EDITOR 201 @@ -117,6 +127,7 @@ #define IDM_ALWAYSONTOP_CHK 2006 #define IDM_STARTMINIMIZED_CHK 2007 #define IDM_SHOWFILENAMESONLY_CHK 2008 +#define IDM_SHOWGRIDLINES_CHK 2034 #define IDM_ICONSSMALL 2009 #define IDM_ICONSLARGE 2010 #define IDM_ICONSISHIDDEN 2011 @@ -138,10 +149,12 @@ #define IDM_ABOUT 2027 #define IDM_USEBLOCKLIST_CHK 2028 -#define IDM_INSTALLBOOTTIMEFILTERS_CHK 2029 -#define IDM_USEUPDATECHECKING_CHK 2030 +#define IDM_STEALTHMODE_CHK 2029 +#define IDM_INSTALLBOOTTIMEFILTERS_CHK 2030 #define IDM_RULE_ALLOWINBOUND 2031 #define IDM_RULE_ALLOWLISTEN 2032 +#define IDM_USEUPDATECHECKING_CHK 2033 + // Tray Menu #define IDM_TRAY_SHOW 3000 @@ -150,42 +163,44 @@ #define IDM_TRAY_MODEBLACKLIST 3003 #define IDM_TRAY_MODETRUSTNOONE 3004 #define IDM_TRAY_USEBLOCKLIST_CHK 3005 -#define IDM_TRAY_INSTALLBOOTTIMEFILTERS_CHK 3006 -#define IDM_TRAY_USEUPDATECHECKING_CHK 3007 +#define IDM_TRAY_STEALTHMODE_CHK 3006 +#define IDM_TRAY_INSTALLBOOTTIMEFILTERS_CHK 3007 #define IDM_TRAY_RULE_ALLOWINBOUND 3008 #define IDM_TRAY_RULE_ALLOWLISTEN 3009 -#define IDM_TRAY_ENABLELOG_CHK 3010 -#define IDM_TRAY_ENABLENOTIFICATIONS_CHK 3011 -#define IDM_TRAY_ENABLEAPPSCOLLECTOR_CHK 3012 -#define IDM_TRAY_LOGSHOW 3013 -#define IDM_TRAY_LOGCLEAR 3014 -#define IDM_TRAY_ENABLELOGERROR_CHK 3015 -#define IDM_TRAY_ENABLELOGERRORNOTIFICATIONS_CHK 3016 -#define IDM_TRAY_LOGERRORSHOW 3017 -#define IDM_TRAY_LOGERRORCLEAR 3018 -#define IDM_TRAY_SETTINGS 3019 -#define IDM_TRAY_WEBSITE 3020 -#define IDM_TRAY_ABOUT 3021 -#define IDM_TRAY_EXIT 3022 +#define IDM_TRAY_USEUPDATECHECKING_CHK 3010 +#define IDM_TRAY_ENABLELOG_CHK 3011 +#define IDM_TRAY_ENABLENOTIFICATIONS_CHK 3012 +#define IDM_TRAY_ENABLEAPPSCOLLECTOR_CHK 3013 +#define IDM_TRAY_LOGSHOW 3014 +#define IDM_TRAY_LOGCLEAR 3015 +#define IDM_TRAY_ENABLELOGERROR_CHK 3016 +#define IDM_TRAY_ENABLELOGERRORNOTIFICATIONS_CHK 3017 +#define IDM_TRAY_LOGERRORSHOW 3018 +#define IDM_TRAY_LOGERRORCLEAR 3019 +#define IDM_TRAY_SETTINGS 3020 +#define IDM_TRAY_WEBSITE 3021 +#define IDM_TRAY_ABOUT 3022 +#define IDM_TRAY_EXIT 3023 // Listview Menu #define IDM_ADD_FILE 4000 #define IDM_ALL 4001 #define IDM_REFRESH2 4002 #define IDM_DISABLENOTIFICATIONS 4003 -#define IDM_EXPLORE 4004 -#define IDM_COPY 4005 -#define IDM_CHECKALL 4006 -#define IDM_UNCHECKALL 4007 -#define IDM_CHECK 4008 -#define IDM_UNCHECK 4009 +#define IDM_OPENRULESEDITOR 4004 +#define IDM_EXPLORE 4005 +#define IDM_COPY 4006 +#define IDM_CHECKALL 4007 +#define IDM_UNCHECKALL 4008 +#define IDM_CHECK 4009 +#define IDM_UNCHECK 4010 -#define IDM_ADD 4010 -#define IDM_EDIT 4011 -#define IDM_DELETE 4012 +#define IDM_ADD 4011 +#define IDM_EDIT 4012 +#define IDM_DELETE 4013 -#define IDM_SELECT_ALL 4013 -#define IDM_ZOOM 4014 +#define IDM_SELECT_ALL 4014 +#define IDM_ZOOM 4015 #define IDM_PROCESS 5000 #define IDM_LANGUAGE 6000 @@ -236,16 +251,17 @@ #define IDS_ADD_PROCESS 3001 #define IDS_ALL 3002 #define IDS_DISABLENOTIFICATIONS 3003 -#define IDS_EXPLORE 3004 -#define IDS_COPY 3005 -#define IDS_CHECKALL 3006 -#define IDS_UNCHECKALL 3007 -#define IDS_CHECK 3008 -#define IDS_UNCHECK 3009 - -#define IDS_ADD 3010 -#define IDS_EDIT2 3011 -#define IDS_DELETE 3012 +#define IDS_OPENRULESEDITOR 3004 +#define IDS_EXPLORE 3005 +#define IDS_COPY 3006 +#define IDS_CHECKALL 3007 +#define IDS_UNCHECKALL 3008 +#define IDS_CHECK 3009 +#define IDS_UNCHECK 3010 + +#define IDS_ADD 3011 +#define IDS_EDIT2 3012 +#define IDS_DELETE 3013 #define IDS_MODE_WHITELIST 4000 #define IDS_MODE_BLACKLIST 4001 @@ -304,46 +320,52 @@ #define IDS_LOADONSTARTUP_CHK 9001 #define IDS_STARTMINIMIZED_CHK 9002 #define IDS_SHOWFILENAMESONLY_CHK 9003 -#define IDS_SKIPUACWARNING_CHK 9004 -#define IDS_CHECKUPDATES_CHK 9005 +#define IDS_SHOWGRIDLINES_CHK 9004 +#define IDS_SKIPUACWARNING_CHK 9005 +#define IDS_CHECKUPDATES_CHK 9006 + +#define IDS_LANGUAGE_HINT 9007 -#define IDS_LANGUAGE_HINT 9006 +#define IDS_USEBLOCKLIST_CHK 9008 +#define IDS_USEBLOCKLIST_HINT 9009 +#define IDS_USESTEALTHMODE_CHK 9010 +#define IDS_USESTEALTHMODE_HINT 9011 +#define IDS_INSTALLBOOTTIMEFILTERS_CHK 9012 +#define IDS_INSTALLBOOTTIMEFILTERS_HINT 9013 +#define IDS_USEUPDATECHECKING_CHK 9014 +#define IDS_USEUPDATECHECKING_HINT 9015 -#define IDS_USEBLOCKLIST_CHK 9007 -#define IDS_USEBLOCKLIST_HINT 9008 -#define IDS_INSTALLBOOTTIMEFILTERS_CHK 9009 -#define IDS_INSTALLBOOTTIMEFILTERS_HINT 9010 -#define IDS_USEUPDATECHECKING_CHK 9011 -#define IDS_USEUPDATECHECKING_HINT 9012 +#define IDS_DISABLEWINDOWSFIREWALL_CHK 9017 +#define IDS_ENABLEWINDOWSFIREWALL_CHK 9018 -#define IDS_DISABLEWINDOWSFIREWALL_CHK 9013 -#define IDS_ENABLEWINDOWSFIREWALL_CHK 9014 +#define IDS_CONFIRMEXIT_CHK 9019 +#define IDS_CONFIRMDELETE_CHK 9020 +#define IDS_CONFIRMLOGCLEAR_CHK 9021 +#define IDS_CONFIRMMODECHANGE_CHK 9022 -#define IDS_CONFIRMEXIT_CHK 9015 -#define IDS_CONFIRMDELETE_CHK 9016 -#define IDS_CONFIRMLOGCLEAR_CHK 9017 -#define IDS_CONFIRMMODECHANGE_CHK 9018 +#define IDS_COLORS_HINT 9023 -#define IDS_COLORS_HELP 9019 +#define IDS_ENABLELOG_CHK 9024 +#define IDS_LOGSHOW 9025 +#define IDS_LOGCLEAR 9026 -#define IDS_ENABLELOG_CHK 9020 -#define IDS_LOGSHOW 9021 -#define IDS_LOGCLEAR 9022 +#define IDS_LOGSIZELIMIT_HINT 9027 +#define IDS_LOGBACKUP_CHK 9028 -#define IDS_ENABLENOTIFICATIONS_CHK 9023 -#define IDS_NOTIFICATIONSILENT_CHK 9024 -#define IDS_NOTIFICATIONTIMEOUT_HINT 9025 +#define IDS_ENABLENOTIFICATIONS_CHK 9029 +#define IDS_NOTIFICATIONSILENT_CHK 9030 +#define IDS_NOTIFICATIONTIMEOUT_HINT 9031 -#define IDS_ENABLEAPPSCOLLECTOR_CHK 9026 +#define IDS_ENABLEAPPSCOLLECTOR_CHK 9032 -#define IDS_ENABLELOGERROR_CHK 9027 -#define IDS_ENABLELOGERRORNOTIFICATIONS_CHK 9028 +#define IDS_ENABLELOGERROR_CHK 9033 +#define IDS_ENABLELOGERRORNOTIFICATIONS_CHK 9034 -#define IDS_RULES_BLOCKLIST_HINT 9029 -#define IDS_RULES_SYSTEM_HINT 9030 -#define IDS_RULES_CUSTOM_HINT 9031 +#define IDS_RULES_BLOCKLIST_HINT 9035 +#define IDS_RULES_SYSTEM_HINT 9036 +#define IDS_RULES_CUSTOM_HINT 9037 -#define IDS_ALWAYSPERFORMTHISCHECK_CHK 9032 +#define IDS_ALWAYSPERFORMTHISCHECK_CHK 9038 #define IDS_QUESTION 10000 #define IDS_QUESTION_START 10001 diff --git a/src/resource.rc b/src/resource.rc index 66aa4dd9dbc058467b12b712f8c53e584ef80562..c0bc3f699700da29fbb01d093fffed42bd8adc04 100644 GIT binary patch delta 1741 zcmaJ>UrbYH6hD`S0&M}k3|I+sS2CwA(6qJuanz->bcI3Ni*2VfP6b+#tdxo^Fk`3? zmc5#tSF@?v!`zd2m&F)geA$DE%O3V%_F|Up$(X2n+QT09JGWG;g1PDUeLdefzx(^0 zKX>g~&A%HpH||*tZ{6h@*6P&u1dULfj!=XS(_> z*i9M@z^aj#e0((!@uVmL+FO#RlN5rKG1I>s<)c1c9dxokXbZpg2Kc`jZN$u3vI?)4 zzYBZ~-p^6(RjB+h(9f5KRQ`KJrkv9p7Zha8HVOM~G}i-Z4|aqzDphsBEw ztPZxb7PImr{R4hH^9ESB zeGb-lSq**cg2G2V8f)WLPXcm|A$igYQT&of!0Qr`GE=aJ4sy>S58sLP*()|5ig34Q zKR113>Yq9QU{K_ef4Y;^+Uy9hLz|w?|9-P4F$g z__3FNi}pdf+mtQ|Io0SP&t~zfxKvrI*cjdMZxxG=ynJ6@we(V-F){H(jl@ZZ-WWz8 z1=Z3vVYHSgkHaRVi&LI5l*4&}ij>9q9L^a^(<~Ke9#$8*`0RR%5lBDXacIk#0&J!8 z1TsNq5V!=G8HCRQDvLEo8UFKli{UE%tgyc9;wy_C+_dxnyLFqv`uwc3T?3y2_)G$% z0N@^)19+NupJ;hQ!h0W{9hG~#o3gvJakMc685If?EZ@HLQKKwKUtxu3$h zh&_$}NmNqDe%Ks7%|sNtcobgp9EE4JWID@C51UCXn1GXTokfTwJcV_^lr{}vlYkH! z5~0Cs9&6sbUwlq31uUVky)+l18_9-m2wzyQ=N05R&}=n2mLFAyq+unZB*szq2y|>e z4^qe|NG*fz92CyswONpo>`BJXgVcvO@59X$dSpK zX&{Mc4Hy|Z4SY$6$d_)+nRP?;d17U^`2p3|RO3>~W>FHncd5s?y>?4+zNmzxYu-%V zH1;gduMhInnYa0;_4i9Ipne8x5qr5CBrcC9OJBlP>Hc!vrTZ80OT%9}uWYSE$b?8s rOJ~ZbSy)%@UPUWw(z;9-0h%&jCl$|_36W6~_yRvW-){K7`o;b~%)NYw delta 542 zcmX|-QAkr^6vxlE>n`JV*~WDDN|rJ;fUBG_cd@|(0 zfxru86;@hB#tdL@W`OUQJ#M#2S(@T6tq+WiU_76~&xbNU$Zjyl-Dfo2PTfaDKg0Pg z76Y3Ip?Y}$OLix`b}zdq=IO$Um_BFEN~3~%Z7(~K_h0|Yq+!v_@97HDo7hJy!r#u+ zH2!|!#LqozHHK)(kK^?^U)$`JTMa#bFe&tH6?0k`PuDfx*ij^AUQC&XbSC z`rCHnLcF>=bghr(X^C!#+2?6RoH8xaP4RcOu}CHH7HL5!MY{E0FVQmHX;zd4|F3eD S&g1sov&h|3c;fN9Gk*aWJF4UW