d"p O`  @`! #@%`')+-/1 3@5`79;=?/C@E`GIKMOQ S@U`WY[c@e`gikmoq s@u`wy{} @` O ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`Aa   /Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa/Oa!o!Aaǁɡ!Aaׁ١O`  @`! #@%`')+-/1 3@5`79;=?/C@E`GIKMOQ S@U`WY[c@e`gikmoq s@u`wy{} @` O ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`Aa   /Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa/Oa!o!Aaǁɡ!Aaׁ١PD_470NABC V25BSCRUTINIZERBaVIRENDET3_0ÍBLEES DIT K`WPROTECTACC EA409 tXWPROTECT {um. B.. BABC_250 PRG BABC_250 TXT BAalBACK_1 ABC B]6BACK_2 ABC B^2CONV_1_2ABC B_CONV_2_1ABC B``}ubAON;Q큕|E~ +@zE@ +@E +@?<NNTUVHH/?<NNTSVHHg,Eppad/E)padr"_taP+A*a?paYpaPR <aE@"<avlNEaafA퀰abaE"paNpaN6<0<traM?<NNTSf:vptraO$vptraOvptraO vptraO m `praN m -f$m/?<NNT/N1XaD`epaMpaMpaMpraNzQ큓N!N$$N!?<NATrAЁactp:aIr/pafj"_aHJE/paICaQA$aPP큖NA큰ax <~A큰avNu-g praQD`praQ:NuE5pabZ/EDpabLr"_taN$mx$$mx SfN!`$mx UfN"NuaspaMEZpIab/Epaar"_taM$m|$paM~EasatVNNuadAxa`-gEasxE_p aarat?<NNTa3&<x:<a2l&<x:<a5a3p4<^raURpaUra] paLp\aaaAajpaLN.ar`&Epaa&/0/Epa^0r"_taI$mx$`\ @?g @g @g @g @ g @ g @g @g @g @g @g```Fa`A퀈a\paQaY\p$m$$m aXEpaX $m aXEpaWaW$m aXEpaW$m aXEpaW$m aXlE+paW$m aXVE>paW$m aX@ERpaW`_a_A|a[Ata[paPaX -2op$m|$ -2aI`p aWp'aW$m|*x"mataB"p'aVp$mt$$m|*x"mas0(H[DaI` aV$mtR$mt o]EjpaVp'aV$m|*x"masaAp'a\aA$m|R$m| oX]`^a^A|aZAaZpaPaW -6o"p$m|$ -6aI`paW$m|*x"mas2pa]b0<#GaDg EopaV$$m|*x"maspa]60<#FaDg EpaU$m|*x"marpa] 0<#PaD\g EpaU$m|*x"marpr a]\"maIp@a["ma^Jg p@a["ma^S ma\"maIl0< 'aU8 ma@lp'a[a@^$m|R$m| o]`]Ra]A퀌aXAaY`AaYXAtaYxpaNaVPaTEp"aUpralEpaT$m*x"maqamg,pralfp(aT$m*x"maqa?p)aZa?HyHxHyHxHyHx/-N/>P큔 mamvg$m*x"maq^pa\ "maHPp.aZ|"H ma?\"maH8 mam6gQ큔`X$m SoNp$mt$$m SaF`*$mt*x"map"H ma?V큔-g$mtR$mt o]-fpaS` m$m*x"mapv-gprakjp)aYa>\HyHxHyHxHyHx/-N/> mal&g$m*x"mappaZ"maGp.aY,"H ma> "maF$m*x"mao"ma>/ makV큔-fpaR` m$m*x"maof-gaS`ZaZA퀌aVA aVAaVA$aVA(aVpaLaS$m*x"maoHpraY"maF8p@aXd"ma[|Jg p@aXR"ma[jS maYD"maFaQEp&aRpraiEpaQ majg"prain0<(.aQ ma m ajg m"m aEx m ajvgpaQR m ajlgaQ*aQ&Ep aQTE.paQHECpaQ< maj6gp rahp(aQ$m*x"manpraXpGa=g EXp aP$m*x"mampraXpFa=dg EHpaP$m*x"mampraX^pPa=8g E]paPp)aPxaUJf m$aV:`$ mai/ m$p a$mt*x"maifz$mtڒx"mai$mtR$mt o]S2 -2$ml m 2$m WH$mV m$p3a8/ m$p4a8g apaE m$p3a8/ m$p5a8tp$mJgpg m$p5a8V"p$mJgpghaLpaEJ`Sp 6fpaKz`(R6aQ*-6x"mah@/-6aapaENuaSA퀐aOAtaOA$aOAaO|A퀼aON -6f paK`p$m$$mQpaDaLVEpaKEupaKEp aJEpaJEpaJEp aJEp aJp rabR$m*x"magpaQ0<#Ga9&g EopaJ$m*x"magxpaQ0<#Fa8g EpaJj$m*x"magLpaQ|0<#Pa8g EpaJ>$m*x"mag pr aQ"ma>p@aP<"maSTJg p@aP*"maSBS maQ"ma=0< 'aI ma4 <' aIaN"m$a=EpaO>"H m$aRJg m$p1a6*g$m So$mS`paId m$p2a6g -6$mo$mR`paI> m$p3a5g $m/a m$p4a5g -6$mgN$m R$mt$ -6a;`($mt*x"maez$mtڒx"mae$mtR$mt o]S6 -6$ml m 6$m WH$mV m$p3a5:/ m$p4a5.g apaB2 m$p3a5/ m$p5a5 p$mJgpg m$p5a4"p$mJgpg*aIpaA`PNaPA$aLdpa9Ta/(EpaMra`EpaMra`EpaMra`EpaMnra`n?<NNTa&<x:<a8&<x:<a a<4<@raApaDaHpaA4paCaHpaA$paCaHpaApaCaHa4aapa@ m$aM` aLX"m$a;: m$a`8f m$p1a3/ m$p5a3g" m$aPa~a^&2V m$p5a3f`paApaApaApaApaApa@jA$a:a-pa7`NaO AxaKEpaL&/EpaLr"_ta7$mx$$mx Sfba<0paA*pra]aF&pac/pac.|zxvtr0|aS?<NNTSfvptra7Zvptra7Na&`N aNfA\aJ6a-?<NNTa&<x:<aX&<x:<aa\4<ra?>paB E&p2aKpa@EpaJra]aE0<"aMv"m\a8Z m\ "@ <" mza! m\a/>pr2a[EpaD2pr2a[EpaDaI&aT^"mJpa>DA$a7Da*`KaKA aG m Ca7T`0-"HSAaJxCa7:pAaJp\a//0-"J@^HHf0-"S@WHH/Ap\a/gAaHE0paHzCa-Ca6`JaK4A0aF:A aGJA,aF m "m,a6`p m aJR"m a6p\aH"m aKJfp.aH"m aKJf <.ABCaH"m,a-~"m0a6Z` m,"m0a6L`JbaYpa%pa3jEpOaG/EpaGr"_ta3v$mx$B6B2EaYXaZNNuaJPAxaFHA|aF@A aFA4aFEaY HmaGJ"H m ,aW m aZ/p m aIp\a.2g/- /-4a m4"m a5x m a|gpa2 m ra&:paL@aL+@6paL2aL+@2 -6g@p$m|$ -6a3` paL $m|*x"ma^aM($m|R$m| o] -2gZp$m|$ -2a3`:paK$m|*x"ma]aLpaK$m|*x"ma]aL$m|R$m| o]pa$4pa1aW`HaWpa$pa1E^p-aE/EpaEr"_ta1$mx$EaWaXVNNuaHAxaDA|aDA aDXA4aDPAaD"EaW`EpHaE/EpaE|r"_ta1B$mx$$mQHmaEZ"H m ,aU m aX/p m aG$p\a,Bg^/- /-4a m4"m a3/- a m a$mV$mg>EpaD/Ep aDr"_ta0$mx$$mx UWHH$mV$mfpa0N m ra#pa@6 -6a?bpa@( -2a?T -6g@p$m|$ -6a1` pa@$m|*x"ma[a)$m|R$m| o] -2gZp$m|$ -2a1V`:pa?$m|*x"ma[a)pa?$m|*x"ma[ha)p$m|R$m| o]pa!pa/v$mfhaU`FLaFAtaBEaA큤aYp~A큤aW&p$mt$$mt("maZa[4$mtR$mt Yo`Ep+@6EpaCZzx"maZEpaCBzx"maZlE%paC*zx"maZTE9paCzx"maZdAxa?*EaR$m a<p\a@a P큓Ep a@,/$m r@Ёa@"_a%Ep a'F/0EaQ`aRN)NuaBXAa=A a> A8a>Apa>A|a>0A퀘a>(A퀜a> -g ElaQpa*p\a?aE p m a-~ m a$m$$m gp*a?r2aA"m8a-` m8 /?<NA\ m /?<NNA\pr m8a@a>zr$m|$$m| WHH$m$$m g$mgEpa>raQ`Ep a>traQt?<NNTa&<x:<a>&<x:<aaB4<@ra2$a9 m a#E!pa8 m rapa9a8Npa$mB m ra>`paC@x$mؒ"maU4aD\x$mؒ"maU aQ:gx$mؒ"maUpa?J"m8a, x$mؒ"maTpa?n"mpa+$mR m80<#Da&l/ m80<#Fa&^ m80<#Ga&P m80<#Pa&B mp <@ @ a%g$mSpa6`Ff2pa& m a"E2pa7 m ax m a"hEDpa7h$mg>p$m|$$mR$m|("maT $m("maS$m|R$m| Yo`p$m|$$mR$m|("maS$m("maS$m|R$m| Yo -6oJp$m|$ -6a)|`*$mR$m|*x"maS$m("maSN$m|R$m| o] m rafp$m|$$m a)&`pa7$m|("maSBa!\$m|R$m| o]pa-gEYpa6.$m/N4N.pa'>aMb`np|a<2"H m a!Eqp$a"/0S$m|$$m| m$m|  m a ->fa m "mLa&$mfp>rfj m p.aj/ m 0<..a!V m raJ>?<NNTa z&<x:<a&<x:<a a 4<ra*a2pa"p\a7araa1 N.p\a7vaZpa"laH`REp)a6/Epa6r"_ta"r$mx$`&Epa6/0 mT0(S@f mTp a8g&p a5pa"H mTa8~aF010`>E+p*a4"H mTa8Jg$ mT"mXaX/ ma _a6b"mXa#$ ma/ ma"aFp_a58"mXa"H mPa/ ma| _a6a$mg`6 ma\/ maR"aFX mX0(a maa8a7"mXaa$mPNu mX0(g mX0(HS mXa5"mXa"dNua6A퀨a1A퀤a1A퀬a2Aa2TAa2LAa2DAa20rHGGdHGGdSWDуdi?<>0rHGGdHGGdSWDуdi2?<>0rHGGdHGGdSWDуd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNuCEdSW`?<,>CEdGeH@0r`fJCgz?<0rÐdSWЃdi?<0rÐdSWЃdid?<0ÐdSWЃd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<0riP?0i?`?<`dapE8LgP:`LJg&B.C`a8aD*9Dfap-I,=|p4aHz*9Dg ENp98` _a &nO:NMLI5Kf$<Nu[1][Error +111][Return]Ed g g>Jf`Ar Hjr-D@Hd0H@H 0H@0CNuAF"H [1][fSEfNu`HQ?< NA\Nu"_KfMLI5O:HQ <-H*,`N,:d d3 d# d# # d# # # # d ALH dAL H LH d AL`H L|0H>L|H>d~# # # # A`@ALH L|H>L|H>L|PH>L| H>L|H>L|H>L|H>L|`H>L|0H>L|H>QL|Nu$H$&"BA -KaXA"f B &nNuH>dd2d"d""d""""d LHC dLHLH C@d LHL|H| L|H|PCd~""""C`:LHL|H| L|H|PL|H|L|H|L|H|L|H|L|H|@L|H|pL|H|L|H|CQL|Nua`Vp?a a?<LNA``NuNu`aza`aa~aHA-Hhp alpMah=@F?<NNTT@A0r p0Q`pdr ta0.F=@=@ACp,2QAp 2Qaa`\``pea>pCR2Ad0A2r22a"<B60<NBLNurt=@:=A@=B NuHz(` NBHz ?<&NN\Nu90gNuW0Nu|^|  R^,T:&0D4(*<B$,>2::(   F..26"8@"PQ1!P1P!0PP`0  q#aaa fa O: n*N` `&NuNuNupc?a0QNurdAd6Ag,B(dB(dH Ao<atoBAp`!NuNu?<OA`d?<IA`Z0<H Ia"Lt Ig Og Ug Ag Rg,afNup`a"p`0afHRa">Er$Wgr STD:gr COM:g r LPT:f4FA$_0=@Dk"~CA0< Bha! B2"pNu$_AF Ge><QBAFpNuafgzp=` aZgzpa AHPBHQ?NA\ _JkNu/ Ia $$IAHPB Ba AHPBHQHRBg?<VNAO _ _JkNuHz `Hz"` <Hz&?<&NN\Nup CNup C0Nu C NuJBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNu <r4<NuQfHR$n2Jjg$_NuH LNuPfJ.fg0HR$n2Jjf$_NuHC/*%I $n2%_LNu B?b4<rpAv JBlDBv-|JBg Bb Bk&H>aTaRFBd&8*L?ax<aSF Be BgQRB`RAdR e <rRF&0xaCձfEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`HQ2.d Aeg>r C 5e&!R 0c 9c0`<R"_`VC0 Ef"_Nuaa/ CFr  g 00VJAgB @ nN @mHJ@j0.4DBUBk0QSAg Q.`S@k 0`0BAF "_Nu.WAkQA 0g`prt|P;Q:  g +g -f .g40  b 0e 9b da6`RF` .f 0e 9b daSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`ZJjDDDS4<.ajJFkSFk4arQaV`&HaFFaZQ&8*L/a,H܆jDBJ.:gtBn:Nu @$@JfS ab`QNu$AaD`QBNu?a"HQA(B?<NNAP DJNu?<ONATNu?</NATNu/?<NA\NuHza`HzaH `HPHQ0(ika $I _aIUd4Id4Id$Id `$$$$Q _Jf,aId4Id4Id$Id `$$$$Q @NuSa`IdIdId`Q @Nup `\/ a($I> _aG` VNuag`af`ae `ac` acpNuadpNu/ a$I> _a4Ae4v` VfANuHP0(R@kBa $I _aIUd4Id4Id$Id `$$$$Q @JfNuNup `ajSAfNuag`af`ae `ac` acpNuadpNua6SAkfJANuH HPhkJa( $I _aIUd4Id4Id$Id `$$$$Q @JgSL`QNup `aʰAf` VNuag`af`ae `ac` acpNuadpNua4@m4v` Vf@Nu/HP0(X@kHav $I _a^IUd4Id4Id$Id `$$$$Q @Jf$Nu $Nup `LaYAfNuag`af`ae `ac` acpNuadpNuaSAkEF$p VfWANu?HP0(T@kHa $I _aIUd4Id4Id$Id `$$$$Q @Jf4Nu0XNup `apUAfQNuag`af`ae `ac` acpNuadpNua|`th`tpa ".Nutj`t@H|`rk` rf`rg`r5=@|0`t)`t` tr`t2`t@-A=B|`bv8`v(`v-` v!`v `v@-AH |` _ar4$FAFp_@[000][vx`* [g" ]g |g QSx` xQSrQ][vx`* [g" ]g |g QSx` xQStQ]BAF0-H,=@p4a 2HNu Lx6oFCe0FC BdЄe!Nu B/dHDDd`g BbUC Bc j!Nu0Nu BcHDDdSkg RBAрj`0fBNuB H@"j`E"ea"ep`P&6NuE "e af"d&&6NuE"e aH"d66NuE"e a,"d666NuE"e a "d6NuE"e a"df&66&6`d 24` kaA&8:BgnpNu<ngfDepNufAepNu <}a$Ia `$XaH`a4HR?<NNT @"_ <}Nua`QNuHg"cc/ 0)a _$PS@kH2QNu2(g$PRAA4DBH%$Y2Pg 1AHRAA%NuBhNu@tIB=BAAT@t n-H,g0A( f hgS@S@gRB`=B0`S@gNupLADaHTBnBL*Hd"aZHd"aRHd"aJHd"aBHdF n Dg"`.2.JWAARA0.L n.g hfRAS@f=AB"aNug//ANu@k AB00HNuX@g .NuAD Nuz`zA6C|IdXC |2:H<0`$6HpA2`A.p` A>`A*p4. g=BNuA*pBQBX".g pahBNupraHP?<NNT~U@g~tb3UA0pr0 0BBB R@ @fA00000PB0Tp`00000\0X0Tp`T@00000P0BXpnT0raVA0p1| 1AQBX0$HTH0P P0Tp`0NuH(Fa$L(FNuSk [0NupNupa`(p>`HPaa _&X Pf/|~KCzag @ ep 2tC0"2 S@HQCS2ػR"_d BTAA3ApC04$I2a222B"0@2A\xva@gF2#M 443BS@ -f HQCS2ػR"_d@BAAb8RGRC`3RSG5G5C J1DcaRF Fe `RG GdNuXA0SF1F41R1h4x1EDg"<0p-A` n"g(t( f h fpH`aLRB`Nuaa p-@-@(-@4-@@=|LpraAFGH 0000X0000X0000HSG~2gtLx0a Q&_NuSAkA> A1@H<`Lp`Ha-_\NuBJAgLPDEFbGb?HXaL0S@k@> APS"G0(JgRJ)@g1@2fJ2HPL<P0a W1@A00 pia&=|@pia _C""pe`,?4<6HPa _2tLx0a=n|=| pia0.2paH\P`PH|SCSDABH0`VS@k@ A=pfNup?a0QLa`S@k.@ A0gBP=@a>pgaHp aJ@fnpahQ`B\Lrt`vNuHS&I. FVa8.:.L4.RBĴ@cBnaL4.RBŴAcJSA=A`@pJ.afrJk8 Eg,2. pg  qfL=A=Apjrta`8a>`2 d. Vg" gt gZ gn fPSnjBn`D=@0.n\=@0.R@S@n^=@prtahRn0neBna(Q>j4&_NuBn`?<HyNM\`Rn<SFEneSn`2NuS@kD@ AC0g.?a$=_p 2.alL6Fgavp `p`p`pNuBS@kl@ A=Pa=| phaXL`4p-@"<$&HA-HH-HLBnpmrt``Hz ?<&NN\Nu n2MJFo`JGo\H 8N-@-@ p-@*-@-@ H0H00(L=B=B&=CC=C=C$tBft=B=B(NuatHz ?<&NN\NuL n2M(8N-D-D x-D*-D| J@jpJAjrRBhe4(RChe6(@otAop=@=@NAXOJkpNu0< aH`0< CF2p`p a2`p CFp`a CF"p`Hza`Hy_"J`B.@=|DNua.@FpAR@C`n @H` @HHy_azaD"H`4(g8HP b6 a^$_// Z4HQ`S@Q _Q _a, _Nua$`p`Hcc&$H0*a$RHd2Hd2Hd`""Q` @`r ??a"P02R@H`2Q Nu?AFBHP?<GNAPAF `Br ?HQa _/ ?a0 _4gSB@c:Ad,J@gB@BmS@,. RB6Vg(R F"GQpNufJ@fRB`fS@kVft0HNuaaJjtNuaHPa pJk NuCg.BJ@g  g &g, $g %gNI NutNuRpt`2Rpt`Rptr ae OgX Xgn HgSRB ae Fb$0k  c_  c b退`tSHkaBNuRB0 b b瀀`RB0 fрd`aBp`a:p`a>p3jBjNu>.D<jRGg>VGg:TGjp`HPa0CF$IpR@  f _aHd2Hd2`"QNu`P<.DHSGFaAEg f< &_Nua` Nu.dfaBj=n`r>.D<jRGg.D<jRGg*VGgTGjp`<.Da*`" yj faa` yj f aarAF "g pR@0 ,g  g  fHp`:pR@0  g  g "fR@0 ,g  g  fHpRU@"_  f#j$H _a`QNupR@0 ,g"  g  fa~ (fR~Nua ~ `a~NuaJkHQ ! gRf _NuXX~Nu0j"\@??<NMXJk .dgp Nu`<.DHSGFa ,g gAEf< &_Nu ."Ff +"g ,g`H~=H|=@p3`0Ha=@|pz-I`=A|ap{`HU2<.,HdY=ANu?<*NAT.p a Ha INu.k2@a.0H@av.`2H@af/0@aZ/Yda@HA``jAF gp gj g grffnnpenbfJ.fj6pRGFc$SG` J.fjpRGFcRF` Ff`> `?~ap a0p a*0Nu|``CpE`bf`FgRGJGgSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0NuagNu4.rf?HyaԊNM\Nu=|D`Lja(zEfpadppa`AFEg0PaEfaFRE`ܾEfp a@a8?nnnp a2RF`<aȼnnoS@f nhfSnl=Ah=FnNup` papq4.rf?HyaNM\Nu=|DHaLNu|A0"P2(@e2<EF`QHP=|DJ@g$abAF$HpR@ 0 f _a<`QNuHPp?ap a _2<|0`C&pHQ/Hy@NA NuC pa:NuHQ/Hy?NA Nu&g4 FgadgJAga2< R@AdSf0Nu0aRp Ce`&g4 FgaJBja0gPAe CbRa R@Sf0Nu FgRag JBjaAeaJAg RP0 pNu`Ɗ Fg6agJAga @eaRP Nup NHѨB?<?/?<BNAO JkLLNu&8aJJBjabJAg Df*ڃkd0Nu DfրBH??/?<BNAO LJk!@NuHBHh Hx??<?NAO LJo ѨLNuk:fp`^k: g ѨNuBHPHQ/??<?NAO _JoѨfNuBHPHQS/??<@NAXLfѨNuJkp%`2B9V`$H EaAV AerQBL@͉H Ia("H _/ aa _/ ?aAF-H AerQB2"_A&-H A e ` \gQBa9VgaZe -|Vp[`pZaajAF"H0.g "Hg \f`A&fS !.gR EF _a`QNuHz?<&NN\ @Nu x NuA@Bh`ܴA@aܾ n@!|}Nu _S@Gd@GHpp/0NuGNpp#Hfp3Nup`p`#DNuHz` Hz`Hz&$A?<&NN\NuNu4Nu$Nu?a0` ?a2@@a|` a Nu4.`Af n2LR@RANu4.`g S@SAHNutbpbr??pa"pYa0a0`aNf"_O:N"_O:HQ`6 9:g"9:gJ9:fga"AO:Np\BD`G06#f&#-KNuk"c" C gT6f`Pv6"cgRCC(D#8`pt`pt@S@kZ@Ha:8L6BPAS E=Z=A-H: DNexMQBB*gJnfbNuaJANuag `af`apNuapNuC`C``C` C`C-KJhfJfRRRRRRRHP? @CFH~8:E#P&<2 `b$bYEf`"RAf rЁЀ`&Ѐe "ЀeЁdp`lJAkfgRer?DDЁaAa.8$HX :CFE` YEjT"_$P"2trDDd0d d d` QjNu`aDa DNu na^ K"ng42 $`gk2&Hg Af deђ$`ebѐXf&nNu AgebѐA``-Kx$ n&$n""Hg8" &Ak cѐ S`g"" k#&Acё2+SAI3 Q&f-I"&nNu-Kx$&ր n&$n""HgR" k&Ac b S` S`g4" k#&AcbrkX`ޑ2+SAI3 Q&f-I"&nNuaT n2L6(n\n^HHHNua4 n20(n\HNua" n20(n^HNua n20(HNu`aJNu"H YJQfNu YH瀀aRLP|HPG}C&֛֛֛֛֛(HDDCBg6Cv6C[RCF8[[[aL6C[RCF8:G}FWfTL L-KA `$I\bfBjQNu$YbfBjQNu؄*؄؅CH`:؅X`$_  IaXYHR"H @`ʘ؄*؄؅AHNu؅X`$_ Ia"YHR"H` nd$HJf-HS Nup"`HPa _ap`QNua JH aL0Nua`&A`A` A|`A@00HNuA `A`A|`A `A `zQ`z ` zn`z4=A|a"-IHQB0a _JNuz"-A=B|a-I` Absender: _____________________________ _____________________________ _____________________________ _____________________________ An Gero Zahn Bergring 27 W-4953 Petershagen Tel.: 05707/2501 ___________________ den __.__.____ Sehr geehrter Herr Zahn, bitte senden Sie mir die Voll-Version von ABC, das Handbuch und den Source- Text zu. Ich habe 25,- DM in Form eines Verrechnungs-Scheck beigefgt. Mit freundlichen Gren _______________________ pM86dQׯ_Swwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvttppppwww߿_!8wwwwwwwwwwwwwwwwwwvttppp`@@  7wwwׯ_ׯ߿_7wwwwwwvttppp`@@  wwwwwwwwwww߿߯_Cwww 6w]wwwwwwwwwwwwwwwwwwwwwժU߯_Owwwww]w7  @@`pppttwwwwwwwwwwwÿWU ׯ_[wwwwwwwwwwwwwwwww]w7  @@`ppptvwww_UUUdwwwwwwwwwwwwwwwwwwwwwwwwwwwww]w7  www]WU_UcwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwTР@@B@@P_UUU,0wwvppppppppppppppppppppppppppppppppppwwwKԪTZPWUՈUUU ׯׯ߯___/wwwwwIUfU"HHHPUUUׯ_KwwwwwwwwwwwwwwwwwwwwwwwwwwwwwIUgPU*"""""""""""""""""@UUU_YwwwvwwwwwwwwtvwwwwwwwwwwwwvwwwIUhU""""""""""""""""""UUU\wwww@````@`ppttvvttpp`wwwwIUhU""""""""""""""""""UUUZwwwwwwww]w]w]77w]w]wwwwww]w  7w]wwwwww7UhU""""""""""""""""""UUU_Jwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww7 UgU"""""""""""""""""*UUU______________߯ׯׯׯׯ+wwwwwwttpppppppppppppppppppppppptvwwwwww'UeUQ################"(UUW]wwwp                       @twww%_/_/_+U*X WժUUUW`ww@wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww% "_  @ +W_ׯ_U_cwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww??-___/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/____WU`wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWRwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwժ]#߯DCU_'߯01?10 ndd44 {1 _+_0A??3 1Yi1 @k߯N_`0  u_?s 0qs100013g ̄9 x 3aa3 #26710``߯- )  cۛc  ߘ ` ,LD <008  0x fb 0Xh0    <|<xx<x>  >| ~F 0b~02y@ E QAC 00` Ff's6 g   $f~``2s 6 mmghO 0p006?3 |?*    ߘ l~fv  o,llb??!|>  |<~>> <> 8l <l6`` @ b~8!  Y   766 <2j??'0p x|?      $f~``2d??, <||< |<>  0 cs ^??<  g  @Y?:2@ |< || pqp ߘS?=:< ||<||<< ar``&gfw R??C9  rfga  mmghoi #3G????H:`   Ol , A???N9x{~||x  x  < X9 <=??>><    @  6????Z0 ~    @@ 4@; 6?3?!,?9?? ~>  ```ndhpphdr$f$&9x<<2 ii1| ! ?p ?u9 2  0 `@??0?u9A $f~``213 @@ <??{:x 2 6&"?? ?/A 0CocC??1`p8AAc^ w2AV ;?? ?= 108AM?O    A I?????$ g cA @@@@ D? - c  A `  "BBp @@ ` >?0 Ff#A A`` ``= ?6 {1Zp  @A?  @@ ?3???; 33337&FA` .???A  L03Ap 0   0 p( J 1?00080 `A  @  @   "???L0q10xA@  @ @m``0x̌v 0A ""??bp @@U U WU U SU                       U UU U _ UU ? U              ?   s    U U UU _ UU U   {                   U UU?U _UQUUWUU U      ӽ~                  U WUU _U UUWUU U                        U WUU _U UWUU U    <               ?    U WUU _U _UWUU U                | |     U WUU _U _UWUU U                  ?     U _UU _U _?UWUU U  >              0     U _UU _U _UWUU U    |                U >UU _U UWUU U    ?              U UU _U ՀUWUU U  ?        ?    U ՀUU _UVUUWUU U   ?            0    U UUU _"'UUWUU U    ?           0 ̇3x`    U U?U _ UUWUU U   ?     @       `1    UU?U _ UUWUU U    <|          ?b      UWU_U _ UUWUU U    < <             =     UWUOU _UYUWUU U    < <                   UWU_U _U UWUU U   <  |{ ??       UWUWU _U _UWUU U    ?{m <    U_USU _U WUWUU U    ? ?> ||   p@      U_UWU _U SUWUU U   <     x  <  x         U"#U _U WUWUU U    < <     x    x  /     U  U _U UUWUU U    < < ~  x   x  ;      U  U _U UUWUU U    <|  ` x   x       U  U _U WUWUU U   ? >| x ?  x         UU U?U_U WUWUU U    ?  { x  x       UU UU?_U WUWUU U   ?  8|?<<x?x   @       WU U_U_U WUWUU U                 @        WU UOU_U O?UWUU U        <          0     WU U_U_UT UUU U        <         ?     WU UWU_"/U U   {>     <         `    _U USU_ UU ? U       <        x <     _?U UU_ UU [U          <       ?     TU U U U TwwU U UHwU     | <?=~s    p     U U U U U U U U U U U     ?{ܿ ?wӏ~           U U U U U U U U U U U        > |  >                                  <  x<      ?     7         <  x<       ?     @ 7      <  x<               7  w~ |w<               7   > ~ <           ? 7    <            7    |< <        ?? ߀? 9                      ?  /                        ,                    ? ? - ?                       ?   ,                        ,                        ? .                       1                        ? ? 1                      ~ 2   \  *  \  ) ? [   $   ^ ? ! ?  ^? #  e &                     ? &                      ~ % ? O          |`     ( 0              31`cf~QNx8tY0pa>r6#nd'    6?3?6?fN_lߟݛvo ?lf   $  030 6f o|  W^  3 pi~   ! $ 0 0n~7r؇o l  :, 3l1r   )  DOxcLb~>zɜ6"'s1a? Dr1#  K        p?       I                   7                   G                  ? F   π0  ` x?     @ F  s Cp   `       ,    n1O606l cg&8?      +    kdݟqk?~g     ? +   ? 4 83 f fo          (    [ s[p 3f` fo      ? (    1'80rDv`zs㈜wm     ?  (          @          % +                      ?  %                          %                          %     #{0>   `|~   ; $?     1s23Ϳ0     ?f? o    ,?     9 7v&^q' ?  f 3?c   +    ? 1>^+ffo7f3  ydžf0 /c     +     ?  p, ~>~     f`@ c   ? +        0YL'r lx ?  +                       +                       ? +                       ~   +      E ߀?? ,      @??  .      @  /      =    /      ?    /      = w  ? /      G  ~ 0      E  0      @   0      @  3      @  3      C ? ? 4      =? 4      =   4      <  6      << { 7      9 ~   ? 8      9  8      9?   8      8 ?? 8      8  :      8?  ;      5    =      5  <       9?  ? <       9~ ? >       6s ?     3    ?    ? 3 ? @    ? 3@ A     2? ? A    ? 3 ~ C     4?  D     1 0? D U  U@ 1  H@ UU@ 3?  I s 3  I]ݢ""U" 3? XUUU 4? XUUU 3              UUU 3               UUU  '  w   p  8?   UUU  & q    _`  50   UUU  ? % ? `    ?p      @ UUU   %~ x~cp{aq0>gD<     / UUU   "? WǬf13__7o^{_     UUU   "  { A?  1  f   @ UUU   ! A  Z; 0  10 f  ?  /UUU   ?   cc7L93 { 1~=l0    UUU ?  ? ^=|g~a8tNjaÞ  ? ?   px<       P  %UUUR    ~    k0q_p        P "UUT _  ?  ?     1  0        """" ?   w#  6 1  0        P  "" ?   ? 2׭9z ?81[ 0               2 0 c ~?0v; 0           ?    ?  0 c`0  0          ?  ~ ? 9 c0\08 0         ?   3x?`x         ??                 ?  ?   ?               ?   ?  ? ?  P ?   ?   P    ?   S       U     W      T     ? T   ? ?   T    T  ? T  ? U   ~ T  ? U     d  ?  d    d ?     ber ABC 2.50 ... |?-------------------------123456ABC Schutz aufheben |^A--------------------- Schutz |^S Renamen |^R--------------------- Speicher ndern |^M--------------------- Ende |^QParameter ... whlen |^W ... modifizieren |^E---------------------- ... laden |^L ... speichern |^P---------------------- Directory |^DDrive A: |A B: |B C: |C D: |D E: |E F: |F G: |G H: |H I: |I J: |J K: |K L: |L M: |M N: |N O: |O P: |P***#G 03 FF *.PRG@ @ #G 03 FF *.APP@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ #G 02 FF *.PRG@ @ #G 02 FF *.APP@ @ #F 02 04 *.TOS@ @ #P 02 04 *.TTP@ @ --> ABC V2.50 <--|luft nur in hoher und mittlerer | ST-Auflsung. |(C) by ONKISOFT 1999 in 9/1991Sorry!\*.ABC|Zwei Presets: Std. V1|Std. V2|Cancel|Beim Anzeigen des Inhalts- |Verzeichnisses ist ein |Fehler aufgetreten. Huch ...|Zuerst Laufwerk whlen! |Kein Funktion bei dieser |Tasten-Kombination. Editor-Kommandos:<1> Rename anhngen<2> Rename editieren<3> Schutz anhngen<4> Schutz editieren<5> zurck zum Hauptmen => Wie '*.PRG' oder '*.APP':Wie '*.TOS' :Wie '*.TTP' : '*.XXX' wird renamed zu '*.YYY'.XXX = YYY = '*.XXX' wird ausgefhrt wie '*.YYY'. ... YYY = 'APP' oder 'PRG' ... YYY = 'TOS' ... YYY = 'TTP'APP / PRGabcABC Rename-Editor ------------- <1> zurck <2> vor <3> editieren <4> lschen <5> Obermen12345 Schutz-Editor Modifikations-Men Editor Rename-Daten Schutz-Daten |ABC wirklich |beenden?Ja|Nein ABC V2.50: Nicht registrierte Shareware-Version! Testen Sie das Programm etwa drei Wochen. Wenn es Ihnen gefllt und Siees ntzlich finden, mssen Sie sich beim Autor registrieren lassen. DieRegistrier-Gebhr betrgt 25,- DM. Wenn Sie diese per Verrechnungs-Scheck beimAutor bezahlen, erhalten Sie postwendend ein gedrucktes Handbuch mit detail-ierten Erklrungen, eine auf Ihren Namen registrierte Voll-Version plus GFA-Basic 3.5 Source-Text (ca. 1300 Zeilen). Falls Sie das Programm aber nichtverwenden wollen, sind Sie dazu verpflichtet, es nach dieser Frist wieder zulschen.Die Unterschiede zwischen dieser Prf-Version und der Voll-Version entnehmenSie bitte der beigefgten Dokumentations-Datei "ABC_250.TXT". Mit dieserVersion verlieren alle alten Versionen 1.00, 1.05 und 2.00 ihre Gltigkeit,alle User sind dazu angehalten, sich registrieren zu lassen.Bitte drcken Sie eine beliebige (Maus-)Taste! Registrierungs-Antrag: fr Weiter fr Antrag drucken[1][|Drucker nicht bereit! ][OK]Beim Laden ist |ein Fehler aufgetreten. |Die vorherigen Daten |sind damit weg. |Beim Speichern ist |ein Fehler aufgetreten. |Suchen Sie bitte einen |Namen aus, unter dem |gespeichert werden soll. Jaja ...|Die Datei gibt's schon. OK|Rename#G 03 FF *.PRX@ @ #G 03 FF *.APX@ @ #F 03 04 *.TOX@ @ #P 03 04 *.TTX@ @ #G 03 FF *.PR@ @ #G 03 FF *.AP@ @ #F 03 04 *.TO@ @ #P 03 04 *.TT@ @ |Mit dem gewhlten |Laufwerk stimmt |was nicht ...: |gewhlt. |Beim Schtzen/Aufheben ist |ein Fehler aufgetreten. DESKTOP.INF Schtzen wird gelesen ... wird gelscht ... wird geschrieben ...RAM wird geschrieben ... |schreibgeschtzt, |keine Impfung. |nicht auffindbar, |keine Impfung. _weiter:*.*|Beim Renamen ist ein |Fehler aufgetreten. |Keine Umbenennungen |in den Parametern. Auch gut---> Taste!ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_݄{|}[\]~w  2BD@, ,* :&.$p L B  d^,,pp.Z> F,,HN t<8 4,,Z  Lz 2(<8R4...&v`"*.dX4"8(„ nh.nF *~ f((@4"&Xb0~^LpB 8~"@ > R| tTV|`bSPpR "Yu`|up ?PK;@`NPTRHf@ qJP8|3P  P{`N Pҋ"`ag3wQu`69`t"` E@`Nˠp2pdLDd$0Ng 3+c|9cgx;>9Ϗcv>`π@fqgw?P~3>?ߟPgA~`π_P16.qvvp?wws?ݽwww}op ݰ afsgPw7vyg`37owy` _N@t ww?w?;?wwq~p@޿PPP9!P8P#;Pv|PP!ww9w2?~~pQαP ˰s@9sp ?Owsw=p(箱R,>c#x------------------------------------------------------------------- Programm-Name : ABC Versions-Nummer: 2.50 Shareware-Fassung | Dokumentations-File | Versions-Datum : 24.09.1991 ****************************************************************** * ABC - Anti Ein Schutzprogramm gegen Linkviren von * * Bakterien Gero Zahn, Bergring 27, W-4953 Petershagen * * Condom Tel.: 05707/2501 * ****************************************************************** ------------------------------------------------------------------- Zu der Verbreitung: ------------------- ABC ist ab Version 2.50 Shareware, d. h. jeder der will, darf sich ABC zu Testzwecken kopieren, allerdings nur als ganzen Ordner, und der sollte folgende Files enthalten: ABC_250.PRG Hauptprogramm ABC_250.TXT Diese Dokumentation BACK_1.ABC ABC-Parameter-File BACK_2.BAC " CONV_1_2.ABC " CONV_2_1.ABC " Alle alten Versionen von ABC (V1.00, V1.05 und V2.00) verlieren mit Erscheinen dieser Shareware-Version ihre Gltigkeit. Die alten Versionen gelten von nun an als Test-Versionen. ABC darf ber einen Zeitraum von ca. drei Wochen getestet werden. Wer das Programm ntzlich findet und es dann behalten will, mu sich beim Autor registrieren lassen. Dazu schickt er 25,- DM an den Autor (eventuell mit dem vorgedruckten Registrierungs-Antrag, den das Hauptprogamm automatisch ausdrucken kann). Postwendend kommt dann eine gedruckte Anleitung und die aktuelle Vollversion. Weiterhin erhlt der registrierte User Update-Service und User-Support, kann sich also bei Problemen mit dem Programm beim Autor beraten lassen. Falls er das Programm aber nicht gebrauchen kann, ist er dazu verpflichtet, es nach dieser wieder zu lschen. Die Voll-Version kann im Gegensatz zu dieser Prf-Version Accessries verwenden und externe Programme (z. B. CLI, Textverarbeitung etc.) aufrufen. Auerdem ist dort der Editor extrem berarbeitet. Zum Funktionsprinzip: --------------------- ABC verwirklicht eine relativ einfache, dennoch aber ziemlich effektive Idee, Link-Viren die Chance zu nehmen, sich zu vermehren. Es handelt sich bei ABC nicht um ein Programm, mit dem bereits vorhandene Linkviren erkannt und entfernt werden knnen, es ist im eigentlichen Sinne "nur" eine Vorbeugemanahme, durch die Linkviren, die auf irgendeine Weise in den Rechner gekommen sind, keine anderen Programme anfallen knnen. Man knnte sagen, ganze Disketten oder Festplatten-Partitions werden gegen Linkviren aller Art immunisiert. Ein Programm, das ganze Disketten (oder Partitions) immun macht gegen Linkviren - einfach unvorstellbar ... ! Gegen Bootsektor-Viren gibt's sowas ja, aber das funktioniert nie so richtig. Wie soll das dann erst gegen Link-Viren funktionieren? Eigentlich ganz hnlich, und doch vllig anders. Das Prinzip einer Boot-Sektor-Immunisierung ist so, da ein ausfhrbares Programm in den Bootsektor kommt, das mal gerade eine kleine Meldung auf den Bildschirm bringt wie "Kein Virus im Bootsektor". Viren, die noch ein klein wenig Anstand besitzen, schauen nach, ob der Boot-Sektor ausfhrbar ist oder nicht. Wenn nein, gibt's Nachkommen, wenn ja, lt er's bleiben. (Die moderneren Viren prfen dies auch nicht mehr, soda eine solche Impfung erfolglos bleibt. Doch man wei, wann man zu Felde ziehen mu, nmlich dann, wenn die Meldung nicht mehr erscheint.) Doch wie funktioniert das bei Link-Viren? Ein Link-Virus sucht als infizierbares Opfer ein ausfhrbares Programm, nmlich "*.PRG", "*.TOS", "*.TTP" oder "*.APP". Findet er ein solches, hngt er sich hinten an. (In Wirklichkeit ist das nicht ganz so einfach, aber im Groben isses das.) Nochmal im Klartext: Der Virus sucht z. B. nach Programmen mit der Extension "*.PRG". Gibt es keine Files dieser Art, kann der Virus nicht zuschlagen. Und dies ist schon der Kerngedanke von ABC: Per Programm werden alle ausfhrbaren Programme umbenannt, und zwar "*.PRG" in "*.PRX", "*.TOS" in "*.TOX", "*.TTP" in "*.TTX" und "*.APP" in "*.APX". 'Die Theorie ist wunderschn - Doch la einmal die Praxis sehen!' (frei nach Goethes Faust) Das Problem an der Sache ist nun leider folgendes: Ich re-name z. B. das File "TEMPUS.PRG" in "TEMPUS.PRX". Der Virus erkennt den Text-Editor Tempus nicht mehr als Opfer. Tolle Sache! Frisch ans Werk und Tempus eingeladen ... Hmisch grinst uns eine Alert-Box an. "Anzeigen, Drucken oder Abbrechen?" Klar wie Klobrhe: Natrlich wei nun auch der GEM-Desktop nicht mehr, da "TEMPUS.PRX" ein ausfhrbares Programm ist. Ein Blick auf die Darstellung der Directory als Bilder beweist: "TEMPUS.PRX" ist ein ganz normales Dokument. Schne Scheie. Heit das: Entweder infizierte Text-Editoren oder gar kein Text-Editor? Natrlich nicht. Jeder wei, da im File "DESKTOP.INF", das sich auf jeder Boot-Diskette befindet, eine ganze Reihe von Informationen ber den Aufbau und das Aussehen des GEM-Desktop gespeichert sind. Schaut man sich das File an, erinnert es die meisten Leute an kyrillische Schrift, die sowieso niemand versteht. Was mancher aber nicht wei ist, da in diesem File auch steht, welche File-Arten fr ausfhrbar angesehen werden sollen und welche nicht, was mit welchen Files passieren soll (GEM- oder TOS-Modus), welche Icons wo und wie auf dem Desktop erscheinen etc. Was hindert mich also daran, statt "*.PRG", "*.TOS", "*.TTP" und "*.APP" die oben genannten neuen File-Typen als ausfhrbar anzumelden? Etwa meine Unkenntnis ber die Syntax dieser Konfiguration? Aber nicht doch, dafr gibt's doch ABC!!! ABC tut genau das: "*.PRX", "*.TOX", "*.TTP" und "*.APX" werden als ausfhrbar angemeldet und erscheinen ab sofort mit korrektem (Programm-)Icon in den Directory-Fenstern. Dumm wre es natrlich, wenn die Programme mit den alten Extensionen nicht mehr ausfhrbar wren, also bleiben sie es auch weiterhin, mit einer kleinen nderung: Bei den Extensionen "*.PRG", "*.TOS", "*.TTP" und "*.APP" erscheinen statt der Programm-Icons Mlleimer-Icons in den Directory-Fenstern, als Erinnerung fr Virus-anfllige Programme, die man schleunigst umbenennen sollte. Alles in allem ist dies ein recht geringer Aufwand fr einen recht sicheren Schutz vor Link-Viren. Probleme gibt's aber mit Programmen, die andere nachladen, also zum Beispiel Data Beckers Textomat mit dem Programm "OUTPUT.TTP". Dies sollte man einzeln mit einem Software-Schreibschutz versehen ("Nur Lesen" anwhlen), ABC verndert dann den Namen nicht, auerdem sollte auch ein Virus unfhig sein, dieses File zu ndern. Weitere Beispiele: SIGNUM! mit "SPRINT.PRG", OMICRON-Basic mit "COMPILER.PRG". Bei all diesen Programmen hilft ein einfacher Software-Schreibschutz, wenn man sich nicht an dem Mlleimer im Fenster strt. Vorsicht bei MSDos-DBase-Disketten, die irrtmlich behandelt werden knnten: Alle benutzereigenen Befehle (Extension: "*.PRG") werden mit behandelt. Weitere Probleme gibt's bei Printmaster, bei dem die Drucker-Setups auch mit "*.PRG" enden. ABC-geschtzte Disketten haben (leider) noch eine Schwachstelle: Programme im AUTO-Ordner. Bekannlicherweise werden aus dem AUTO-Ordner all die Programme gestartet, die mit "*.PRG" enden. Leider passiert das, bevor die Informationen aus dem "DESKTOP.INF" geladen worden sind. Das heit, ABC darf Programme im AUTO-Ordner nicht umbenennen, weil sie sonst nicht mehr ausgefhrt wrden. Alle Programme im AUTO-Ordner sind also weiterhin infizierbar. (Aus technischen Grnden wird nicht nur der Ordner "\AUTO" nicht behandelt, sondern auch beispielsweise "C:\TURBO\AUTO" sowie alle Unterpfade davon werden links liegengelassen. Eine solche Namenswahl ist aber sowieso nicht so ganz die feine englische Art und kommt (erfahrungsgem) selten vor.) Unvertrglichkeiten mit anderen Programmen (auer vielleicht da bei der Suche nach irgendeinem "*.PRG" nichts 'rum kommt) sind mir bislang nicht aufgefallen, und ich benutze ABC mittlerweile schon seit einem guten halben Jahr. Ich kann mir keinen Fall vorstellen, in denen es Probleme geben knnte. Etwas Nachdenken offenbarte mir ein kleines Loch in der Schutz-Wirkung auf Viren: ABC Version 1.0 kannte als neue Extensionen nur "*.PRX", "*.APX", "*.TOX" und "*.TTX". Ein Virenschreiber knnte sich durchaus darauf einrichten und von nun an auch diese anderen Extensionen auf der Suche nach ausfhrbaren Files abchecken. Eine neue Version 2.0 mit anderen Extensionen wrde nach dem Gesetz von Murphy auch nur fr eine begrenzte Zeit sicher sein. Daher war es ntig, die Extensions-Wahl vllig frei zu gestalten - OK, die V 1.0-Extesionen werden weiter untersttzt, des weiteren neue Extensionen "*.PR", "*.AP", "*.TO", und "*.TT", doch hinzu kommt noch ein Editor, in dem sich jeder Nutzer seinen eigenen Setup berlegen kann. Vielleicht "*.GRP", "*.PPA", "*.SOT" und "*.PTT"? Oder lieber "*.PGM", "*.APL", "*.TPG" und "*.TPP"? - Hinzu kommt noch die Mglichkeit, den Schutz von Disketten wieder zu entfernen und die Option, eine Diskette von einem Parameter-Setup nahtlos in einen anderen zu berfhren, vielleicht noch ein Directory-Funktion ... - Das Ergebnis dieser Anstrengungen halten Sie gerade in Hnden, die Version 2.00! Zur Bedienung: -------------- Nach dem Start des Programms wird (je nach Auflsung) ein Titelbild eingeladen und auf dem Bildschirm dargestellt. Interessant ist, da auch das 4-farbige Bild in gepacktem STAD-Format (normalerweise nur monochrom) vorliegt. Es handelt sich dabei nur um eine Konversion des monochromen Bildes, daher sieht es nicht so schn aus, wie es knnte. Aber besser in ein nicht ganz lupenreines Titelbild als ein Programm, das nur mit SW-Monitor luft. Direkt ber dem Bild erscheint die Menzeile ("J|L" (ATARI-Symbol), "ABC", "Parameter", "Drive"), die sofort in Betrieb genommen werden kann. Men "J|L": ---------- Hier gibt's (was wrde man auch anders erwarten) einen Menpunkt "ber ABC", der auch ber die Taste "?" aufgerufen werden kann. Hat man Accessories im Speicher, wird man hier erkennen, da man sie nicht anwhlen kann - dies gilt nur fr die Test-Version und ist in der Voll-Version gendert. Men "ABC": ----------- Hier sind die Funktionen zu finden, die ABC eigentlich ausmachen, nmlich "Schutz aufheben", "Schutz" und "Rename", "Speicher ndern", natrlich ergnzt durch "Ende". Fangen wir von hinten an: "Ende" verlt (nach Rckfrage) das Programm. Diese Funktion kann auch mit "^Q" aufgerufen werden. Fr alle anderen Funktionen mu man vorher im Men "Drive" (siehe dort) ein Diskettenlaufwerk oder eine Festplatten-Partition gewhlt haben, ansonsten rhrt sich nichts: "Rename" beginnt, die aktive Partition rekursiv abzuarbeiten und alle Datei-Namen zu ndern, die (laut den aktiven Parametern, siehe Men "Parameter") in die Konventionen passen. Gibt es keine derartigen Parameter, so wird die Funktion gar nicht erst aufgerufen. Die Funktion "Rename" kann auch ber die Taste "^R" aufgerufen werden. "Schutz" liest die DESKTOP.INF-Datei ein (sofern vorhanden) und verndert die dort stehenden Parameter, die die ausfhrbaren Dateien betreffen. Dabei wird sich nach den aktiven Parametern gerichtet (s. Men "Parameter"), sollten keine solchen Parameter vorhanden sein, so wird zumindest eine nderung gettigt: "*.PRG", "*.APP", "*.TOS" und "*.TTP" erscheinen ab dem nchsten Systemstart als Mlleimer-Icons. Die Funktion "Schutz" kann auch ber die Tasten "^S" aufgerufen werden. "Schutz aufheben" lscht alle nderungen aus dem DESKTOP.INF-File und restauriert wieder die normalen Zustnde, die das GEM machen wrde. Im Klartext: Kein anderen Extensionen ausfhrbar, keine Mlleimer auf dem Desktop. Umbenennungen der Files werden hiermit aber nicht rckgngig gemacht. Die Funktion "Schutz aufheben" kann auch ber die Taste "^A" aufgerufen werden. Bei den drei Funktionen "Schutz aufheben", "Schutz" und "Rename" fr das Anklicken von "Abbruch" bei einer eventuellen Error-Box "Diskette schreibgeschtzt" oder hnlichen Fehlern brigens wieder zurck ins Hauptmen, keine Angst also. Der Schalter "Speicher ndern" gilt fr die beiden Funkionen "Schutz" und "Schutz aufheben". (Er kann auch ber die Taste "^M" aufgerufen werden.) Setzt man ihn, so werden alle nderungen am DESKTOP.INF-File direkt in den Speicher bertragen. Es wre dann so, als htte man von der zuletzt behandelten Diskette gebootet. Das spart natrlich Zeit. Alle Vernderungen am Desktop (nderung der Fenster-Gren, der angezeigten Disketten und Icons etc.) werden dadurch natrlich rckgngig gemacht. Bemerkung am Rande: Der Bug der Version 1.00, 1.05 und 2.00, wodurch die angemeldeten GEM-Anwendungen beim Programm-Lauf von ABC gelscht wurden, ist jetzt behoben. Die GEM-Anwendungen bleiben nach wie vor erhalten. Allerdings: Wenn Sie z. B. eine GEM-Anwendung fr das Text-Editor "Tempus" angemeldet haben, sie diese ProgrammDatei mit "Rename" aber von "TEMPUS.PRG" zu "TEMPUS.PRX" umbenannt haben, funktioniert diese Anwendung natrlich nicht mehr. Um dies zu restaurieren, mssen sie Tempus manuell (d. h. vom Desktop aus) wieder zu "TEMPUS.PRG" umbenennen, die Anwendung von "TEMPUS.PRG" abmelden, Tempus wieder zu "TEMPUS.PRX" umbenennen und die Anwendung erneut anmelden. Danach speichern Sie das DESKTOP.INF mit "Anwendung speichern" ab. Men "Parameter": ----------------- Bis jetzt konnte ABC Version 2.50 noch nicht allzuviel mehr als die alte 1.00, wenn man mal vom "Schutz aufheben" und "RAM ndern" absieht. Mit diesem Men kommt die Flexibilitt: Mit der Funktion "... whlen" hat man die Wahl zwischen zwei festen Parameter-Presets, nmlich den Standard-Parametern der Version 1.0 und den genderten Version 2.00 Parametern. Bei Programm-Start sind die 1.0'er-Parameter voreingestellt. Eine Auflistung der Parameter beider Presets erfolgt im Rahmen der Editor-Erklrung "Zur Bedienung des Editors". Die Funktion "... whlen" kann auch ber die Taste "^W" aufgerufen werden. Mit "... modifizieren" kommt man in den Editor, in dem man die Parameter verndern kann. Die Bedienung des Editors erfolgt per Tastatur, siehe "Zur Bedienung des Editors". Die Funktion "... modifizieren" kann auch ber die Taste "^E" aufgerufen werden. Nun folgen noch zwei Funktionen "Laden" und "Speichern", mit denen Parameter-Files von Diskette (erkennbar an der Endung "*.ABC") geladen oder soeben editierte Parameter auf Diskette gespeichert werden knnen. Bei "Speichern" erscheint zur Information eine Alert-Box, danach geht's zu einer Fileselect-Box. Gibt man die Kennung "ABC" nicht mit ein, wird sie bei beiden Funktionen ergnzt. Fehler beim Disketten-Zugriff werden so gut als mglich abgefangen, jedoch keine Gewhr fr fehlerfreien Zugriff. Die Funktion "... laden" kann auch ber die Taste "^L" aufgerufen werden, die Funktion "... speichern" auch ber "^P". Am unteren Ende befindet sich noch eine Funktion, die nichts mit den Parametern zu tun hat: "Directory" - Das Inhalts-Verzeichnis des gewhlten Laufwerks wird ausgegeben, damit man sehen kann, welche Disketten man ABC zum Fra vorwirft. Ich kenne das von mir - nach ein paar Wochen Projektarbeit findet sich ein ganzer Stapel mit Disketten, durch die Bank weg unbeschriftet, auf manchen wichtige Daten, auf manchen Bldsinn ... Die Funktion "Directory" kann auch ber die Taste "^D" aufgerufen werden. Men "Drive": ------------- Um eine der ABC-Funktionen (im Men "ABC") aufrufen zu knnen, mu erst ein Laufwerk gewhlt werden, auf dem diese Funktion greifen soll. Dies passiert hier, das Men besteht einzig aus allein aus den Eintrgen "A:" bis "P:", die einzelnen Disketten bzw. Festplatten-Partitions reprsentierend. Whlt man ein nicht vorhandenes oder nicht bereites Laufwerk, so wird dies gemeldet. ABC-Funktionen lassen sich dann selbsverstndlich nicht ausfhren. Die Laufwerke kann man auch direkt per Tastatur whlen, per Druck auf die jeweiligen Buchstaben-Tasten "A" bis "P". Zur Bedienung des Editors: (nur gltig fr die Shareware-Version) -------------------------- Bevor ich in die Details gehe, sollte ich vielleicht besser erst erklren, woraus sich ein Parameter-Satz berhaupt zusammensetzt. Parameter, die fr den Schutz einer Diskette/Partition ntig sind, bestehen aus zwei Teilen: 1. Die Rename-Parameter und 2. die Schutz-Parameter. Die Rename-Parameter beinhalten, welche Dateien bei Aufruf der ABC-Funktion "Rename" wie umbenannt werden sollen. Zum Beispiel "*.PRG" => "*.PRX wrde bedeuten, da beim Durchgang durch den Verzeichnisbaum alle Dateien mit den Extensionen "PRG" mit der Kennung "PRX" versehen werden. Die Schutz-Parameter enthalten die nderungen, die am DESKTOP.INF-File gemacht werden sollen. Da die alten Kennungen "*.PRG", "*.APP", "*.TOS" und "*.TTP" als Mlleimer erscheinen sollen, ist nicht weiter nennenswert und gehrt nicht zu den speziellen Parametern. Wichtig ist, welche Files (bestimmt durch die Extension) wie ausfhrbar sein sollen. Es gibt da ja gewisse Unterschiede: "*.PRG" und "*.APP" werden als GEM-Applikationen gestartet, "*.TOS" als TOS-Programme und "*.TTP" als TOS-Programme, die einen Parameter verlangen. Diese drei Konventionen gibt es also: "Wie '.PRG' oder '.APP'", "Wie '.TOS'" und "Wie '.TTP'". Zum Beispiel Wie '.TOS' : '.TOX' wrde besagen, da der Desktop alle Files mit den Extensionen "*.TOX" als TOS-Programme auszufhren versucht. Die beiden festen Parameter-Presets Version 1.0 und Version 2.00 sehen aufgelistet so aus: Standard V1.0: Standard V2.00: -------------- --------------- Rename-Parameter: *.PRG => *.PRX *.PRG => *.PR *.APP => *.APX *.APP => *.AP *.TOS => *.TOX *.TOS => *.TO *.TTP => *.TTX *.TTP => *.TT Schutz-Parameter: Wie '.PRG': '.PRX' Wie '.PRG': '.PR' Wie '.PRG': '.APX' Wie '.PRG': '.AP' Wie '.TOS': '.TOX' Wie '.TOS': '.TO' Wie '.TTP': '.TTX' Wie '.TTP': '.TT' Es ist ja irgendwo logisch, da die Schutz-Parameter hnlichkeit mit den Rename-Parametern haben. Was wrde es denn zum Beispiel bringen, alle ".PRG"'s in ".GRP" umzubenennen, dennoch aber ".PRX" als ausfhrbare Files anzumelden? Wenn man hier 'rum editiert, sollte man schon ein wenig vorsichtig sein. Sollte einem aber ein solcher Fehler geschehen sein: Keine Panik, nur die Ruhe! "ABC.xxx" zurck zu "ABC.PRG" umbenennen (das funktioniert immer) und starten. Von da aus kann man im Grunde genommen wieder alles Rckgngig machen. Aber auch da ist mal wieder Vorsicht geboten. Man sollte schon genau wissen, was man will, wenn man eine neue Parameter-Bank erstellt. Diese Freiheit macht ABC aber flexibel fr die verschiedensten Anwendungen. Stellen wir uns folgenden (vielleicht etwas utopischen) Fall vor: Jemand hat eine ganze Diskette voll mit TEMPUS-Texten, inklusive den ganzen ".DUP"-Files. Nun will er sich mal all die Dup's ansehen, findet's aber zu bld, da sie eben alle ".DUP" heien und htte sie lieber alle als ".TXT". Kurzerhand kopiert er alle Dup's auf eine andere Diskette und greift zu ABC: *.DUP => *.TXT Als Schutz-Parameter braucht er gar nichts, also eine leere Liste. "Rename" aufgerufen, und schon strahlt alles blitzend-wei als "*.TXT". Doch zu realeren Dingen: Im ABC-Ordner finden sich vier ".ABC"-Files, also Parameter-Bnke, die eingeladen werden knnen: "BACK_1.ABC", "BACK_2.ABC", "CONV_1_2.ABC" und "CONV_2_1.ABC". Die beiden "BACK..."-Files sind dazu da, Disketten oder Partitions, die mit den Standard V1.0 bzw. V2.00-Parametern geschtzt worden sind, in normale, GEM-Standard-Disketten / -Partitions zurckzufhren. In Listen-Form: BACK_1.ABC: BACK_2.ABC ----------- ---------- Rename-Parameter: *.PRX => *.PRG *.PR => *.PRG *.APX => *.APP *.AP => *.APP *.TOX => *.TOS *.TO => *.TOS *.TTX => *.TTP *.TT => *.TTP Schutz-Parameter: --- --- Das bedeutet praktisch: Die jeweiligen Renames werden bei Aufruf von "Rename" rckgngig gemacht. Schutz-Parameter gibt's keine mehr, zum Aufheben des Schutzes whlt man ja sowieso "Schutz aufheben". Die anderen beiden Parameter-Bnke konvertieren eine Diskette / Partition, die mit ABC Version 1.0 behandelt worden ist, zum V2.00 Standard bzw. umgekehrt: CONV_1_2.ABC CONV_2_1.ABC ------------ --------------- Rename-Parameter: *.PRX => *.PR *.PR => *.PRX *.APX => *.AP *.AP => *.APP *.TOX => *.TO *.TO => *.TOX *.TTX => *.TT *.TT => *.TTP Schutz-Parameter: Wie '.PRG': '.PR' Wie '.PRG': '.PRX' Wie '.PRG': '.AP' Wie '.PRG': '.APX' Wie '.TOS': '.TO' Wie '.TOS': '.TOX' Wie '.TTP': '.TT' Wie '.TTP': '.TTX' Wie man sieht: Die jeweils charakteristischen Extensionen der einen Versionen werden (bei Aufruf von "Rename") nahtlos in die jeweils anderen umgeformt, bei Aufruf von "Schutz" werden die nun entstandenen Extensionen als ausfhbar angemeldet. Wenn man's erstmal begriffen hat, was die einzelnen Parameter sollen, ist es eigentlich ganz einfach zu berschauen. Nun zum eigentlichen Editor. Die Bedienung erfolgt (wie schon erwhnt) ganz ber Tastatur. Ich fand es etwas dmmlich, wenn man stndig zwischen Rechner und Mauspad hin und her wuseln mu, zumal hier ja sowieso Buchstaben bzw. Strings eingegeben werden sollen. Man mag mich dafr verfluchen oder heiligsprechen, je nach Fall. Der Bildschirm teilt sich im Editor in vier Windows, von denen die unteren beiden die jeweiligen Parameter-Listen beinhalten, links die Rename-Parameter, rechts die Schutz-Parameter. Rechts oben ist ein Window frei gehalten fr das echte Editieren, links oben werden alle Editor-Kommandos zusammen aufgelistet. Die Editor-Kommandos: --------------------- Es gibt fnf Funktionen, die ber die Nummer-Tasten "1" bis "5" gewhlt werden knnen. 1. Rename anhngen 2. Rename editieren 3. Schutz anhngen 4. Schutz editieren 5. zurck zum Hauptmen Wir beginnen mit dem letzen: "5" lscht die vier Windows wieder, zeigt die Maus und das Titelbild wieder; damit knnen wir wieder an die Men-Zeile 'ran. Punkt "1" und Punkt "3" sind nahezu identisch: Im ersten Fall wird ein neuer Rename-Parameter angehngt, im letzteren ein neuer Schutz-Parameter. Beide Listen knnen maximal 10 Parameter enthalten, ist die Grenze schon erreicht, erreicht nur ein hmisches "Pieps" des Users Ohr, sofern der Lautstrke-Regler aufgedreht war. Ansonsten geht in den jeweiligen Editor, die natrlich unterschiedlich sind. (Erklrung folgt gleich ...) Punkt "2" und Punkt "4" sind mal wieder identisch: Wir landen in der jeweiligen Liste (entweder Rename oder Schutz) und blttern vor und zurck. Natrlich nur, sofern sie mindestens einen Parameter enthlt. Es gibt wieder einmal fnf Tasten-Funktionen (die natrlich auch angezeigt werden): 1. zurck 2. vor 3. editieren 4. lschen 5. Obermen Unter diesem kleinen Men erscheint der jeweilige Parameter, wechselnd mit den jeweiligen Operationen. Tippt man die Tasten "1" oder "2", kann man erkennen, da in der jeweilgen Liste der obere ("zurck") oder der untere ("vor") genommen und dargestellt wird. Sofern man sich schon am Ende der jeweiligen Liste befand, gibt's einen Piepston. Bei Druck auf "4" wird der Parameter aus der jeweiligen Liste entfernt, der gerade unter den Menpunkten steht. Die jeweilige Liste in einem der unteren beiden Windows wird danach aktualisiert. Sollte die jeweilige Liste nach dem Lschvorgang leer sein, geht's wieder zum Ober-Men, nmlich zum Editor-Haupt-Men. Das gleiche passiert, wenn man "5" drckt: Das Window rechts oben wird wieder gelscht und man kann wieder zwischen den Haupt-Menpunkten whlen. Nun aber endlich zu den Editoren, die man erreicht, wenn man die Taste "3" drckt. Der Rename-Editor ----------------- Die Grundefrage ist ja wohl: Was wird wie renamed, daher erscheint im Editor-Fenster denn auch '*.XXX' wird renamed zu '*.YYY'. XXX = _.. Hier mu nun eine Extension eingegen werden, die beim Rename-Vorgang umbenannt werden soll. Unzulssige Extensionen (z. B. solche, die durch einen andern Rename-Parameter entstanden sein knnten oder solche, die schon durch einen anderen Rename-Parameter umbenannt werden) werden abgefangen und durch einen Pieps geahndet. Danach kann man eine neue Extension eingeben. Danach folgt noch die Eingabe YYY = _.. Hier wird logischerweise die Extension verlangt, zu der umbenannt werden soll. In dem Falle, da ein neuer Parameter anehngt wurde, war's das. Sollte aber die Edit-Funktion fr einen bereits vorhandenen Parameter aufgerufen worden sein, so steht hinter den jeweiligen Eingabe in Klammern die Extension, die vorher dort stand. Der Klammer-Wert kann durch einen einfach Druck auf RETURN bernommen werden. Das knnte also so aussehen: '*.XXX' wird renamed zu '*.YYY'. XXX = _.. (PRG) YYY = _.. (PRX) Ein zweifacher Druck auf RETURN ndert den Parameter also nicht. Der Schutz-Editor: ------------------ Er sieht im genommen ganz hnlich aus, die zu beantwotende Frage ist aber anders: Welche Extension soll wie ausgefhrt werden? Also: '*.XXX' wird ausgefhrt wie '*.YYY' XXX = _.. (PRX) Dies ist erstmal identisch mit dem Rename-Editor: Bei Druck auf RETURN wird ein eventueller Wert direkt bernommen. Danach folgt die Wahl der Ausfhrungs-Art: APP oder PRG TOS TTP Durch Druck auf "A", "B" oder "C" kann man nun whlen, wie die Extension ".XXX" von nun an ausgefhrt werden soll. War schon eine Ausfhrungs-Art vorgegeben, so erscheint rechts unter diesen Wahlen in Klammern wieder ein Wert, der mit RETURN bernommen werden kann, also z. B.: APP oder PRG TOS TTP (APP / PRG) Ein zweifacher Druck auf RETURN ndert den Parameter also nicht. ------------------------------------------------------------------- Programm-Name : ABC Versions-Nummer: 2.50 Shareware-Fassung | Dokumentations-File | Versions-Datum : 24.09.1991 ****************************************************************** * ABC - Anti Ein Schutzprogramm gegen Linkviren von * * Bakterien Gero Zahn, Bergring 27, W-4953 Petershagen * * Condom Tel.: 05707/2501 * ****************************************************************** ------------------------------------------------------------------- aBASEPAGE ->PA^TiSP5H Bi[kaJ-wikbdsysxcon CO#N: RAW0' FmdVdiEsc->USER_TIM BUT CUR 0MOT0uCOOKÀ60o ValY¦p` E0;yF*Q.3{iht p1\ \ \ J<6\8.N @&Ā>6ZJvr"j>p""n* *r&&8(& ``.+j.3 C "0&".4  * .&&, 0&.&8" 22&. 60*@:0 "Wn&H,|" x"BBR@| >:<0ZDD2^ "&2.$(442*&:, *$0..N&f2\dbbd$( ou r :,0,X0 4 .PRX .PRG .APX .APP .TOX .TOS .TTX .TTP ^B v%$^<X CX:U`dBvx {"q Y;>"$~zl **"DH6 8,\*T "J$Jj&J|" & $zd..&(*.D 8 ^4@ ^\dn<$H> D" F*d"R"D""*"48&R J:.&Pn \ "N4#4."F&B>0440"HAH!j`:\p&, i8**6( ,("n&$,*p2,,*$N4" 66$. d  @4040 b* &FP$#0 * f0-((@40 *$pL00$d$bB 8~<0l| 8@ $@& $x 6 "1=\xVx(P0 4 .PR .PRG .AP .APP .TO .TOS .TT .TTP g$6/(8g8:gpagpNu/:NuHd??p xNXLdNux [1][WPROTECT 0.97: |Bitte installieren!][Ok][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : ][  |  | Weiter ][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : | Sichern = | Ende-Button+ShiftLinks+Alt][Schutz |Normal | Ende ] WPROTECT [1][ Dateifehler beim Speichern | auf WPROTECT !][ Ok ][1][ Nicht installiert ! ][ Ok ]:\WPROTECT.ACC:\WPROTECT.PRG #4AaAN9 2:gSAa<3AHa8 yga`AC39 2:`g I3 AaAHa yg09 2:& yg3`L?NAX3 Nu3A&a>`H  $.        B  :& 4 4 #G 03 FF *.PRX@ @ #G 03 FF *.APX@ @ #F 03 04 *.TOX@ @ #P 03 04 *.TTX@ @ .PR .PRX .AP .APX .TO .TOX .TT .TTX x [1][WPROTECT 0.97: |Bitte installieren!][Ok][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : ][  |  | Weiter ][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : | Sichern = | Ende-Button+ShiftLinks+Alt][Schutz |Normal | Ende ] WPROTECT [1][ Dateifehler beim Speichern | auf WPROTECT !][ Ok ][1][ Nicht installiert ! ][ Ok ]:\WPROTECT.ACC:\WPROTECT.PRG #4AaAN9 2:gSAa<3AHa8 yga`AC39 2:`g I3 AaAHa yg09 2:& yg3`L?NNT3^ȠC^V"L?H>aShHx?<HNA\@#]/?<HNA\#]3%]Xa\la`N^C"AJgAtJg  gSfa[Da]aV``NuaE*B9LBy2aV2Nka *y]`$daZfa]jarByrhAN[N vN^vaZBypN``SEvf$H$& y^:C^>e a^>d, a,A^>ךf B E^JdђXbђNup`Kd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNu$H$&"BA 9^:a(XA^>f B E^JdXdNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNu2(g"P@g:RADAH""y^>r2g"ZA^:e& 1@##^>Nu1@Nu y]\]`a"y^>^:dp`I`H y^B$y^>"Hg< k&@0+R`g k#&@0+S@H3 Q&f#^>LNuH?<?<NAXJgJf&AH@B p`\A] \ @BBPtNua*Adp`:a*AV0p`,a*AH p`a#za_A6 1Ap`a#daad$a BS@kH2Q y]] tNuHpg`aS@Q`a""@ Y0g0]b(2RA4DAH! ^>fXչ^>NuaaJBkdHNuaHPaJBkd8 `bCgBJ@gv  g &g a]NutNuRptr ae OgR Xgh HgSRB ae Fb$0k  c_  c b退`tSJBjblNuRB0 b b瀀`RB0 fрd`aJ@g`c`c^aJ@g`aJ@g0` y] Bh\]tNua`ca `aa!a( Shda [PHP Pa _`8LNua!Va( Shda [PHP2( P`Qa _]b6(gRC8DCHHP P!@ _Nua a(.?p`a a( ?La( S2fr4(Ae.RBBc0?af2 [PHP PS`Qa` _`~ [Pav` @"[PHPHQ0(ie4k2a t _aN2( P`Q _a:2( P`QNup `Ep @HPa Sa [P"_0( X2)"Y@`VNuag"`af`a(e`a"c` ab `adtNu <r$<Nu @HPa Sa [P"_0( P2)"Q4Ae4v`Vf@Nua @2(g]b P"H`/0Ha.2  _ PSAvjx E&Wf* ae zb QNua8U@k0`aa*Y@k `_za]@jW``aY@k rtHHBBNuaQ@k 24HHBBNuaBjtpr Bc4<prJjAjNua Bp`8a 1A1Bp`&atЀUrЀQ`Da%A(Jf J0p`NuatV0 9c^Q A`at `V0Q`H?<,NATA2X@a&:0H@?a:AAa Avp`N0H 0 0H@NuH?<*NATAJ2@a.0H@a.YdaHAaAp `a$a$2 P`a$r b?a2`Q tNua Nuaa patNua$H gJg ba"P @4(gHP bn aX$_// Z4HQ`S@Q _Q _al tNua#B9"?Hy"?<GaPHNAPA"pR@J0fH`a#/aN `aDa@a#/ [P` Ba.a* @a/? [Pa"X20 _$gS@cY6 :fRS@g.t;ak&AA :fRS@g t;akIA??<-NAXaZ @a."X0gZtaZkT6gP .fJS@gFt aFk@Ag6paX -Fgz !g %Fgna6pja8 -FgZ !g %FgNa6p a -Fg: !g" %Fg.a#drtp aAj -Fg Fg a6p`NuaBg?aN/a?@a@ @a'7 _a "X24$[A"0@@[000][vx`* [g" ]g |g QSx` xQSrQ][vx`* [g" ]g |g QSx` xQStQ]BA"0a:`taD?9d?9f09dyrdaTR0yrfaFR0`>a?a3d3fpirta@*09f `Ua|??at -Fg$@@?@a^@@oaP@o?@?<NN\Nup`7p`7p`7p`p`p 3a d3vgC@@@A^ p hf X ~e#TvgC@@@A^ p hfT X 4eN#R3rd3rf FgaJ3aL3 "|d z9f?:`aJ*aRz2TSWjT`0:2:`$@2TQ"|d z9f?:`aIaRPzT2SWjT`0:2:z`$@T2Qr4:f0:^`>. @a"X0AdH2`0Qppta> vp`a JBkaQ@3pN`= @a"X0AdH2`0Qtpoa=`DHv y^CC`I HvC y^փփ`IHv y^ CC 00`PHvC y^ փփ 08`Pv y^CCHp0Ra@ _`HvC y^փփHp8Ra _`Haj/A^eeeee `H@J@g`쐨g`Hd`v y^ CCHp0Ra _ NuvC y^ փփHp8Ra _ Nuv y^CJp0g*H <r$<NuvC y^փJp8fHtNuv y^CHp0Ra4 _0NuvC y^փHp8Ra _0NuHv 9^CCCCtNuHvC 9^փЃփЃtNua*/A^eаdʐH@J@g0`v y^CC`vC y^փփHp8Ra~ _g$]c/"@0)a _$PS@kH2QNu2(g"PRAA4DBH#"@$Y2g 1ARAA%NuBhNuvg@g"Wkg2WkR/&SEg$`LR/ bZ RbJp0@:<Jf` փSGgЃЃЃA^6H aLp$4`YE PQƐFrd0` Qj`prgAA^BBB p "X2g UAk$QNuHaT`EaBPJg, BgBUBg8j(Ѐ"ЀЁE Y0gR@2DAH!b` `ЀЀ`Ѐ"ЀЁE. y^ 9^`2"X2g,e($UAk&QHPS Y2g RSj _b y^ 9^""X2geb 9^: J"F^6^:`~aSk.TH@gX V0"~:00.LKLRLLJZ,>,N0D000J4! V ^0 33,,$&xV3ThU8b^b $#"]#&\"""hZPR 01,1>1Xn2]]3f3_f3F33` p@  : HxFF~AJ0pk*c`TG<;p0N`~-A*B0p`G<;pN``p `$p `$??@@@8899HAAA>AzAzAtAtAVAPAߢߺߺ߮߮ߴߨߜ" ?>??B>9rC8C*F^F@BDzEt4J$26`޸RbEFH4LdNAd 8 .<$h6 \LrJx:$ pr.!!@&D`pxh&X?BXDXD&hS  ?>12h233>h3,32$REEEEEEEܤE(,z BRz((2## <<<<<<<^:`e a׎^>d#^:%` -Ig&a$y^:%@ -Hf&a$y^:%@Nu%ea^>d#^:!@ -Ig2a. y^:!@1A!B -Hf2a$y^:Y%5%Nu!<B`!<HPa$_%5%NuY!<B`!<Nu"y^:$] ! @g !k А n (JNuА l#^:Nu 2($4AB*!kB8!&!a34*!8!&!Jk JkEffDb(J`2#^:`2JjBf涀fA`8!&!a2*!8!&!JkJj`Jk`/RaJBgpgX^:(_NuXNuaJBfprtNua" bNua bNup`p` ga`9~A~-J0pfR~RHGG y^ 0pNu y^n`l y^n^r`^A.`VAV`NAb`FA`>A`6A`.A`&A`A`A`Ar$`AH `8Ra0,/JkTSGgL`NM.F`84  f R~ NuBg` BgarRW g %g - f>NuRar`a,/JkTSGgL`NN.F`7a,/JkTSGgL`NA.F`7a@J@g6@Hz ?<&NN\NuJ9]ZfjNua~#1 /aH _Jg/JkTSGgL`Hx1NLx.z `7Fa&/aD:HP1 M"JGg` -JBj @aՂSGkL` _HV?LPN\LPNuBg -FgaxJBj @ `a7LtRW - f>Nupg@ЀЀ y^" 0g(@Nup`V Fga~HA^JLpNuaBNu~G<6p N`  gNuR~G<6p N``>D? *_a 3rh2HUa fRp"Ma !g yXNf pCaaVJ9]Zfr |"pghfb "f.R 0"g 0 gR@` 0,g 0 fHp`R@ 0,g 0 fHpa _ Fg  f`pXNupR@ 0,g 0 fadJBkHQ ! gRfa`X yXNg yXNgp`<9XNk&a(HS&|"a  g f< &_Nu\F Fg Fga(ZHS&|"??<NMXJk!g f< &_NuHPa2  _`Q`N3rh2Ra fRp"MaD !g yXNf pC$a*a4J9]ZfA"pR@ 0 fa FfNu??<NMXJkNu\F Fg Fga'HS&|"a "f#g 9""g& ,g g!f< &_Nua g`Ra ,g ga| ,g f`<9XNkva' HS&|"ab "f#g 9""g& ,g g"f< &_Nua*  g`Ra ,g ga ,g  f`HSHx??<?NA JkSfNup`v`v??a?@NMX`2DW?<`a?k?<NM" Af J@fH@`4g \SG??<NMXJkJ9]ZV t&_NuRa dd XAB0kH?<?B?<BNA `1tNuak `1a kf`2Rar dd AB0kH?<?B?<BNA Jk.,?<?B?<BNA *kBg?/?<BNA JkNu` y]~ (g (fB76Nu#7637:Nu FgvgCփփֹ^" C g @~`p!`tp"`np#`hp$`b :g @|Sg`pR@ 0,g 0 farJBkHQ ! gRfa _  f z4~a8 FfNuR37: FfNup "f.R 0"g 0 g,R@` 0,g 0 fHp`R@ 0,g 0 fHpa&`~09u@29uBR@RANuS@SA3u@3uBNu3,p`84:`fprta09f29dNu4:Df3f3dp rt` By8`pBy8` p3 8|38@38a383838~`&aJf,H@ Kg Mg Pg Hf~`DSGj@RGFc:>`6 |" g6 g0 gd gXz`ez\gFf6pRGRFa`an` `?~aa!p a>p a80NuCpE`bf`FgRGJGgLSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NAXJ9]ZfJgNup Nu4:f??<?<NM\Nu3XN`a!0:R2:Pa0zEfpa\ppaX |"Eg0PaEfa<`@a @aN"X0g?Ra dbTABJfHPaH @a"X>EFr$WfFA0 _3XNTNuApHPB2/ Og* Rgz Ag< Ug. Ig ogB`&p=`pNAXJ@kNu~cGBVgB+B+eHk ??<>NAXQNupA` p9`p:`p;?a @a*>"X0AHPBHQ?NA\ _JkTNu?<`?<Rat db AB0Hk?aVJj Jof?|/?<BNA `a./a(/ @"X2B1HQ ["X2B1HQBg?<VNA _a _a~`p`p3GN Ff #*.*"`8a~S @aP"X0gA" @f ):f 0 *.*`QB?:Hy"?<NHz?<NA\NAP3XN Fgar9AH3XNa`\Jj @g @g ?aF0`NuC"EpAJyGNg *g|*fSJyGNg$ 1f *a8JfP|0ala  " C"a?<ONAT`d'/Qa H@HaHda H aNqJfJg0P H@HNu 0*X@a:0*H@?a:0*@@` 0*@a.0*H@a.0*X@@H`haS@k ??<NAXNua?Hz?<6NAP0:`av @aJ"X4g,A HPBBgHQ?<=NAP _J@k??<>NAX`tNuaa @a/? [a"X2A"#`QB2"_Ar# A e ` \gQBapZa aA""H09g"Hg \f`ArfS A"`Ja : -Fga9@Hk$3XN//<??<?aNA Jk ` aa#JTaa"z9AH3XNaR` xp6`p5` p4`p3`p2`0ap(fgTA3JgJhf~X?HPa Wv- eC-00ÑyJm y^FaZ _> FWfBNup?`p@3JaFr(fgpTAHP0( -Fg aSk _1@RhHhBg?9XN/.?<BNA JkN&_>gF2ҹ^ A"XPfHQH/?9XN?:NA Jkgp y?Jgp%` Nu @fp7`Ha y^R"y^F`Han"y^R y^F <}arLNup=arkHQ??<>NAX"WA"fSp g \g .WgJfS.BAKBHy"?<ANAT//Bg?<VNA "_`VBgHQ?NA"oPJ@Nua4L #L#NJy|Zg a2Sy|Zf y^B"y^>E~` k&@p0+R@Db bPL y]$z\p (g&fQLܐ#L (f[L:"J9LfA gXgJf`C^Jj* fANSfpAZahJyXf zx"b` C^AfJj<-TDd0@H@H 0 0H@B`3#p4`&][Return]H:FHH`H:8HH` f" LWLfp e@3LNu -f. FV\bg LfD9\bp e@3LNuv Lgv g gh f.v RA eC0H"y^&J8n0Nu@aT@aJaHAv2+&gvA020000` Lg$a3M a3M a3Mv`aߖ`ߒv`r0z B9L^&"o$y^:X^>eaε^>d#^:B*A`ո0z^&"o.$y^:X^>ea^>dۜ#^:% *A`xB9\b` ֹ^& C"nNuvgCg Yk,gL`b y^փփHPaRaXa, _` y^ փփHPRaޒ _ѐiNuvgCg Yk,g`0 y^փփHPajRaa _`p y^ փփHPRa. _iNuvgCg Yk,g` y^փփHPaRa֐aT _` y^ փփHP aRala0aF _ NuvgCg Yk,g` y^փփHPaRa"aZ _` y^ փփHP adRaa6a _ NuvgCg Yk4gp` y^փփHPa*&<x*<a _`( y^ փփRi`NuvgCg Yk4gF`\ y^փփHPa &<x*<a$ _` y^ փփShp`Rֹ^a̪ЀЀ`ֹ^a̐ЀЀ`ֹ^axЀЀ`ֹ^a^ЀЀ`ֹ^aFЀЀ`ֹ^a,ЀЀ`ֹ^aЀЀ`Pֹ^aЀЀ`Zֹ^aЀЀ`ֹ^aЀЀRiNuֹ^aˬЀЀ`ֹ^a˒ЀЀSiNuL88PdRBNu#SPp arpMal3.pd |dr 0Q0tr a3.`peapp`0pAUaS@fa @aBaA aN_$BgNA`"|:2AUV@p222a"<^0<NB09Nurt3"3(3$a"<^psNB09dNu Fg a43a"<FpsNBNu Fg2aCV2 @ e @}bAUV@p222a`"<.0<NBNu A`H JA"#C#B0\* BpZaHSa.09g$A""Hg \f`Af09NuGfABASICByZ 0:A@ fB fB @m ??<>NAXNuAa&|.BASa^g <.BASa6B^JB^NaC"p apA#CelVfdC"XptaPZ A]C^:E" "Ҁ f Cdb("y] 9^2aha&J9XfXNup `p `p ?a&`p`p?a0`Nua/a8/a o("_ _" $Id*b` QjNuQjNubd`aHaa"[`a6aa"[<:HS?HQ/a.&_<k/HS/??<?NA Jk0&_fDNu\Fj.?^:,*B(9]؅kr/9]?<INA\/?<HNA\JgH y^>"y^B۹^F۹^B۹^>#]$I`&bۛp0R@@b CX`/9]?<HNA\p=`Na|a aaA"a&HRLaHRLaHRL??<KNA` J$H @a"X0 J @cp~QBNuH <r$<NuH <r$<NuH <r$<Nua 0`a`vHJ9rh`6?<%NNTNuH`HP?< aNA\LNuQ[J[f H LNuJ9[g*P[Jy[gH y^V hBP By[LNupAav`xa f`pNupAaXS@NuaJ]\k J9[gaJ9]ZgB9]ZJ9\bf aaa`j3]X%`bHy\?<&NN\P]\aJBy]Z3]X%Nu xVC]gJf! ?<"NNT|' @"hE]:g G]<&!JNuHy\?<&NN\Nu xVC] gfB?<"NNT| @"hE]:f 9] :#^6#^: zb :~grHd0` Qj`xNu:F"ddddB?< NA\#_ /?< NA\Hy_4?<&NN\NuHy_?<&NN\NuALH_C$pJg XXQA#`Z `LNu________LH!`ZNuHx`(Hx`"Hx`Hx`Hx`Hx` Hx`Hx !4VxH A3`J Ni LHO |1R/:?< NAO 0: @d`HarLxN 2$4BANuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`BL8<gJEgEjCDEDF Fe"Fk8BCHC`PFk\QF^FkTQkDуdQRBNuDdBDA@kgAр[SBk(NuJlJBkNu0gH@rB JkЀ[`JBjtNuJ9afgPagpr$<Nup`JBgVB&8TTDуdQRBNuaDNuz` L8JEgJBgJjBEB:gHC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB Bb@Nup`Nu&8*LJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@`H?<,>CEdGH@0r`?<`DAр&AdRAрAрDуNuprt|PafQag  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dadSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`TJjDDDS4</a$JFkSFkLaRFBd&8*L?a><JBgaSF Be BgQRB`ApdR e <rRF&0xaffEv+0JFjDFv-Hƌd0BFHF 0HF0A Nuprt|`HQ2:( A dHC 5e2!R 0c 9c0`|1<A ar`2:C0 Ef"_Nuaa/ Cr  g 00VJAgB @ nN @mHJ@j0.4DBUBk0QSAg Q.`S@k 0`0BAF "_Nu.WAkQA" 0g` a| @e3fNuaJBg <r4<NuaAd RdQRBABe B/dNAрQ4<`BNuaag `.aag`@Ad RdQRB>Ge GbFGNu G0dFGNu~NuatAd RdQRB6Ce C/jC C@j C jr0H@{0AFG0000X0000X0000X0000Gr$~A0g0  pia QNua?S@kF8LfBfLC`HNua -FgH?aa"AJWfHa #rdTNu3`ʰzbzbHr`a0S@k@> A0P"G0(JgRJ)@g1@C2fZ2HP"("(pdaj W091@A00 piaJ3@pia2 _C""pe` 3 pia3phaLHrdHsSBSC@AHdHsPrhPuDPd0<rt`pa"papapaLr`a,S@k<@ A3gFBPpfahpgab3 phaT3f8Bya.QrhBdBrd`bNuXNurt`rtH`aS@k@?aN @a""X80L6BPA E\G66&JDg DNexMQBBJyg *gpi`Nua`< d8 VuDg* g gj g& fzSyu@jByu@`j3d0:z"3d0:R@S@z3fprta|Ryu@0ΰz|e$Byu@RyuB<SFEzbcSyuBaQj&_NuByu@`3dH AdEE1FL HHhha a6BydAd0(1@hV@1@1@ `H AdL a Byda LNu??<?<NM\`L3pkaD3dAdL fHL|D@ASBSCHHa Bypk` z#g.vGJRC+ g33p!aĶSeNuALp #gBypaܚBwAprt0 0BBB R@ @efA000 0PB0 00 000\0X00000 0P0BX0:@00p1| 1|QBX0 $HTH0P 00,NuSk [0NupNupNp M gz gp g g*Ha:a6rHA3@@"TAt #zg0A9( f hgSASAgRB`3`DSAgNu@  f/az _^&X PfR/|~ Kzza0g @ ep 24C&"2 S@ػȊTd BTA3A0C4$I2a222B"0@2A\xvag@2#M 4B3BS@ -f ػȊTd@BAb8RGRC`3RSG5GC5C J1DcaRF F eXNuRG GcdNuPNuXASF1F41R 1h4 x1EDgZA##w3?<NNTU@g.A"g dRhdRh(gp`zp>`Ap0rtCLagQ0CLL000zH?#|<pa0LHH|Lv3|:ALff$f*f*fNu y |6(`86(`2629|BWAARA09|DA hfRAS@f3|: Cf0Nua$@k0;` <`   FgbSa@gS@ AHP -Fg^a| W@ -FgL Mg4ad W -FgaR W HAA}:20i0d R@`Ra. W@H@?< NN\ -FfbNu0^ M / haw FgSaF|H| -Fgra|c|o|{f|cf|of|{ -Fg$ab| -FgaP|H|AxHP P0P T0T X0X?< NN\ -FfdNuaJk$ Be B baS@ogRR FfNu$y^:X^>eN^>dJ#^:% p e@ЀЀ y^& 0gk g$(@Nup`T`* f /BaN"_pHq )eRXar(_Sy|ZNu&y^: 9^> nN 9^> ovgC C@g,U@kBg^6BP`X^ &B`D^&B6BP`*^"X0gBPr2RAA#&6&#^: Ff@NupZ`9L#^: fJ9Lg`,Nu&y^: #k g#^:(@Nu0@H@@gU@k,g ^0`^ ` ^1c ` ^"X0gHR@@"D#0#"c0g! HR@#`zvgCGGA^ pp,08gH F gF g&& ] m&feHUKa*_Nup*`p-`p.` p/`p+`p,`& fRHPa&"_HUa6RLa*_HSy|ZaLNuHSa - fH$_Nu y^:X^>oN^>nn#^:BRy|ZEHRK"y^: 9^> nN 9^> c2$""" "v eC Cg\Ukxg8JBk^20"#^:g  f`  f&_NuJBk^ a" `JBk^"2aB`JBj^H f"HQHP0(N$W$RH`2Q  _"_$X4BPY"2gHRB]%(\$@$2g@]e$HQ/0NB$_$RS@H2Q"_L` 1A$BHRA%L`p\B9L`"p^`#^6^:p]`a b6J9Lf 9ZLg 9[LgB9L(yL Ff(yLNuv eCֹ^" C/g y^:^6c> k `g& @gJf,Y^:`Jf aT` ^: ^:`fDJ(_B9LNu((@((?<NN.?<NNX LA HA HNua aa -Fga`Hp3da SN"X0 @e024EH$Jydk Bb5B5A6CC5CK5C8+:+AdB0000Dk~Ekz00Ad<:>:SFSGFn`Gn\DDk0BhDEk1EBh Fchh Gchh0hb&0hbpmrt#0#4`ϠNu _pNBaaaaa/a4>+<+:+8+&DbFEbGAdHP@dAdBD0ƞE03dAFC&000FF22N23BRG0@\@ _NB"2#`2a @0<}NB&IaNa @&XaH`az?<NNT @"K <}Nu @HPa^ _"X0 @Jg8zf:HPEJH LppJN$_4&bp$2Q"G HD&NuTpNup d@Tй^ @"X PfXLNupN z&"z2gB` zBp( g;j `` $&( "A2;N,PX2P,(r /` f"_#Hѩ` f@"_!I` f"_#Hѩ` g`/`j f"_#Hѩ` f"_!IE#J`: f&"_#Hѩ(g|`|` f"_2(if()g AdE#JE!J`  g  ft"_E#J`  fd"_E#J/ ` g g g f /`lHz`"Hz`Hz`Hz`Hz` Hz`Hz#]`tgB"#] g0 g0 g0 g0 g0 g0 +g0A`.X`zHz`"Hz`Hz`Hz`HzM` Hzp`HzAa" _aJf~NuH lHz``Hz`XJfHPr((( eA(ҁҁ"zpJf# Fgpѱ`T +fX`DHzM``8r(` r(A("zJf>"ёEXJg +fp`NqEXJg +f`Hz`Hz` +gJgHz`|Hz`trHPTgAGGCt"qpJf # _` _Hz`6 zFp( g -g g`~Nu (e`|vCgCֺ*"C&"CgijgHPbH~t( g(  g* +g .g±e _JgBHzc`R`S`Sj`vCgCֺа"C&"CgP~t) g,  g* +g .g g`JgBHz`*R`Sj`Division durch NullberlaufZahl nicht Integer|-2147483648 .. 2147483647Zahl nicht Byte|0 .. 255Zahl nicht Wort|0 .. 65535Quadratwurzel nur fr|positive ZahlenLogarithmen nur fr|Zahlen grer NullUnbekannter Fehler Speicher voll Funktion oder Befehl|noch nicht mglich String zu lang|max. 32767 Zeichen Kein GFA-BASIC V2.0 Programm Programm zu lang|Speicher voll|New Kein GFA-Basic Programm|File zu kurz|NewFeld zweimal dimensioniertFeld nicht dimensioniertFeld Index zu groDim Index zu groFalsche Anzahl IndizesProcedure nicht gefundenLabel nicht gefundenBei Open nur erlaubt:|"I"nput "O"utput "R"andom|"A"ppend "U"pdateFile schon geffnetFile # falschFile nicht geffnetFalsche Eingabe, keine ZahlFileende erreicht|EOFZu viele Punkte fr|Polyline/Polyfill|maximal 128Feld mu eindimensional seinAnzahl Punkte grer als FeldMerge - Kein ASCII-FileMerge - Zeile zu lang - Abbruch ==> Syntax nicht korrekt|Programmabbruch!Marke nicht definiert"Zuwenig Data#Data nicht numerisch$Syntaxfehler in Data|""paarweise verwenden%Diskette voll&Befehl im Direktmodus nicht mglich'Programmfehler|Kein Gosub mglich(Clear nicht mglich in|For-Next-Schleifen oder|Proceduren)Cont nicht mglich*Zuwenig Parameter+Ausdruck zu komplex,Funktion nicht definiert-Zuviele Parameter.Parameter falsch|mu Zahl sein/Parameter falsch|mu String sein0Open "R" - Satzlnge falsch1Zu viele "R"-Files (max. 10)2Kein "R"-File3Nur ein Field zu einem|Open "R" mglich4Fields grer als Satzlnge5Zu viele Fields (max. 19)6GET/PUT Field-String Lnge falsch7GET/PUT Satznummer falschFehlerhaftes Menu?Fehlerhaftes Reserve@Fehlerhafter PointerZFehler bei Local[Fehler bei For\Resume (next) nicht mglich |Fatal, For oder LocaldGFA-BASIC Version 2.0| Copyright 1986|GFA Systemtechnik GmbHf2 Bomben - Bus Error|Vielleicht Peek oder Poke falschg3 Bomben - Adress error|Ungerade Wort-Adresse!|Bei Dpoke, Dpeek, Lpoke|oder Lpeek?h4 Bomben - Illegal Instruktion|Ausfhrung eines ungltigen|68000-Maschinenbefehlsi5 Bomben - Divide by Zero|Division durch Null in|68000-Maschinensprachej6 Bomben - CHK-Exeption|68000-Interrupt durch CHK-Befehlk7 Bomben - TRAPV-Exeption|68000-Interrupt durch TRAPV-Befehll8 Bomben - Privilege Violation|68000-Interrupt durch Ausfhrung|eines priviligierten Befehlsm9 Bomben - Trace Exeption|68000-Trace-InterruptAllgemeiner FehlerDrive not Ready|ZeitberschreitungUnbekannter BefehlCRC Fehler|Disk-Prfsumme falschBad Request|Ungltiger BefehlSeek Error|Spur nicht gefundenUnknown Media|Falscher BootsektorSektor nicht gefundenKein PapierSchreibfehlerLesefehlerAllgemeiner Fehler 12Diskette schreibgeschtztDiskette wurde gewechseltUnbekanntes GertBad Sektor (Verify)Andere Diskette einlegenUngltige FunktionsnummerDatei nicht gefundenPfadname nicht gefundenZuviele Dateien offenZugriff nicht mglichUngltiges HandleSpeicher vollUngltige SpeicherblockadresseUngltige LaufwerksbezeichnungKeine weiteren DateienGEMDOS-Bereichsfehler|Seek falsch?Interner GEMDOS FehlerKein BinrprogrammfileSpeicherblockfehler[1][Wollen Sie den Interpreter|wirklich verlassen?][Ja|Nein][1][Programmende][Return][2][Programmstop?][Stop|Cont][2][Druckerlisting?][Ja|Nein][2][NEW - Programm Lschen?][Ja|Nein]Mll - Editor FehlerWhile ohne WendRepeat ohne UntilDo ohne LoopFor ohne nextWend ohne WhileUntil ohne RepeatLoop ohne DoNext ohne ForIf ohne EndifEndif ohne IfElse ohne IfElse ohne EndifExit ohne SchleifeProcedure ohne ReturnProcedure in SchleifeProcedure doppelt definiertReturn ohne ProcedureMarke doppelt definiertLocal nur in ProcedureLocal nicht in SchleifeFunction doppelt definiertGoto in/aus For-Next oder ProcedureResume in For-Next-SchleifeResume ohne ProcedurejH lSyntax FehlerjH lZeile zu langVFb[3][\"& 6     B2p\ x~ 4*"t:< 2X00FB^  "  < T2&$"F"* &$ L&8@h24&"* &lJ"$,(:$P X>   x@& V4 j  @*JLr &:z$J( (.(F < Zt"N\"`  @*(<,8L*(j<,( @<    4^> 6 X:dH.( Zichkeit gegeben. Dazu mssen Sie sich von der Datei VIRENDET.HD eine Sicherheitskopie auf Diskette anlegen. Dies ist wichtig, da Ihnen diese Datei auf der Festplatte nichts mehr ntzt, denn mit einem zerstrten Rootsektor ist Ihnen jeder Zugriff auf die Platte verwehrt. Mit Hilfe des VIRENDETEKTORS - von dem Sie natrlich ebenfalls eine Sicherheitskopie haben sollten - kann der Rootsektor dann wieder auf die Festplatte geschrieben werden. WICHTIG: Jede neue Partitionierung Ihrer Platte fhrt natrlich zu einer Vernderung des Rootsektors! In diesem Fall muss die Datei VIRENDET.HD, die die gespeicherten Rootsektoren enthlt, gelscht werden und der Rootse' SCRUTINIZER ' Programm zur Kontrolle des Bootsektors ' post_industrial 1991 ' ' Alarmsound: DO READ sound% EXIT IF sound%=-1 sound$=sound$+CHR$(sound%) LOOP DATA 0,0,1,0,2,0,3,0,4,0,5,0,6,27,7,248 DATA 8,16,9,16,10,16,11,35,12,95,13,0,128 DATA 255,129,3,255,116,130,255,255,0 DATA 0,0,1,0,2,0,3,0,4,0,5,0,6,23,7,248 DATA 8,16,9,16,10,16,11,130,12,62,13,0,128 DATA 255,129,0,150,116,130,255,255,0,-1 ' DEFFILL 1,2,4 ! Hintergrund PBOX -1,-1,640,400 DEFTEXT 1,1,0,26 DEFFILL 1,0 PBOX 5,360,635,395 TEXT 10,389,"scrutinizer" DEFTEXT 1,0,0,6 TEXT 353,392,"post_industrial 1990 PUBLIC DOMAIN" SGET h$ ! Hintergrund retten @anfang PROCEDURE anfang GRAPHMODE 1 SPUT h$ ALERT 0,"|Bitte Diskette einlegen ! |",1," OK ",r% v$=SPACE$(512) ! Platz fr Bootsektor adr%=VARPTR(v$) r%=BIOS(4,2,L:adr%,1,0,0) ! Sektor einlesen IF r%<>0 THEN ALERT 3,"|Lesefehler ! ",1," Abbruch ",r% ELSE s%=0 ! Checksumme initialisieren FOR i%=0 TO 511 STEP 2 ! Checksumme bilden ADD s%,DPEEK(adr%+i%) s%=s% MOD 65536 ! Ab 65536 wieder von vorn NEXT i% IF s%=&H1234 ! Ausfhrbarer Bootsektor? VOID XBIOS(32,L:VARPTR(sound$)+38) ! Alarm! DEFTEXT 1,0,0,13 ! Anzeige DEFFILL 1,0 PBOX 54,15,586,210 BOX 55,16,585,209 BOX 57,18,583,207 BOX 454,183,514,204 BOX 518,183,579,204 BOX 61,41,579,178 TEXT 64,35,"Der Bootsektor enthlt ein ausfhrbares Programm." TEXT 64,199,"Soll der Bootsektor immunisiert werden ?" TEXT 475,199,"Ja" TEXT 521,199," NEIN" x%=64 y%=56 DEFTEXT 1,0,0,6 FOR i%=0 TO 511 TEXT x%,y%,CHR$(PEEK(adr%+i%)) x%=x%+8 IF x%>574 THEN y%=y%+16 x%=64 ENDIF NEXT i% GRAPHMODE 3 DEFFILL 1,2,8 DO ! Buttonabfrage IF MOUSEK=1 IF MOUSEX>=454 AND MOUSEX<=514 AND MOUSEY>=183 AND MOUSEY<=204 THEN PBOX 454,183,514,204 PLOT 454,183 ALERT 2,"|Sind Sie sicher ? Das |Bootprogramm wird zerstrt ! ",1," Ja | Zurck",r% IF r%=1 @immun ELSE PBOX 454,183,514,204 PLOT 454,183 ENDIF ENDIF IF MOUSEX>=518 AND MOUSEX<=579 AND MOUSEY>=183 AND MOUSEY<=204 string$="|Booter bleibt ausfhrbar ! |" PBOX 518,183,579,204 PLOT 518,183 @melden ENDIF ENDIF VOID XBIOS(29,5) ! Lmpchen am Laufwerk blinken lassen PAUSE 8 VOID XBIOS(30,2) PAUSE 4 LOOP ELSE string$="|Kein ausfhrbares Pro- |gramm im Bootsektor !| " @melden ENDIF ENDIF RETURN PROCEDURE melden CLR v$ ! Bootsektor im RAM lschen ALERT 0,string$,2," QUIT | Neu ",r% IF r%=1 THEN END ELSE @anfang ENDIF RETURN PROCEDURE immun PBOX 454,183,514,204 PLOT 454,183 POKE adr%+511,(PEEK(adr%+511)+1) AND 255 ! Checksumme um 1 erhhen r%=XBIOS(9,L:adr%,L:0,0,1,0,0,1) IF r%<>0 THEN ALERT 3,"|Fehler beim Schreiben ! |Schreibschutz schlieen ! ",2,"Abbruch|Nochmal",r% IF r%=2 THEN @immun ELSE string$="| Booter nicht immunisiert ! |" @melden ENDIF ENDIF IF r%=0 string$="| Bootsektor immunisiert ! " @melden ENDIF RETURN aste (oder F7) zu drcken und der VIRENDETEKTOR kehrt nach der berprfung der Diskette sofort zum Hauptmen zurck (sofern kein Virus gefunden wurde) und Sie knnen mit der nchsten Diskette fortfahren. Extensionen whlen: Wenn der VIRENDETEKTOR eine komplette Diskette/RAM-Disk/Partition oder einenGfABASICR    h DUMCRSCOLXSTRING1STRING2STRINGVTSTRING3BACKGRSTRING0SOUNDBILDFHBPUFFERCHECKSUMASCHREIBFADRRSISOUNDHANDLEX CLIP_FLAG P_PXYARRAYYJKCTMALLOCPXYARRAYXIANFANG BOOTCHECKMENUEMELDENIMMUNVS_CLIPANFANGBLINKSCRUTINIZER *Programm zur Kontrolle des Bootsektors post_industrial 1991 e Alarmsound: FQFA ZFo EB FF&0,0,1,0,2,0,3,0,4,0,5,0,6,27,7,248 n(8,16,9,16,10,16,11,35,12,95,13,0,128 m"255,129,3,255,116,130,255,255,0 &0,0,1,0,2,0,3,0,4,0,5,0,6,23,7,248 8(8,16,9,16,10,16,11,130,12,62,13,0,128 &255,129,0,150,116,130,255,255,0,-1 2 %!!Fa Hintergrund !!  !HF_(!!!PF%!F$ !4! !EFl"' !B! scrutinizerF(!!!@F:'0!D!#post_industrial 1990 PUBLIC DOMAINFI F$ Hintergrund retten nMF+FF!F F0)!|Bitte Diskette einlegen ! |!! OK !Fo& E F Platz fr Bootsektor  Ez F ,E!!!!! F Sektor einlesen  JF&)!|Lesefehler ! !! Abbruch !F FL"EF# Checksumme initialisieren *EGHFA Checksumme bilden 0!3 F,E F Ab 65536 wieder von vorn F.  Fb Ausfhrbarer Bootsektor? $!z  F Alarm! o(!!!PF Anzeige %!F$X!p! !RF$\!!@ !QF$d!! !OF$c!7! !LF$ !7! !LF$t!$! !2FH'! !1Der Bootsektor enthlt ein ausfhrbares Programm.F>'!G!(Soll der Bootsektor immunisiert werden ?F'm!G!JaF'@ !G! NEINFF EF E``F(!!!@FEGFA' ! !B2 F E FF h  JF E FF EF FE F!F%!!FlF- Buttonabfrage @RF0 PcP  Q7Q LJF$c!7! !LFc!7FP)!5|Sind Sie sicher ? Das |Bootprogramm wird zerstrt ! !! Ja | Zurck!F fFSMF F$c!7! !LFc!7F F F0 0 THEN ALERT 3,"|Lesefehler ! ",1," Abbruch ",r% ELSE s%=0 ! Checksumme initialisieren FOR c%=0 TO 511 STEP 2 ! Checksumme bilden ADD s%,DPEEK(adr%+c%) s%=s% MOD 65536 ! Ab 65536 wieder von vorn NEXT c% IF s%=&H1234 ! Ausfhrbarer Bootsektor? VOID XBIOS(32,L:VARPTR(sound$)+38) ! Alarm! DEFTEXT 1,0,0,13 ! Anzeige DEFFILL 1,0 PBOX 54,15,586,210 BOX 55,16,585,209 BOX 57,18,583,207 BOX 454,183,514,204 BOX 518,183,579,204 BOX 61,41,579,178 TEXT 64,35,"Der Bootsektor enthlt ein ausfhrbares Programm." TEXT 64,199,"Soll der Bootsektor immunisiert werden ?" TEXT 475,199,"Ja" TEXT 521,199," NEIN" x%=64 y%=56 DEFTEXT 1,0,0,6 FOR c%=0 TO 511 TEXT x%,y%,CHR$(PEEK(adr%+c%)) x%=x%+8 IF x%>574 THEN y%=y%+16 x%=64 ENDIF NEXT c% GRAPHMODE 3 DEFFILL 1,2,8 DO ! Buttonabfrage IF MOUSEK=1 IF MOUSEX>=454 AND MOUSEX<=514 AND MOUSEY>=183 AND MOUSEY<=204 THEN PBOX 454,183,514,204 PLOT 454,183 ALERT 2,"|Sind Sie sicher ? Das |Bootprogramm wird zerstrt ! ",1," Ja | Zurck",r% IF r%=1 @immun ELSE PBOX 454,183,514,204 PLOT 454,183 ENDIF ENDIF IF MOUSEX>=518 AND MOUSEX<=579 AND MOUSEY>=183 AND MOUSEY<=204 string$="|Booter bleibt ausfhrbar ! |" PBOX 518,183,579,204 PLOT 518,183 @melden ENDIF ENDIF VOID XBIOS(29,5) ! Lmpchen am Laufwerk blinken lassen PAUSE 8 VOID XBIOS(30,2) PAUSE 4 LOOP ELSE string$="|Kein ausfhrbares Pro- |gramm im Bootsektor !| " @melden ENDIF ENDIF RETURN PROCEDURE melden CLR b$ ! Bootsektor im RAM lschen ALERT 0,string$,2," QUIT | Neu ",r% IF r%=1 THEN END ELSE @anfang ENDIF RETURN PROCEDURE immun PBOX 454,183,514,204 PLOT 454,183 POKE adr%+511,(PEEK(adr%+511)+1) AND 255 ! Checksumme um 1 erhhen r%=XBIOS(9,L:adr%,L:0,0,1,0,0,1) IF r%<>0 THEN ALERT 3,"|Fehler beim Schreiben ! |Schreibschutz schlieen ! ",2,"Abbruch|Nochmal",r% IF r%=2 THEN @immun ELSE string$="| Booter nicht immunisiert ! |" @melden ENDIF ENDIF IF r%=0 string$="| Bootsektor immunisiert ! " @melden ENDIF RETURN Als Auslser dienen dabei je nach Art des Virus die verschiedensten Dinge. Mglicherweise ein bestimmtes Systemdatum, der aktuelle Zustand bestimmter Systemvariablen (z.B.: Lschen der Festplatte, wenn ein bestimmter Fllgrad berschritten wird) oder der Virus wird mit einer beliebigen, vorher festgeleg` Q` Efv*oM m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNHz2?< NA\pdAxr0XQ)K\NN`JrBjNuHz?<&NN\NhCAp$L Qp NT9lrBlJpNNTpMNT9@pdAr 0Q0tr N9lNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu pa4|a@:>< |a6RGk0Gg`a(0GVfA1G<ap??<?<NM\Nu??< NMXNuHn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuNpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8Nx6.JgtBnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?Nx<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dJf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C]fApNNN>HP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Fehler # ][Abbruch]\f.B &lX)K\)ld` lp ,BQjNup(NX"l`Yd&-KNN*"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`& $Y8gHRDD*D%H8#$c2g# HRDD%H`"X0gBPHR@@"D#NuN>+@ -RWHgNHmZ -Nr"_N0CZN`pNfpNjpNnprN <"<NpNZpN^pNbpNpNfpNj <hrN <"<{N <r NN scrutinizer4NbpNZpN^pNbpN <"<aNN#post_industrial 1990 PUBLIC DOMAINNbATNANZN>pNATNBN|Bitte Diskette einlegen ! |HPN OK r"_ N+@t <NFC$N -$+@pBgBg?</-p?<?<NM+@t -tJfN~HxN|Lesefehler ! HPN Abbruch 4r"_ N+@tN8BxB|p"<A|N nN -+@+|@N `NqNqpNpNfpNjpNnN2SgNN$N&<x*<N~pJBgp/N$N&<x*< NpJBgp/NNANZN <"<N <"<N <"<N~ -p/ -pNbR" A?<BgBg?<BgB/-p?< NN+@t -tJfNHxN4|Fehler beim Schreiben ! |Schreibschutz schlieen ! HPNAbbruch|Nochmal4r"_ N+@t -tUgNANZNN| Booter nicht immunisiert ! |CNA0010203040506277248816916101611351295130128255129325511613025525500010203040506237248816916101611130126213012825512901501161302552550-1>pF b2DD r 20 dieses Beispieleintrags mchte ich erklren, was die einzelnen Eintrge im Bootsektor bedeuten: -> Bytes 1+2: Branch to bootcode. Wenn der Bootsektor AUSFHRBAR ist, (seine Prfsumme 1234 ist), so steht ein Bootprogramm im Bootsektor. Da die nchsten Bytes im Bootsektor jedoch Daten zur Diskettenstruktur enthalten, mu dieser Datenbereich bersprungen werden, weil das Bootprogramm erst HINTER den Daten stehen kann. Daher mu in den ersten beiden Bytes ein 68000er BRA-Befehl (Sprungbefehl) stehen, der die Bootsektordaten berspringt. Wenn an dieser Stelle ein Eintrag der Art "60 XX" steht, mit xx ungleich 00, dann befindet sich in diesem Bootsektor norm. B.. BHINWEIS TXT čBREGISTERTXT ǍB VIREND30PRG ʍBXJWPROTECTACC ӍBWPROTECTPRG ՍBWPROTECTS ؍B5;WPROTECTTXT ܍BxLIES_DAS BVIRENDETCRC B Diese Programm ist S H A R E W A R E ! =================== Der VIRENDETEKTOR ist also pwederq Public Domain noch Freeware! Die Benutzung des Programms durch Personen, die bei mir nicht registriert sind, ist unzulssig und verstt gegen geltendes Recht! Lediglich eine kurze Testphase von maximal vier Wochen, um das Pro- gramm kennenzulernen, gestehe ich jedem Anwender zu. Darberhinaus ist die Weitergabe des Programms zusammen mit allen zugehrigen Files erlaubt und erwnscht. Um das Nutzungsrecht fr den VIRENDETEKTOR zu erwerben, mssen Sie nur eins tun: Zahlen Sie den Shareware-Betrag in Hhe von 30.- DM. Damit werden Sie auch automatisch in meine Anwenderliste aufgenommen und werden in Zukunft ber Updates auf dem Laufenden gehalten. Nhere Informationen zum Shareware-Konzept finden Sie in der Datei LIES_DAS, fr die Zahlung der Shareware-Gebhr verwenden Sie am einfachsten einen Ausdruck der Datei REGISTER.TXT. Das Programm darf nur nicht-kommerziell weitergegeben werden. Eine Weitergabe des Programms durch PD-Versender ist allerdings ausdrcklich gestattet, sofern die Gebhr fr das Kopieren (incl. der Diskette) einen Betrag von 10,- DM nicht bersteigt! Das Programm darf insbesondere nicht in Mailboxen angeboten werden, in denen ein Download gebhrenpflichtig ist! EIN VERTRIEB BER CHANNEL VIDEODAT ODER VERGLEICHBARE KOMMERZIELLE SYSTEME IST SEIT DER VERSION 3.0 AUSDRCKLICH UNTERSAGT! Ausnahmen bedrfen einer schriftlichen Genehmigung des Autors! Eine Weitergabe darf nur vollstndig (also alle Dateien im jeweiligen Ordner) ohne weitere von Dritten hinzugefgte Dateien erfolgen. Die Dateien VIRENDET.INF, VIRENDET.CRC, VIRENDET.HD und VIRDPROT.INF ge- hren NICHT zum vollstndigen Lieferumfang! Eine Liste der zu diesem Programm gehrenden Dateien finden Sie in der Datei LIES_DAS. Der VIRENDETEKTOR darf ohne meine ausdrckliche Zustimmung nicht in andere Programme eingebettet werden, noch mit anderen Programmen zusammen verkauft werden. Eine Ausnahme ist lediglich die Zusammen- stellung von PD-Disketten, wobei der Abgabepreis von 10,- DM pro Diskette auch in Zusammenhang mit anderen Programmen nicht ber- schritten werden darf. Der kommerzielle Vertrieb von Disketten (also auch der Vertrieb von PD-Disketten), auf denen der Immunisierungs-Bootsektor des VIREN- DETEKTOR aufgebracht wurde, ist nur registrierten Benutzern ge- stattet! Ich kann keine Haftung fr irgendwelche direkten oder indirekten Schden (einschliesslich - aber nicht beschrnkt - auf materielle oder finanzielle Schden) bernehmen, die durch die Benutzung des VIRENDETEKTORS oder die Untauglichkeit des VIRENDETEKTORS fr einen bestimmten Zweck entstehen. Auch wenn ich mich bemht habe, den VIRENDETEKTOR mglichst fehler- frei zu halten, kann ich leider keine Garantie dafr bernehmen, da der VIRENDETEKTOR auer den in der Datei LIES_DAS dokumentierten Fehlern nicht noch weitere enthlt. Vernderungen an dem Programm oder den mitgelieferten Dateien drfen nicht vorgenommen werden! Eine Weitergabe darf allerdings AUCH IN GEPACKTER FORM erfolgen, dies ist die einzige Manipulation, die an den Dateien vorgenommen werden darf. --------------------------------------------------------------------- Literatur: Wirklich zum Nulltarif?, Thomas Tempelmann, ST Magazin 2/90, Markt & Technik bringt ca. 80 Kilobyte Speiche Hiermit moechte ich mich als VIRENDETEKTOR-Anwender(in) registrieren lassen! Meine bisherige Version hat die Seriennummer: ___/_____________ (Die Angabe der Seriennummer ist UNBEDINGT erforderlich, Sie finden sie im Copyright-Vermerk des Programms.) _________________________________________________________ Name, Vorname _________________________________________________________ Strasse, Hausnummer _________________________________________________________ Postleitzahl, Ort Zutreffendes bitte ankreuzen: +-+ Ich bitte um Zusendung des Monochrom-Emulators, um den | | VIRENDETEKTOR auch mit dem Farbmonitor betreiben zu +-+ koennen. +-+ Ich bitte um Zusendung eines Beispiel-Listings fuer einen | | (harmlosen) Virus und verpflichte mich, dieses Listing +-+ nicht in assemblierter Form unkontrolliert zu verbreiten. +-+ Ich bitte um Zusendung der aktuellen Version des Share- | | ware-Programms VIRUSSCAN (McAfee Associates) fr die Be- +-+ kmpfung von Computerviren unter MS-DOS. Ich moechte zusaetzlich die beiden UTILITY-Disketten mit +-+ ca. 3 Megabyte nuetzlicher Programme (z. B. RAM-Tester, | | Diskettenpruef- und Reparaturprogramm, ...) erhalten. Ich +-+ habe 5,- DM zur Sharegebuehr addiert. 30,- DM (35,- DM) liegen als Verrechnungsscheck / in bar bei. ______________________________________________ Datum, Unterschrift ................................................................. Freiwillige Angaben: Ich benutze folgende(n) Rechner: _______________________________ +-+ +-+ +-+ Diskettenlaufwerk(e): | | 360 kB | | 720 kB | | ___ kB +-+ +-+ +-+ +-+ Festplatte: | | ____ MB +-+ Sonstige Peripherie: ____________________________________________ _________________________________________________________________ VIRENDETEKTOR habe ich erhalten von: ____________________________ Nutzen Sie die Rueckseite fuer eventuelle persoenliche Mit- teilungen und schicken Sie dieses Formular ausgefuellt an: Volker Soehnitz - Schillerstr. 22 - D-4053 Juechen 2 enfalls ungewollt weiterverbreitet haben. Dieser Schneeballeffekt kann nur durch konsequente Anwendung einiger Vorsichtsmaregeln gestoppt werden, auf die ich im weiteren Verlauf noch eingehen werde. E`FH`TPWM+C\"&Hf&o$k":",J"ҼR"A k +м<Sk L0H? QR@`,<(JA*A0<b:Q*ANvdDBEM*LDDDDN@ ݳl`ٽSbIP"[ I"&&"&& &0*rBQ"J@f$I$gtӐg BfA` AEG&'ZE FNBmNqbx`AEAONNNNNEB +@ N+|NQ턄NB - @pJg NP`R o-f.b.pN/0@\ #HmD"BHCD$L$@XDW4@dHfp.@nLBLp0FP@|2 Nl@~Uoo@@̆3@ At*@$PPB*rzҭP"fF0xQ8Q\ BЗp^CТBp m Ph (onA,J-gp jPL@A?.xxp}xxQ @8QćS |p Q30g&Aؒ`P>`0\ B:P V 2`gƮ#11AmP$`T"Pȉ8PފNP3^ANFIN/qFg@"FbBK3`X`ppp"p(x-t6 x |$p@g>SHtTH;@x Z|6 nJJpt/p9vKv2|C.Ѐ!2XQ~Pq`r+mX`΁8\$p\ .J)Q>q f$-m0c6q"^ f"B zVV Vȉa6BppRq0Ve^eR&t2Tf6ppQ trxp||4T`T0<mB&-<Cut ԭ@r @<\^Ra436<tV-8d85 ".Ze"p3@z&t3zZz V.p5 5 Q 0<0p|tAt4z"t]CDyDtD"p pP p~#vktZZ, >ptYu^Sz @B c @3"@e `_sRQj RNdt$x p NN PH p;NrAЁ<"_a8.p#NY^^R fdd UlBİR`1BgpvpzA0<|plɐ (q`6//-Q@RĴ `ё~hz`yeB;Ͱr*02` @SoO*pN$b)`j2 LZppЎhpԀќTO&plmAlpMZ8fN8St0Z!􏠀&`P @gU U ((0g&8U4@ :H @`NP#fe p{qmF$ЀaJF\oH~HH HРH"INA\WD LnN6 AiT0<\̨lZXЮ`d(2h"*p2_t:x*`L0TV\d|^vl1 ^BМЬA,lp\\ @: А,}4Z<D4wV^fn@|v~vn~ ,pro&.]2fF"pu'G&`l ؔ t`8 rPQJ gB06E `n A"tapg$ mP`5Q֊̥ \ pAvvT"%p`D IzH\N8R>`HS+o`D`````:``p/-0(Ph "0l sHtp 0 `t `ڮx | UM  9j 8K y0 0 0`HpxPE f 0UG Ȑȇ fp:@ "R&¤///:.L%&b 6:2:(?:?:<:>:61:T@$)`Z$(6Լ2???ԩ<Լ>P56tZ9t4 ^6 06 H249/6 ՠD 0FI*F4I4ILDdIdPF|I|.FI)%FIIFT FE mqgdplPEsp 8p 8T Twp p Ep p  Ep ( p p 48 TT)(plpEpMZ2pʺtqtqƏ::z:NV:tՁ  X Xs%Tn\ jR{a\Вs DLtjpVp)"<tĉ:N$d񒚊v"VdXx"Vx6d 0hp hlެp "В|pް.`21^fnVvڎ0<v p`xp 800-g(;p6<<` @qpu;|@x/=F F(y(q Fp! !TZtpH??T~_~TpONONRq_pZ_ZoB8-p>Vk_\fo`HTfPnTv1rd(p)N~_v]vX!rXbfplp0lb40Œv 0d`0p p [ 0$0~ Zg^tN'p 0pq<0؏F0Ov8uxoj o폒p␐`1BzeA 0ϒ,?<HxK/-#0pA6eQ6*0aڰңHR:G@@@ĕ:͊RCQ gp˟z b U](Tfp.F%2TgDv/HSp@ NFE @(У(  -"-Ԁ`*,: " H 4$N쬆NZhzNAN'.B .NT22$Z. p\*xR&,%f20 hа@,ttZ\T0<:@Ì"y?* B/NNO+1@*`g<|8p`6fqfpKtrVV@LPдy0r0{  D\4̰мּ "0$@dBU(J$$:Ipnpptxp|(p6<$-@BtrҭH@b#$Lq4"7B(4n$4A0(S@Kf0p0b4R (P >R FQ baRbroSv|B ND$$#f49R " :~S &D<:<ʅNJBPf ``d@@@2B 0?䂘8 :&ZZ1"6N0Z@Hpgp^P0A @d2>[4p"B$zp~8gBnP`|2dd$\ph("h$|p,BHJg6 @m oJ U^Dp*m0"oc do!.\@Ҿ*QѦ!D"Pl$pxMr,/qϬBnNWT,DT00Si`:T`fE @ H40D҆I1@&BM  ( pT$6В @pTC24oBcrЁ1S0f*p@*g `8 H `d4LC6p:q*/0&<&ЪlP1 _ `hoNBNd|hAnlTRoԁx DqpVFPF>u0 Pb 1o@`/./././././././././.rrrrrrr`AAgL@@g5Ɗ ddg4v4֛d2`&j8b(""$*2:B2T\ldAlA\~v<О΢N/-TH FBpVR! `FF&t&rB.RZmB&-<Ctԭ@r0B000r/t00c梐NMX$mT"ԀЂC |Z ^6s$˱ ".V0눑RD"pk0.zr("mN7Ҝ֔hhb c D   <|$@ЁҌ$"||\p%>>Qr v@$H oKFp L OSК`D Op`@Ш Ѩ:ɒb~$RJZZ * 66š@ЁFDGDЉo`,/d0nnz'@Frf>(p%m&pӲ/-0HPPgFn lD`#4RpRdii7V(4zpn((S.Wf ,p~9\5h\ ep1*fff[(\Hcg`.o6]T\<3(P2(C$6*J-gpFв1.WRf `EȠ(gf&0'pNcDm`@VS&\ovbvhooFpR``Da` Cpr̆Bt- 6?:O2B4 ???O0H0A.Sh^abί~J}0HU6>;>::H;:$$eZ?6T;2z;0"?,?`@2(4(:4(V2(`` $^pC8JƀTWXp.Fp`dhlʐ}pJ$JYXB>2мHrC >rRҁr`3ГFdg!΁tB4<`ypb+ojx mAH $ <`,`h0tg΁d$Q!n`$ (Rp0HP\\ Bh"(hlB"h p,x (@gx|NQbl _o`t|o^66rnӚ>ZBBL.4~Sf"2PFXxOjN (-h,p<ЋgfN Xl*tLt%@C@`NR`'`,T$opR2@r"_At+A8rd~Pr^Rdљq@vr @p8f" <6bg0,$P#( Qp1fL N*pQTbTNPlT+`3`!ZT"JT r%01rN+Lx  tttttttU tRx9t(Tp(rЁ+@`lЭlp@ưP "ȼn&nnnWAn'////  !p$/L/L/L/L#LSY+L) +HR-Dp@Z/%İop NNN>"N*>`13`[;`d5|u6p.at# \[prX3`Ghzp3zXS, T, /,pRlUlq$p2=pHHHמ pB  pjSB} ѲԲЌp,@@$p6    &g&.66g*¼Ɛ".N`B$6?/v<+ZZXTf0"pa{<0 8v",#xҒx ƀp0ʅxv*rx,^Ud| ^|^^v^0~^|OᰄD "ҭ<ЁdX@Ё&LD,Ng`8:v 8:&8$^F:N'v` ,22)D dPL&L6H2Hm5B n(_L ( (Ah$pAxVR@^NNZfVgLFUpA±npG;dB:Ё`pVX8fTzr:ڄ N" `8"l@0RDrN? R4`|? Њ XB RX$&-<Ct/r|p2ՠZZbj]r Җp-g\PQpH$-@B6rp ,c , ,`Z0\\ \BĨ -^TF  ȫ 0~""" "ND:" p`J04t @gg g¡zupTz 0pU "`UR ) >/> > />$j/>\\/>L \ / "/,,/\// \0?09k6?8 ,@?\\?\ \Ij@~gp(À0X~&(*pbÆBp `rJJhPB $uN\XdSXhQ`Q%SbPrF`HV0 p ~PNN?< NM\TTbV ତQp"gѮ Su <NtUVF@DBD Ql,BHyV4 6i DR1V~1F&t :0<m"B<}t<֟<"@- p6<t_!2 n6 @4Ip@d,zrB<B0<l+t7趖$p!dkrh# "HAI锜 db\ 2\p8 $k$pFHtF( F?pC"bV""pEDfDDfvf5 D$RҖHVDp@3t0605pvT% v&pJ $$ppM HHpRN l l $TpK$*,r H$l  8(pO H$pL l%HH1hJ"=$k)|I7dARbpH5C\HrPG^ؑ@ f`N46@nJ$MPX:|rFN/)6)t<K8.&tG""wpA2(R @4&p2Fd CrtAq<p沄 >0&ΞB {pH $$&H$$[p,b aU*>$ ZHF$ - #pP H$s:zM!-$F,-*7$QBHVMlBX=3p:Tc)ONm\mONONONONONONONON֢OID6y69prVCnL7!tIOD4tTO"7t_ODftjO )'tu_"wWF-l']` - $UXNHlHJ] pR0]!^(֚m0!c\$mx"^$Lp/xm|"{NX h}%# #$a^U.H^t9l^tBD}$Jp=O}t$^ZD^eyЏЏЏЏЏЛI%!vv%RBp "p.bgt]-&4h6"}HjsXDH~z'$aNbB p'NԎB(?p%jȔ(dbӭj(>dܞ魮)Q$^r$npI)~5)4NVJ'Z*92$Nz=Hp'H珊*FF3+2+7#f>\ԏf`f "gf,;:f"v̏fDξf-af-_p7J̇b-&b-ΎΎb.(Jf$t:H/Q$Pp9BJ/hѤB&0Y0>p30Rb0Nxb0p j^1p ؊K1 R1WpD:$1ߴ1g1g;2ȼ"eD fp;҂‹l36pҠz߀M>x3$4H+$xpGfHN,5U NP$UNtHUNlN*66N$ Hn  27>U$a>!H*,l78BpضIf8`hVD޶aO8N9(9-70BtO "HO:""P"DD:pȴP:N;5O$@N;ɎN0<DN-pRAPp>nNX*D^ 5?D?MNKHpxG|PP?PPP2222ߦ?PP?3pP@ P"TPDPffPA9P"PAtPBT$dTBpؘP9B˓B(JC-L$x޸HĞ8D]޸$~HUH ll E=pOX $XEp8ESMF=\0F\\a}"pp *pf\\\\`\\a{\\$\j20\.,G\6a uHb\"BRH\Dxd:\flؠ\H4pE"ya~Dé~ "I bUF$VުjUH>blpj@TjJD}tP6D zG hp0r^ӄ0ZNK3V0~*${HaΦa| L pf 3y1y*p >$(p7$3r<bb[j$D$E\p> HUHu8PnlAx0yjXLp Ü@.rr@Rr r^&jKw jK`v AxN` DxN/-Ht΄иNJ \HyNNX @p! @pNX$hWHH/8gTA탬NN NF4r HpJ#SH R2p"<Ǡ`  alR LFrV22 0<B,@B`llzV4Vҋ~ >`  @Q 4Jgpa[^Na+`N4Hx^p$M p/0 ar@Dp*"ml0tpZ>N?<4R8ANt//-lN Hm8a@ -8`PBzz`> xp0N8 "0opaqjxK dpdT4p58T!jHg0Q턉,NBT!R`p BPDLѶ+@.pp .< ..X \< \\`pf!`p0J!|0FVB4aAZZ``,L"$Op #vw$/p BtOp7B "/BGp%zn XLp1/0еfVtҜXfH`]pnhЀ,`2g LJ`}p+:H~e:B s`@pRBЭ4p2RR 3|q8~CamrFfPAFԳ`N!`VV`r`bNPagP YPgUP$`:fdR`@D`H @gNg* (g08@ p 0`8f `İV`A{Q&DO`P@tPIjA\p|aZHk"H&klkr@kR(p~D"l/-@ `pHm0.`H  (000.,*`[A 2`~a.~`xSpzoh`z< `pzpr$j0ZrJŪ&&ƫL昔<0`oooDoZPrpUЖ"ޥ|`jEz"p иbj ,lTlrroP0lAHz[lt^z@TBRX` 6rph|Nn| r0`]e r_op.&y~f@.>`"r9^ HyrAmBFrZ$l2\y4g @p8g|p Hhqrr<&<:< O/??0aR&<S8:&aPZQ^^pNRRBU@opN;Ȁ{ dUt<34"0pZ)`d`n@` <\*.*~S4g@OFfSZNRZ*p R&QZ`0 Q^m(_`pЎI-sz *2Wfs`BXf`")p>c q$x0mV`i^ x0J& xcf\NZdbBzw\&ptA턨N`nѲ^+mX\WrD@lZʰPvP80PAǰ2pS8(2$ Zp\`NOw/R좞,nNBB <zg>21&$Ptv /ph|d"_aeBpR'p*4smav^rk`paLxDg&/0Nq^v4nfDXB1X8H m 0"HцR@fp" m` (2r,Lyq`uFd*5/FArN yXhqe($lzjBZ*@?oWS@d j,1t\`\`xc < )| \tQXp5H sp*H?Q| {ؠNд/:L $`&BgfaK(0 gj"p]-R6 hpK!bQ0cP0$shڽ""T֥0@4Lqsl VP^bp4mЊ/,0p24谒gp S@4%:0RnT/HHR..` ~`~Il~x~2ĜVܰ0.,pT$ 1r~j# 0% - / / - 0J/ / aI/ ' q' J@"IA`q8`pd p>pNF`F&t@nL)ctttԭ@rҭ4b"P000rt00a2jBB @ВaXTB_o:FQ*rZ <123|`#~g@XPP PhffЀԀЂ~S !z@ pBWT@BZ9W@("mNbx0(S@fp0xq< \J DbZњbXVbNb ?,5,B5,> X$d4g @7kV|_1Ȅ0S*۱gd*9VE^ҺB>ڒgTPT0U0^`j^Sp|,HT <(0%<,ЎY.H 2THpTp&l>N[x[vd[t[0[|0>f 6<TލP*]D4J2D0QX[.P$F )fbd?zHNUbYp+p6<idD@eD]HyNNX!@%HLXP``LXP0D JgΑZj`~ǒԀ~`h`, ccRcRJBdd +@J`p"htp+@q? 8Jgpd?@`&NNOͰgvtp*H2gT İ4a=`g X`X^0$b06b²0@(c6gH`b >T@?MpNM6`fp`0"bDvcjvd@?(a;$a&rcUP `P*HxZ4p"G:|e\|p|LpY T |@|kf||hcЊDap3J_3:_3:_/ў1@HxpW)9"O60<aQHZ3 UCa``/K/-1&t<2'/ Bg5na8rB6(6^*BpSLx`a}rِCq|}QG4Vp^X$:p$JRDR Sp+Ar|TTTR\fp.nH^ vPjrpB: D&QXB]ʦ&TwԂ}r, ~w,D 0a|r |r2X`2Jd>NZ `_pr```bn|tQ|hrpaNpx,(@~&(c6@vؠVpJa\x-xa5DrfKzp/aLJ/.{*L`:p0M&T~WDpl\(K6I/-.q0h[P!aS8f0(B'b`^T^YL֑0p$F R>`4UɑyBR`(da`]hfqlEP Ed\(p*XZ 4Z\Yd`R<0-@gкXᖂ`"pi ]JZBNT(S0 n  P l:fpr2O%pO"8O@*pNF R&trLM.ZOPOO3NWpPHF<r(QhX%p\,Z&  Pa@z4``\\DnW؀YTnTW^@X0. cHT0H刲HNXNVNX`J`<-EBCDXL$ZZM(Mx/l2/12/2J 2122E&C:bMldp <&

Zz^P0`UZ..6j>V0U "P&p[,[0FD0<]IJ2"H4BF28dF p]a&G4G.^VN n0j  "_ C @b 0ᚰ;*a@ಂ:}Y@P@Z6ULP Up0Uh8@0P(LH$tP`P`W>?```%JA|JA|JO|A|HCJn0<m@B3"t ԭ @rCnH^2Jj?\+%s.^ǞrxQ06@H)Cr>VU**y0"T=aJewRaZb,ahnL0vnRp\O lDNddr>p$DdL! R V(rrXp>/0 nP0-n.$ B|'S2`P x0f0hKj~lr";nEQ8!OL4EHMޒR0l4Ҫ l0f#RMq``"RЊ#j$O$#DO~OPJ[p<K@( p0&&<Ô#âx IvD@Zxx0 @lt2H0>%V<"IP`Npa*2Ж,ІJ% " HC$ `Jj^` vHA^N@bꚲI(pI0IeHIP|@< V^DnBD 0^dfgabHx@!HR* $$!GxI Px^B^ 0-r " 0H<d4p4pN|NvhhPp|a0 F4RЈS: 6P>  V | .p1Fx t La>l# bŸEWP`wZiKJ$3GN3$G3G#vG#vG/v/v/v/v/vA"I|KEa /v/v/v/v/v/v/v/v/v/v+v%n$ $f. *^( *V&$^,$f/$*n/+v(h7$v3/v!vTIvSD؈->BHy Q/`w.ऀ.&..\ќ2<9BHJ9*"DB </4R4؄& -"dV#H:-:B<xrH`N0<>dpF <hfp"c|  /;`\pc[(xlD`԰U$Z(R,`pao @ (,(( * a532=`8J>0(HRpD0" `Jh@*Rڂ(v<(J'@f`D>pp B B^beLHN%|r6n>rnInrDn:nrBna)zlo HˁnLRa`F.F|,Ј 섷ВB J*B¢8ЮжNB@Ȱ XDڄЭR>fPp)`/0Ca2&FfPNBS t< Xp R8`>+ >ZpTCrvF \22Bh *00<*U,RT"pdptT ;.`xpTtdPFR & @/MD<UtR6.*Rpp:ZR`T@/$;"Yp *RU2~vP*V*R6@"/TT!:tHx~0/|j"@bj]~`a4J"6j@AC/`090"bp`@4 "vKp90$LJ:>9 ZL ! 9" C`a.@4."!9 !BP`C |z.%zHQ1]4?0^p8R(ppL :r `R&,%:,Appr"Ba-@EFp@> R`RH"RpB-S9ST1&8,0&V3&B-*0_!8VVHBPn-z8ZN@,-D9Th&(AT9Bi!8`H⠞8CXa7a~j2Zrp cj)8~ 7a hP:<a2T`8",ah$ ,.7X">1l7Qg7v>7W0z"h~Ef"|pH0NAT0(@a+,d8t "^ @0@j,p?<hNNT!xhtg6T7"QZ60Fs+rL6v43JP6H26Q6@jĩj2XQx6l]D `N^qz+[N@FNR<" A64pTJ7DQ5UVRJQ?P f*~v6"tv6Sz!Q5ƢU?О*t6XedBb[+!b5,ӌ/ 16,3ќ^2(B~r rAЁQ0<:p)-bD(R"o`R4qH$*H, @03>@)0 NNUƑv54v5J7a,4,Rn4$5RRva4$ZEF>&)`Rb[&?p@4nfP4հD~rBt4NYq::/Hx(J"_ , eq~:T4h 4oq9Np N0j>9he 9 R"F J$K6"R 4YR", Ne4" hta6 L6^" aN fHu&08}&( &ULL L^5@Є"br jr|0l ޤ"ў/tt4ă@Q6= UW `^6P64PDŚ0h <&IdQ/2"/S&"AD/40_8,$ B  hRR5n`J/Ru.PPRL8aj#*2A.Z>28#./&&&Z`&4f~#` @DIg2L-PBf$fd/g-$NaNd.d4rF:.\%pr-&&LL6r'-*,ƒTBRV7,HbQd(!VP0aX *0RЈ.5<0< D5*#t4Мĺ%+Ft*YriHb Q~D *İ1)"h3aB$`2J12d0@-F.F.t`l*2+q/SN0SB p mLc L ZZZZZI!v(h%(h(h2e$)ށT4 2{Plll2D)3V|QN(P pc(pp`0P^P"vP$F-h P4,S4!Nurz0rEX0jprXp\ XrlXX@ H@rXrXHaQPLXPH@B@!/XDП8mPtvW@BvWтvWvWaHvWKRWtWH'WtWtP`&$`/Pa5 @@0e:`8v+ `@p< xО!HwpQtQ&S"j8&<:<&<0xТ)a(Rx bxAptrVhV& AHpVpH xVHrVdrVQztrnap<`.ph$*$))p^)pf|ܰ&V nB"FVH%PV`̲pRY.tVs| rx xV$`SrU~yUv%'!/HBIU5JT1RT0TP&Tx Tў1T! 1T3DTarptrya,А`,f,Tܐd@$ 00HdBp421(@Xpa Jk`NupNu\AHPB?HQjNNAP _NuDExRb`bDEZ`ZaR11!< 24&8:DE`I6 B`  "x`> `@ :HnghDBHXDE~<En g6@ABDFGcGb8(vHDl`G8BCHC` GHD8쬵k&Dуd QRB BbJjDBDEN֓DjdDA@@ pcAр[SB$o6r1NuH@g0J`$rGo\0f&@B oH@|2@4jDBaBe B/dxQx4<`HNuv $&k.k Vj*DBDXBZDNuf Qgp`|6CCv0 C/jDC@j jr0H@{0>H@ Nu{0F(:<Laf AfBfNu`Za 00X$o,zb4< J@k @H@Rp g8+k222 246d@fk~J@H@0NuJjDDj DaV0Db ,`2dNu a>e@$HB@BBЂNu"HAAHABAЁRDgH2g.|HCH@:҄ۆ<HC>@Ѓdhaf*"X$|H&FD@(@$:@rR gDBgk0HDB02g!81&!a 50AR1@L@rHGG:0GGdSWQni0002```&2 H@kփӠSpփejRAd R8dSUCE2SW`?<,>CY2fe11 fJCg`zdSfW0id0 .NuzTP?P^?``Ġ]<6pEepBgPXer`LJg&B.C`a8aD*@9*|fap-I4=|p4aHzg ENp,p`F| _a &nO:NM`IbDK~>$<0 P[1][Error +11 Return]@< g g>Jf`Ar Hjr-D@j@!9 CNuAJ"H pfSE ap NA\NuPg\kdHfi#Hp0n"lDpR`nP zxeҁ؄d`f 3`z"_" V ,@,>HQ@ ,-H,,`N,J< (MPn$h  Ј-@0HRgJNAO NqH l =|.,HxHNA@\rP ,/ \X"І^(&3##  AL HL T *`|@ >L|>t~ZV`@ AL252  Pt ( L|NuD"BA  aX6602""X L؁,C08@0 . P>0ZC`:22FPZd @pA(C0P Np?(a ВШLNA*`@.un.zЪ aa(HA"-Hpp alpMah=@ NNNT T@0r p0Q`pdr t0.N.2 ACp,21Ap  N`0\Xpea>pCZ2Ad0 @2r22a@"`*0<NBL ftB=AH=BD(R(.psNB0.Ț0Β"0ؐP*PH(Nu2 @ e$bAPJFp" z(` N#p0 >&NNabq,gNuWpAf P  Z,*0 448\DBH,04&0D Ps4(*pB$=,>2::(  HW F`..26w" `8q"PQ1!P1P!0PP`0  q#aaa a ^ n,Nh!c00``dAd6Ag,B(d@BH Ao<antoBA¡h16O>`dIH`Z H IaLt IΪOU Rg,ap`@>p` v0tfH@RR>Er$W0xgr STD:gr COM:g r LPT:f4FA$_0=@Hk"~CA0< BhaB2"ǁ$_ Ge><QB(@&fgzp=``ZgzpA*|^\ _~B `H"` "T&G&pC0 CP JVB&8TZNuD~&AdRzЀ<r4<DHP ap",`QJpn4Jjg$_qfNqL jJ.ng0&f&((p/*%INqH%_< B?brpv JBlDBv-|X` r&>`@ RFBd*L?0R@"< 6SF2e BgRB`R epArRF&00TCٱfEv+0JFjDFHƌttBFHF HFFa|`HQ2.l@veg>r CA85e&!R@B0c @H9c0`<R"_fV.0  Ef"0a/ Jr  g 0V JAgB` nN @mHJ@j`DH.4DBUBkTQSAg Q6`S@k p$`vB<8 zBWAk Zٱ `}0g(`P=Q< +g -f.g4 .0e4 9b dP8"`RF`4Ef<0e&&SF`pE#gvefX~xXxb 9oSH`0&Hz)xZE Do`ZJDDS4<.a2JFkSF@k^Q`"FFF'/`,HNBJ.QG`` 0ԠZag`af`ae `ac` acpPadqDXDN4Ae4v` VfANuHPR@kBa4<NuHSAf |AS@RfJH HPЀ)kJBgSL<"f> Af aVV4@m4J@/JX@kHa'%`/`/`J@$J $d!TBYPP/PZP!E$pfW?T]@(? ? 40XKUQ/X,f  "tN@`t,@-A=B`JzjHvz`z B.fndD@Htr=EL`̊ nf"A000X pd2R*684P^TZd$Vv V((N@"r d(442@dA` L0GF11-pnHQBp'%r4`SCDS p Bd  va0p`P[v-x<< <<8t<ӎ0-H4\2H 24DBaDB1 1! D"x6o< C(FCĀdЄe/dHDDdRdBP&$:"`g Bb@U>c@j>cHDDdSk g RBxj|@fthB H@"jNuE$ea  p`p&6" "t ,d&&u@-6:\::r:p <Z>р}t$Ia A$XaH`aHRNNT @"_, EPt"0vxepw2AtE1*jDjHB 00@°rTAtp =| A(JBoRBk NugSBk`CkC@6ZHg"cc/ 0) _$PH22g$PRAA4DBH%$Y2Pg 1A %XXBp~o@ Ш`JFoHPJpjpfؠ _*kBg?/(b  8ֈfozJBAf`L|?64.k \Hx\[Haxpx*0Qo< 2fJjrPNu~dGdEH8Oܑ0< aH`CJ2p`hp a2D p@a"p`Hza`Hy "JB.D=|HFpAR@C6 P"H` La|b"SHh``hC4`88DR"vV< :؄p0J,pX 0cp$ xg"X I"_(*UGk*<؆QNp`pp` p`pJPg`Ԃ!؄1 >N&8:` @ABHaNL8aLO `Q( 8@ <RFJEXEFn ff8Ab`TaZ``F!R <.H"8$I"t Q k"RGef~`SG * gހfSG`BjZ\FkBJnhg Fgdg^HS&I.Q`X ,ANM"\DI&HQCA<"?.h`B^@L=_hAR fPVb""_& &6Pvp>P $qHb "_6(((L(֪(&( PPP2B T|Z|,V,.V B[ 0&Y( 4r( N"_$_HQHPbb6Bk K0p@"$RHd2" e6`"Z&@bP7@@p2 R@@#( \( -KpgrJfH.H PMX`>X PrRg0 p"H Y0e$b Pr @qg$D!(JfXծ$`rap Nu4pa2 $pa"p"P@g2DAH""n$DrgZe2 1#-I$ NuNuA2<XJX[j]`@Fݚad.J>d‘݈FR2 /"H($"Hgr k&@ S`P^#&@0+3 # #  `# ALH f&fLt .$ JAfp."X2ebP6gHRC( D#`(@gn"4 b0! /Fd6`$ W P"Y" v"! _/> @^BB P"S!D"r@/JAnr W4Ae4RBBc0?60$2A`HP"Xp`g"r~ RAfS@`np`1V`JG06#f &#o1"CNk"c" C gT6f  Pv6"cgJCJ#8`Bd:&B`[`a 4JAgF Ag>g8HP b6 ^$_// Z4DS@b _,Xb$`p tЀvДB00  9c^$$ T$ (h6Ha`a`aCl 0gS JfS`@a@cr ` cr ` \ cr `N $H@pp\HP? .l=l$=_l2 "@$Y4AP`0D @1@&@( b ⸃XH>pC 8$IQ"Jr0XDD@CtEe PA`fRشf< "J*c j|0"cR@0J g: $I.f) 5e*P!"g-g "g9f b`RB`T01`p ` @c&$IHc.n.``0b$0@`r ?"P02R@H`2"hж?JB<GNAP0?*HQn0 10 _4gSB@c:@,B@BmS@,. RB6Vvg(R F"PGєfJ@fRB`f&&ft0@*aaJjdHPa pJ kaCg.B| H &g,$g %g"PQtPDRpt`2aeOgXXgnSRB "F$b$,0k c _ c b`tSHkaJ: b 00 fрd`Qhp`PpTap3 fB0dbNu>n<jRGg>VGg:TGjE4֦@01$IpR@0 $fQ,':2!<` ҡH1SG@pIgb f< Ta@Ѐ`.nfa =|<&lA.J k#`@ ,b fa4a` a"l6@ f#zD9g0TLpmrt`ׂ"XXHVM"LH-E R-YL` H$*LB.,V ,@ a$ZX@zxlJj xo`x@d xc, EJDT`  z$<&e "&aSL4 fd$R$&k(*ڄNdNjR,o& .##xHR#|e(*FNZRgp$(؁⌆e*"(*"o2(zS(S&*B*RRNf$SD`,l//"a R"mx Ђ lNu 24JBkCkNuCkoSBNugRP  P"H`p1(`@6 _ PSAvjxB (Wf* ae@ zb ðRֱRBnz` pp=| z|=F x@.=@lsa t=Ar~` JfBH@RfF.pBK`Mgs"gtgPHf`jrrp^@ gj@rffnenlfJpj6pJ$ SG` RF` Ff<0RF(P`PF>>$ `0}~jpQ 0Q>*0 |,`CpE`bf`FgRGJGj SGSF&&Y&@@ gH@fa(@ fza@ b ʀP@ Ee0BgNu4.|fyaNM\Nu=|zLa REfpadppa`NEg0PaaFRE`$p a@a8?PxnR20<`$ Porf nrfSnv!` b*pq >^PP0"P!@e2<BE`5HP8l$xb $H0 $f6(HP p?aʎ`x<"е`$8xg U@k g NuC0  HPAAB!6<DQR`a$_H^C`2E6na`2E`t44ZA`ET6PP>A *FM<Nv"+S [0gt@C!($ pjL@xh,.܆އ܄ޅ(sh*sx<3h>3x?@0d>֞VSGk VЊ>FNuT DHprLL L66Vfn VZ *'xx:sh7xDx*rh%&%&< <&pHQ/1(@NA  pa:d@"?@"&g4 Fgax  JABgp:2< R@AdS f02fp Ce(LL,JBHjDTgP Ae *@KRtPLL%0 >d8^ RBP p`Ȭ66BPa `@RP Ђ Nր Ѩ"B ?fB LL 8^v( Dpkd0րBb.?XXR\!@p*hx??^*o k:fp`^k gu .rP F( _D氃fNu$S&@NAX 0fHp%`TrSRH00@H=GH`0π`Bvc.܆ I$K$e*a Sk"X0HH 2 RzSjNu$Q$K4 k<** ڀcH "KaF$KR.  QiΐA,g.Al`Ɗ@fAt@pX0PFkBt I.a"`BGpP+`agR aQjHP&x2(36(#1ZRPF ö`0e`U HSCܗ NLER@J"2(" `"h\ J" _HzHP`aB9`$H Eaxj AerbB0@"͉& I pBByVXBtR6#\HCHSDG1>g`*f  f&<  6JfB&0V2CgZ"pN#ؤ .>"NN @A C#P B` NA\@.1/a000N 4 LA#3@30H! hSg 3& R|*j`gn Nup$T @ 9 vlg` @8T5:3xM#t2:2Z 5Z6A ErJg" X X\д0v"@C,r g"XA!f rLx`(`D" ``D``pfx !4VxH A3x3. Ni LH3O:|D1RR/1pdPB`/3aX,_NAjBjz$Pt&$A h$(:`؀.1AfRj B?40` 2@@aې`` 4.hA@$LR@ RAg S@SPAТtbp@r??<.pY(H0"n .NuAg"JCf a4N``"P*0gt80F1 4ta=@p4aS[2][Programmstop?][S|Cont]aepH0HQr`aNf"H_NHQ`@6 8g"4grf$$"Np\BQ`ZG06#f&#qސx"c" CT6f`Pv6"cgRCC(D#8`D@v` vLNMXBJ(J@k\<NM"UAf J@fH@`` `j0fa\@``]@><C Ipa<0h a a?|`qؐ0R@f |HJFkHPa@Xpo`hHSHP&I>g\SG X ` _t&AH8rJ Rag `af`aaaZC```0`E 0`06RJpXfJ`RRRRRRRHP? @H~8:E#PPR2 `b$ YE"RZrЁЀ`&Ѐe "Ёdp`|JAkfper?D DЁta8$HX :xE` YEjT"_$P"2tr<d0  `  Da DRpa^ K"g42 $`gk2&Hgf deђ$`ebѐXf̡PAgA``Bx$F($n$"HgD" &Akc(P S`(" k#&@A2+SAI3 &f-I$~d&ր h^LJh %bjppT:p&rkX`ؑ!fHj=Bnn0`" njȲnp0Rc21e$"X"R:SnkxZ_g`!g f&g.lg.a`*N `0fq X`PV  gAc@@H2BQvֈp?`0H>،rLv`H  k,vxz|+g2"-g,(*$"g&4#g$(`` ` RCH%f j8hHPT`.g̰^gH~P^~XfXxRDPL*X4d_f.(RfАRE^4+gt,"j? JE@f0DH2H @?=n~jDJ8$vqFނpJ<z Ndz* I0@  fEv@S|$Ne JQnH-!\ X$80!\|g8"@>@NRf ,fHQ!aӐ!|"_p$ RHQ > !`)P. *fp `p-`k4=_"!ȂH#8=BDBLxC*E0RJCfRCR@r2HAARACd `Efr0Sb`5e.!ALe0R9c0`"RF1R@L0c JEr+J@jr-D@UEoJYEc0SEnH0Q0S EH0$dR 0 0H@0J2 "2"2" xL`UzffXzf YJQ* YHaLP|H@P<BC&֛(HDDCBg6v6C[RCF8[aL6$ a:VFWfTL A `D$I\bfBjQx`Y *؄؅C%H ؅P$_  I R@` :A:L 886֒6`.d$HJf-HS l"`Rָa JH 2L0L`j$ Z0Q\A`%aS@ t NuHpFp @@4ASB:L`:`4A`.`D(`"`A `A`A ` A `P$ .(,PD&D&8&A1Ր\P\DPW6\6@00*#@ HraH D^pY:b(L@ /&T$.p?o? :8 B2N2Cرea.`N a&`Fa`>a`6a `. a(`&Bg?/Bg<k B{AHDBB'h4Tk6RBkB<kZ Bb 26 k Np`RAeR!jPRB BgBDBj" Bet8( .S.Pprtr$o  B@gDk Pu4<C `J Ra (PX _FPUfa pĠNb%%7I [%7 Sl *k( (| '9K]o  - ?PasP' /! @P/ P/@/R/0//#u/@/!?PPP/0P?@&qS@x/Pwq| Pp/PO3p?/_P*A/Ppg/P/OK[t? Pm3{?pPiA@t@?VJ0 `A0? 8O PEP6q ?P 3O` PP.Pࠫ@:f P_P~  o@X PGPPe(@ ZD^_P< `?_ ##PRCPP 0[$o@|? P? ? ?0Ѹo PWg/g ??4< *o @!mG*? h?̟0p c#E`P0w? P@@PCcP x?З@ GA0@ 0?C PpCCD @1AC??`@PG A@?@?Ÿ Px{GpygP?PP 0`W_$P?ـ! @dCQP`@k@Pΰp&@\C@PBP/Ё`QH`&PPP`VI`WQ] Pan`@VAPTQQ0/`J```bQIapPb@΀P `2prq0ڀ@r0<2P [C ` 3(O x@P@V> P@OpPAxt  À?p`BwVvwA:>_Pp *&@6< U_P`&,>6n\ĨpP`PRD4 800`~ |0!RLa @ ;P3PPp P?cPJ @3PPg ,pX,{,}s pf8 0@ds `>qP>fwf{>?;3π sxG~3<|Pfk>???3Pπ߀NPPPPwsw뻷{HiPPp ww;0ӿgcg4?3@ ٟйo  ` o3 wssP?;?@q?PP Ps+@{P`P 8PB;?s?w P?q`n@@<sPGwz`p=@@ G0!z~񽑑@{bPP`PgqE\yPxOό|>>|3?cp|||sχzϏ~|?3Sg"PqP_+ P7oow7@cwvpqݽ]wy7@Ph?{7fam ;xs;w p@Tyw@w<@ P;;ysw;𘘅 PP PpP@ ; ?;; sR@)P Pw89p??=pPpPspp~zz @*0t<8c0xxx@1xDx@<<< w5<3k1FPP@AB0 /QMlPWHPQQπQ F PQP}PREP_PPP`V0PP ~PbFapw0&@$"_>> P~>>~~xǀf~>PPJPP~$Q f~PGPf~+P&0%P=@ooP{PPvPww<@pPwwo QnvvXP*yPooogio8\Pgm+`^(PY Px0oPpDPwwxw9wPw)wwǝww P`PP6Pw~w: PPP0Pw~w>w<@J`j2PP?=@ Pw?=$w9`?wR?j==_ǧsz0xX@P>2P>P`4PPDGP n=HPB TgDgR8SFUUSS<s??f| , RpT3UfS|P!Pv1 P UP:nc3``3 PPrPq}b fR 9'q/_9Lr(S; %ذ><~> pO>qg(ӿ~_q?PTٰ~P?;IPyݼ=Aﰩo~79@P~'CPwwp@w>^{_ P(tU]_Pꪪ9fʜUUQp&ϋ` $E-Uj Pp | 0f1?@P?+ϒP ؆U#(yߊPP39Q#x*U"*PPW*WAxp`=p$| cɷ pG@* 1@P  :YkŀP @@ Ap@~Px8@HX@1,<0_@@;U/ ? "ޙTHN,!Є? 9DbP0IaD`. >΀\XO`E*2π|@O`ӊ@ a3@N`F"Yx5t ⠱w; 0ceF`Ek` @<Q0+F`P `b`B*d ︨@i0PC`GPa`}H#00%+Rqpb숎0 HP>?x71?{``珏>v+xЅ ` X~?3>???x63~}P~~yPXf 6o;wwo>>{o`` o}=wqY(Po7&ghooP8>yy98 I w;wpwww8;w:`` ~P1`H P;w PPyHPP|9bj;w~8߀;;~```~~9102;~w~{(~@9}<pӏBw8(8`D` x @`1Ib(8"k>pC@8#0301@*Dfπ`P @ݯ $!4 9~A@1#1rPQ}1ޑ#<P$P*A S0b "8`za`*Ыb8,g6@1" 0 8I:??X`zq$`q~ s @U!x@'b/~cX_ Pp<(3sϏUs|7s#8??~1 f XPPP$PU/w;y??ہL @?c13KDxCPb?gڀ[{"??w~~5UuWsPpߜ pv߹;x8====zsc\ =x<<< $= π(\zBĪ6h`@fb;~>g1Ϛ#>0Zg=?p ?P 3~~~g3DD_g~ Pwv*PPUUݰwows{뷻 p &oZ v?`473y##iof{?DDw/ 8;;xwws #[wwa ppP`P~P㿻yLDPwq8?;qDjDPw; ߪ's(yPP;ު܀=w=wǮ_g=\몢+b xxAUx@@xPZc'_Ơf8ODf"[;YqOTh"dQLFd`B`*',PdnP}k, @0!@c3q;`PpMP@PP?pTp|  4`aԳн@38y>X8PP\ @ Pc P­c@`3xsL ePRF!F";}w{Pxn>v>w7qc;}ws3??@PnPPcTPQ1!dPP?y}os?{{{{M*@~;|gv;`|QPqiyc?C{x {{|1@PwsHR;P?x~ss @|;ssa7P;%~|PPPpp<;s `P?@?>~~A@PqߧqP@p]Pss@@`=ǡz+@G0xC ,c `!U @ 8N9QVII_ U8TySzjow`80(3x_@^@V3³ʶlow@RkUDwUdoTfɄdDdbUSCf3Xb`?dB&|`bSPpR "Yu`|up ?PK;@`NPTRHf@ qJP8|3P  P{`N Pҋ"`ag3wQu`69`t"` E@`Nˠp2pdLDd$0Ng 3+c|9cgx;>9Ϗcv>`π@fqgw?P~3>?ߟPgA~`π_P16.qvvp?wws?ݽwww}op ݰ afsgPw7vyg`37owy` _N@t ww?w?;?wwq~p@޿PPP9!P8P#;Pv|PP!ww9w2?~~pQαP ˰s@9sp ?Owsw=p(箱R,>c#xxOxC<€@.@x@P E)re@08 #4"P"a@Pd* P @nƇ PYBb@*|> 8 @@ Qm_'@~*@ywQ "3D@@ϵ n@`  `cY.@!{ ""K@GUPvn6P@3c| P0*P^PP= P`@3UUPu ,!8!R`$`;ET~>>>ϟχ3|?? Ѐ U~@-ߟϏ@P?3?߆~~?P?G@K8woo;`!px=?{{{+߃8p@Too}o4ٟ{P?s?y߁pEwꪪ ww>w8ϟPAs@kTwwzPPP?PPAUUWAwA;` |s;  Tw?u\?]B𞻹P? zqpW :jG`߀HXxz A ,< "``)UUwZ̞0R @B:ZP  =R]p\*; Cja;a@k(j`ߣ fP *ڷ??a|@a1`qã1PwCfqpd> PPF1TA@b)P0#Pe=P9*  |df P9@VV0AQ PyUa<||gg9ϟPNϏQ3?ǀ@EPPxPP??8]PQPl3??lǁ@{>sp?P=OQK;=0"QC:sf47_ CQx3Pa@Pŷ@|P"wwP?QxxP;x#Us{P>?PWoQP!PWAsQ@ߝGPQ@`J ˂A4q ~~z"]SQG!Pt|< P _ėH@¼Pnxxx1xPbè6VvgT`@ c0QsYc1`(‘"P\ oA#D>Ȼq=UP W@ƥG@R&K2 _Q變 DPR^d5c@s@od Wd +i6A `<؄pPv5J "@ArjPb@ %SuBV|A#P{Բ`.a UU a 蕘|BUV hf@ 8L]qwaW@u!VF@ZV9p#p>=~f~px+z(@f@C~?00P~wW~|T|?R ]1TAowCPw~Powow`P:Vuo7yogov v}hor V!UGwwppxp0wP# "; TGw PuKwZPPvՂU@@ P@}q~p~ P*"Q;q]?wwP{qw=wp~>p=!i0Dtvx;P D <U<<$, @ `w0DUtL0GETarA@g4 *FxȈ qFeAbyT@1REqŀw4  @POP(b( AT@Pb@sd/P`9%ŀ n a3 ç@*8@`T1lnP!}t@D@V~<vsa!Gp B(16@"h@B+) F{\G*a@@q@a@ɬ @`J n#H`)Y@ !Z ۼ}۾@ 081(@2ZQM @P CPPY%ROj J@ Hp2xW݀@I"')!'P  B CD`'"i8g8D`I86 Ui%HRTU)(T8CJ@TM@*RJA*@%@@ ])$lRDՂPtPDPH@tI:cF4H:W@t%@PQ)4$PuDK H@H@EI"PZ$P"T@%Y(%L@TPI$BI@PJ@TI*<*UЙ )2h[$,!G$<|ݜs`+d`%I^%d2@u-"|w RV#rpT7QS@Db E9C4T[`|4pUadQ{S`SaB@<e~BbR41]Q;@1 ~>x|<p`A|"`F0(AqG@ PmdDH*QTIhAR@@$`P% Q T$ar2 %0+Bn'40I$DhPDIm0N@I"fH!$2T6N ȜRR4 eITT ,$Gh\`DNr"@8$@J0ũT9R$)RN4 8ғQ Ittjd$FxPDL5 A]"4 @$ Kғ!ݸP4 SRV TI D@QXEXCPHDJ* !Q"ԉ@ <P$P!PTU*UEH"P YU$$N!3 6bI$$ ~ I4xLU}߼f2ά&IPp$=, )UԬ eA ,ˊw5}6V!Mf:Lrb5EQqDxP ?Ce82@УXP(q\f` pB@0pI 8# P=S ѣ@1;$f@P%Ss2p!Q`'*I s9 $$dJ` 8U$N L` ڙ%N0'9"3H ^)T**PKZR R 0zT<j@ *TPIV 5@ f*@I@%UIT)D*:pJ  t$4J@ +UtpIݝ W_:@@''DI6eWP"@J[PD$ԔP%UD@I T1"@j@$-$3IhV3J $*JI] UPJ%IZ!"&$M K[@ &f ߕy )$&I h 2@ &-@Iy@4 'flpfwQ尭n ~) Ƿ=5ӉA~BO7CwaW 1 #׳U-Aӈg-@`J$f@@pq@mkXh @7{Ϝ  P3@ Nx 0#À_0"4DULJq?!9`*)hfMDLN3D 8Rq98( 8(q ",DH "J#q?20*oT*J&IKE*JS*JR`i@1R*J"|DNw"qó"p?+- ,@T4:N*II :NҫRKS*$)ҤJJ+"8 H`;`@q*%5,Pԉ"H*IkM"H($RJ%R$CP@%JI*xH B"P /* *IJ P@*%RJ*CB"@dp?11%=+`VIdHiz]dė$;I%Y%Rl$xvJ0}Og7ۉ .@9'{)k PX5bpuBqv0u{S?DF` NB#7Lj0N0n>9*?@T.` #H@DI$%Dƒ(& Lr L@4$ @P! Ĕq8hѓ@q8[!@ &0I)*T jT0Dqƈ!Dp%RRTpu *RJ𗕜r@0i(jTt0D$aDp%]T:@:R'KP" P$lp QDJ@%PT"@#"QJ$ @1.*P!$DPKT"P @0q-Vk&0>s 9p V@>u[2I@Eos頄"@P07 {M "/ @/ !C/@ h)%7I[m `%Q@| Ef@v"oM& m @HPHUBg?<JNA(m)m - r:gS)@ OK1̠PC#HN*HxLHNA>@)@l/ h &@XЬld`ARCpr Ѝ"QHNFALNHz 2 NA\pdAxr0XQ)K\N"Na0 8> JrBjNu*&NN\NCAp$L p@ 9lrBlJpN"pM@r 00tr N9lNupealp`v*a J|BWNANC2>@p2`JN(Wcm`k oq 9~]`e҂*OG>c}h&)DPpa4|a@:>< |a6RGk0Gg`a( VfA1G<apQ?1@NM u?@ NMX 2$NuE`B<gJEgEjCDEDF Fe( dF8BCHC`0bHC8@v@HD8HDkDуdQR ZD dhDA@kgAр[SBk0NuJlJBk&Nu0g H @rD Jk@&` Bb*Bj pp! v@AJgPp r$0rHGGd~HGGd SWi\...N\ \SW2 H@N?<,>CEdH@$` `VB&8aT|Dn&AdRz@L|=|  g+g@ -f@.g2I0" bo.0e49b pWda`RF`2f$$ajS$EgtefX|vv0e 9oSH 0&Hz  E Do`HJjDDDS4</NJFkSFk&aQ`Ha"FFL8N6.JgtBn!RrX!b | 4< vpAC v ^Jjv- |" d!kh>a~NRFBdj$?l< D2SF0e6g!RB`ApdR e @<ѦrRF&0xfEv+0JFjDFHƌd 0BFHF HFp'`2:HQ A dSAg q`S@k p`vBF zBWAkب" 0g|`gyp4e@@0NuNNp `p ap C0pln<,(AL$I"vz x `gfURf~D8j 4\Fk.aPHS&I.@ ``$PQށRQ4 &P |HQ/g b@NAXXfQLkp%S 09JLB !2#,A8,. FJ@k|:tNuq :: /rI|1 k$/Lp N"vN)@p `H NAHpl`rB 2pPpapaƁZaҫ lT"BD'aXNNT@B){L9 rt6PTppv@v`v`vj`v `v`v`v`?2(g"P@g2RA:DAH""l`r2o Ze 1 #)I`Nukh| >8,dpptrdJhk\Цpa6H ld@$h"Hg0 k&@ S `#&@0+S@H3 в&f~L":"DgJg0AH@B pA@2&NuP&N$.&$ABPH2bA`d"XB0g"$D#_0Hp0 \p"_0HqP ,E\eHHQ0)$_$ZR `$Y0gHR@@"D% $2g#c %ffX$ "dP.gRG,D % Y2. !4Ae4jVf@AalWHNu2p <4`.A` p9`:P;@`>B1HPB@ _04pnp0)H9P@40hP'J&f < LNu Q` J,'f(&gb#eC! B4&-W)K20, 8k 8Pp gJlh"g"P 8 @@/(NZ  8fQpgh0<``LM@ H)l26)z @WLJf `򀮡fSHjT-D@HH:,H `4\>@a"]N!AN@HPа &@aa/a  a @耬9c^p PC>$Fehler # ][Abbruch]\f.B &lX)K\)0`0p ,B1*|P(NXA|Yd&-K3NEZeCZ (C 8 BgB@g -/E NM`@,N A:\AUTO\V_DET_IM.DATNXF2,,,HPdHmA>j0N0fPRG: Bootsektor wurde nicht vernd ert!``L2H*-H HB !!!rF< 1 Virenbefall ist wahrscheinl@J%@pp| R5So$pJb@pP@$/B N6@nR$gV p8#(b=/\&d&@G4Ebeim Seides(s! Event ueDisk <*Etzt?q4"P VIRUS_EX!c" 3&""0H!&@Rechn0ausn, um d'as!us1pe @zu fernen"`E6J4Jen1"0&,>H&\j`@vԈLNVHP>A 8Rd1|"q0pq JPn " l.HJ.f9 1|< `XQ @E>H f@rr paPk8A aBkZ@C<2B(* &!"QLN^Nu@8)gqX`r35120!118@021125`2 21233201#78*7019265234:476)L4)429532fT010C42E 93FCu5244941FAFFD4303`C 9D8512C8,25472F452AA*6C62248DR2P6N3E DFDeK2K:91C9D5c4EKDB8W3hPF#3#4269"85E9f7077 4A&I4 6723hEQ]60D643FH4Ld4kB491:E3Au31415924281B0w62 dn9[3VAV1F113B 0501CiDa[9U14@190473`BE2A5!74A8&B1k58 )11E E5Eb_7 FP!AWF0D* O:D6 2A4k1BC15t:AIB 5B?1BXD%E. DE5{D#pn2#".AE B" 2v50aF 0 7A894E828E7 cC1 30YB,Y!80@30,2Kn04 3D27C562l 8? ڛ3n43 9 !021CA"K 120F72F}46!,4A 6 48 0E!CL&D0wB7@@ 2~A(7K EA@Y6E@206469@73@6`D@6F6F 7473@6B 2P67062_700@0PD kFX43D'CA3Y"1E@ ˿!2@ 0J@aA0A2@PPP8A2@@A517Ao0A2!0Pn nA CZAnFZB7DPA0P2zF"2'R8u42CDB 85406r9KZ`'562x 2FA@ Q1GD 07F`F`X_3R6 !J S\<400(P@-P730E@6B8*0]!i67`E610"\181mPy`j0C!0`66PS Ct!A8A8`?//QP6E c696`e1@!4B4b 4B`zq%2P4F5p341 20pH@r3!A`2181=90!Ua69qK33C1q|3! 0P!609PB91q"z+2Cp1qE&Y5q*bX82@b%8 58APY#14003ށ8p`p$5'@2127@w8qp#9QpOD60`1Bq1B5D9e3!q5!YBj11Bq B3C"7@AeE*9<п8"fZ:">Ѕ2[Б»D!%>b2@2(Au 2o: ;N}127qb }0% O1\BDmdqRbI0!<@q[ JءK4Q,CPKC[PaRU0`Yy߁S?tAB1@80Ա]nCf3d*𺂃uHPSۥA1D8BgI1r EaˆQ1AF#жQtHq1:M3E9UD@22q4qAp3(rc7{3EvFgkp34qp|9p`120ahP,ݠ23PpXA7 D@U *<N`un7,:qP 9:qBaq5xqfi $r5#9qৰĦ"]MIơc Zeb' -t2DZb _VE$e 2DQ*}#%Bиa,#6< ZlB" o# Н" cl! ϡ*b#Cw²o4 1AWq`&36lD???OO>AAt74f33Q13297'aX `4&#m222`Q23@RS1q~5ʰТaO5`3 '2C=2`2:LІuʳaFBe}9n@p!3=+87+CpT - (9p1 stp: yZ12w 1epuq102[ j=r2b15zq `&lAUrW [k€]2INLINE v_det_im leer!VIRENDETEKTOR luft nur mit|mindestens 640*400 Punk.ReturnZuwenig SpeichNRETURNEs ist ein Vi(rum# | |Ausscha@l[, ohne Disk bo@om |und Programm neu star! Sji...!!h h(OderresetfsX.!)\:.INF CR C konnte keChecksummendateigeln we rden SHD9,etektor L. 3.0 a||" Volk Shnitzchillerstr. 224053dJn0 2Oy(Seriennr: N/0332)Status-Info:-MeldunImmunisierPBsimpf #-Pr 8rmationen/KurzanleitG|La"ufk/Pi# whlen-> <-|Einzel @&/ berp`en|Ac!! aki "ad"V zHD4-Ra/ tacuL| W  Op |')be!n?-A geh3|b K 1>et0l3 NG|.n 0 ?(s|1F0pla71 F8}wirkl0??? Ja|N0Dehn_ ]ivdarXa0s+ s |Benutz!~ 0wg@ zu |las , nMnCda32|2elm@TbI@Ol@%tg  $je00 Fz! Klar MaO=ha8B3 -@v@D0yn erzeugtnon@t@gesDt! Letz0Chance:@DJ ab%n?qp!eqi"Fkl opq q7K!0kPP f 50 A GoA B,23t'Qr Ihr*n$! Car! CommanBd0rgliQZIIOidsjD10Ma`0rK @Kid%c+ To Genesis Gold@nCO Trekc)-"Spiel!!! )IDeep`ia)ceAP aBhaccasBla ckmpBeyAo`@The I, PaeBarbarian IObl1}aP]B: hAir RaDemo b0Mad-bBHP (Q 87)Pq.@SigP!.Lab7RESETBEXEPTIONPMAU@SZ"ATARI-SPEZIALB"8AMBOzG -D"/LAXYDJADedi`apG`H/GhosBtfree0~ |DpXqinfizP0| --|B BLpChquenDipg V enth#lt@n|"bp@ -g"`ڀf|VDU `x AlNCWselbst0|vqag verbrQump-6&P ~`|an WEIDE E ZEITUHR#(|R1jUHH# -|*)iqAFpde@@&UNQCr``m7o./rG|"sxaxe"SB\@g (ab2.9)VKILLER.PRGANTIБ OUTVBOOTT-MagazR9/88)SAGROTANx 4.xI--KIT (cE"HUwHn9dei csôU |'OKor_0F|AOLOOf"|e -SCU | %|Entwr(j:0YCUTO-B (z.B.A|$MSoftw`!),Xntz`6qum! bisqFunbeaQE  pnPM '!mPROG{M ANALYSIE'_h@ *"3txe`ana lyp^durch8, `ilf{e 3`jTTMbkPk( )SO: ($DaAYll: BoA Rei- ASCIPHEX) g.zeleCeevsu`x-Ԍ)!ϥ/, o>bf@2z@6h{ c`vorabgebr@1((SPACE,a1bnlepEERfQexϒҤ! CCRC-2'T!` /s maxiqy| 5.tho:wYn.O<Ti+neYh&?Ob0VCqEb0иSo&@ta?OM ilzbdu( c't f04/87)gcD pԂ$'poАxnUMAD(-ZIMMERM ANN)= |qwe`f|6[ 8shB m Papa & Ga/rfdg<$6?qMe-Ε?neugq.]@Hins?V.)0a9>oipBZ9, Cr¡]bizunch'ge>w˺!at #OrdbQna tol.H!V) ̈́a6{)L0CkWx@:ϢINFOPTu @0BexapM3 InUoui@gVf!ArA ] }ŘRP hQo (¹(1ga?sau|?r)`@+:x ϫSe4,>Rtd0 fkocCBְ!7dA tatEfH`-kp$Pa3PNbKD-#nut``Y(чa+n0geh0Fs)Tq@SrҥcrE?a]or.;A1N ut0pgs-bed,PN37SHINWEIS.TXT!- 1 A#RWADBp!J W5to3onn4oo[-F4:0eIQ mV@V<HuFKQ>xG Hauptmdy o-s (FloppAygEHardd)L!1QttѮ=vFndw"HҴ"HiHdl"-R"Sy@m"-.Љ+PnfsOQѷujN1FfrsjPrtZ!Anspwr??lP RiA,Bettr ESCAPEtab@rPu"C6Ţ8ExqQPR* , ACTOPETTPPGT{P8v{pbstd1S)pEqCF̡CRC-P8B)%{sCe@YwpeRITx-8uRqw5: Boots"xo(}NP4rAOBU!)QŪ}!3Abr:oT-tut#vrqd~u"QPz<u5k6ge M G! I9#`^ir2$fPtvN[gDʁ|"1unisesQIki@eu&. F" `m "WG /Opw"H ut*S, Wxuq9C% ! (?Ncc5)NatrI(R1er;^fhrba5͕ӡgeV,sE1Fre 4r0ladinm (MAC-EmLuorb@-L\r,0Slpe";60-Hz 2.#IR2.9㢤AUCH NICH@T SFHRBARE8!8pso9ku-+eaЫPRbssR+s-pp-e ﹀SDWlliOBWOHL=04=nt²5!1o:au!art7jB&1᳁/69TrifB=sUn bisuE&DI(6neu" d #6CyK` M |T17fRo@#!qʑdaPptypҔrkmaQ#`ll!b!DHE7b@ypaly(-czA@gtPxWmEfԡ``JVN_8m"srB'QalR0Sqa$)apas zRegR@!enUDO>79sbGސ5ߐ[&-F8: HD-kRauto8bRESET (Warmrrt0Pnx Kompbilittsgr"\lG#tpZnm.F9m:`AUOas{X E@Lq/ovhufigtHh*zuaef.? EdzҳFB%fol$Pq?en:Fi" v o @ls t i g ``oL)p :0FРZxmҵeDespPI)0YPzr~Psern6oo&-nwa>cs^igwLbr?hRlWf]Dbl}lTB.T"@wbmaieRetur n-Ta (8F7)Skk dnr -nsofo$HH aupt](Q8en\)ҭ Q#IqЎȆefa.Ex!E$_C~// RAM-/xnCGfaf Link-2SsP}BD5r]n PR* (PRG,X, Y), AC*,ɡTPPPGTP9y\$ vG &(Crds! Wildcards&2IaBA0>%s2.CRC-enqA nwah"}s&0\us*bo~x1/u20m]boP% su$`slbewk`ceGݕb n? QHj^ffragpbU1/RdU4>Zrn M0cnnv@""R*5bsoІud`tx5{el*iA.AumcCe7pbH`0zb absp-rQPNSL K+&daPRfz Pb\s}e%aRTftSN+˂hsernlsгhnok8&-1Che8|42MbRa:\3Po. I ~5z[Wcp9R?9#{WDu@+Tei`|,g iѧT1Zہpfsjepli oAS+_egQ?X2!xP"e}utevbutorUb}e:SoAgdznvl1sager$S:R)sAQ^[qrbS`c3. GenauJrQrr T~f/0}_O!tokD/gI R"`F?erWÅ PK3AindwelUklsgtGFer"Urse912 r C: (na DPROT.INFF[lwsry.mvari!ab/doku-atȄOHilfD7"Bma$F"B/7mop-t;at=|smtmQu3u!(uDnmtr#Access"/ Tr\1& f mzuvI#ns on-dђݶf3(nobo$dyo pAec%t)n1I v`r'$vSp?ur ؂*tvPrtpxo#$t!R-}w֓F0pla)rьmRlacUyh|Dݡ$rDN 8PcTQaP\r?X9&G-.HD9qlvcCB/PD-pr ) QunAlҺ6AXN0n3_0?-OS ci(rT8,l^"V→Av?leB*/&D(n)/IICHTIG:飿҈"ir fremr'!!l!Qnbah PmpչSmu!Ʋ!6LbiEOHNcE(C!Es_" HCK0aXnp t5durqzu2l@߀,DBVC$7FZeQepbw.Cm0:ҽ/...<Н{-l`їA7A<}G,cpHPc%selbstd1tqǺ. F"6g*bA| |?ZZ'WB@en:|^ KҘ  B $6038 Bp;AAUTXOd|-impbyN ףN[fraNѸS$B:l4~nzFY|$!"FH|0YU"n) %PR*, ACTOSTP!PPSGTP ms|Kzӡ a}baШ_ .ru@.|Wcards (?/*j)eNq Аlaubt!V?U:Bis+: G3|n-Dis-keqv|ڂ!#fS3v Ւ:||okI physikali2't|7?|2gexb::|(-N1u |wAW1 189rMZugriffd!!! q& D i ( AHDI- qp= am Wo) !ճ: $?Kapazits>]S :u䑱bfhig!a::Grz:cCBryG0-kX|(Iq-|t,#+T|RTefat," 1 i1b}AR0 Nr.`>|21trF&]YDDqn|KP@գ,(SnR|ӥВA)|7 p9Cud|RipoTD@Cy"IhrkoP<ԏT5!a#qYf(Q_)D50SP i c h  g ಽ a lIrF#s=P&ufRuܰq/"є%vBPnkx-P:5J`ESCAPE)\aDP ROӺ by *tococred *,@C0stoph Conrad* (It` bid<pub  hIextracts of without*%eopyh"ea!>><PA^TiSP5H Bi[kaJ-wikbdsysxcon CO#N: RAW0' FmdVdiEsc->USER_TIM BUT CUR 0MOT0uCOOKÀ60o ValY¦p` E0;yF*Q.3{iht p1\ \ \ J<6\8.N @&Ā>6ZJvr"j>p""n* *r&&8(& ``.+j.3 C "0&".4  * .&&, 0&.&8" 22&. 60*@:0 "Wn&H,|" x"BBR@| >:<0ZDD2^ "&2.$(442*&:, *$0..N&f2\dbbd$( ou r :,0,X4V$ 0X @$$>$$> $>$| "" $^B v%$^<X CX:U`dBvx {"q Y;>"$~zl **"DH6 8,\*T "J$Jj&J|" & $zd..&(*.D 8 ^4@ ^\dn<$H> D" F*d"R"D""*"48&R J:.&Pn \ "N4#4."F&B>0440"HAH!j`:\p&, i8**6( ,("n&$,*p2,,*$N4" 66$. d  @4040 b* &FP$#0 * f0-((@40 *$pL00$d$bB 8~<0l| 8@ $@& $x 6 "1=\xVx(P`x`XBRAWPRO/g$6/(8g8:gpagpNu/:NuHd??p xNXLdNux [1][WPROTECT 0.97: |Bitte installieren!][Ok][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : ][  |  | Weiter ][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : | Sichern = | Ende-Button+ShiftLinks+Alt][Schutz |Normal | Ende ] WPROTECT [1][ Dateifehler beim Speichern | auf WPROTECT !][ Ok ][1][ Nicht installiert ! ][ Ok ]:\WPROTECT.ACC:\WPROTECT.PRG #4AaAN9 2:gSAa<3AHa8 yga`AC39 2:`g I3 AaAHa yg09 2:& yg3`L?:G; g<|AHz*?< NA\RE<mHzNAX3 Nu3A&a>`H  $.        B  :& 2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNu2(g"P@g:RADAH""y^>r2g"ZA^:e& 1@##^>Nu1@Nu y]\]`a"y^>^:dp`I`H y^B$y^>"Hg< k&@0+R``x`XBRAWPRO/g$6/(8g8:gpagpNu/:NuHd??p xNXLdNux [1][WPROTECT 0.97: |Bitte installieren!][Ok][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : ][  |  | Weiter ][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : | Sichern = | Ende-Button+ShiftLinks+Alt][Schutz |Normal | Ende ] WPROTECT [1][ Dateifehler beim Speichern | auf WPROTECT !][ Ok ][1][ Nicht installiert ! ][ Ok ]:\WPROTECT.ACC:\WPROTECT.PRG #4AaAN9 2:gSAa<3AHa8 yga`AC39 2:`g I3 AaAHa yg09 2:& yg3`L?:G; g<|AHz*?< NA\RE<mHzNAX3 Nu3A&a>`H  $.        B  :& ?a2`Q tNua Nuaa patNua$H gJg ba"P @4(gHP bn aX$_// Z4HQ`S@Q _Q _al tNua#B9"?Hy"?<GaPHNAPA"pR@J0fH`a#/aN `aDa@a#/ [P` Ba.a* @a/? [Pa"X20 _$gWRITE_PROTECT EQU -13 ; Bios-Fehlermeldung hdv_rw EQU $476 ; Harddisk Schreiben-Lesen _drvbits EQU $4C2 .TEXT Anfang: bra Install *--------------------------- *--------------------------- * Neuer hdv_rw-Vektor * Bitstring zu schtzender Laufwerke 0=A:, 1=B: etc. ProtDrive: DC.W 0 ; Position: -14(NewHdvRW) * * XBRA-Struktur * XBRA: DC.B "XBRA" ; Position: -12(NewHdvRW) Ident: DC.B "WPRO" ; Position: -8(NewHdvRW) ; alter hdv_rw-Vektor OldHdvRW: DC.L 0 ; Position: -4(NewHdvRW) NewHdvRW: btst.b #0,5(sp) ; Read-Write-Flag beq.s gotoOld ; es wird nur gelesen move.w 14(sp),d3 ; Laufwerk 0=A:, 1=B: etc. move.l _drvbits,d4 btst.l d3,d4 ; gibt's das Laufwerk berhaupt ? beq.s gotoOld ; nein move.w ProtDrive(pc),d4 btst.l d3,d4 ; soll Laufwerk geschtzt werden ? beq.s gotoOld ; nein .loop: moveq #WRITE_PROTECT,d0 bsr.s CallCritErr ; critical-error-handler aufrufen cmp.l #$10000,d0 ; Retry ? beq.s .loop moveq #WRITE_PROTECT,d0 rts gotoOld: move.l OldHdvRW(pc),-(sp) rts CallCritErr:movem.l a0-a2/d1-d2,RegSave move.w d3,-(sp) ; Laufwerk move.w d0,-(sp) ; Fehlercode moveq #-1,d0 ; Kompatibilitt zum Bios move.l $404,a0 ; etv_critic jsr (a0) addq.l #4,sp movem.l RegSave,a0-a2/d1-d2 rts RegSave: .DCB.L 5,0 ; A0-A2/D1-D2 AutoResident EQU * *---------------------------- *---------------------------- AESPB: DC.L control, global, intin, intout, addrin, addrout AlertNotInstalled: DC.B "[1][WPROTECT 0.97: |Bitte installieren!][Ok]",0 .even Alert0: DC.B "[2][ Christoph Conrad ",189," 2/89 V0.97| | Laufwerk " Laufwerk0: DC.B 0,": " SchutzStatus:DC.B 0 DC.B "][ ",4," | ",3," | Weiter ]",0 .even Alert1: DC.B "[2][ Christoph Conrad ",189," 2/89 V0.97| | Laufwerk " Laufwerk1: DC.B 0,": | Sichern = | Ende-Button+ShiftLinks+Alt][" Schutz: DC.B 0,"Schutz |" Normal: DC.B 0,"Normal | Ende ]",0 .even Menu_entry: DC.B " ",3,"WPROTECT",4," ",0 .even FileError: DC.B "[1][ Dateifehler beim Speichern | auf WPROTECT !][ Ok ]",0 .even NotInstalled:DC.B "[1][ Nicht installiert ! ][ Ok ]",0 .even FName1: DC.B 0,":\\WPROTECT.ACC",0 ; Byte 1 == Laufwerk .even FName2: DC.B 0,":\\WPROTECT.PRG",0 .even * Die ersten 5 Worte fr's control-Feld ApplicationInit: DC.W 10,0,1,0,0 ApplExit: DC.W 19,0,1,0,0 EvntMesag: DC.W 23,0,1,1,0 MenuRegister:DC.W 35,1,1,1,0 FormAlert: DC.W 52,1,1,1,0 .BSS control: DS.W 12 global: DS.W 15 intin: DS.W 128 intout: DS.W 128 addrin: DS.W 128 addrout: DS.W 128 CurrentVec: DS.L 1 ap_id: DS.W 1 ; application-id Installed: DS.B 1 ; 0 : Installiert ! Accessory: DS.B 1 ; Falls 0 -> Accessory * beim Abspeichern von ProtDrive darf das Laufwerk, auf dem * gespeichert wird, nicht geschtzt sein. ProtDouble dient als * Buffer, whrend in ProtDrive das entsprechende Bit gelscht wird ProtDouble: DS.W 2 ActDrive: DS.B 1 ; Aktuell zu bearbeitendes Laufwerk StartDrive: DS.W 1 ; aktuelles Laufwerk beim Start von WPROTECT DrvBits: DS.L 1 ; Kopie von _drvbits ($4C2) SysBase: DS.L 1 Keep: DS.L 1 MsgBuf: DS.B 16 ; Nachrichtenbuffer AES DS.B $190 ; 400 Byte Stack reichen dicke Stack EQU * .TEXT *------------------------- AlertEins: lea GetDrvBits(pc),a0 bsr SupExec * Hinter die Laufwerkskennzeichnung in der Alertbox wird der * Schutzstatus eingefgt * S: Schutz ein * N: Normal lea SchutzStatus(pc),a0 move.b #'N',(a0) ; Annahme 'nicht geschtzt' move.b ActDrive,d0 move.w ProtDrive(pc),d1 btst.l d0,d1 beq.s .NotProt move.b #'S',(a0) ; Annahme war falsch * Alertbox darstellen .NotProt: lea Laufwerk0(pc),a0 bsr ActDriveInString move.w #2,intin lea Alert0(pc),a0 bsr ZeigeAlert cmp.w #3,intout beq.s AlertZwei ; 'Weiter'-Button angewhlt bsr GetNextValidDrive bra AlertEins *--------------------- AlertZwei: * Vor den Auswahlbutton (Schtzen/Normal), der dem aktuell * geltenden Status entspricht, wird ein Checkmark (ASCII 8) gesetzt * Der nicht geltende Statusbutton wird Defaultbutton lea Schutz(pc),a0 ; Annahme 'Normal' lea Normal(pc),a1 move.w #1,intin move.b ActDrive,d0 move.w ProtDrive(pc),d1 btst.l d0,d1 beq.s .NotProt exg a0,a1 ; Annahme falsch move.w #2,intin .NotProt: move.b #' ',(a0) move.b #8,(a1) * Alertbox darstellen lea Laufwerk1(pc),a0 bsr ActDriveInString lea Alert1(pc),a0 bsr ZeigeAlert cmp.w #3,intout beq.s ShiftAlt? ; 'Ende'-Button angewhlt * es wurde entweder der 'Schtzen'- oder der * 'Lschen'-Button angewhlt move.b ActDrive,d0 move.w ProtDrive(pc),d1 bclr.l d0,d1 ; Annahme 'Lschen'-Button cmp.w #2,intout beq.s .ok bset.l d0,d1 ; Annahme war falsch .ok: move.w d1,ProtDrive bra AlertEins *------------------------ GetKbShift: move.w #-1,-(sp) move.w #11,-(sp) trap #13 ; KbShift addq.l #4,sp rts ShiftAlt?: bsr GetKbShift * Wird Shift-Alt gedrckt (Sichern der Konfiguration) cmpi.b #%1010,d0 ; Sichern (Shift-Alt(links)) bne.s IsAcc? bsr SaveConfig IsAcc?: tst.b Accessory beq.s WaitForAC_OPEN * Wir sind ein normales Programm ! tst.b Installed bne.s .Protected? move.l CurrentVec,a0 move.w ProtDrive(pc),-14(a0) bra.s .terminate * Sind berhaupt irgendwelche Laufwerke zum Schtzen gekennzeichnet worden ? * Falls nicht, brauchen wir nicht resident zu verbleiben .Protected?:tst.w ProtDrive bne.s .install lea NotInstalled(pc),a0 bsr ZeigeAlert ; ApplExit - Vom AES abmelden .terminate: lea ApplExit(pc),a0 bsr CallAES clr.w -(sp) trap #1 ; PTerm0 .install: lea InstallVecs(pc),a0 bsr SupExec ; ApplExit - Vom AES abmelden lea ApplExit(pc),a0 bsr CallAES clr.w -(sp) move.l Keep,-(sp) move.w #49,-(sp) ; PTermRes trap #1 WaitForAC_OPEN: ; EvntMesag - auf Mitteilung warten move.l #MsgBuf,addrin lea EvntMesag(pc),a0 bsr CallAES cmp.w #40,MsgBuf bne.s WaitForAC_OPEN tst.b Installed beq GoAlert1 ; Installiert AccNotInstEntry: ; Nicht installiert move.w #1,intin lea AlertNotInstalled(pc),a0 bsr ZeigeAlert bra WaitForAC_OPEN GoAlert1: bra AlertEins * Aktuelles Laufwerk als Buchstabe einfgen ActDriveInString: move.b ActDrive,(a0) addi.b #65,(a0) rts ZeigeAlert: ; FormAlert - Alertbox ausgeben move.l a0,addrin lea FormAlert(pc),a0 bsr.s CallAES rts *------------------------- CallAES: move.w (a0)+,control move.l (a0)+,control+2 move.l (a0)+,control+6 move.l #AESPB,d1 move.w #200,d0 trap #2 rts *----------------------------------- Install: cmpa.l #0,a0 seq Accessory ; Nein ---> Wir sind ein Programm bne.s .weiter move.l 4(sp),a0 .weiter: move.l #Stack,sp lea Stack,a1 suba.l a0,a1 move.l a1,Keep ; Anzahl resident zu haltender Bytes move.l Keep,-(sp) pea (a0) ; ab Basepage clr.w -(sp) ; Dummy move.w #74,-(sp) trap #1 ; MShrink lea 12(sp),sp ** Startlaufwerk ermitteln move.w #25,-(sp) trap #1 ; DGetDrv addq.l #2,sp move.w d0,StartDrive ** XBRA - sind wir schonmal installiert ? lea XbraTest(pc),a0 bsr SupExec bra ApplInit ; Kommandozeile ?? *** noch nicht implementiert ; Auto-Ordner-Programm AutoOrd: tst.b Installed bne.s .install move.l CurrentVec,a0 move.l ProtDrive(pc),-14(a0) clr.w -(sp) trap #1 .install: lea InstallVecs(pc),a0 bsr SupExec pea AutoInf0(pc) move.w #9,-(sp) trap #1 addq.l #6,sp *---------- clr.w d5 move.w ProtDrive(pc),d7 lea Drives+1(pc),a3 .test: btst d5,d7 beq.s .loopD move d5,d6 add #'A',d6 move.b d6,(a3) pea Drives(pc) move.w #9,-(sp) trap #1 addq.l #6,sp .loopD: addq.w #1,d5 cmp.b #16,d5 blt.s .test *---------- pea AutoInf1(pc) move.w #9,-(sp) trap #1 addq.l #6,sp clr.w -(sp) pea AutoResident-Anfang+$100 move.w #49,-(sp) trap #1 Drives: DC.B " A",0 AutoInf0: DC.B 13,10,"*** WPROTECT 0.97 RESIDENT DRIVE",0 AutoInf1: DC.B 13,10,0 ** Beim AES anmelden ApplInit: lea ApplicationInit(pc),a0 move.w #0,global bsr CallAES tst.w global beq AutoOrd move.w intout,ap_id tst.b Accessory bne.s .weiter ; bne -> Programm ** MenuRegister - In die Menzeile eintragen move.w ap_id,intin move.l #Menu_entry,addrin lea MenuRegister(pc),a0 bsr CallAES .weiter: tst.b Accessory bne AlertEins ; Programm tst.b Installed beq WaitForAC_OPEN bra AccNotInstEntry ; Accessory *---------------------- * Bitstring der angemeldeten Laufwerke holen GetDrvBits: move.l _drvbits,DrvBits ; angemeldete Laufwerke rts GetNextValidDrive: * nchstes gltiges Laufwerk bestimmen move.b ActDrive,d0 .search: subq.b #1,d0 ; Annahme 'voriges Laufwerk' angeklickt cmp.w #1,intout beq.s .ok addq.b #2,d0 ; Annahme falsch .ok: add.b #16,d0 and.b #15,d0 move.l DrvBits,d1 btst.l d0,d1 beq.s .search move.b d0,ActDrive rts *------------------- **** Per XBios(38) im Supervisormode ausgefhrte Funktionen SupExec: pea (a0) move.w #38,-(sp) trap #14 addq.l #6,sp rts XbraTest: move.l hdv_rw,a0 * Lschen Installed nicht ntig, da BSS * Vorannahme also: Installiert .xbratest: cmpi.l #"XBRA",-12(a0) bne.s .NotInstall cmpi.l #"WPRO",-8(a0) ; Kennung des Programmes beq.s .Installed move.l -4(a0),a0 cmpa.l #$60C,a0 bcs.s .NotInstall cmpa.l #$3FFF00,a0 bhi.s .NotInstall bra.s .xbratest .NotInstall:st Installed ; Nicht installiert bra.s .return .Installed: move.l a0,CurrentVec move.w -14(a0),ProtDrive .return: rts InstallVecs:move.l hdv_rw,OldHdvRW move.l #NewHdvRW,hdv_rw rts *------------------- SaveConfig: * Sichern der Konfiguration ; ProtDrive zum Sichern retten move.w ProtDrive(pc),ProtDouble move.w StartDrive,d3 move.w ProtDrive(pc),d4 ; das Laufwerk, auf dem gesichert wird, darf nicht als ; geschtzt gelten bclr d3,d4 beq.s .add ; war nicht geschtzt tst.b Installed bne.s .add move.l CurrentVec,a0 move.w d4,-14(a0) .add: add.l #65,d3 lea FName1(pc),a0 ; 'WPROTECT.ACC' tst.b Accessory beq.s .acc lea FName2(pc),a0 ; 'WPROTECT.PRG' .acc: move.b d3,(a0) ; FOpen move.w #1,-(sp) pea (a0) move.w #61,-(sp) trap #1 addq.l #8,sp tst.w d0 bmi.s FileErr ; D3 wird bei GemDos-Aufrufen automatisch gerettet move.w d0,d3 ; FSeek clr.w -(sp) move.w d3,-(sp) move.l #28+ProtDrive-Anfang,-(sp) move.w #66,-(sp) trap #1 lea 10(sp),sp tst.w d0 bmi.s FileErr ; FWrite pea ProtDouble move.l #2,-(sp) move.w d3,-(sp) move.w #64,-(sp) trap #1 lea 12(sp),sp tst.w d0 bmi.s FileErr FClose: move.w d3,-(sp) move.w #62,-(sp) trap #1 addq.l #4,sp move.w ProtDouble,ProtDrive rts * Ein Dateifehler ist aufgetreten FileErr: move.w #1,intin lea FileError(pc),a0 bsr ZeigeAlert bra.s FClose .END (/ @"X2B1HQ ["X2B1HQBg?<VNA _a _a~`p`p3GN Ff #*.*"`8a~S @aP"X0gA" @f ):f 0 *.*`QB?:Hy"?<NHz?<NA\NAP3XN Fgar9AH3XN WPROTECT.ACC / WPROTECT.PRG sind ein Bestandteil des Lieferumfangs des VIRENDETEKTORs, einem SHAREWARE-Programm zur Bekmpfung von Bootsektor- und Linkviren. Eine Weitergabe ist nur zusammen mit diesem Text und dem beiliegenden Quellcode zulssig! nderungen am beiliegenden Source sind NUR zu privaten Zwecken gestattet. Eine Weitergabe des VIRENDETEKTOR ohne diese Dateien ist nicht gestattet. Das Accessory mu auf das Hauptdirectory Ihrer Bootpartition oder Bootdiskette kopiert werden und wird dann beim nchsten Reset installiert. Das Programm gehrt in den AUTO-Ordner. brigens sind Programm und Accessory identisch. Sie brauchen es nur umzubenennen. Der Einfachheit halber ist es im VIRENDETEKTOR-Ordner doppelt vorhanden. Das Accessory ermglicht es Ihnen, beliebige Partitionen Ihrer Festplatte oder Ihre RAM-Disk vor Schreibzugriffen zu schtzen. Nach Aufruf des Accessories erscheint eine Alert-Box, in der Sie mittels der Pfeil-Buttons alle angemeldeten Laufwerke anwhlen knnen. Durch Anklicken des "Weiter"-Buttons kann fr das gewnschte Laufwerk der Schreibschutzstatus gewhlt werden. Der "Ende"-Button verlt das Accessory und bernimmt die gewnschte Schreibschutzeinstellung. Sie knnen die gewhlte Konfiguration auch abspeichern, in dem Sie gleichzeitig mit dem Anklicken des "Ende"-Buttons die ALTERENATE-Taste sowie die linke Shift-Taste gedrckt halten. Die gewhlte Einstellung wird im Accessory selbst abgespeichert und steht dann nach dem nchsten Reset defaultmig sofort wieder zur Verfgung. Wenn Sie die Konfiguration von WPROTECT nicht mehr ndern wollen, gengt es wenn Sie nur das Programm in den AUTO-Ordner kopieren. Auf das Accessory knnen Sie dann verzichten. Der Vorteil: MINIMALER SPEICHERPLATZVER- BRAUCH < 410 Byte!!! Sie knnen die defaultmige Konfiguration dann aller- dings beim Booten nicht ndern. Die AUTO-Ordnererkennung erfolgt ber appl_init, global[0] == 0 und ist somit "sauber". Wenn Sie das Accessory verwenden, aber das Autoordnerprogramm vergessen haben, dann gibt das Accessory eine entsprechende Meldung aus. WPROTECT installiert sich IMMER nur genau einmal. Die XBRA-Kennung von WPROTECT ist 'WPRO'. Das Programm testet seine Anwesenheit ber XBRA-Ketten! Das kann eigentlich nur noch fehlschlagen, falls sich ein Schweineprogramm ohne XBRA in hdv_rw hngt. Falls WPROTECT schon einmal installiert ist, wird bei einem Programmstart immer auf die bereits installierten Daten zugegriffen. Ist es z.B. als Autoordnerprogramm mit geschtztem Laufwerk I installiert, so wird bei einem Programmaufruf von WPROTECT auch I als geschtzt angezeigt. Ein zustzlicher Schutz eines weiteren Laufwerks wird nicht zu einer Neuinstallation fhren, sondern nur die Daten des Autoordnerschutzes ndern. WPROTECT.PRG bzw. WPROTECT.ACC muss beim Sichern der Konfiguration auf der Wurzel des aktuellen Laufwerks befinden (WPROTECT.ACC bei der Sicherung vom Accessory aus). Falls also ein AUTO-Ordnerprogramm erstellt werden soll, ist dies von der Wurzel aus zu machen und das konfigurierte Programm dann in den Autoordner zu kopieren! Sind im Desktop-Inf Accessories als startbare Applikationen angemeldet und wird WPROTECT.ACC als Programm gestartet, so wird ein Sichern auf WPROTECT.PRG gemacht, falls vorhanden, bzw. ein Fehler beim Sichern der Konfiguration angezeigt, falls WPROTECT.PRG nicht vorhanden ist. Es gibt keine EINFACHE legale Mglichkeit, den Programmnamen rauszukriegen, und shel_read klappt nicht, falls WPROTECT nicht per shel_write, sondern mit PEXEC gestartet wurde. Eine mit WPROTECT schreibgeschtzte Partition oder RAM-Disk verhlt sich genau wie eine schreibgeschtzte Diskette. Beim Versuch etwas zu schreiben oder zu lschen erscheint die von dort bekannte Alert-Box. Der Schreibschutz kann von den zur Zeit im Umlauf befindlichen Viren nicht umgangen werden. Dennoch bietet er nicht den absoluten Schutz eines Hardware-Schreibschutzes! Das Accessory wurde auf den TOS-Versionen 1.00, 1.02 1.04, 2.05, 3.01 und 3.05, mit diversen RAM-Disks sowie mit den Festplatten SH204, SH205, Megafile 30 und einigen SCSI-Platten getestet. Es luft mit dem AHDI von Atari ebenso zusammen, wie mit dem CBHD vom Scheibenkleister und Julian Reschkes HUSHI. TROTZDEM empfehlen wir bei der Verwendung eines anderen Treibers (insbesondere bei VORTEX-Treibern) Vorsicht walten zu lassen. Wir haben alle Sorgfalt walten lassen, um ein fehlerfreies Programm zu erstellen. Trotzdem sind Fehler nie ganz auszuschliessen (insbesondere bei einer Versionsnummer <1.0). Deshalb kann weder die juristische Verantwortung noch irgendeine Haftung von Seiten des Autors fr eventuelle Schden an Daten oder Programmen, die direkt oder indirekt auf die Benutzung dieses Programms zurckzufhren sind, bernommen werden! Die Bedienung des Accessories knnte zwar noch etwas komfortabler sein, wir haben aber mehr Wert auf sparsamen Umgang mit Speicherplatz gelegt. Das Accessory belegt NICHT EINMAL 6 KBYTE Ihres wertvollen Hauptspeichers, damit ist seine Verwendung selbst auf einem 0,5 MB Rechner kein Problem! Fr die Programmierung des Accessories geht mein Dank an Christoph Conrad, der auch sonst einiges zum VIRENDETEKTOR beigetragen hat. B9LB9\ba#^> :#^6#^: zb :~grHd0` Qj`xNu:F"ddddB?< NA\#_ /?< NA\Hy_4?<&NN\NuHy_?<&NN\NuALH_C$pJg XXQA#`Z `LNu________LH!`ZNuHx`(Hx`"Hx`Hx`Hx` **************************************************************************** * * * Computerviren auf dem A T A R I S T * * 23.7.1991 * * * * Dieses Textfile gehrt zum Programm V I R E N D E T E K T O R 3.0 a, * * kopieren Sie es bitte nur mit diesem Programm zusammen weiter !!! * * * * Das Programm ist S H A R E W A R E ! D.h. es darf und soll sogar * * fleiig kopiert und weitergegeben werden um der weiteren Virenver- * * breitung zu begegnen. * * Bitte verndern Sie weder dieses File noch das zugehrige Programm! * * * * Die Datei HINWEIS.TXT sollten Sie in Ihrem und in meinem Interesse * * bitte beachten. * * * * Zum Programm gehren folgende Files: * * VIREND30.PRG - Das Programm selbst * * WPROTECT.ACC - Accessory zum Schreibschtzen von * * Festplatte und/oder RAM-Disk * * WPROTECT.PRG - Das gleiche fr den AUTO-Ordner * * WPROTECT.TXT - Kurze Anleitung dazu * * WPROTECT.S - Assembler-Source zu WPROTECT.ACC * * REGISTER.TXT - Eine Registrierkarte zum Ausdrucken * * HINWEIS.TXT - Die Nutzungsbestimmungen und wichtige * * Hinweise zur Verbreitung des Programms * * LIES_DAS - Diese Datei * * * * Folgende Files gehren ebenfalls zum VIRENDETEKTOR, sind aber nicht * * unbedingt notwendig und mssen auch bei einer Weitergabe nicht * * mitkopiert werden: * * VIRENDET.INF - Parameter-Datei * * VIRENDET.CRC - Datei mit CRC-Prfsummen * * * * Diese Dateien werden vom VIRENDETEKTOR erstellt und gehren NICHT zum * * Lieferumfang - bitte auch nicht mit Ihrer Version weitergeben: * * VIRENDET.HD - Datei mit Festplatten-Rootsektoren * * VIRDPROT.INF - Protokoll-Datei * * * * * * Copyright: Volker Shnitz Schillerstr. 22 4053 Jchen 2 * * * * MAUSNET: volker soehnitz @ AC * * * **************************************************************************** WICHTIG: Unbedingt zumindest das Vorwort lesen! Ich wei, niemand liest gerne lange Handbcher oder Anleitungen aber zumindest dieses Kapitel und den Anhang ("Bekannte Programmfehler, Inkompatibilitten und Unschnheiten") sollten Sie sich durchlesen. Das heit nicht, da nicht auch der Rest lesenswert wre, aber den knnen Sie sich ja an einem regnerischen Abend zu Gemte fhren. Ich habe mich bemht, auf mgliche Bedienungsfehler, die bei der Arbeit mit dem VIRENDETEKTOR auftreten knnen, einzugehen. Wenn Sie diese Kapitel nicht lesen, sind DATENVERLUSTE nicht auszuschlieen! Inhalt: 0. Das (etwas lngere) Vorwort a) Was ist der VIRENDETEKTOR? b) Vernderungen gegenber alten Versionen c) Hinweise zur Bedienung I. Einfhrung (Allgemeines ber Computerviren) a) Was ist ein Computervirus? b) Woher kommen Computerviren? II. Viren im ST, wo sie stecken und wie sie sich vermehren a) Bootsektorviren b) Link-Viren III. Wie beugt man Virenbefall vor? IV. An welchen Effekten erkennt man Computerviren? V. Neues von der Virenfront VI. So funktioniert der VIRENDETEKTOR VII. "Immunisierung" - Schutz vor Bootsektorviren??? VIII. Was ist im Fall des (Be)falls zu tun? IX. Das SHAREWARE-Vertriebskonzept X. Hinweise fr kommerzielle Nutzer und PD-Versender XI. Schluwort Anhang: Bekannte Programmfehler, Inkompatibilitten und Unschnheiten Was gibt's in der nchsten VIRENDETEKTOR Version? Einige Soft- und Hardwarebezeichnungen, die in diesem Text erwhnt werden, sind eingetragene Warenzeichen und sollten als solche betrachtet werden. 0. Das (etwas lngere) Vorwort a) Was ist der VIRENDETEKTOR? Der VIRENDETEKTOR entstand vor einigen Jahren, als die ersten Computerviren auf dem ST auftauchten. Zunchst als "Quick and dirty"-Hack gegen Bootsektor-Viren, doch mit der Zeit kam eine ansprechende Benutzeroberflche hinzu, die Erkennung der ersten Link-Viren, die sich auf dem ST breit machten, die Anpassung an verschiedene Auflsungen und vieles mehr. Seit der Version 3.0 ist nun auch eine CRC-Prfsummenbildung eingebaut, so da auch die Gefahr eines Befalls mit bislang unbekannten Viren ausgeschlossen werden kann. Auch zuknftige Versionen werden wieder Neuheiten zu bieten haben und der VIRENDETEKTOR bleibt - auch wenn er manchem kommmerziellen Virenkiller durchaus berlegen ist und obwohl mir mehrere Angebote zur kommerziellen Vermarktung vorliegen - weiterhin SHAREWARE. Was SHAREWARE ist und warum dieses Konzept sowohl dem Benutzer als auch dem Programmautor viele Vorteile bietet, erfahren Sie in Kapitel IX. Mit dem Programm VIRENDETEKTOR haben Sie nun das geeignete Mittel in der Hand, um jede Art von Virus zu entdecken, bevor er Unheil anrichten kann und sich ber die gesamten Datenbestnde verbreitet. b) Vernderungen gegenber alten Versionen Der VIRENDETEKTOR 3.0 bietet gegenber den Versionen 2.x unter anderem folgende neue Features: Der VIRENDETEKTOR luft nun auf allen Auflsungen und Graphikkarten, die mindestens eine Auflsung von 640*400 Punkten liefern. Insbesondere wird auch der neue ATARI TT in den Auflsungen ST-HIGH, TT-MID und TT-HIGH untersttzt. Es kann unter drei verschiedenen Verfahren zur Immunisierung des Bootsektors ausgewhlt werden. Die gewhlte Immunisierung kann auf Wunsch immer aufgebracht werden (Impfung). Der VIRENDETEKTOR ist derzeit der einzige Virenkiller, der ausfhrbare Immunisierungsbootsektoren erstellt, die dennoch MS-DOS kompatibel bleiben! Damit sind solche Disketten weiterhin auf PCs und unter PC-Emulatoren lesbar. Seit dieser Version besteht die Mglichkeit, auf Wunsch des Benutzers ber ausfhrbare Programmdateien eine CRC-Prfsumme zu erstellen. Damit ist gewhrleistet, da auch zuknftige Link-Virengenerationen automatisch durch die nach einem Befall vernderte Prfsumme erkannt werden knnen. Diese Prfsummenerstellung ist um einen Faktor 50-200 schneller, als andere Virenkiller. Neben kompletten Laufwerken und einzelnen Programmen knnen nun auch gezielt einzelne Pfade auf Link-Virenbefall untersucht werden. Zudem knnen nun alle angeschlossenen Partitionen/RAM-Disks untersucht werden, die Beschrnkung auf maximal 10 Laufwerke ist somit nicht mehr vorhanden. Neben den blichen Extensionen (PR?, AC?, TOS, TTP, APP und GTP) knnen noch vier weitere selbstdefinierte Extensionen gewhlt werden, die bei der automatischen Link-Virenprfung bercksichtigt werden. Der Rootsektor der Festplatte kann auf Vernderungen berprft werden, von Viren zerstrte Rootsektoren werden auf Wunsch restauriert. Alle einstellbaren Parameter des Virendetektors sind abspeicherbar und stehen somit beim Start des Programms in der gewnschten Form zur Verfgung. Der Virendetektor gibt auf Wunsch eine ausfhrliche Protokolldatei aus, in der alle aktuellen Systemparameter und verbogenen Vektoren dokumentiert sind. Mit Hilfe dieser Datei ist bei vielen Problemen eine genaue Fehlerdiagnose durch einen fachkundigen Experten mglich. Selbstverstndlich wurden erneut einige kleinere Programmfehler beseitigt, neue Routinen zur Erkennung aktueller Viren eingebaut und die Erkennung einiger neuer "harmloser" Bootsektoren wurde ebenfalls implementiert. Zwei "Features" sind im Unterschied zu den alten Versionen nicht mehr vorhanden: Zum einen der alternative Font. Dieser ist einer "sauberen" Programmierung zum Opfer gefallen, da sonst die Lauffhigkeit auf verschiedenen Grafikkarten nicht gewhrleistet wre. Zum anderen ist es nun nicht mehr mglich, diese Datei innerhalb des Virendetektors zu lesen. Sie sollten sich diesen Text ohnehin besser ausdrucken. Vielleicht biete ich diesen Text in stark erweiterter Form auch einmal ausgedruckt und gebunden an - zur Zeit bettige ich mich aber lieber als Programmautor, denn als Schriftsteller. c) Hinweise zur Bedienung Der VIRENDETEKTOR ist denkbar einfach zu bedienen. Auch Anfnger sollten mit diesem Programm problemlos auf "Virenjagd" gehen knnen. Dennoch sind mit zunehmender Anzahl an Optionen, die das Programm bietet, auch einige Erluterungen ntzlich. Hier nun ein paar wichtige Hinweise zur Bedienung. Auf einige spezielle Punkte wird an spterer Stelle in diesem Text noch eingegangen. Wenn Sie das Programm vom Desktop oder aus einer Shell heraus starten, dann erscheint eine groe Dialogbox, in der Sie mit der Maus oder den Funktionstasten und RETURN einzelne Punkte auswhlen knnen. F1: (Kurzanleitung/Programminfo) Wie der Name vermuten lt, handelt es sich bei diesem Punkt um eine kurze Anleitung, die das wichtigste aus diesem Kapitel zusammenfat. Damit haben Sie auch im VIRENDETEKTOR die Mglichkeit, die Arbeitsweise einzelner Funktionen nachschauen zu knnen. Zunchst erscheint aber noch eine kleine "Danksagung" an verschiedene Leute, die direkt oder indirekt bei der Entstehung dieses Programms mitgewirkt haben. F2: (Laufwerk whlen) Dient zur Auswahl der Diskettenstation/RAM-Disk/Festplattenpartitionen, die als aktuelles Laufwerk gelten soll. Bei der berprfung von Programmen arbeitet der VIRENDETEKTOR immer auf dem Laufwerk, das hier angewhlt wurde. Es knnen nur tatschlich vorhandene Laufwerke selektiert werden. Bei mehr als 8 Laufwerken/Partitionen/RAM-Disks erscheint diese Auswahlbox zweigeteilt. Mit den Pfeilboxen kann zwischen den beiden Teilen hin und her gewechselt werden. F3: (Einzelne Programme berprfen) Untersucht einzelne Programme (Auswahl ber Fileselectbox) auf Virenbefall. Dabei werden eine groe Zahl von Link-Viren erkannt, dazu gehren in dieser Version des VIRENDETEKTOR der MILZBRAND-VIRUS und auf dessen Algorithmus beruhende Nachfolger, alle VCS-VIREN (mit dem VIRUS-CONSTRUCTION-SET erstellte Viren), der CRASH-VIRUS, der PAPA&GARFIELD-VIRUS und der MAD/ZIMMERMANN-VIRUS (auch als Uluru-Virus bekannt)! Es ist leider nicht mglich, befallene Programme zu restaurieren! Sie mssen durch Sicherheitskopien ersetzt werden. Sollten Sie nicht ber Sicherheitskopien verfgen und die infizierten Programme sind fr Sie von groer Wichtigkeit, dann finden Sie in einem spteren Kapitel noch einige Hinweise, wie Sie eventuell auch noch mit diesen Programmen weiterarbeiten knnen. Neben einzelnen Programmen knnen auch komplette Pfade durchsucht werden, dazu wird in der Fileselectbox einfach der gewnschte Pfad eingestellt. Wollen Sie also z.B. alle Dateien im Ordner "KUCKREIN" berprfen, so ffnen Sie diesen Ordner und klicken auf den OK-Button (oder drcken die RETURN-Taste). Dann werden alle Programmfiles in dem gewnschten Ordner, sowie in allen weiteren Ordnern, die sich im gewhlten Ordner befinden, berprft! F4: (Alle Programme berprfen) Alle Programme auf dem aktuellen Laufwerk werden auf Link-Viren untersucht. Dabei werden nicht nur die Programme im Hauptdirektory des aktuellen Laufwerks (Floppy/RAM-Disk/Harddisk) berprft, sondern auch alle Programme, die sich in irgendwelchen Ordnern aufhalten! WICHTIG: Wenn Sie mit einer Festplatte und einer alten TOS-Version (1.00 oder 1.02) arbeiten, dann sollten Sie unbedingt das FOLDR100.PRG im Autoordner haben. Aber diese Regel gilt nicht nur fr den VIRENDETEKTOR. Es werden auch "Hidden"- und "System"-Files berprft. Auf der Festplatte kann diese berprfung je nach Partitionsgre einige Zeit in Anspruch nehmen. Die laufende berprfung kann durch Bettigung der ESCAPE-Taste abgebrochen werden. Wenn der Abbruch nicht gleich klappt, dann halten Sie die ESCAPE-Taste solange gedrckt, bis der VIRENDETEKTOR diesen Abbruch besttigt. Bercksichtigt werden alle Files, deren Extension auf PR*, AC*, TOS, TTP, APP, GTP oder auf eine der vier selbstdefinierten Extensionen pat. Bei eingeschalteter CRC-Prfung wird die aktuelle CRC-Prfsumme mit einer gegebenenfalls zuvor gespeicherten Prfsumme verglichen. Falls das aktuelle Laufwerk nicht A oder B ist, so ist diese Funktion defaultmig auch mit RETURN zu erreichen. F5: (Bootsektor berprfen) Diese Funktion kann nur bei Wahl von Laufwerk A oder B angewhlt werden. Es wird der Bootsektor einer Diskette auf Virenbefall berprft! Alle verbreiteten ST-Bootsektor-Viren werden erkannt, welcher Virus entdeckt wurde, wird ebenso angezeigt, wie bei mutierenden Viren die vorgefundene Generation! Ist der Bootsektor infiziert, so kann der Virus entfernt und der Bootsektor restauriert werden. Der VIRENDETEKTOR erkennt die meisten Immunisierungs-Bootsektoren, wie sie von einigen Virenkillern erzeugt werden. Falls Sie im Men "Weitere Optionen" die Immunisierung nicht eingeschaltet haben, kann eine vorhandene Immunisierung auf Wunsch auch entfernt werden! Natrlich werden auch berechtigterweise ausfhrbare Bootsektoren erkannt und gemeldet, z.B. 1st Freezer-Disks, Aladin-Disketten (MAC-Emulator), TOS-Lader, viele Spiele-Bootlader, 60-Hertz Bootsektoren und viele mehr. Seit der Version 2.9e werden AUCH NICHT AUSFHRBARE Bootsektor-Viren erkannt! Diese knnen sich mittels eines undokumentierten Features des Betriebssystems resetfest im Speicher installieren, OBWOHL der Bootsektor eigentlich nicht ausfhrbar ist! Genauere Informationen zur Arbeits- und Verbreitungsweise dieser Viren finden Sie in einem gesonderten Kapitel ber Bootsektor-Viren. Trifft der VIRENDETEKTOR auf einen bisher unbekannten ausfhrbaren Bootsektor (z.B. einen neuen Spiele-Lader oder aber einen neuen Virus), so wird eine entsprechende Meldung ausgegeben und es kann eine Routine aufgerufen werden, die das Bootprogramm auf typische Merkmale eines Virus-Programms untersucht! Das Ergebnis dieser Analyse wird in einer Alert-Box angezeigt. Falls es sich um einen bisher unbekannten Virus handelt, kann der Bootsektor restauriert werden. Das Programm wird im brigen laufend aktualisiert und an neue Viren angepasst! Sollten Sie ber einen Virus oder ein harmloses Bootprogramm verfgen, welches der VIRENDETEKTOR nicht kennt, dann schicken Sie es mir zu - ich werde umgehend eine Erkennung einbauen. F6: (Bootsektor und Disk-Info anzeigen) Zeigt den Bootsektor der Diskette im gewhlten Laufwerk (A oder B) sowohl im ASCII-Code als auch in Hexadezimalzahlen an. Zustzlich werden die Disketten-Struktur-Informationen entschlsselt und angezeigt. (Anzahl der Seiten, Tracks, Sektoren, Ausfhrbarkeit, Lnge des Direktorys, ...) Auch diese Funktion kann nur bei Wahl von Laufwerk A oder B gewhlt werden. F7: (Bootsektor und alle Programme berprfen) Mit diesem Menpunkt werden die Funktionen "Bootsektor berprfen" und "Alle Programme berprfen" hintereinander ausgefhrt. Wenn Laufwerk A oder B als aktuelles Laufwerk gewhlt wurden, so ist dieser Punkt defaultmig ber RETURN erreichbar. Wenn Sie also Ihre Diskettensammlung sowohl auf Link- wie auf Bootsektor-Viren berprfen wollen, brauchen Sie nur die Disketten der Reihe nach einzulegen, RETURN zu drcken und die Meldungen des Programms abzuwarten. F8: (HD-Rootsektor prfen/restaurieren) Hinter diesem Menpunkt verbirgt sich eine Auswahlbox, in der Sie angeben knnen, ob Sie einen Rootsektor prfen, restaurieren oder anzeigen wollen. Der Rootsektor der Fesplatte wird beim DMA-Bootvorgang gelesen und ausgefhrt. Im Rootsektor ist auerdem die Partitionierungsinformation der Festplatte enthalten. Haben Sie mehrere Festplatten (physikalische Laufwerke, nicht Partitonen) an Ihren Recher angeschlossen, so knnen Sie auch das gewnschte Target auswhlen. Beim Prfen des Rootsektors wird der aktuelle Rootsektor mit einem zuvor gesicherten Rootsektor verglichen und das Ergebnis wird angezeigt. Die Vergleichsrootsektoren Ihrer Festplatten speichert der VIRENDETEKTOR in der Datei VIRENDET.HD ab. Sollte noch kein Vergleichsrootsektor gespeichert sein, so knnen Sie den aktuellen Rootsektor fr sptere Vergleiche bernehmen. Die Datei VIRENDET.HD ist normalerweise nicht im Lieferumfang enthalten, sondern mu von Ihnen bei der ersten Festplattenprfung erzeugt werden. Da die Partitionierungs- informationen beim Befall durch einen Virus zerstrt werden knnen, ist fr diesen Fall eine Restaurierungsmglichkeit gegeben. Dazu mssen Sie sich von der Datei VIRENDET.HD eine Sicherheitskopie auf Diskette anlegen. Dies ist wichtig, da Ihnen diese Datei auf der Festplatte nichts mehr ntzt, denn mit einem zerstrten Rootsektor ist Ihnen jeder Zugriff auf die Platte verwehrt. Mit Hilfe des VIRENDETEKTORS - von dem Sie natrlich ebenfalls eine Sicherheitskopie haben sollten - kann der Rootsektor dann wieder auf die Festplatte geschrieben werden. WICHTIG: Jede neue Partitionierung Ihrer Platte fhrt natrlich zu einer Vernderung des Rootsektors! In diesem Fall muss die Datei VIRENDET.HD, die die gespeicherten Rootsektoren enthlt, gelscht werden und der Rootsektor neu eingelesen werden. Auf keinen Fall drfen Sie nach einer Neupartitionierung den alten Rootsektor wieder zurckschreiben! Der Rootsektor darf nur restauriert werden, wenn er unrechtmig (durch einen Virus oder ein anderes "amoklaufendes" Programm) verndert wurde. Wenn Sie Ihre Platte neu partitioniert haben, kommt auf jeden Fall die Meldung "Rootsektor wurde verndert". Dies ist normal und kein Grund zur Besorgnis! Schreiben Sie NIEMALS einen alten Rootsektor nach einer Neupartitionierung zurck! Ansonsten sind Ihre Daten auf der Festplatte pltzlich ins Nirwana entfleucht. ACHTUNG: Nach dem Zurckschreiben eines Rootsektors wird automatisch ein RESET (Warmstart) ausgelst! Dies ist aus Kompatibilittsgrnden zu verschiedenen Festplattentreibern ntig. Wenn Sie "restaurieren" anwhlen, werden Sie auf diesen Umstand aufmerksam gemacht und haben noch die Mglichkeit, diesen Vorgang abzubrechen. F9: (Weitere Optionen) Unter diesem Menpunkt sind verschiedene Einstellungsmglichkeiten sowie nicht so hufig bentigte Funktionen zusammengefasst. Es erscheint ein Untermen mit folgenden Punkten: File lschen: Zum v o l l s t n d i g e n Lschen von Files! Da beim Lschen einer Datei im Desktop, oder beim Aufruf der Lschfunktion des TOS nur der Filename im Directory unkenntlich gemacht, sowie die FAT gelscht wird, bleiben die Daten unversehrt auf der Diskette und knnen deshalb mit Hilfe diverser Diskutilities, z.B. RESCUE, DUST oder DISKDOC restauriert werden (falls sie nicht zwischenzeitlich berschrieben wurden). Mit diesem Programmpunkt werden Files unwiderruflich und endgltig ausgenullt! Immunisierung whlen...: Zum Thema "Immunisierung" werde ich im weiteren noch Stellung nehmen. Hier sei nur erwhnt, da ich, um auf alle Wnsche nach den verschiedensten Immunisierungsmethoden einzugehen, im VIRENDETEKTOR drei verschiedene Mglichkeiten zur Immunisierung von Bootsektoren vorgesehen habe. Mit diesem Menpunkt knnen Sie die gewnschte Immunisierung ein- oder ausschalten. Bei eingeschalteter Immunisierung wird beim Schreiben eines Bootsektors, also wenn z.B. ein Virus vernichtet wird oder ein anderes Bootprogramm entfernt wird, ein Immunisierungs-Bootsektor bzw. der Immunisierungs-Autoordner erzeugt. Was unter den drei Methoden zu verstehen ist, entnehmen Sie bitte dem Kapitel VII. Wenn die Bootsektorimpfung eingeschaltet ist, wird die gewhlte Immunisierungsart immer auf die zu prfende Diskette aufgebracht, also auch dann, wenn kein Virus berschrieben wird. Dazu drfen die zu prfenden Disketten natrlich nicht schreibgeschtzt sein. Es erfolgt auch dann eine Immunisierung, wenn im Bootsektor bereits eine Immunisierung eines anderen Virenkillers vorhanden ist. Diese wird dann entfernt. Andere ausfhrbare harmlose Bootsektoren werden nicht geimpft. Ausnahme: Die Immunisierung durch den Autoordner, da bei dieser Immunisierungsart der Bootsektor nicht verndert wird. Info-Meldungen ein/ausschalten: Wenn Sie mit dem VIRENDETEKTOR Ihre komplette Diskettensammlung berprfen und Ihre kostbare Zeit nicht zu sehr strapazieren wollen, dann knnen Sie die ohnehin schon hohe Arbeitsgeschwindigkeit des Programms noch weiter erhhen, indem Sie alle Meldungen des Programms, die nicht auf Virenbefall hinweisen, unterdrcken. Sie brauchen dann pro Diskette nur einmal die RETURN-Taste (oder F7) zu drcken und der VIRENDETEKTOR kehrt nach der berprfung der Diskette sofort zum Hauptmen zurck (sofern kein Virus gefunden wurde) und Sie knnen mit der nchsten Diskette fortfahren. Extensionen whlen: Wenn der VIRENDETEKTOR eine komplette Diskette/RAM-Disk/Partition oder einen gewhlten Pfad auf Link-Viren untersucht, dann werden alle Dateien mit den Extensionen PR* (z.B. PRG, PRX, PR, ...), AC*, TOS, TTP, APP und GTP berprft. Mit diesem Menpunkt knnen Sie weitere vier Extensionen (allerdings ohne Wildcards) angeben, die bei der berprfung bercksichtigt werden sollen. CRC-Einstellungen: Bei Anwahl dieses Menpunktes erscheint eine Auswahlbox, in der Sie angeben knnen, ob bei der CRC-Prfung die Prfsummen bislang unbekannter Programme automatisch aufgenommen werden sollen oder ob der VIRENDETEKTOR bei jedem unbekannten Programm nachfragt, ob eine bernahme gewnscht wird. Wenn Sie die CRC-Option zum ersten Mal verwenden, ist es sinnvoll auf "automatisch bernehmen" zu schalten, da sonst bei jeder Programmdatei eine Alert-Box mit der Nachfrage erscheint, ob die Datei bernommen werden soll. Auerdem knnen Sie in dieser Auswahlbox die neuen CRC-Prfsummen seit dem letzten Programmstart abspeichern. Sollten Sie neue CRC-Prfsummen bernommen haben, so werden Sie beim Programmende darauf hingewiesen, falls Sie diese bislang noch nicht abgespeichert haben und knnen das dann vor dem Verlassen des VIRENDETEKTORS nachholen. CRC-Check ein/ausschalten: Dient zum Ein- oder Ausschalten der CRC-Prfsummenoption. Ist der CRC-Check eingeschaltet, so berechnet der VIRENDETEKTOR bei jeder Link- Virenberprfung eine CRC-Prfsumme ber den Teil des Programms, der bei einer Infizierung mit einem Link-Virus auf jeden Fall verndert wrde. Ist fr das jeweilige Programm bereits eine CRC-Summe aus vorhergegangenen berprfungen vorhanden, so wird die neue Prfsumme mit der alten verglichen und eventuell auftretende Unterschiede werden gemeldet. Somit kann sich auch ein vllig neuartiger Link-Virus, den der VIRENDETEKTOR noch nicht kennt, nicht unbemerkt in Ihren Programmbestand einschleichen. Natrlich funktioniert diese Lsung nur dann, wenn nicht schon zum Zeitpunkt der erstmaligen CRC-Prfsummenerstellung ein Link-Virus, den der VIRENDETEKTOR noch nicht kennt, Ihre Programmbestnde komplett durchseucht hat. Dieser Umstand ist aber auergewhnlich unwahrscheinlich. Beachten Sie bitte: Wenn Sie mehrere unterschiedliche Programme gleichen Namens (z.B. zwei EDITOR.PRG) oder verschiedene Versionen eines Programmes besitzen, dann wird der VIRENDETEKTOR beim zweiten Programm eine Vernderung melden, da er pro Programmname nur eine Checksumme verwaltet. (Die Extension spielt keine Rolle, d.h. EDITOR.TOS und EDITOR.PRG sind fr den VIRENDETEKTOR die gleichen Programme.) Einige Programme speichern bestimmte Einstellungen in sich selbst ab (sehr unfeiner Programmiererstil) - also knnen auch hier Vernderungen auftreten, die NICHT durch Virenbefall verursacht wurden. In der nchsten Version werden pro Programmname mehrere CRC-Summen speicherbar sein. Wenn sich aber pltzlich mehrere Programme ohne erkennbaren Grund verndert haben, wenn also der VIRENDETEKTOR in mehreren Fllen eine vernderte CRC-Prfsumme meldet, ist Vorsicht geboten. Sie sollten mir eines der mglicherweise befallenen Programme zusenden, ich werde dann - sofern es sich tatschlich um einen neuen Virus handelt - eine entsprechende Erkennung in den VIRENDETEKTOR einbauen und Sie erhalten umgehend eine neue, an diesen Virus angepate Version. Protokolldatei erzeugen: Wenn Ihnen Ihr Rechner Schwierigkeiten macht, sei es, da irgendwelche Programme nicht funktionieren oder stndig Fehler auftreten, deren Ursache Sie nicht kennen, dann knnen Sie sich mit dem VIRENDETEKTOR eine Protokolldatei ausgeben lassen (Dateiname: VIRDPROT.INF), die alle wichtigen Systemvariablen dokumentiert. Mit Hilfe dieser Datei kann man sich ein Bild ber den momentanen Status des Rechners machen, um so die Fehlerursache (unvertrgliche Accessories, falsche Treibersoft, Virenbefall, ...) festzustellen. Insbesondere wenn der VIRENDETEKTOR einen Programmfehler meldet oder unmotiviert abstrzt (nobody is perfect) bentige ich diese Datei, um dem Fehler auf die Spur zu kommen. Die Protokolldatei wird im Startpfad des VIRENDETEKTORS erzeugt! Rootsektor-Daten abspeichern: Wenn Sie einen Festplattenrootsektor zum ersten Mal eingelesen haben, dann knnen Sie ihn mit diesem Menpunkt in eine Datei sichern. Der VIRENDETEKTOR schreibt die Rootsektoren aller angeschlossenen Targets in die Datei VIRENDET.HD. Sollten Sie das Programm von einem Bekannten oder PD-Versender bekommen haben, dann sollte sich normalerweise keine Datei mit diesem Namen im VIRENDET.3_0-Ordner befinden. Sollten Sie dort dennoch diese Datei finden, dann lschen Sie diese VOR dem Start des VIRENDETEKTORS und legen Sie nach berprfung Ihrer Festplatte(n) mit diesem Menpunkt neu an. WICHTIG: Verwenden Sie keine VIRENDET.HD-Datei von fremden Festplatten!!! (Ich wei, das habe ich schon erwhnt - man kann es aber nicht oft genug wiederholen!) Auch wenn Sie Ihre Platte(n) neu partitionieren mu diese Datei neu angelegt werden! Wenn Sie das Programm weitergeben, dann bitte OHNE die Datei VIRENDET.HD! Es knnte sonst bei Anwendern, die diese Anleitung oder die Kurzanleitung im Programm selbst nicht durchlesen, zu Datenverlust fhren, wenn diese einen fremden Rootsektor auf die eigene Platte kopieren. Sollten Sie einen oder mehrere neue Rootsektoren bernommen haben, so werden Sie beim Programmende darauf hingewiesen, falls Sie diese Rootsektoren bislang noch nicht abgespeichert haben und knnen das dann vor dem Verlassen des VIRENDETEKTORS nachholen. Parameter abspeichern Alle Einstellungen, die Sie im VIRENDETEKTOR vornehmen, knnen Sie in die Datei VIRENDET.INF sichern. Dabei werden auch die vier selbstdefinierten Extensionen mit abgespeichert. Findet der VIRENDETEKTOR beim Start diese Datei auf derselben Ebene wie das Programm, so werden die dort gewhlten Einstellungen bernommen. Ansonsten wird eine Defaulteinstellung gewhlt. Sollte das gewhlte Laufwerk in der Parameter-Datei bei einem erneuten Start des VIRENDETEKTORS nicht mehr vorhanden sein, so wird Laufwerk A als aktuelles Laufwerk vorgegeben. Sie haben nun alle wichtigen Funktionen des Programms kennengelernt (naja, F10 - Programmende hatte ich Ihnen verschwiegen, aber das brauche ich kaum zu erlutern). Lesen Sie auf jeden Fall noch im Anhang den Abschnitt ber Inkompatibilitten und bekannte Programmfehler, dann steht einer erfolgreichen Arbeit mit dem VIRENDETEKTOR nichts mehr im Wege. Wenn Sie mehr ber Computerviren erfahren wollen, wenn Sie an Tips zur Vorbeugung vor Virenbefall interessiert sind (ja, es gibt tatschlich noch andere Tips als die Verwendung des VIRENDETEKTORS) und wenn Sie bestimmte Punkte (z.B. die verschiedenen Immunisierungsarten) genauer kennenlernen wollen, dann lesen Sie doch einfach weiter... I. Einfhrung a) Was ist ein Computervirus? Der Begriff "Virus" ist inzwischen in der Computerszene genauso gelufig, wie in der Biologie und Medizin. Fr die ST-User, die noch nicht genau wissen, was es mit diesen kleinen "elektronischen Tierchen" auf sich hat, ist diese Einfhrung gedacht: Zu Anfang eine Definition des Begriffs "Computervirus": "Computerviren sind Programme oder Routinen, die fremde Software ohne Wissen oder wenigstens ohne Willen des zur Nutzung der betroffenen Dateien berechtigten Anwenders manipulieren und diese mit der neuen Fhigkeit ausstatten knnen, die Verbreitung softwarefremder Routinen fortzusetzen." Alles klar?! - Nein? - Na dann noch etwas ausfhrlicher: Die Bezeichnung "Computervirus" deutet schon auf zwei typische Eigenschaften dieser Programme hin: Wie ihre biologischen Vettern sind sie ansteckend und gefhrlich. Konkret heit das, da es sich bei einem Virus um ein kleines, unaufflliges Programm handelt, welches sich mglichst oft vervielfachen soll und dann eine bestimmte Aktion ausfhrt, deren Gefhrlichkeit ganz von der Skrupellosigkeit des Virus-Programmierers abhngt. Auf Home- und Personalcomputern handelt es sich dabei meistens um Lsch- oder Formatierbefehle, Programmabstrze, die Verhinderung eines Programmaufrufs ohne Passworteingabe oder auch relativ harmlose Dinge wie z.B. Bildschirmflackern, ein "Hackergru" auf dem Bildschirm, ein paar Gerusche aus dem Soundchip, ... die Liste lt sich beliebig erweitern und die Entwicklung neuer Viren geht in einem haarstrubenden Tempo voran. Welche Viren inzwischen auf dem ST bekannt sind, wird in Kapitel IV und Kapitel V noch nher erlutert. brigens werden Disketten von Viren so gut wie nie vollstndig formatiert. Das wrde zuviel Zeit beanspruchen und dem geplagten Opfer die Chance lassen, die Diskette mit einem verzweifelten Griff zum Laufwerk aus selbigem zu entfernen. Gewhnlich werden nur die Verwaltungssektoren, also FAT und Directory, gelscht. Das geht blitzschnell und ist fr die Daten auf der Diskette fast ebenso ttlich wie das normale Formatieren. Zwar sind die Daten physikalisch noch vorhanden, die Suche nach einzelnen Sektoren, um sie wieder den entsprechenden Dateien zuzuordnen, wrde jedoch selbst der Kollege Sysiphus nicht gegen seine derzeitige Ttigkeit eintauschen wollen. An dieser Stelle mchte ich auch ein Wort an die Hobby-Germanisten unter den Lesern richten. Es haben nmlich einige Anwender dieses Programms ihren Unmut darber geuert, da ich nicht durchgngig "DAS Virus" schreibe, sondern (meistens) "DER Virus". Tatschlich erlaubt der Duden aber BEIDE Mglichkeiten - lediglich in der Medizin ist "DAS Virus" blich - in der Umgangssprache hat sich hingegen "DER VIRUS" eingebrgert. Aber ich denke, diese Frage ist fr die Bekmpfung von Computerviren auf dem ST von keiner groen Bedeutung! Meistens startet der Virus seinen gefhrlichen Hauptteil erst dann, wenn seine berlebensfhigkeit durch eine ausreichende Menge befallener Disketten bzw. Programme gewhrleistet ist. Als Auslser dienen dabei je nach Art des Virus die verschiedensten Dinge. Mglicherweise ein bestimmtes Systemdatum, der aktuelle Zustand bestimmter Systemvariablen (z.B.: Lschen der Festplatte, wenn ein bestimmter Fllgrad berschritten wird) oder der Virus wird mit einer beliebigen, vorher festgelegten Wahrscheinlichkeit zufllig aktiv. Selbstverstndlich kann man einen Virus auch so programmieren, da er erst startet, wenn er auf ein zuvor bestimmtes Programm (oder eine Datei) trifft. Interessanter als die Frage, WAS der Virus tut, ist fr uns aber die Frage WIE er das tut (oder besser nicht mehr tut - wozu haben Sie denn sonst den VIRENDETEKTOR)! b) Woher kommen Computerviren? Die ersten Viren tauchten vor einigen Jahren in Rechenzentren auf. Dort waren die Urheber in erster Linie Programmierer, die sich ungerecht behandelt fhlten und sich so an ihrem ehemaligen Arbeitgeber rchen wollten. Oft waren aber auch handfeste finanzielle Interessen im Spiel (Erpressung, Schdigung von Konkurrenten u..). Auch "Experimentierfreude" mag zu Anfang den einen oder anderen Programmierer zur Produktion eines Viren-Programms bewogen haben. In der letzten Zeit tritt dieses Problem jedoch auch verstrkt im PC- und Home-Computer-Bereich auf und lt so manchen Software-Sammler um seine Programmbestnde bangen. Nun scheint es tatschlich Leute zu geben, die eine verstrkt um sich greifende Virenplage fr ein geeignetes Mittel halten, um der Raubkopiererei Herr zu werden. Diese Vorstellung ist allerdings extrem blauugig (und von der Realitt lngst widerlegt), denn die Verbreitung von verseuchten Disketten ist ja keineswegs auf Raubkopien beschrnkt. PD-Programme, Datendisketten und sogar Originalsoftware renommierter Softwarehersteller knnen befallen sein. Letzteres ist bereits mehrfach vorgekommen, inzwischen sind aber sowohl PD-Versender als auch Softwarefirmen deutlich vorsichtiger geworden. Die Gefahr von dieser Seite ist damit schon stark zurckgegangen. Im brigen ist es aber gleichgltig, ob jemand eine PD-Diskette tauscht (legal) oder eine Raubkopie (illegal), die Gefahr ist in beiden Fllen gleich. Trotz allem ist auch unter dem Aspekt der Virenplage (brigens nicht nur unter diesem) die Verteilung von Raubkopien nicht ohne Risiko und sollte unterlassen werden. Die Hacker und professionellen Raubkopierer trifft ein Computervirus aber sicher am allerwenigsten. Wer sich mit seinem Rechner sehr gut auskennt, wird in der Regel auch mit Viren gut fertig. Schlimmer trifft es die Anwender, die ihren Computer nur fr Textverarbeitung oder Tabellenkalkulation nutzen, vielleicht gelegentlich Pac-Man spielen und immer brav nur Originaldisketten verwenden, mit Begriffen wie "Bootsektor", "Disketten-Monitor" oder "Einsprung-Adressen-Tabelle" und hnlichem aber wenig anzufangen wissen. Wenn dann ein Virus (z.B. ber eine PD-Disk eingeschleppt) die Festplatte mit der fast fertigen Diplom-Arbeit formatiert und das letzte Backup schon ein halbes Jahr alt ist, beginnt das groe Heulen und Zhneklappern. Whrend die Virenprogrammierung auf professionellen Mehrplatzsystemen wie schon erwhnt verschiedene Grnde haben kann, kommen im PC-Bereich eigentlich nur ein bersteigertes Geltungsbedrfnis oder chronischer Vandalismus als Motivation in Frage. Das Programmieren von Virus-Programmen kann man ohne bertreibung mit dem Zerstechen von Autoreifen, dem Beschdigen von Telefonzellen und hnlich sinnlosen Attacken auf fremdes Eigentum vergleichen. Diese Einstellung hlt glcklicherweise auch nach und nach Einzug in die deutsche Rechtsprechung. Auf dem ATARI ST kann man seit etwa zwei Jahren eine starke Zunahme von Virus-Programmen feststellen, auch wenn es sich vielfach um Viren handelt, die nicht zu der wirklich gefhrlichen Sorte gehren. Nach meinen Erfahrungen auf Grund vieler Stichproben sowohl in meinem Bekanntenkreis als auch bei den Benutzern des VIRENDETEKTOR, hat heute schon jeder dritte ST-Besitzer auf irgendeine Art und Weise Erfahrungen mit Viren gesammelt oder hat sogar selbst verseuchtes Diskettenmaterial! Hufig werden diese Viren nicht einmal bemerkt, weil gelegentliches "DATEN AUF DISK xy DEFEKT" oder hnliche Effekte auf andere Ursachen zurckgefhrt werden. Damit steigt natrlich die Gefahr, verseuchte Disketten ber den Daten- oder Programmtausch ungewollt weiterzugeben. II. Wo "verstecken" sich die Viren im ST Ein Computervirus kann sein Unwesen natrlich nur ungestrt treiben, wenn es ihm gelingt, sich vor den Augen des Benutzers zu verbergen. Auf Grorechenanlagen kann man Viren leicht im Speicher verbergen, da diese Anlagen Tag und Nacht in Betrieb sind. Da die wenigsten ST-User ihr Gert 24 Stunden tglich eingeschaltet lassen, ist der einzige Platz, an dem Viren berleben knnen, um sich bei gnstiger Gelegenheit zu verbreiten, der Massenspeicher. Das ist in aller Regel die Diskette (bzw. Festplatte). Dort knnen sie die stromlose Zeit des Rechners berdauern und sich bei Inbetriebnahme des Systems wieder im Arbeitsspeicher einnisten. Dazu mssen sie sich auf dem Massenspeicher so unterbringen, da auch ein aufmerksamer Benutzer sie nicht erkennt. Die erneute Installierung im Speicher darf dabei den normalen Arbeitsvorgang nicht beeinflussen, um ihre Anwesenheit nicht zu verraten. Bercksichtigt man diese Vorgaben, dann gibt es prinzipiell zwei Mglichkeiten fr Computerviren, sich im ST breitzumachen: a) Bootsektorviren Man sollte zunchst wissen, was beim Einschalten des Rechners (bzw. beim Reset) passiert: Das Betriebssystem liest den Bootsektor, das ist generell der erste Sektor auf Track 0 / Seite 0, der in Laufwerk A liegenden Diskette und prft ob er ausfhrbar ist. Ausfhrbar heit, da die Prfsumme (das ist die auf 16 Bit reduzierte Summe aller Worte im Bootsektor) $1234 betrgt. Ist das der Fall, dann versucht TOS ein im Bootsektor liegendes Programm auszufhren, indem es mittels JSR an den Beginn des Bootsektors springt. Sollten Sie bei den Begriffen "Bootsektor", "Track" u.. schon mit unwissendem Ausdruck die Stirne gerunzelt haben, dann sollten Sie vielleicht zunchst ein Buch zur Hand nehmen, in dem diese Materie auch fr Anfnger leicht verdaulich aufbereitet ist. (Zum Beispiel das Buch "Scheibenkleister" von C. Brod und A. Stepper aus dem Merlin-Verlag.) Ich werde im weiteren nmlich davon ausgehen, da Sie mit Ihrem Rechner und mit dem Aufbau von Disketten zumindest in Anstzen vertraut sind. Dieses Vorgehen, also das Abarbeiten eines eventuell ausfhrbaren Bootsektorprogramms, welches noch vor Ausfhrung der Programme im AUTO-ORDNER und vor der Installierung der Accessories stattfindet, ist ein Relikt aus der Zeit, als das TOS noch von Diskette ins RAM geladen werden mute (dafr sorgte dann eine Lade-Routine in besagtem Bootsektor). Heute, wo das TOS sich im ROM befindet, wird diese Eigenschaft des Betriebssystems gelegentlich genutzt, um beim Start des Rechners kleinere Programme automatisch auszufhren, z.B. die Umschaltung auf 60Hz-Betrieb beim Farbmonitor oder die Eingabe des aktuellen Datums. Auch einige Spiele starten mit Hilfe einer Lade-Routine im Bootsektor. Der Bootsektor einer normalen Diskette hat beispielsweise folgendes Aussehen: (Diese Diskette wurde mit dem Programm HYPERFORMAT Vers. 3.26 formatiert.) Ich habe dabei die Bootsektordaten nur als HEX-Zahlen angegeben, da die entsprechenden ASCII-Zeichen nicht ohne weiteres dargestellt werden knnen. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | | | | | | | | | | | | | | | | EB 34 90 49 42 4D 20 20 0F E2 B8 00 02 02 01 00 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | | | | | | | | | | | | | | | | 02 70 00 A0 05 F9 03 00 09 00 02 00 00 00 00 00 Anhand dieses Beispieleintrags mchte ich erklren, was die einzelnen Eintrge im Bootsektor bedeuten: -> Bytes 1+2: Branch to bootcode. Wenn der Bootsektor AUSFHRBAR ist, (seine Prfsumme 1234 ist), so steht ein Bootprogramm im Bootsektor. Da die nchsten Bytes im Bootsektor jedoch Daten zur Diskettenstruktur enthalten, mu dieser Datenbereich bersprungen werden, weil das Bootprogramm erst HINTER den Daten stehen kann. Daher mu in den ersten beiden Bytes ein 68000er BRA-Befehl (Sprungbefehl) stehen, der die Bootsektordaten berspringt. Wenn an dieser Stelle ein Eintrag der Art "60 XX" steht, mit xx ungleich 00, dann befindet sich in diesem Bootsektor normalerweise ein Bootprogramm (oder aber ein Virus). Ob dieses allerdings ausgefhrt wird, hngt wie schon gesagt noch von der Prfsumme ab. Dieser Sprungbefehl wird aber auch gerne als "Immunisierung" auf die Diskette geschrieben, ohne da ein Bootprogramm vorhanden wre. Was es damit auf sich hat, erfahren Sie weiter unten. Auf MS-DOS Disketten steht an dieser Stelle meistens $EB34 gefolgt von $90 im 3. Byte, manche Formatierprogramme auf dem ST schreiben diese Bytes aus Kompatibilittsgrnden ebenfalls an diese Stelle. So auch das Programm HYPERFORMAT. Doch auch dazu unten mehr. -> Bytes 3-8: Filler(OEM). An dieser Stelle steht nichts von Bedeutung. Die meisten Formatierprogramme legen an dieser Stelle irgend eine Kennung ab, die jedoch nie vom TOS beachtet wird. Hufig findet man die Zeichenkette "Loader". Unsere Beispieldiskette hat an dieser Stelle nach dem Byte $90 (siehe oben) die Kennung "IBM" gefolgt von zwei Spaces stehen, auch eine Anlehnung an das MS-DOS Format. -> Bytes 9-11: 24-bit serial number. An dieser Stelle steht eine 24-Bit Seriennummer. Diese wird von den meisten Formatierprogrammen sinnvollerweise zufllig gewhlt, da die Seriennummer dazu herhalten mu, das TOS auf einen Diskettenwechsel aufmerksam zu machen. -> Bytes 12+13: Byte per sector. Dieser Eintrag gibt an, wieviel Bytes in einem Sektor der Disk enthalten sind. Normalerweise sind das 512, aber prinzipiell sind auch andere Werte mglich (der Floppycontroller lt noch 128, 256 und 1024 zu). Dieser Eintrag ist im INTEL-Format gehalten. Das heit, da das hherwertige Byte erst als zweites angegeben ist. Um einen solchen Eintrag zu lesen, mu man also die Bytes vertauschen. In unseren Beispiel: 00 02 vertauscht gibt 02 00. Und $200 ist genau 512 dezimal. Diese Schreibweise ist ebenfalls aus Grnden der Kompatibilitt zu MS-DOS gewhlt worden. DER BOOTSEKTOR IST BRIGENS IMMER 512 BYTE LANG!!! -> Byte 14: Sectors per cluster. Anzahl der Sektoren pro Cluster (INTEL-Format). Die Diskettensektoren werden vom Atari intern zu CLUSTERN zusammengefasst. Und zwar im Allgemeinen je zwei Sektoren zu einem Cluster. -> Bytes 15+16: Reserved sectors. Reservierte Sektoren auf der Disk (INTEL-Format). Beim ST gibt es nur einen reservierten Sektor, nmlich den Bootsektor. -> Byte 17: Number of FAT. Der ATARI verwendet normalerweise zwei FATs. Sozusagen eine "Sicherheitskopie", was aber wenig ntzt, da beide FATs meistens auf einer Spur liegen und daher auch zumeist gleichzeitig den Sprung ins Nirwana antreten. In der FAT wird notiert, welche Cluster in welcher Reihenfolge zu welcher Datei gehren. Wenn ein Virus diese FATs lscht, dann wird die Suche der zu einer Datei gehrenden Sektoren hnlich amsant, wie die berchtigte Suche nach der Nadel im Heuhaufen. -> Bytes 18+19: Number of directory entries. In diesem Wort (wieder im INTEL-Format) steht die maximale Anzahl der Eintrge im Wurzelverzeichnis. Das TOS rundet diese Anzahl auf die nchstkleinere durch 16 ohne Rest teilbare Zahl ab. Die hier stehende Zahl kann also falsch sein; insbesondere frhere HYPERFORMAT-Versionen schrieben gerne "63", obwohl der Platz nur fr 48 ausreicht. Unsere Beispieldiskette hat Platz fr $0070 = 112 Eintrge (der normale Wert). Ordner knnen natrlich weit mehr Dateien enthalten, dieser Wert gilt NUR fr das Hauptdirectory. -> Bytes 20+21: Sectors per Disc. Hier steht die Gesamtzahl der physikalisch vorhandenen Sektoren auf der Disk (einschlielich der reservierten). Die Beispieldiskette hat $05A0 = 1440 Sektoren. Eine normale, mit dem Desktop formatierte Disk hat 720 oder 1440 Sektoren, je nachdem ob sie einseitig oder doppelseitig ist. -> Byte 22: Media descriptor. Soll das Speichermedium nher beschreiben. Dieser Eintrag wird vom TOS nie benutzt und ist nur vorhanden, um die Kompatibilitt zu MS-DOS zu wahren. Dabei heit $F8 einseitig/80 Tracks; $F9 heit doppelseitig/80 Tracks; $FC heit einseitig/40 Tracks und FD heit doppelseitig/40 Tracks. -> Bytes 23+24: Sectors per FAT. Hier steht die Anzahl der Sektoren pro FAT. Bei der Beispieldisk sind das drei Sektoren (die normale FAT-Lnge bei ATARI-Disks ist 5 Sektoren). Wie man Byte 17 schon entnehmen konnte, befinden sich zwei FATs auf der Disk, so da normalerweise insgesamt 10 Sektoren fr die FATs verbraten werden, obwohl sechs ausreichend sind. Einige Formatierprogramme (wie zum Beispiel HYPERFORMAT) krzen die FATs deshalb auch um je zwei Sektoren. -> Bytes 25+26: Sectors per Track. Die Anzahl der Sektoren pro Spur. Normalerweise, wie auch in unserem Beispiel neun Stck. Jeder Sektor mehr pro Track bringt ca. 80 Kilobyte Speicherplatz zustzlich auf der Diskette. Statt der normalerweise blichen 9 Sektoren lassen sich auch problemlos 10 Stck unterbringen, da die Lcke zwischen Sektor 9 und Sektor 1 gro genug ist. Die meisten Formatierprogramme bieten diese Mglichkeit. Einige bringen mit ein paar "Tricks" auch 11 unter. -> Bytes 27+28: Number of sides. Die Anzahl der Diskettenseiten. Im Beispiel zwei; sollten Sie mehr Seiten formatieren knnen, dann schicken Sie mir doch mal eine derartige Diskette fr mein Gruselkabinett. -> Byte 29: Hidden sectors. Die Anzahl der verborgenen Sektoren auf der Disk. Wird vom TOS nicht benutzt und drfte daher auch nur aus Kompatibilittsgrnden vorhanden sein. Der Eintrag ist bei ST-Disketten immer 0. Alle weiteren Bytes im Bootsektor gehren zu einem eventuell vorhandenen Bootprogramm und sollen hier nicht weiter errtert werden. Falls Ihr Interesse geweckt wurde, dann sollten Sie sich ein Buch zu diesem Thema zulegen. ACHTUNG: Fr Festplattenbesitzer ist wichtig zu wissen, da beim Einschalten des Systems (Kaltstart) zunchst in jedem Fall der Bootsektor der Diskette in Laufwerk A gelesen und gegebenenfalls ausgefhrt wird. Das gilt auch bei Auto-Boot-Platten, lediglich beim Reset (Warmstart) wird nicht mehr auf den Bootsektor der Diskette zugegriffen. (Diese Aussage ist fr das neue TOS 1.4/1.6 nicht mehr richtig, hier wird auch nach einem Warmstart der Bootsektor gelesen und ausgefhrt!) Naturgem ist die Lnge solcher Bootprogramme beschrnkt (auf maximal 480 Bytes), da von dem 512 Byte langen Bootsektor noch 32 Bytes fr andere Aufgaben (die oben genannten Diskettenstrukturinformationen und das Prfsummen-Ausgleichswort) reserviert sind. 480 Bytes sind fr ein Virusprogramm (selbstverstndlich in Assembler programmiert) aber vllig ausreichend. Viele Bootsektorviren bringen es auf kaum mehr als 200 Bytes. Versteckt sich der Virus auf dem Bootsektor der Diskette, wo er ohne Hilfsmittel nicht zu erkennen ist, so wird er bei jedem Bootvorgang in den Speicher geladen (ohne das der Benutzer etwas davon merkt) und reserviert sich dort ein Pltzchen. Der Bootvorgang wird dadurch nicht merkbar verlangsamt, der Anwender merkt von diesem Vorgang wirklich nichts! Dann versucht er sich auf jede erreichbare Diskette zu kopieren, die man ins Laufwerk legt. Auf diese Weise hat man nach relativ kurzer Zeit alle Disketten verseucht. Wenn der Virus dann seinen Hauptteil startet, hat man ihn meistens auch schon durch Diskettentausch an Bekannte weitergegeben, die ihn ihrerseits ebenfalls ungewollt weiterverbreitet haben. Dieser Schneeballeffekt kann nur durch konsequente Anwendung einiger Vorsichtsmaregeln gestoppt werden, auf die ich im weiteren Verlauf noch eingehen werde. Es gibt auch eine Mglichkeit, einen Bootsektor-Virus im Speicher zu installieren, OHNE da der Bootsektor ausfhrbar sein mu! Wie das geschieht erfahren Sie weiter unten im Text. Hier sei nur angemerkt, da der VIRENDETEKTOR (ab Version 2.9e) auch solche Viren zuverlssig erkennt! Leider sind viele Virenkiller immer noch der Ansicht, nicht ausfhrbare Bootsektoren seien prinzipiell unverdchtig. brigens bleiben viele Viren auch nach einem Reset im Speicher des Rechners. Man sollte den Rechner fr mindestens 15 Sekunden ausschalten, um sicher zu sein, da sich kein Virus mehr im Speicher befindet. Ein kurzes Aus-An des des Rechners reicht oft nicht, da die RAMs auch im stromlosen Zustand noch ein kurzzeitiges Erinnerungsvermgen haben. b) Link-Viren Es gibt noch einen zweiten etwas anders arbeitenden Virentyp: Sogenannte "Link-Viren" sind Virenprogramme, die sich an andere Programme oder Dateien anhngen und dann den Zeiger der Einsprungadresse des befallenen Programms so verndern, da dieser auf den Anfang der Virusroutine zeigt. Der Virus wird dann aktiviert, sobald man das infizierte Programm startet. Sodann versucht der Replikationsteil des Virus alle erreichbaren und noch nicht infizierten Programme ebenfalls mit dem Virus zu versehen. Bei den meisten Link-Viren - z.B. dem Milzbrand-Virus - wird pro Programmstart eines verseuchten Programms nur EIN weiteres Programm infiziert. Vielleicht fragen Sie sich, warum sich der Virus nicht gleich in alle Programme kopiert, die er auf der Diskette oder RAM-Disk/Festplatte erreichen kann? Der Grund fr diese freundliche Zurckhaltung liegt in der Zeit, die der Link-Virus fr die Infizierung bentigt. Whrend ein Bootsektor-Virus lediglich einen Sektor auf der Diskette manipulieren mu, um sich zu verbreiten, hat es ein Link-Virus weitaus schwerer. Er mu relativ umfangreiche nderungen an der Struktur der zu infizierenden Programme vornehmen. Zudem mu er die mglichen Opfer, also noch nicht infizierte Programmfiles, erst einmal finden. Damit sind auch relativ umfangreiche Massenspeicherzugriffe notwendig. Um nicht aufzufallen, schlielich darf der Start eines verseuchten Programms nicht wesentlich lnger dauern als vor seiner Infizierung, bleibt nur Zeit fr eine weitere Infizierung. Dieses Verhalten ist der eine Grund fr die langsamere Verbreitung von Link-Viren im Gegensatz zu den Kollegen aus dem Bootsektor. Ein zweiter Faktor, der die Ausbreitung von Link-Viren behindert, liegt im Zeitpunkt der Infizierung: Da die weitere Infizierung zumindest bei den nicht speicherresidenten Link-Viren gleich beim Starten eines verseuchten Programms erfolgt, knnen neben den Programmen auf der Festplatte und einer eventuell vorhandenen RAM-Disk nur die Programme auf den zu dieser Zeit in Laufwerk A oder B liegenden Disketten befallen werden. Das erschwert die Ausbreitung eines Virus auf Systemen, die nur ber ein Diskettenlaufwerk und keine Festplatte verfgen. Der Virus kann nur die Programme auf der Diskette, von der das verseuchte Programm gestartet wurde, erreichen. Allerdings stellt auch auf solchen Systemen die RAM-Disk einen geeigneten bertragungsweg da. Derartige Viren sind also besonders fr Festplattenbesitzer gefhrlich, weil sie sich dann auf Dauer fast genauso lawinenartig verbreiten, wie Bootsektorviren. ACHTUNG: Es gibt auch Link-Viren, die sich (wie ihre Bootsektor-Kollegen) resident im Speicher einnisten und von dort aus jedes erreichbare Programm infizieren. "Jedes erreichbare Programm" heit dabei, da jedes Programm infiziert werden kann, das von einem nicht schreibgeschtzten Medium gestartet wird, whrend der Virus im Speicher ist. Obwohl die Mehrzahl der Link-Viren nicht nach diesem, sondern nach dem oben beschriebenen Schema arbeiten, sind die speicherresidenten Link-Viren besonders gefhrlich, da ihre Verbreitungsgeschwindigkeit wesentlich grer ist! Natrlich sind von Link-Viren befallene Programme pltzlich lnger als vor der Infizierung; einige Viren befallen deshalb nur Programme, die eine bestimmte Mindestlnge haben, um so weniger schnell aufzufallen. Einige VCS- Viren arbeiten beispielsweise so. Auch der Milzbrand-Virus lt Programme unter 10 Kilobyte Lnge unbehelligt. Auch der Start eines befallenen Programms bentigt pltzlich mehr Zeit. Aber wer merkt schon, ob die Textverarbeitung statt nach 12 Sekunden erst nach 16 Sekunden geladen ist. Es gibt auch Virusprogramme, die zu keiner Vergrerung der befallenen Programme fhren! Im einfachsten Fall berschreibt der Virus einen Teil des infizierten Programms mit dem Virusprogramms. Das infizierte Programm hat seine Lnge dann natrlich nicht verndert, es ist aber auch nicht mehr vollstndig vorhanden, so da es beim Start normalerweise abstrzen wird. Sehr groe Programme knnen aber in wesentlichen Bereichen auch nach einer Infektion durch einen berschreibenden Virus noch funktionieren. Geschicktere Viren lagern einen Teil des infizierten Programms in einen unbenutzten Massenspeicher-Bereich aus und laden ihn spter nach. Auf dem ST kmen dafr z. B. der Track 80 und 81 in Frage. Der Virus macht sich also durch einen zustzlichen Disketten/Festplattenzugriff bei Aufruf einen Programmes bemerkbar. Auch dadurch verlngert sich das Programm natrlich nicht. Ein Virus mit einer derartigen Arbeitsweise ist allerdings auf dem ST (noch) nicht bekannt. Noch geschickter ist es, wenn der Virus einen Teil des befallenen Programms komprimiert, um so fr sich selbst Platz zu schaffen. Beim Starten wird der entsprechende Programmteil dann wieder entkomprimiert. Auch solche Viren, auf (do)M(e)SDOS-Rechnern bereits im Umlauf, haben den ST bisher verschont. Viren knnen sich im Prinzip berall dahin schreiben, wo die Hardware ein Ablegen von Daten erlaubt. Also hauptschlich in RAM und Massenspeicher. Ungefhrdet sind dagegen ROM, EPROM, CPU, Monitor und hnliche Hardware-Erweiterungen (nicht jedoch deren Treibersoftware!!!). Die batteriegepufferte Uhr im Mega ST kann einem Virus nicht als Aufenthaltsort dienen, da dort zum einen nicht einmal 128 Byte Speicher zur Verfgung stehen und zum anderen keine Mglichkeit existiert, mit der sich ein Programm aus dem RAM des Uhrchips wieder im Hauptspeicher installieren knnte. Wer glaubt, es gehe doch und absolut sicher gehen will, der entfernt die Batterien fr etwa 20 Sekunden und setzt sie dann wieder ein. III. Wie beugt man Virenbefall vor? Auch bei Computerviren gilt der oft strapazierte Spruch "Vorbeugen ist besser als heilen". (Toll, wie sich immer neue Beziehungen zwischen Informatik und Medizin finden lassen.) Mit "Vorbeugen" ist dabei das Befolgen einiger elementarer Regel gemeint, die hier kurz erwhnt werden sollen: Die 10 goldenen Regeln zum Schutz vor Virusprogrammen: ====================================================== 1. Nie mit Originalen sondern nur mit Sicherheitskopien arbeiten! (Die Unart, Software mit einem Diskettenkopierschutz zu versehen, ist zum Glck fast nur noch bei Spiele-Software verbreitet) 2. Booten Sie immer mit einer eigenen, stets schreibgeschtzten Disk! (Denken Sie daran, da auch bei autobootfhigen Festplatten zunchst der Bootsektor der Diskette in Laufwerk A gelesen wird!) 3. Aktivieren Sie wenn mglich den Schreibschutz der Diskette! Sie sollten fr RAM-Disk und Festplatte gegebenenfalls das beiliegende Accessory verwenden. 4. Bei fremden Disketten die Harddisk ausschalten und das Zweitlaufwerk leer lassen. Nach Beendigung des Programms den Rechner ausschalten! 5. Immer zwischen Programm- und Daten-Diskette unterscheiden, erstere stets schreibschtzen! 6. Auf Raubkopien verzichten!!! 7. Ein Reset ist kein Schutz vor Viren im RAM, nur AUSSCHALTEN (mind. 15 Sekunden) beseitigt speicherresidente Viren! 8. Neue Software zunchst mit dem VIRENDETEKTOR berprfen! (Mehrere PD-Versender, aber auch bekannte Firmen (z.B. GFA-Systemtechnik) haben schon versehentlich verseuchte Disketten ausgeliefert!) 9. Den VIRENDETEKTOR regelmig updaten lassen, damit Sie immer mit der neusten Version, die regelmig an die aktuelle Virenentwicklung an- gepasst wird, arbeiten! Virenprogrammierer kommen stndig auf neue Ideen, wie zum Beispiel die Entwicklung von Bootsektor-Viren auf NICHT ausfhrbaren Bootsektoren gezeigt hat. Bei keiner anderen Programmsparte sind regelmige Updates so wichtig, wie bei Viren- killern! Bedenken Sie, da die Versionen, die auf den Disketten von PD-Versendern erscheinen, NIE den aktuellen Stand des VIRENDETEKTORS widerspiegeln - und damit zumeist auch nicht den aktuellen Stand der Virenentwicklung! Wie Sie registrierter Benutzer werden und so regelmig in den Besitz der neusten Version gelangen, erfahren Sie am Schlu dieses Textes. 10. Wenn sich doch ein Virus bei Ihnen eingeschlichen hat, informieren Sie alle, an die Sie den Virus eventuell weitergegeben haben knnten; kopieren Sie Ihnen den VIRENDETEKTOR (aber bitte den kompletten Ordner) am besten gleich mit! Eine weitere Art der Vorbeugung gegen Bootsektorviren ist die sogenannte "Immunisierung" von Bootsektoren. Darauf werde ich weiter unten noch ausfhrlich eingehen. Leider gibt es bei Computerviren wie auch bei ihren Kollegen aus der Biologie kein Allheilmittel. Selbst das strenge Befolgen dieser Tips ist keine Garantie, da es nicht doch irgendwann einmal einem Virus gelingt, Ihre Disketten oder die Festplatte zu infizieren und Schaden anzurichten. So hat man beispielsweise bis vor kurzer Zeit angenommen, ein nicht ausfhrbarer Bootsektor sei in jedem Fall als harmlos einzustufen. Wie inzwischen bekannt ist, war dies eine krasse Fehleinschtzung! Diese Tips sind allerdings zum jetzigen Zeitpunkt gegen alle bekannten Viren auf dem ATARI ST ein absolut sicherer Schutz. Ich mchte an dieser Stelle noch auf eine hufig gestellte Frage eingehen: Es besteht anscheinend der weit verbreitete Irrtum, da ein Packen von Programmfiles mit PFX-PAK, ICE-PACK oder PACK2 ein zustzlicher Schutz vor Link-Viren darstellt. Dies ist aber nicht der Fall. Sie wissen nicht, was PFX-PAK, ICE-PACK oder PACK2 machen? - Ganz einfach: Diese Programme erstellen aus einem Programm ein gepacktes Programm, welches aber nach wie vor ausfhrbar bleibt und sich beim Programmstart selbst entpackt! Der Vorteil liegt auf der Hand, die Programme belegen nur noch 50-60% des Speicherplatzes auf der Diskette oder Festplatte und werden zudem von Diskette schneller gestartet, da der Zeitbedarf fr das Entpacken durch die verkrzte Ladezeit mehr als wettgemacht wird. Eines dieser Programm finden Sie brigens auch auf den Utility-Disketten zum VIRENDETEKTOR (dazu unten mehr). Auch wenn das Packen von Programmen einige Vorteile bietet, ein Schutz vor Link-Viren ist dadurch NICHT gegeben. Zwar kann das gepackte Programm selbst nicht mehr befallen werden, aber statt dessen ist die Entpack-Routine, die ja bei jedem Programmstart ausgefhrt wird, nun Ziel des Virus. Die Ausbreitung von Link-Viren wird also weder verhindert noch verlangsamt! Richtig gefhrlich wird es, wenn ein bereits befallenes Programm nachtrglich gepackt wird. Entweder, weil der Befall nicht bekannt ist oder weil jemand auf diese Weise seine Viren "unter die Leute" bringen will. Denn nun wird ja auch der Viruscode mitgepackt. Dadurch ist der VIRENDETEKTOR nicht mehr in der Lage, solche Virencodeteile zu erkennen, obwohl der Virus beim Starten eines solchen gepackten Programms nach wie vor aktiv wird. Sie sollten also solche Programme vor dem berprfen wieder entpacken. Leider wei man oft nicht, da ein Programm in einer solchen selbstauspackenden Form vorliegt. Deshalb wird der VIRENDETEKTOR in der nchsten Version anzeigen, ob ein Programm gepackt ist und welcher Packer verwendet wurde. Die Erstellung der CRC-Prfsumme hilft natrlich auch bei der Bekmpfung solcher Viren. IV. An welchen Effekten erkennt man Computerviren? Ich habe schon einige Effekte, die von Viren verursacht werden knnen, in Kapitel I erwhnt. Es gibt aber noch viel bsartigere Viren, sie knnen teilweise sogar Schden an der Hardware verursachen, indem sie z. B. den Schreib-/Lesekopf des Laufwerks/Festplatte laufend gegen den Anschlag bewegen oder (bei IBM-Kompatiblen mit Hercules-Karte) die Graphikkarte so programmieren, da diese irreparablen Schaden nehmen kann. Ein (Bootsektor-)Virus der ersten Art - er fhrt den Kopf der Festplatte bis zur Zerstrung an den Anschlag - ist inzwischen auch auf dem ST bekannt, da als Auslser das Datum 31.12.1988 diente, werden die meisten Festplatten diesen Virus hoffentlich unbeschadet berstanden haben. Besitzer von Farbmonitoren droht auch noch eine andere Gefahr! Man kann den ST dazu bewegen, auch im Farbbetrieb auf die (monochrome) Bildfrequenz von 71 Hz umzuschalten. Damit ndert sich die Zeilenfrequenz von 16 MHz auf 36 MHz. Den "Notreset", den der ST normalerweise bei solcherlei Unfug ausfhrt, kann man softwaremig sperren. Wenn Sie einmal ein dutzend Farbmonitore brig haben, sollten Sie ruhig ausprobieren, wie lange der Farbmonitor diese Prozedur berlebt. Derzeitige Hochrechnungen schwanken zwischen einer Sekunde und wenigen Minuten. Sicher ist jedenfalls, da Ihr Farbmonitor nach recht kurzer Zeit jede weitere Mitarbeit fr alle Zeiten verweigern wird. (Letzte Tests mit dem Original-ATARI-Farbmonitor haben gezeigt, da einige Bildschirme dieser Prozedur durchaus fast eine halbe Stunde gewachsen sind.) Ein Virus, der es auf die Zerstrung Ihrer Hardware abgesehen hat, knnte sich diesen Umstand zunutze machen. Das bisher kein derartiger Virus aufgetaucht ist, liegt wahrscheinlich an der schwierigen programmtechnischen Umsetzung des soeben gesagten. Sie sehen also, da auch die Hardware einem potentiellen Virus jede Menge Angriffspunkte bietet. Glcklicherweise sind nicht alle Viren auf dem ST dermaen bsartig. Ein paar Beispiele sollen das verdeutlichen: Ein (Bootsektor-)Virus dreht, nachdem er sich fnf mal weiterkopiert hat, die Bewegungsrichtung der Maus um 180 Grad. Dieser Virus strt also "nur" Ihren normalen Arbeitsflu, ohne das es zu Datenverlust kommt. Ich habe schon gesehen, wie ein Opfer dieses Virus einfach seine Maus umdrehte und weiterarbeitete als wre nichts passiert. Ein anderer Virus schreibt, nachdem man drei Stunden am Rechner gearbeitet hat, die Meldung "Ihr Computer hat AIDS" auf den Monitor und stoppt den Prozessor. Abgesehen davon, da dies ein ausgesprochen geschmackloser "Scherz" ist, wird jemand, der drei Stunden einen Text eingegeben hat ohne abzuspeichern, ber diesen Virus wenig lachen knnen. Ein weiterer Virus berschreibt in jedem VBL-Interrupt, also nach jedem Bildaufbau (d.h. 71 mal pro Sekunde beim Monochrom- und 50 bzw. 60 mal pro Sek. beim Farbmonitor) ein beliebiges Byte im Speicher mit einem Zufallswert. Die Folge ist ein Absturz des Rechners, sobald wichtige Programmteile oder ein Teil des Betriebssystems getroffen werden. Wenn Sie bei der Arbeit mit dem ST feststellen, da einige Programme beim Starten deutlich lnger brauchen als vorher, dann ist grte Vorsicht angezeigt. Es ist sehr wahrscheinlich ein Link-Virus, der diese Verzgerung beim Start verursacht. Sollten Sie bei der berprfung mit dem VIRENDETEKTOR keinen Befall feststellen, dann bedeutet dies noch nicht die vllige Entwarnung! Denn auch dann, wenn Sie mit der neusten VIRENDETEKTOR-Version arbeiten, ist es mglich, da bei Ihnen ein neuer Link-Virus aufgetaucht ist, der bislang noch nicht erkannt wird. Sind Sie sich nicht sicher, ob sich ein Link-Virus bei Ihnen eingenistet hat, dann schicken Sie mir eine Diskette mit dem mglicherweise verseuchten Programm. Ich werde Ihnen die Diskette umgehend zurckschicken und sofern es sich tatschlich um einen neuen Link-Virus handelt, bekommen Sie auch gleich eine Version des VIRENDETEKTOR, die diesen neuen Virus erkennt. Selbstverstndlich gilt dieses Angebot nur fr registrierte Benutzer, schon deshalb, weil nur diese immer mit der neusten Version arbeiten! Wenn Sie bisher noch nichts von Computerviren bemerkt haben, so gehren Sie entweder zu denen, deren Disketten noch "virenfrei" sind oder Sie beherbergen auf Ihren Disketten nur "harmlose" Bootsektor-Viren. Gerade auf dem ST gibt es einige Virenprogramme, die sich nur auf jeden erreichbaren Bootsektor kopieren, ohne berhaupt eine bsartige Wirkung zu entfalten. Jedoch auch solche Viren knnen Schaden anrichten, weil z.B. manche Spiele den Bootsektor als Lader oder als Kopierschutz benutzen und ein Bootsektor-Virus das Programm somit unbrauchbar macht. Auch MS-DOS-Disketten (PC-Ditto/PC-Speed) mgen einen Virus im Bootsektor berhaupt nicht. Manchmal werden Viren aber auch nicht als solche erkannt, weil Effekte, die nur gelegentlich auftreten, oft auf Programmfehler, defekte Disketten oder hnliches geschoben werden. Allerdings sollte man auch nicht gleich bei jedem Absturz oder Programmfehler einen Virus fr den beltter halten! Denn leider gibt es fr den ST zum Teil so besch...eidene Software, da berhaupt kein Virus mehr ntig ist, um den Anwender zum Wahnsinn zu treiben! Auch das TOS hat einige Eigenschaften, die den Schlu nahelegen, ATARI wollte eigentlich kein Betriebssystem, sondern einen 192 KByte groen Mammutvirus programmieren. Schlielich knnen sowohl defekte Disketten als auch ein beschdigter Rechner als Ursache fr diverse Probleme in Erscheinung treten. Neben einem Virenkiller sind daher auch ein Diskprfprogramm und ein Memorytester zur Lokalisierung von Fehlern ntzlich. Wer nicht ber derartige Utilities verfgt, der kann bei mir zwei (doppelseitige) Disketten mit insgesamt etwa 3 MB (!) der wichtigsten Hilfsprogramme (PD/Freeware/Shareware) erhalten. Auf diesen Disketten finden Sie unter anderem ein Programm zur Funktionsberprfung der RAM-Chips, ein Programm, das Ihre Disketten auf physikalische Defekte berprft (und rettet, was noch zu retten ist), ein Programm zur Wiederherstellung versehentlich gelschter Dateien, ein Archivierungsprogramm, mit dem Sie Ihre Programme und Daten vor Virenzugriffen schtzen knnen und vieles mehr. (Natrlich auch den Packer, der ca 1,5 MB auf eine doppelseitige Diskette packt!) Diese Disketten knnen Sie als registrierter Benutzer (und nur als solcher) bei mir erhalten! Dazu erhht sich Ihre Registrierungsgebhr lediglich um 5,- DM Unkostenbeitrag. Nheres dazu finden Sie in Kapitel IX. Mit dem Programm VIRENDETEKTOR haben Sie nun das geeignete Mittel in der Hand, um einen Virus zu entdecken, bevor er Unheil anrichten kann oder sich ber die gesamten Datenbestnde verbreitet hat. V. Neues von der Virenfront Die Entwicklung neuer Viren fr den ST scheint nicht mehr in dem Tempo voran zu schreiten, wie noch vor einigen Jahren. Das kann zum einen am gestiegenen Verantwortungsbewutsein der Virenprogrammierer liegen (wer's glaubt ...), oder aber an der gestiegenen Vorsicht der Anwender (wohl eher). Zudem verfgen die meisten ST-Besitzer inzwischen ber einen Virenkiller, mit dem Sie Ihre Disketten berprfen knnen. Lediglich die Gerchtekche kchelt weiter vor sich hin. Fr einige Zeitschriften ist das Thema "Computerviren" inzwischen zum beliebten Seitenfller geworden. Mit der Angst vor Computerviren lt sich die Auflage anscheinend deutlich steigern. Man bietet den Lesern ein paar drittklassige Virenkiller Marke "Bootsektor-Ex" zum abtippen und bringt ein paar "echte Insidertips". Da kommt dann ab und zu die Nachricht von einem Supervirus, das sogar schreibgeschtzte Disketten befallen soll (absoluter Hyper-Ober-Schwachsinn), man hrt von Original-Software, die einen Virus verbreitet, wenn Sie unrechtmig kopiert wird (noch schwachsinniger) und hnlichen Gruselmrchen. Eine wichtige Neuigkeit mchte ich Ihnen aber nicht vorenthalten: Es gibt Bootsektor-Viren, die sich im Speicher installieren, OBWOHL der Bootsektor NICHT AUSFHRBAR ist!!! Wie das geht? - Sehen Sie selbst: Das Betriebssystem des STs hat ein undokumetiertes Feature, mit dem sich Programme resetfest im Speicher installieren knnen. Nach dem Booten von Diskette oder Platte, aber noch vor Ausfhrung der Programme im AUTO-Ordner durchsucht das Betriebssystem den gesamten Speicher nach einer Speicher-Doppelseite (mit gerader Seitennummer, also $400, $600, ...), die folgende Eigenschaften erfllt: - erstes Long-Wort ist die Magic-Number $12123456 - in den zweiten vier Bytes steht ein Zeiger auf den Anfang der Speicherseite - Die (Word-)Summe aller Bytes in diesem 512 Bytes langen Bereich ist $5678 Die Suche luft von PHYSTOP abwrts bis $600. Sollte der ST fndig werden, so wird ein dort befindliches Programm ausgefhrt. Zuvor hat das Betriebssystem den Bootsektor der Diskette in den Speicher geladen, um zu prfen, ob der Bootsektor ausfhrbar ist. Dort verbleibt der Bootsektor als "Daten-Leiche", auch wenn er NICHT ausgefhrt wird. Nun braucht ein Bootsektor-Virus nur die entsprechenden Magics an den richtigen Stellen zu enthalten und der Virus wird installiert, OBWOHL der Bootsektor eigentlich nicht ausfhrbar ist! Derartige Viren laden dann - einmal im Speicher installiert - meistens noch Code-Teile nach. Diese sind auf normalerweise unbenutzten Bereichen (z.B. Sektor 4 und 5 der beiden FATs) gespeichert, so da der zustzliche Platzbedarf des Virus nicht auffllt. Die meisten Virenkiller (auch der VIRENDETEKTOR bis 2.9d) sind diesen Viren bislang auf den Leim gegangen, da nicht ausfhrbare Bootsektoren als harmlos klassifiziert wurden. Damit ist nun allerdings Schlu! Zu erwhnen bleibt noch, da diese Viren nicht TOS-unabhngig sind. Sie laufen also nur auf jeweils einer einzigen TOS-Version, da die absoluten Adressen des Diskettenpuffers, das ist der Teil des Speichers, in den der Bootsektor eingelesen wird, sich von TOS-Version zu TOS-Version verschoben haben. Somit stimmt die Lage des Magics immer nur fr eine TOS-Version. Da es aber bislang nur vier verschiedene offizielle TOS-Versionen gibt (1.0, 1.2, 1.4 und 1.6), braucht ein Virenprogrammierer nur drei (nicht vier, weil 1.4 und 1.6 die gleiche Diskettenpufferadresse besitzen) leicht modifizierte Versionen seines Virus in Umlauf zu bringen, um alle TOS-Versionen abzudecken. Vor einiger Zeit gab es auerdem ein "Update" des Virus-Construction-Sets. Zur Zeit wird diese Version aber meines Wissens nirgendwo vertrieben. Es ist ohnehin erstaunlich, da gegen ein derartiges Programm, welches auf Knopfdruck nahezu beliebige Link-Viren erzeugt, noch nicht gerichtlich vorgegangen worden ist. Zumal einige Softwarehuser fast ebensoviel Rechtsanwlte wie Programmierer beschftigen. Falls jemand wei, wo das neue VCS vertrieben wird, soll er mich doch bitte benachrichtigen! VI. So funktioniert der VIRENDETEKTOR Der VIRENDETEKTOR ist, wie schon im Vorwort beschrieben, uerst einfach in der Handhabung! Das Programm ist auf allen STs lauffhig; bentigt wird allerdings ein Monitor (bzw. eine Grafikkarte), die mindestens 640*400 Punkte liefert. Wer nur einen ST mit Farbmonitor hat, braucht sich nun aber nicht enttuscht abzuwenden. Es gibt zwar keine Version des VIRENDETEKTORs, die auf dem ST mit Farbmonitor luft, da beispielsweise die Darstellung eines kompletten Bootsektors in Hex und ASCII in der mittleren oder gar in der niedrigen ST-Monitorauflsung nicht vernnftig zu realisieren ist, aber mit einem kleinen Trick kommen auch Farbmonitor-Besitzer in den Genu dieses Programms: Der Trick heit MONOCHROM-EMULATOR! Dabei handelt es sich um ein kleines Programm, da auf dem ST-Farbmonitor die hohe Auflsung darstellt. Natrlich kann man von diesem Programm keine Wunder erwarten, d.h. die Bildschrfe und Auflsung erreicht natrlich nicht die eines SM 124, es stehen schlielich auch nur halb soviel Bildschirmpunkte zur Verfgung. Ein lngeres Arbeiten z.B. mit Signum wird mit diesem Emulator deshalb auch kaum zum Vergngen. Fr die Virenjagd mit dem VIRENDETEKTOR ist der Emulator aber auf dem Farbmonitor eine halbwegs akzeptable Lsung, da zumindest die Meldungen, die das Programm ausgibt, einigermaen lesbar sind. Trotzdem ist die Anschaffung eines SM 124 unbedingt zu empfehlen. Wer keinen solchen Emulator besitzt, kann einen solchen bei mir erhalten! Registrierte Benutzer schicken mir einfach eine formatierte Disk und einen ausreichend (!) frankierten Rckumschlag. Wer noch nicht registriert ist, gibt bei der Registrierung (nheres dazu in Kapitel VIII) bitte an, da er den Emulator bentigt. Er wird dann kostenlos beigelegt. Im groen und ganzen sind die Funktionen der einzelnen Menpunkte ja schon erlutert worden, hier finden Sie zu dem einen oder anderen Punkt einige ergnzende Erluterungen: Bei der Funktion 'Bootsektor berprfen' wird der Bootsektor des gewhlten Laufwerks (A oder B) eingelesen. Dann berprft das Programm zunchst ob der gelesene Bootsektor ausfhrbar ist. Falls das der Fall ist, so wird er mit allen Bootsektoren, die das Programm kennt (in dieser Version sind das immerhin etwa 50 Stck), verglichen. Kann VIRENDETEKTOR den Bootsektor identifizieren, so wird festgestellt, ob es sich um einen Virus handelt oder um einen legalerweise ausfhrbaren Bootsektor (z.B. Aladin-Disk, 60Hz-Bootsektor, TOS-Bootsektor, Lader fr ein Spiel, ...). Das wird dem Benutzer natrlich mitgeteilt (z.B. "Diese Disk ist eine ALADIN-Disk"). Diese Mitteilungen knnen unter dem Menpunkt "Weitere Optionen" mit "Info-Meldungen ein/ausschalten" auch unterdrckt werden. Damit ist bei der berprfung einer groen Zahl von Disketten ein noch schnelleres Arbeiten mglich. Wenn das Bootprogramm nicht zwingend erforderlich ist, kann es auch auf Wunsch entfernt werden. Falls es sich um einen Virus handelt, wird das ebenfalls gemeldet (natrlich auch bei abgeschalteten Info-Meldungen) und zwar sowohl mit seinem Namen (fr Viren, deren Herkunft im Dunkeln liegt, ist dieser Name allerdings von mir erfunden und somit wenig aussagekrftig) sowie mit dem Hinweis, in der wievielten Generation er vorliegt (natrlich nur bei mutierenden Viren, also Viren, die ein oder mehrere Bytes als Zhler verwenden). Dann kann der Virus auf Knopfdruck gelscht werden, d.h. der Bootsektor wird unter Aussparung der Seriennummer und der Diskettenstruktur-Information im Bereich $08-$1D vollstndig genullt. Gegebenenfalls wird die gewhlte Immunisierung aufgebracht. Sollte das Programm einen ausfhrbaren Bootsektor nicht identifizieren knnen, so wird auch das gemeldet und der Benutzer hat die Mglichkeit, eine Routine aufzurufen, die das Bootprogramm auf bestimmte Virenmerkmale untersucht. Das Bootprogramm wird dann als gefhrlich oder harmlos klassifiziert. Der dafr verwendete Algorithmus (registrierte Benutzer erhalten auf Wunsch eine genaue Beschreibung der verwendeten Merkmale und deren Gewichtung) hat sich bis heute in allen Tests als absolut zuverlssig erwiesen! Es gibt nur eine einzige Mglichkeit, da ein Virus diese berprfung (und die hnlich arbeitender Anti-Virenprogramme) unerkannt bersteht. Ich werde mich dazu aber nicht nher uern, da ich den Programmierern von Computerviren nicht auch noch Hilfestellung geben mchte. Bisher ist jedenfalls allem Anschein nach ein solcher Virus noch nicht aufgetaucht. Sollte dennoch einmal die Meldung erscheinen "Keine exakte Aussage mglich", so bleibt Ihnen nur noch folgender Test, um festzustellen, ob es sich mglicherweise doch um einen Virus handelt: Nehmen Sie zwei leere Disketten, die ich im folgenden mit A und B bezeichnen werden. Falls Sie eine Festplatte besitzen, so schalten Sie diese unbedingt ab! Sorgen Sie zunchst dafr, da Ihr Rechner frei von Viren ist, d.h. Rechner ausschalten und mit garantiert sauberer oder ganz ohne Diskette booten. Kopieren Sie nun die gesamte Diskette mit dem unbekannten Bootprogramm auf Disk A. Verwenden Sie dazu ein Kopierprogramm (z.B. FCopy oder Bitte ein Bit), damit auch der Bootsektor bertragen wird. Formatieren Sie dann Disk B neu. Nun booten Sie von Disk A und legen, nachdem das gewohnte Desktop erschienen ist, Disk B ein. Falls es sich bei dem unbekannten Bootprogramm auf Disk A um einen Virus handelt, so wird dieser sich bei der ersten Gelegenheit auf den Bootsektor der frisch formatierten Disk B kopieren. Diese Gelegenheit schaffen Sie nun, indem Sie Disk B ins Laufwerk legen, sich das Inhaltsverzeichnis anzeigen lassen und 'Arbeit sichern' im Desktop anwhlen. Schalten Sie Ihren Rechner einen Augenblick aus und dann wieder ein - um ein eventuellen Virus aus dem RAM zu verjagen, natrlich ohne Disk A oder B im Laufwerk! Nun knnen Sie den Bootsektor von Disk B mit dem VIRENDETEKTOR berprfen. Sollte der Bootsektor von Disk B nun ein unbekanntes Bootprogramm enthalten, dann kann das nur ein Virus sein! Diese Vorgehensweise ist leider etwas umstndlich, dafr sollte sie aber auch so gut wie nie notwendig werden! Wenn der untersuchte Bootsektor nicht ausfhrbar ist, so wird geprft, ob es sich um einen ganz normalen Bootsektor handelt oder ob Daten im Bootsektor stehen. Das knnen z.B. ein Copyright sein, Reste eines ehemaligen Virus, der mit einem fremden Viren-Killer bearbeitet worden ist oder hnliches. Wer mchte, kann auch diese Daten lschen, obwohl davon keine Gefahr ausgehen kann. Bei der berprfung einer gesamten Partition oder eines Laufwerks auf Linkviren werden seit Version 2.9d auch alle "versteckten" Files berprft. Das sind Dateien, bei denen das "hidden"-Attribut im Directory gesetzt ist. Diese Files werden im Directory (und AUCH in der systemeigenen Fileselect-Box) nicht angezeigt. Gleiches gilt auch fr Dateien mit gesetztem "system"-Attribut. Die berprfung auf Link-Viren kann durch Drcken der ESCAPE-Taste (bitte eine Weile gedrckt halten) vorzeitig abgebrochen werden. Sollten Sie einmal aus Versehen die ESCAPE-Taste gedrckt haben, wiederholen Sie die berprfung einfach noch einmal. Bei der berprfung werden alle Dateien mit den Extensionen PR*, AC*, APP, TOS, GTP und TTP, sowie mit den vier selbstdefinierten Extensionen bercksichtigt. Damit werden zum Beispiel auch Programme im Auto-Ordner erfat, die in *.PRX oder *.PR umbenannt wurden. Mit der Funktion "Einzelne Programme berprfen" knnen Sie auch Dateien anwhlen, die keine ausfhrbaren Programme sind. Natrlich ist es vollkommen sinnlos, beispielsweise eine Bildschirmgrafik oder eine ASCII-Datei auf Virenbefall zu untersuchen. Der VIRENDETEKTOR meldet dies entsprechend, wenn es sich nicht um eine Programmdatei handelt und erstellt dann auch keine CRC-Prfsumme. Ich werde oft gefragt, weshalb der VIRENDETEKTOR bei der Link- Virenberprfung so schnell arbeitet. Der Begriff "schnell" ist zwar relativ unbestimmt, aber wer ber eine schnelle Festplatte verfgt, oder die berprfung auf einer RAM-Disk vornimmt, wird tatschlich von der Geschwindigkeit des VIRENDETEKTORS angenehm berrascht oder sogar erstaunt sein. Bisweilen wird der eine oder andere Anwender ein wenig misstrauisch, ob denn bei dieser Geschwindigkeit alles mit rechten Dingen zugehe oder ob nicht vielleicht die berprfung nur deswegen so schnell sei, weil eben schlampig gearbeitet werde. Nun, diesen Befrchtungen mchte ich energisch entgegentreten! Um einmal zu verdeutlichen, warum der VIRENDETEKTOR so schnell arbeitet, werde ich kurz erlutern, was bei der berprfung einer Datei auf Link-Virenbefall geschieht. Zunchst einmal wird anhand des Dateianfangs berprft, ob es sich berhaupt um ein ausfhrbares Programm handelt. Es bleibt Ihnen unbenommen, Ihre Lieblingsbilder mit der Extension *.PRG zu versehen, der VIRENDETEKTOR erkennt, da es sich nicht um ausfhrbare Programme handelt und meldet dann, da ein Virenbefall einer solchen Datei somit nicht mglich ist. (Ein Starten dieser Datei im Desktop fhrt natrlich auch zu einer Fehlermeldung.) Fr diesen Fall ist die berprfung somit bereits beendet. Falls es sich aber um ein ausfhrbares Programm handelt, so wird nicht etwa die gesamte Datei in den Arbeitsspeicher geladen (das wrde viel zu lange dauern und ist vllig unntig), sondern nur der Teil, der von einem eventuell vorhandenen Link-Virus tatschlich verndert wrde. Insgesamt mssen nur knapp 300 Bytes gelesen werden, was auch von einer Diskette noch in akzeptabler Zeit zu machen ist. Danach werden die eingelesenen Teile der Datei auf eine Vernderung durch einen der bekannten Link-Viren berprft. Falls der CRC-Check eingeschaltet ist, wird zudem ber den Teil des Programmes, der sich bei einem Link-Virenbefall verndern MUSS, eine CRC-Prfsumme gebildet. Damit ist bei spteren berprfungen gewhrleistet, da auch ein Befall durch bislang unbekannte Link-Viren zuverlssig erkannt wird. Sie sehen also, da der VIRENDETEKTOR nur relativ wenig Massenspeicher- zugriffe bentigt. Gerade diese sind aber im allgemeinen dafr verantwortlich, wenn ein Virenkiller ein "Schlaftablettenfeeling" aufkommen lt. Es ist vllig unsinnig, ein komplettes Programm von mehreren hundert Kilobyte komplett in den Speicher zu laden, auch die Berechnung der Checksumme ber eine komplette Programmdatei ist nervttend langsam und absolut unsinnig. Ich bin sogar sicher, da sich die Geschwindigkeit des VIRENDETEKTORS noch um ein paar Prozent steigern lt, viel ist aber wohl nicht mehr herauszuholen. Immerhin hat sich die Arbeitsgeschwindigkeit von Update zu Update kontinuierlich gesteigert und das, obwohl sich die Anzahl der Viren, die das Programm erkennt, ebenfalls erhht hat! Wenn Ihnen der Aufbau der Dialogboxen auf dem Bildschirm zu langsam ist, dann sollten Sie einen sogenannten "Software-Blitter" verwenden (NVDI, TURBO ST oder QUICK ST). Ich kann hier aus Kompatibilittsgrnden nicht mehr viel herauskitzeln, schlielich soll der VIRENDETEKTOR auf allen ATARI ST/STE/TT Rechnern und mit diversen Grafikkarten laufen. Ein wichtiger Punkt bei der Beurteilung eines Anti-Virenprogramms ist die Anflligkeit fr Fehlalarme. D.h. wie hufig kommt es vor, da eine vermeintliche Infizierung durch einen Virus diagnostiziert wird, die in Wahrheit nicht vorhanden ist. Der VIRENDETEKTOR verhlt sich in diesem Punkt relativ unproblematisch. Wird ein unbekannter Bootsektor als infiziert gekennzeichnet, so kann man tatschlich zu beinahe 100% davon ausgehen, da es sich um einen bislang unbekannten Virus handelt. Es ist jedenfalls bis heute kein harmloses Bootprogramm aufgetaucht, welches vom VIRENDETEKTOR irrtmlich fr einen Virus gehalten worden wre. Bei Link-Viren ist es so, da die bekannten Link-Viren immer erkannt werden - wird ein Befall gemeldet, so kann es sich nicht um einen Fehlalarm handeln. Die berprfung der CRC-Prfsumme ist allerdings mit einer gewissen Unsicherheit behaftet. Zum einen kann nicht ausgeschlossen werden, da ein Programm zum Zeitpunkt der Prfsummenerstellung bereits von einem bislang unbekannten Virus befallen ist, zum anderen kann es zu Vernderungen an Programmen kommen, die nicht durch Virenbefall verursacht worden sind, die aber durch eine vernderte CRC-Prfsumme den Verdacht auf Virenbefall nahelegen. Letztlich ist der VIRENDETEKTOR in dieser Version nicht in der Lage, mehrere CRC-Prfsummen zu einem Programmnamen zu speichern. Wer also zwei verschiedene Programme mit dem Namen EDITOR (die Extension spielt keine Rolle) besitzt, der wird nur eine Prfsumme speichern knnen und somit bei einem der beiden Programme eine Vernderung gemeldet bekommen, die nicht auf Virenbefall zurckzufhren ist. WPROTECT.ACC und WPROTECT.PRG sind ein Bestandteil des Lieferumfangs des VIRENDETEKTORs. Eine Weitergabe dieser Dateien und des Quellcodes ist auch ohne die weiteren Files dieses SHAREWARE-Pakets zulssig, nicht jedoch umgekehrt! Das Accessory mu auf das Hauptdirectory Ihrer Bootpartition oder Bootdiskette kopiert werden und wird dann beim nchsten Reset installiert, das Programm gehrt in den AUTO-Ordner. brigens sind Programm und Accessory identisch. Sie brauchen es nur umzubenennen. Der Einfachheit halber ist es im VIRENDETEKTOR-Ordner doppelt vorhanden. Das Accessory ermglicht es Ihnen, beliebige Partitionen Ihrer Festplatte oder Ihre RAM-Disk vor Schreibzugriffen zu schtzen. Nach Aufruf des Accessories erscheint eine Alert-Box, in der Sie mittels der Pfeil-Buttons alle angemeldeten Laufwerke anwhlen knnen. Durch Anklicken des "Weiter"-Buttons kann fr das gewnschte Laufwerk der Schreibschutzstatus gewhlt werden. Der "Ende"-Button verlt das Accessory und bernimmt die gewnschte Schreibschutzeinstellung. Sie knnen die gewhlte Konfiguration auch abspeichern, indem Sie gleichzeitig mit dem Anklicken des "Ende"-Buttons die ALTERENATE-Taste sowie die linke Shift-Taste gedrckt halten. Die gewhlte Einstellung wird im Accessory selbst abgespeichert und steht dann nach dem nchsten Reset defaultmig sofort wieder zur Verfgung. Eine mit WPROTECT schreibgeschtzte Partition oder RAM-Disk verhlt sich genau wie eine schreibgeschtzte Diskette. Beim Versuch etwas zu schreiben oder zu lschen erscheint die von dort bekannte Alert-Box. Der Schreibschutz kann auch von den zur Zeit im Umlauf befindlichen Viren nicht umgangen werden, da er sehr hardware-nah programmiert wurde. Dennoch bietet er nicht den absoluten Schutz eines Hardware-Schreibschutzes! Das Accessory wurde auf den TOS-Versionen 1.00, 1.02 1.04, 2.05, 3.01 und 3.05, mit diversen RAM-Disks sowie mit den Festplatten SH204, SH205, Megafile 30 und einigen SCSI-Platten getestet. Es luft mit dem AHDI von Atari ebenso zusammen, wie mit dem CBHD vom Scheibenkleister und Julian Reschkes HUSHI. TROTZDEM empfehlen wir bei der Verwendung eines anderen Treibers (insbesondere bei VORTEX-Treibern) Vorsicht walten zu lassen. Die Bedienung des Accessories knnte zwar noch etwas komfortabler sein, wir haben aber mehr Wert auf sparsamen Umgang mit Speicherplatz gelegt. Das Accessory belegt NICHT EINMAL 6 KBYTE Ihres wertvollen Hauptspeichers, damit ist seine Verwendung auch auf einem 0,5 MB Rechner kein Problem! Durch Umbenennen in WPROTECT.PRG knnen Sie das Accessory brigens auch als Applikation starten! Genaueres erfahren Sie in der Datei WPROTECT.TXT. Fr die Programmierung des Accessories geht mein Dank an Christoph Conrad, der auch sonst einiges zum VIRENDETEKTOR beigetragen hat. Als letzten Hinweis mchte ich Sie noch daran erinnern, da Sie vor der Arbeit mit VIRENDETEKTOR dafr sorgen, da sich kein Virus im Speicher aufhlt. Das wrde sich nmlich sonst nach Restaurieren des Bootsektors gleich wieder dort einnisten. VIRENDETEKTOR berprft zwar zu Beginn, ob sich ein Virus im Speicher aufhlt und meldet sich, wenn es einen Virus findet, ich kann jedoch nicht dafr garantieren, da diese berprfung wirklich jeden Virus im Speicher entdeckt. Deshalb ist dringend zu empfehlen, vor dem Start von VIRENDETEKTOR mit einer garantiert sauberen Diskette zu booten! (Sollten Sie sich nicht sicher sein, ob Sie berhaupt noch eine unverseuchte Diskette besitzen, so booten Sie einfach ohne Diskette, das dauert zwar etwa 40 Sekunden, ist dafr aber auch totsicher.) VII. "Immunisierung" - Schutz vor Bootsektorviren??? Viele Anti-Virenprogramme versprechen eine "Immunisierung" des Bootsektors zum Schutz vor Bootsektorviren. Diese "Immunisierung" soll den Bootsektor vor dem Zugriff eines Virus schtzen oder den Befall zumindest erkennbar machen, bevor der Virus sich weiter verbreitet und Schaden anrichtet. Um dieses Ziel zu erreichen sind zwei Methoden verbreitet: Zum einen kann man an den Beginn des Bootsektors die Kombination 9656 ($6038) schreiben, das ist im Maschinencode ein BRA +$38, also ein Sprung zum Beginn eines Bootprogramms. Dieses zunchst unsinnig erscheinende Vorgehen, schlielich existiert weder ein Bootprogramm, noch ist der Bootsektor berhaupt ausfhrbar, hat durchaus einen Sinn. Viele Bootsektorviren schauen freundlicherweise vor der Infizierung eines Bootsektors nach, ob sich schon ein ausfhrbares Programm im Bootsektor befindet und verzichten dann auf eine Infizierung. Dieses Nachschauen besteht aus einer Kontrolle der beiden ersten Bytes des Bootsektors, findet sich dort ein $6038, so nimmt der Virus die Existenz eines Bootprogramm an und lt die Finger vom Bootsektor. Damit sind solchermaen immunisierte Disketten tatschlich vor dem Zugriff einiger Viren sicher. Allerdings hat dieses Verfahren auch seine Schattenseiten, da es erstens nur vor Viren schtzt, die freundlicherweise die oben erwhnte berprfung vornehmen (wie es z.B. der SIGNUM-Virus oder der Virus der Bayrischen-Hackerpost tun) und somit keinen sicheren Schutz darstellt, sowie zweitens - und das ist sicher ein ebenso schwerwiegender Nachteil - einen eventuellen MS-DOS kompatibelen Bootsektor (z.B. fr den PC-Ditto) fr MS-DOS ungeniebar macht. TOS und MS-DOS haben nmlich ein sehr hnliches Diskettenformat, man kann MS-DOS Disketten deshalb problemlos mit einem ATARI ST lesen und auch auf dem umgekehrten Weg ist das mglich, wenn beim Formatieren einige Feinheiten beachtet werden. (Einige Formatierprogramme - wie z.B. HYPERFORMAT 3.xx tun das bereits.) Eine dieser Feinheiten ist die Bytefolge $EB 34 90 (8086-Code fr einen relativen Sprung und ein NOP) mit welcher der Bootsektor beginnen mu, wenn er von einer MS-DOS Maschine gelesen werden soll. TOS ist es bei nicht ausfhrbaren Bootsektoren vllig egal was dort steht, MS-DOS ist da leider etwas empfindlich. ber den Sinn einer solchen Immunisierung kann also gestritten werden; einige Anti-Virenprogramme fhren sie durch (z.B. G-DATA ANTI-VIREN-KIT I, VDU, ...) andere nicht (SAGROTAN, ANTIBIOTUKUM, ...)! Eine Unverschmtheit ist allerdings die Behauptung, diese Immunisierung sei ein zuverlssiger Schutz vor allen bekannten Bootsektorviren, wie sie zum Beispiel von G-DATA in Bezug auf ihr Anti-Viren-Kit I aufgestellt wurde. Entweder diente diese Behauptung der bewuten Kufertuschung, um das eigene Produkt geldbeutelfllenderweise an den Mann/die Frau zu bringen (sehr wahrscheinlich) oder sie war ein Zeichen vlliger Unkenntnis (eigentlich genauso wahrscheinlich), denn tatschlich gibt es bereits mehrere(!) Bootsektorviren die diese "Immunisierung" vllig kalt lt. Die zweite Immunisierungsmethode wurde aus der Erkenntnis geboren, da die oben genannte Methode nicht der Weisheit letzter Schlu sein kann. Die Idee ist recht einfach: Man schreibe ein Bootprogramm in den Bootsektor, welches sich beim Booten mit einer Meldung auf dem Bildschirm bemerkbar macht. Es schreibt zum Beispiel "Diskette OK." auf den Bildschirm. Sollte nun ein Virus diese Diskette befallen (und somit unser Bootprogramm berschreiben), so fehlt beim nchsten Booten diese Meldung und der Benutzer wei, da sich ein Virus im Bootsektor befindet. Dieser Virus kann dann mit einem Anti-Virenprogramm vernichtet werden. Mit dieser Art der Immunisierung wird inzwischen recht hufig gearbeitet (SAGROTAN, ANTIVIR, G-DATA ANTI-VIREN-KIT III ...). Natrlich verrt sich jeder Virus durch das Ausbleiben der Schutzmeldung, allerdings ist neben der Unvertrglichkeit mit MS-DOS (siehe oben) zu beachten, da dieses Schutzprogramm nur bei Disketten verwendet werden kann, die noch kein (ntzliches) Bootsektorprogramm enthalten. Zudem mssen dann natrlich alle Disketten, von denen eventuell mal gebootet wird mit diesem Schutzprogramm versehen werden, denn ein Ausbleiben der Meldung beim Booten wird ja als ein Zeichen fr Virenbefall interpretiert. Geben Sie eine solchermaen behandelte Diskette an jemanden weiter, der diese Art von Schutzbootsektor noch nicht kennt, so kann er zu allem berflu noch fr einen neuen Virus gehalten werden. An dieser Stelle hatte ich in einem lteren "LIES_DAS" zu einer vorherigen Version des VIRENDETEKTORS geschrieben: "Auf den ersten Virus, der sich mit "Bootsektor OK" meldet warte ich noch...". Nun, dieses Thema scheint jemand aufgegriffen zu haben, denn inzwischen gibt es tatschlich einen Virus, der beim booten eine hnliche Meldung ausgibt und damit dem Benutzer einen Immunisierungs-Bootsektor vorgaukelt. Sie sehen also, was von solchen Meldungen zu halten ist. Denn neben diesem kurzen Text bietet der Bootsektor dann noch ausreichend Platz fr den Virencode. Dennoch ist diese Art der "Immunisierung" besser, als die Immunisierung mit dem Pseudobranch ($6038). Fr Festplattenbesitzer, die immer die gleiche Diskette im Laufwerk haben, aber von der Platte booten, kann Sie sogar empfohlen werden. Die allerneueste Masche ist ein Schutzprogramm der letztgenannten Art, das sich selbst wie ein Virus auf jeden noch nicht ausfhrbaren Bootsektor schreibt! Dieses Bootprogramm meldet sich beim Booten mit dem Kommentar, da der Bootsektor nicht verseucht ist. Ursprung ist ein Anti-Virenprogramm namens VIRUS-DESTRUCTION-UTILITY (VDU) 3.2 aus den Niederlanden. Ich halte das fr eine uerst ble Sache, denn ob ich meine Disketten mit einem solchen Bootprogramm versehe, mchte ich schon gerne selbst entscheiden. Es darf nicht dazu kommen, da jeder Programmierer seine Programme, nur weil er sie fr eine segensreiche Entwicklung hlt, auf diese Weise unkontrolliert verbreitet! Diese Erkenntnis scheint auch dem Autor dieses Virenkillers gekommen zu sein, denn in der neuen Version seines Programmes ist diese Art der "Immunisierung" nicht mehr enthalten. Nach meiner Ansicht sind alle diese Immunisierungs-Bemhungen im Grunde ebenso nutzlos wie aufwendig! Wer seine Programme und Disketten einmal komplett berprft und gegebenenfalls von Viren befreit hat, desweiteren jedes neue Programm zunchst mit dem VIRENDETEKTOR berprft (das gleiche bei Disketten, die man verliehen hat), dazu die oben genannten Vorsichtsmaregeln befolgt, sollte in Zukunft keinen rger mehr mit Computerviren haben. Da man ber die Immunisierung von Bootsektoren aber wohl auch anders urteilen kann und ich jedem Anwender die Mglichkeit offenlassen mchte, nach eigener Fasson glcklich zu werden, bietet der VIRENDETEKTOR ab Vers. 2.9 auch die Mglichkeit zur Erzeugung eines solchen "Immunisierungs"- Bootsektors. Damit komme ich den Wnschen einiger Anwender des VIRENDETEKTORs nach - wie Sie sehen lohnt es sich durchaus, als (registrierter) Anwender Verbesserungsvorschlge zu machen. Wenn mglich werden diese in der nchsten Programmversion bercksichtigt. Und da ich mich nicht entscheiden konnte, welcher der beiden erwhnten Immunisierungs- Methoden ich den Vorzug geben sollte, drfen Sie sich entscheiden, welche Methode Sie anwenden wollen, sofern Sie ein Freund solcher Manahmen sind. Ich habe es mir aber nicht verkneifen knnen, noch eine kleine Verbesserung an der Methode mit dem ausfhrbaren Bootsektor-Immunisierungsprogramm vorzunehmen. Wenn Sie mit dem VIRENDETEKTOR einen solchen Immunisierungs- bootsektor auf die Diskette schreiben, DANN BLEIBT DIESE DENNOCH MS-DOS-kompatibel (selbst wenn sie es vorher nicht war). Probieren Sie es ruhig auf einem PC einmal aus. Als dritte Immunisierung besteht noch die Mglichkeit, sich vom VIRENDETEKTOR ein kleines Programm in den Autoordner schreiben zu lassen, das den Bootsektor bei jedem Booten auf Vernderungen berprft. Dazu braucht der Bootsektor nicht manipuliert zu werden, er wird einfach zum Vergleich in eine Datei auf die Diskette geschrieben. Der groe Vorteil dieser Methode ist die absolute Sicherheit, denn der Bootsektor kann jederzeit bei Befall wieder durch den Originalbootsektor, der ja in einer Datei vorliegt, ersetzt werden. Allerdings ist dieses Verfahren nur fr diejenigen von Interesse, die von Disketten booten. Festplattenbesitzer sollten - wenn berhaupt - eine der beiden erstgenannten Immunisierungsarten verwenden. Beim Programmstart ist die Immunisierung abgeschaltet, wird also ein Bootsektor neu geschrieben weil er z.B. von Viren befallen war, dann wird er gelscht (bis auf die Disketten-Strukturinformationen und die Seriennummer) und MS-DOS-kompatibel gemacht. Haben Sie im Menpunkt "Weitere Optionen" allerdings "Immunisierung durch $6038" gewhlt, dann wird diese Bytefolge in die beiden ersten Bytes des Bootsektors geschrieben und der Rest des Bootsektors gelscht. Als Alternative bietet sich noch die Mglichkeit "Immunisierung durch Bootprogramm" an, bei der ein ausfhrbares Bootprogramm in den Bootsektor geschrieben wird. Dieses Programm meldet sich dann beim Booten mit einem Glockenton und dem Hinweis, da der Bootsektor nicht befallen ist. Dieser Text ist im Unterschied zu den Meldungen anderer Anti-Virenprogramme so lang, da sich jeder davon berzeugen kann, da dieses Bootprogramm tatschlich nichts anderes machen kann, als diesen Text ber Cconws (Gemdos 9) auszugeben. Fr andere Routinen ist da wirklich kein Pltzchen mehr frei. Abgesehen davon ist dieser Bootsektor TROTZ der Immunisierung noch MS-DOS-kompatibel.. Ich mchte noch anmerken, da die gewhlte Immunisierung in jedem Fall aufgebracht wird, wenn ein neuer Bootsektor erzeugt wird. Also nicht nur, wenn ein Virus vernichtet wird, sondern auch dann, wenn sie ein anderes Bootprogramm von der Diskette entfernen wollen. Wollen Sie also eine Immunisierung gleich welcher Art wieder entfernen, dann mu "Keine Immunisierung" gewhlt sein. VIII. Was tun im Fall des (Be)falls? Bei Bootsektor-Viren ist die Rettung der Software meistens kein Problem. Mit Anti-Viren-Programmen, z.B. mit dem VIRENDETEKTOR ist ein einmal identifizierter Virus im Bootsektor schnell beseitigt. Denn gleichen Zweck erfllt ein Disk-Monitor, allerdings mu man dann wissen, wie ein Virusprogramm aussieht, welche Bytes im Bootsektor nicht genullt werden drfen (Diskettenstruktur-Information im Bereich $08-$1D) und umstndlicher ist es auerdem. Bei Viren die sich direkt in Programme einklinken ist die ganze Sache nicht so einfach. Man bentigt schon hervorragende Assemblerkenntnisse und einen guten Debugger, um ein Programm zu retten. Oft ist es auch dann nicht mglich, mit einem Anti-Viren-Programm "auf Knopfdruck" jedenfalls bis heute noch nicht. Gegenteilige Behauptungen einiger Virenkiller haben sich im Test bislang noch alle als heie Luft herausgestellt. Lediglich die Entfernung des "Milzbrand-Virus" ist bereits erfolgreich gelungen. Wenn sich also ein Link-Virus in Ihre Programmsammlung eingeschlichen hat, dann sollten Sie alle verseuchten Programme lschen und durch Sicherheitskopien ersetzen. Wenn Sie keine Sicherheitskopien angefertigt haben, knnen Sie die befallenen Programme auf die Verlustliste setzen; aber wer arbeitet schon mit Originalen ohne Sicherheitskopie!?! Sollten Sie einmal von einem wichtigen Programm keine Kopie angefertigt haben (na, na,...) oder sollte auch das Original verseucht sein (wohl nich' im Panzerschrank aufbewahrt, wa?), dann knnen Sie das Programm, sofern es noch einwandfrei luft, auf eine separate Diskette kopieren und weiterbenutzen. Das kann jedoch nur eine absolute "Notlsung" sein und die folgenden Regeln mssen Sie u n b e d i n g t beachten: 1. Starten Sie ein infiziertes Programm nur wenn keine Diskette im Zweitlaufwerk liegt und lassen Sie Ihre Festplatte unbedingt ausgeschaltet. 2. Kopieren Sie nie verseuchte mit sauberen Programmen auf dieselbe Diskette. 3. Geben Sie Datum und Uhrzeit beim Systemstart nicht ein, sondern belassen Sie das Systemdatum als aktuelles Datum (manche Viren werden erst ab einem bestimmten Datum aktiv). 4. Kennzeichnen Sie die Diskette mit dem verseuchten Programm!!! 5. Geben Sie n i e verseuchte Programme weiter! 6. Rechner nach Benutzung des Programms a u s s c h a l t e n !!! Besser ist natrlich, wenn Sie rechtzeitig eine Sicherheitskopie angefertigt haben und das infizierte Programm lschen knnen. Glcklicherweise sind Link-Viren auf Grund ihrer Verbreitungsweise (noch) weit weniger hufig als ihre Kollegen im Bootsektor. Falls Sie bei Ihrer Software Virenbefall festgestellt haben, informieren Sie umgehend alle, an die Sie eventuell verseuchte Disketten weitergegeben haben knnten!!! Hoffentlich wissen Sie nun in etwa was ein Computervirus ist, wie er arbeitet und wie man sich vor diesen ungebetenen Gsten schtzt. Weitere Informationen finden Sie vor allem in einschlgigen Fachzeitschriften. (Erwhnenswert erscheinen mir folgende Ausgaben: c't 4/87 und 7/88, Happy Computer 5/88, Atari Special 4/87 und 1/89, Chip 9/87, ST-Magazin (68000er) 9/88 und 3/89, TOS 11/90 u.s.w ...! Die Liste erhebt keinen Anspruch auf Vollstndigkeit, denn ich kann schlielich nicht alles lesen. Zum Ende noch eine Anmerkung: Falls Sie zu den Fanatikern gehren, die selbst Viren schreiben oder falls Sie mit dem Gedanken spielen selbiges zu versuchen - denken Sie an die Folgen fr andere User. Aber auch fr den Viren-Programmierer selbst kann seine Ttigkeit unangenehme Folgen haben. Im Strafgesetzbuch heit es: "Wer rechtswidrig Daten lscht, unterdrckt, unbrauchbar macht oder verndert, wird mit Freiheitsstrafen bis zu zwei Jahren oder Geldstrafe bestraft. Der Versuch ist strafbar." Wenn der von Ihnen programmierte Virus einem anderen einen finanziellen Schaden zufgt und Sie als Verursacher ausfindig gemacht werden knnen, werden Sie unter Umstnden mit hohen Schadenersatzforderungen zu rechnen haben. Gegebenenfalls knnen weitere Paragraphen des StGB auf Virenprogrammierer in Anwendung gebracht werden. Auch wenn Sie meinen, Ihr Virus fge niemandem Schaden zu - Finger weg!!! Es gibt z.B. einen Bootsektor-Virus auf dem ST, der eigentlich nichts tun sollte, als sich nur zu verbreiten. Der Schpfer dieses Virus hat sicher keinen Schaden anrichten wollen, durch einen Programmierfehler(!) kann dieser Virus jedoch den Rootsektor der Festplatte zerstren! Dieses Beispiel zeigt, da man von der Virenprogrammierung besser die Finger lt. Zudem gibt es wahrlich genug ntzliche Dinge zu programmieren! IX. Das SHAREWARE-Vertriebskonzept Das Programm VIRENDETEKTOR ist S H A R E W A R E . Falls Sie nicht genau wissen, was der Begriff "Shareware" bedeutet, hier eine kurze Erluterung: Mit "Shareware" bezeichnet man Programme, die frei kopiert und weitergegeben werden drfen, sofern sie weder verndert noch kommerziell Vertrieben werden. Wer mit einem SHAREWARE-Programm regelmig arbeitet, zahlt dem Autor eine Registrierungsgebhr. Deren Hhe hngt sowohl von der Komplexitt des Programms ab, als auch davon, was nach der Registrierung an weiterer Anwender-Untersttzung erfolgt. Diese Gebhr kann bei einigen Programmen durchaus dreistellige Betrge ausmachen, liegt aber immer wesentlich niedriger, als man fr vergleichbare kommerzielle Produkte ausgeben mte. Nach Zahlung dieses Betrages ist man "legaler" Anwender und erhlt dann weitere Leistungen, wie z.B. Updates, gedruckte Manuals, Untersttzung falls Fragen oder Schwierigkeiten beim Einsatz des Programms auftauchen, ... usw.! SHAREWARE-Programme sind KEINE Frei-Programme (Public-Domain), die Urheberrechte an diesen Programmen bleiben bestehen, allerdings drfen Kopien der Disketten frei weitergegeben werden, damit andere potentielle Anwender die Programme prfen knnen. Das Nutzungsrecht wird erst mit Zahlung der Registrierungsgebhr erworben. Um es nochmals klar zum Ausdruck zu bringen: Die Benutzung des Programms durch nicht registrierte User verstt gegen geltendes Recht! Lediglich eine kurze Testphase ist bei SHAREWARE-Programmen gestattet. Natrlich kann niemand kontrollieren, ob jemand das Programm benutzt ohne sich registrieren zu lassen. SHAREWARE ist eben Vertrauenssache! Das SHAREWARE-Konzept bietet sowohl dem Autor als auch dem Benutzer des Programms Vorteile: Der Autor hat keine Unkosten fr Vertrieb und Werbung - der Benutzer kann das Programm testen und zahlt den vergleichsweise geringen Betrag fr die Registrierung nur dann, wenn ihm das Programm zusagt. Wrde der VIRENDETEKTOR als kommerzielles Programm vertrieben, dann blieben mir (dem Programmautor) vom Verkaufspreis bestenfalls 20% brig. Das wrde heien, da der VIRENDETEKTOR ca. 90-100 DM kosten mte, damit mir (nach Abzug der Kosten fr Versand, etc.) der gleiche Betrag brigbliebe, wie jetzt als SHAREWARE-Programm. Damit drfte der Vorteil von SHAREWARE augenfllig werden! Public-Domain Programme sind dagegen Programme, bei denen der Autor auf alle Rechte verzichtet (im Gegensatz zu Shareware) und die somit z. B. auch verndert werden drfen, sofern das Copyrightvermerk des Autors nicht entfernt wird. Beim ST wird allerdings vielfach nicht so genau zwischen PD und Shareware unterschieden. Im brigen hat der Begriff "Public-Domain" selbst keine Rechtsverbindlichkeit. Oft wird auch bei PD-Programmen eine Vernderung des Programms ausdrcklich untersagt und um eine Spende fr den Autor gebeten. Im Gegensatz zu SHAREWARE-Programmen ist diese Spende jedoch freiwillig. Wichtig ist jedenfalls, da Sie bei Shareware mit dem Kauf der Diskette bei einem PD-Versender noch nicht fr das Programm bezahlt haben, sondern lediglich fr dessen Dienstleistung! Preiswerte PD-Hndler verlangen fr eine Diskette 4-7 DM, mehr als 10 DM sollten Sie keinesfalls bezahlen. Eine andere Quelle fr Shareware und PD-Software sind Mailboxen und Diskettentausch mit Freunden und Bekannten. Bei Sharewareprogrammen erwerben Sie das Nutzungsrecht an dem Programm erst durch Zahlung der Registrierungsgebhr an den Programmautor! Leider ist die Zahlungsmoral bei vielen ST-Besitzern (wie brigens auch beim Amiga) nicht sonderlich ausgeprgt. Dabei ist dieses Verhalten ziemlich kurzsichtig. Auf dem amerikanischen PC-Softwaremarkt ist das Sharewareangebot inzwischen nicht zuletzt deshalb so umfangreich und qualitativ hochwertig, weil die Autoren dieser Programme mit der Ehrlichkeit der Anwender rechnen knnen. Wer in Europa Shareware fr den ST entwickelt, wird jedoch auf Grund der mangelnden Resonanz schnell entmutigt. Das fhrt dazu, da der Anteil guter PD- und Sharewareprogramme weiter sinkt. Jedes gute Programm wird nur noch kommerziell vermarktet, der Vertrieb als Shareware funktioniert nur sehr beschrnkt. Als Folge zahlt der Anwender fr ein kommerzielles Programm das vier- bis fnffache im Vergleich zu einem gleichwertigen Sharewareprogramm. Natrlich gibt es auf dem PD-Markt auch eine Menge Schrott, so manches Programm ist die Diskette nicht wert, auf der es gespeichert ist. Aber Sie gehen im Unterschied zu kommerzieller Software keinerlei Risiko ein. Bevor Sie fr ein Programm zahlen, knnen Sie es auf Herz und Nieren testen. Diese Mglichkeit besteht bei kommerziellen Programmen nicht, hier mssen Sie oftmals die berhmte Katze im Sack kaufen. Jeder, der sich bei den Autoren, deren Sharewareprogramme er regelmig nutzt, registrieren lt, frdert und belebt die Entwicklung guter SHAREWARE-Programme fr den ST. Doch nun zurck zum VIRENDETEKTOR. Wenn Sie das Programm regelmig verwenden, dann sollten Sie sich registrieren lassen. Wer einen Drucker besitzt, hat es am einfachsten, in dem er sich die Datei REGISTER.TXT ausdrucken lt. Ich denke nach einer vierwchigen Testphase kann man entscheiden, ob man den VIRENDETEKTOR bezahlen will, oder ob man das Programm nicht weiter benutzen will, weil es einem nicht zusagt. Die Registrierungsgebhr fr den VIRENDETEKTOR betrgt 30,- DM! (Beziehungsweise 35,- DM incl. der beiden Utility-Disketten - dazu siehe unten) Schicken Sie diesen Betrag bitte als Verrechnungsscheck (oder in Bar) an meine Adresse: Volker Shnitz Schillerstr. 22 4053 Jchen 2 Geben Sie dabei bitte UNBEDINGT die Seriennummer Ihrer Version des VIRENDETEKTOR an. Die Seriennummer finden Sie in der Copyrightmeldung des Programms! Fr diesen Betrag erhalten Sie: 1. Sofort die gerade aktuelle Version des VIRENDETEKTORS zugeschickt, die Ihre persnliche Seriennummer enthlt. Diese Version knnen Sie dann an andere Interessenten weitergeben. Empfehlen Sie den VIREN- DETEKTOR weiter und weisen Sie auch auf das SHAREWARE-Konzept hin, den fr jeden Anwender, der sich mit Ihrer Seriennummer bei mir registrieren lt, erhalten Sie als Belohnung fr Ihre Empfehlung einen Scheck ber 10,- DM. Das soll fr Sie ein Anreiz sein, das Programm mglichst oft weiterzugeben. (Verteilen Sie den VIRENDETEKTOR fleiig an Ihre Bekannten, laden Sie ihn in Ihre Lieblings-Mailbox hoch, ...) 2. Eine aktualisierte Fassung dieses Textes, der auch auf eventuelle neue ST-Viren eingeht. 3. Alle zuknftigen Updates des VIRENDETEKTORS gegen eine geringe Gebhr fr Porto, Diskette und Verpackung! 4. Auf Wunsch (bitte angeben) eine ausfhrliche Erluterung der im Programm verwendeten Algorithmen, sowie ein Beispiel-Listing (in Assembler) fr die Arbeitsweise eines (relativ harmlosen) Virus. 5. Falls Sie nur einen Farbmonitor besitzen, knnen Sie bei mir einen MONOCHROM-EMULATOR erhalten. Dabei handelt es sich um ein kleines Programm, da auf dem Farbmonitor die hohe Auflsung darstellt. Die Qualitt dieses Emulators lt zwar sehr zu wnschen brig, da ein Farbmonitor/Fernseher nicht ber die Mglichkeiten des SM 124 verfgt, fr die Virenjagd mit dem VIRENDETEKTOR ist der Emulator aber auf dem Farbmonitor gerade noch akzeptabel. Geben Sie bitte bei der Registrierung an, ob Sie den Emulator bentigen! 6. Viele Probleme, die sich hnlich wie Virenbefall uern, gehen tatschlich auf andere Ursachen zurck. Neben Hardwaredefekten sind hauptschlich schlechte Disketten als Schuldige auszumachen. Um solchen Dingen auf den Grund zu gehen, bentigt man neben einem guten Virenkiller auch einige weitere Utilities, mit denen man z.B. Hardwarefehler findet oder beschdigte Disketten erkennt. Wer nicht ber derartige Utilities verfgt, der kann bei mir zwei (doppelseitige) Disketten mit ca. 3 Megabyte (!) der wichtigsten Hilfsprogramme erhalten. Der Inhalt der Disketten ist kompaktiert und kann problemlos innerhalb weniger Minuten automatisch entpackt werden. Auf diesen Disketten finden Sie unter anderem ein Programm zur Funktionsberprfung der RAM-Chips, ein Programm, um Ihre Dis- ketten auf physikalische Defekte zu berprfen (und zu retten, was noch zu retten ist), ein Programm zur Wiederherstellung ver- sehentlich gelschter Dateien und vieles mehr. Als registrierter Benutzer erhalten Sie diese ntzlichen Disketten fr einen Unkostenbeitrag von 5,- DM! Schicken Sie bei der Registrierung fnf Mark mehr, dann fallen keine weiteren Kosten fr Porto und Verpackung an, Sie erhalten die Utility-Disketten zusammen mit Ihrem neuen Exemplar des VIRENDETEKTOR. Wenn Sie bereits registriert sind, und die Diskette separat bestellen, kommen noch 3,- DM fr Porto und Verpackung hinzu. Fr 8,- DM (Scheck oder Fnfmarkschein + 3,- in Briefmarken) erhalten Sie dann umgehend eine Menge ntzlicher Software. Sollten Sie mit Ihrer Hard- oder Software Probleme haben, die in irgendeiner Weise mit Viren zusammenhngen, so stehe ich Ihnen gerne mit Rat (und Tat) zur Seite! Sie sehen also, da sich eine Registrierung in jedem Fall lohnt (unter Umstnden auch finanziell - siehe 1.)! Ich will auch nicht verschweigen, was es bei einer Registrierung NICHT gibt: Es gibt KEIN gedrucktes Handbuch und KEINE aufwendige Verpackung - beides wrde die Sharegebhr nur unntig in die Hhe treiben. Vielleicht biete ich spter einmal ein Handbuch gegen eine gesonderte Gebhr an - drucken Sie doch einfach diesen Text aus, dann haben Sie ein Handbuch, nach dem sich viele andere Programmautoren die Finger schlecken wrden. Um den Aufwand so klein wie mglich zu halten, werden auch keine Registrierungen per Nachnahme abgewickelt. Rechnungen oder hnliches stelle ich ebenfalls nicht aus. Lediglich kommerzielle Nutzer, die eine "Spezialversion" des VIRENDETEKTORS bestellen mchten (siehe Kapitel X) erhalten diese gegen Rechnung. Sollten Sie auch einen MS-DOS-kompatiblen Rechner besitzen - oder einen PC-Emulator (PC-Speed, AT-Speed, AT-Once, ...), dann bentigen Sie auch fr dieses System einen Virenkiller, denn der VIRENDETEKTOR luft natrlich nur unter TOS. Ich kopiere Ihnen auf Wunsch gerne die aktuellste Version des McAfee-VirusScan mit auf die VIRENDETEKTOR-Diskette (natrlich kostenlos). Dieser Shareware-Virenkiller ist ohne Zweifel das leistungsfhigste Programm dieser Art unter MS-DOS. Ich habe stndig die aktuellste Version - direkt aus den USA - vorrtig. Beachten Sie, da auch dieses Programm SHAREWARE ist und Sie es bei regelmiger Benutzung bezahlen mssen. X. Hinweise fr kommerzielle Nutzer und PD-Versender Wenn Sie dieses Programm zu kommerziellen Zwecken einsetzen (zum Beispiel zur berprfung aller von Ihnen vertriebenen Disketten oder hnlichem), dann sollten Sie die Registrierungsgebhr nach Ihrem Ermessen nach oben aufrunden. Als "Gegenleistung" knnen Sie von mir eine "Spezialversion" bekommen. Damit ist es zum Beispiel mglich, alle Disketten mit einem Immunisierungsbootsektor zu versehen, der beim Booten einen Text IHRER WAHL (ca. 350 Bytes) ausgibt. Zum Beispiel: ************************************* Diese Diskette wurde vom Softwarehaus XYZ-Software Hampelweg 69 1234 A-Dorf auf Virenbefall berprft ************************************* Dies ist nicht nur eine gute Werbung fr Sie, schlielich bleibt der Bootsektor auch erhalten, wenn PD-Disketten privat weiterkopiert werden, es zeigt auch, da Sie diese Diskette mit einem der leistungsfhigsten Virenkiller auf Virenbefall getestet wurde. Damit hat der Kufer die Gewissheit, auch tatschlich virenfreie Software zu bekommen. Auerdem ist der VIRENDETEKTOR zur Zeit der einzige Virenkiller, der Ihre Disketten trotz der Immunisierung in einem MS-DOS-kompatiblen Zustand belt. Fr eine Anpassung des VIRENDETEKTORs an Ihre persnlichen Vorstellungen sollten Sie aber mindestens 50,- DM auf die normale Registrierungsgebhr drauflegen! Ich bin auch gerne bereit, andere Sonderwnsche zu bercksichtigen, sofern der Aufwand dafr in einem angemessenen Rahmen bleibt. Falls Sie PD-Versender sind sollten sie folgendes beachten: Alle Rechte an diesem Programm liegen beim Autor, daher darf das Programm ohne meine Zustimmung nicht verkauft werden, keinem kommerziellen Programmpaket beigelegt werden und nicht in Mailboxen angeboten werden, in denen der Download gebhrenpflichtig ist! EIN VERTRIEB BER CHANNEL VIDEODAT ODER VERGLEICHBARE SYSTEME IST SEIT DER VERSION 3.0 AUSDRCKLICH UNTERSAGT! Die Weitergabe des VIRENDETEKTORs durch PD-Anbieter ist aber durchaus gestattet, sofern dem Kunden nur die Kosten fr die Dienstleistung (also das Kopieren der Diskette) und damit zusammenhngende Kosten in Rechnung gestellt werden. Sollte der Preis fr den VIRENDETEKTOR (incl. einer Diskette) eine Summe von 10,- DM bersteigen, gehe ich von einer kommerziellen Vermarktung des Programms aus, die nach dem Urheberschutzgesetz ohne meine Zustimmung nicht gestattet ist! Um es nochmals zu betonen: Eine Weitergabe des Programms durch PD-Anbieter ist dann gestattet, wenn die Gebhr fr das Kopieren (incl. der Diskette) einen Betrag von 10,- DM nicht bersteigt! Es wre schn, wenn Sie als PD-Anbieter sich auch dann bei mir als Anwender registrieren lieen, wenn Sie dieses Programm NICHT selbst verwenden! Schlielich liefern die PD- und Shareware-Autoren Ihnen quasi Ihre "Lebensgrundlage". Und ein wenig Resonanz wrde manche SHAREWARE-Autoren vielleicht davon abhalten, Ihre Programme ber andere Kanle zu verbreiten. Bei vielen SHAREWARE-Programmen gehen die Autoren nmlich inzwischen dazu ber, den PD-Versendern die Weitergabe Ihrer Programme zu untersagen. Aktuelle Beispiele sind die Programme GEMINI, RUFUS und SYSMON. Ich habe allerdings auch Verstndnis, wenn sich ein PD-Versender nicht bei jedem SHAREWARE-Autor, dessen Programm er vertreibt, registrieren lt. Die Unkosten wren in diesem Falle viel zu hoch. Aber berlegen Sie einmal, ob Sie sich nicht wenigstens jeden Monat bei EINIGEN Autoren registrieren lassen. Schlielich profitieren auch SIE von der Bereitschaft der Autoren, Ihre Programme als SHAREWARE oder Public-Domain zu verbreiten. Der kommerzielle Vertrieb von Disketten (also auch der Vertrieb von PD-Disketten), auf denen der Immunisierungs- Bootsektor des VIRENDETEKTOR aufgebracht wurde, ist nur registrierten Benutzern gestattet! XI. Schluwort Ich hoffe, dieser Text hat Ihnen einen kleinen Einblick in die Lage an der "Virenfront" auf dem Atari ST gegeben und der VIRENDETEKTOR hat Ihnen im Kampf gegen Computerviren gute Dienste geleistet. Ich wrde mich freuen von Ihnen zu hren - fr Anregungen und Kritik habe ich immer ein offenes Ohr. Selbstverstndlich habe ich alle Sorgfalt walten lassen, um ein fehlerfreies Programm zu erstellen. Trotzdem sind Fehler nie ganz auszuschliessen. Deshalb kann weder die juristische Verantwortung noch irgendeine Haftung von Seiten des Autors fr eventuelle Schden an Daten oder Programmen, die direkt oder indirekt auf die Benutzung dieses Programms zurckzufhren sind, bernommen werden! Viel Spa bei der Arbeit mit dem ST und wenig rger mit Viren wnscht Ihnen Volker Shnitz **************************************************************************** Anhang: Bekannte Programmfehler, Inkompatibilitten und Unschnheiten Folgende Probleme knnen bei der Benutzung dieser Version auftreten: - Das Programm wird abstrzen, wenn Sie versuchen, SPECTRE-Disketten (MAC-Emulator) auf Link-Virenbefall zu untersuchen. Der Grund fr dieses Verhalten ist die im Gegensatz zum GEM komplett andere Datei- Struktur der SPECTRE-Disks. Aus diesem Grund sehen auch die im Men- punkt "Bootsektor anzeigen" ausgegebenen Disketten-Strukturinfor- mationen reichlich schwachsinnig aus. Sollte eine SPECTRE-Disk von einem Bootsektor-Virus befallen sein, wird dieser selbstverstndlich erkannt - im brigen ist eine derartig befallene Diskette aber fr den SPECTRE nicht mehr lesbar. Daran ndert auch die Vernichtung des Virus meist nichts mehr. Es ist aber nur schwer vorstellbar, wie der Virus auf den Bootsektor einer solchen Diskette kommen sollte. - Falls beim Start des Programms noch Laufwerke in drv_bits ($4C2) angemeldet sind, die es aber tatsaechlich nicht mehr gibt, ver- abschiedet sich das Programm unter Umstnden mit dem "Unbekannten Fehler -1/-1" bei diskettenbezogenen Funktionen. (Bei der normalen Arbeit mit dem VIRENDETEKTOR kommt das so gut wie nie vor, es sei denn, Sie entfernen ein Laufwerk physikalisch, in dem Sie beispielsweise das Anschlukabel eines Laufwerks abziehen.) - Die Menpunkte zum Anzeigen/berprfen/Restaurieren des HD-Rootsektors arbeitenen auf dem ATARI TT nur bei Verwendung eines AHDI-kompatiblen Treibers. - Zur Zeit kann beim Anzeigen/berprfen/Restaurieren des HD-Rootsektors fr jedes angeschlossene Target nur auf Unit 0 zugegriffen werden. Wer also seine SH 204/205 oder Megafile mit einem zweiten Laufwerk ausge- rstet hat, der kann das an Unit 1 angeschlossene Laufwerk nicht ansprechen. Diese Einschrnkung ist nur fr einen sehr kleinen Teil der Benutzer von Bedeutung und wird in einem der nchsten Updates behoben sein. - Entfernen Sie bitte nicht die Diskette, whrend eine berprfung luft, da der VIRENDETEKTOR sonst abstrzt. Dies ist kein Fehler, den der VIRENDETEKTOR zu verantworten hat, sondern liegt an einer Unzulnglich- keit des verwendeten Compilers, die leider nicht zu umgehen war. - Einige wenige resetfeste Programme knnten vom VIRENDETEKTOR eventuell irrtmlich fr einen speicherresidenten Virus gehalten werden. Das Programm unterbricht den Programmlauf dann mit einer entsprechenden Meldung. In diesem Fall sollten Sie VIRENDETEKTOR nach Entfernen des betreffenden Programms erneut starten. - Das Programm luft mit allen bisher erschienenen offiziellen TOS- Versionen, lediglich bei uralt Disketten-TOS-VERSIONEN gibt es leider gelegentlich Verschiebungen der Schrift auf dem Bildschirm (Ursache unbekannt)! Ansonsten drften bei der Benutzung des VIRENDETEKTORS keine Probleme auftreten. Sollte jedoch beim Arbeiten mit dem VIRENDETEKTOR dennoch ein Fehler auftreten, dann erscheint eine Meldung "Unbekannter Fehler xyz aufge- treten". Bitte teilen Sie mir dann die ausgegebene Fehlernummer mit, sowie eine kurze Schilderung, wie Sie diesen Fehler erzeugt haben. Es wre auch ntzlich zu erfahren, wie Ihr System ausgerstet ist, mit welcher TOS-Version Sie arbeiten (falls Sie nicht wissen, um welche Version es sich bei Ihrem TOS handelt, gengt auch das Systemdatum) und welche residenten Programme sie verwenden. Am besten Sie erzeugen ein Protokollfile mit dem Virendetektor unter den Bedingungen, die zum Absturz gefhrt haben und schicken mir dieses auf Diskette zu. Was gibt's in der nchsten VIRENDETEKTOR-Version? Ich arbeite fleiig weiter an diesem Programm. Neben der Verbesserung kleiner Fehler, die in einem so umfangreichen Programm leider unver- meidlich sind, wird es stndig an die aktuelle Virenentwicklung an- gepasst. Zudem sind fr die nchste Version unter anderem folgende Erweiterungen vorgesehen: - Der VIRENDETEKTOR installiert eine stndige Viren-berwachung! Sobald sich ein Virus im System befindet, erhalten Sie eine Warnmeldung und knnen Gegenmanahmen einleiten. Damit ist der weiteren Virenplage ein fr allemal ein Riegel vorgeschoben. - Es kann mehr als eine CRC-Summe pro Programmname abgespeichert werden. - Selbstentpackende Programme werden als solche gemeldet! - Es kann auch auf Unit 1 eines Targets zugegriffen werden. (Wichtig fr alle, die Ihre SH 204/205 oder Megafile mit einem zweiten Laufwerk aus gerstet haben.) - Zur Zeit arbeite ich an der Mglichkeit, Programmfiles gegen Link- Viren zu immunisieren!!! Ob dieser Programmpunkt allerdings bis zur nchsten Version zu meiner Zufriedenheit funktioniert, kann ich jetzt noch nicht versprechen. Ich nehme auch gerne Verbesserungsvorschlge von Anwenderseite entgegen, diese werden - wenn mglich - ebenfalls bercksichtigt! Bitte ndern Sie weder dieses File noch das dazugehrige Programm! Falls Sie diese Diskette oder das Programm VIRENDETEKTOR weiterkopieren, dann bitte mit allen Files (auer den Dateien VIRENDET.HD und VIRDPROT.INF)! VIREND3011CD WPROTECTB876 03 FF *.AP@ @ #F 03 04 *.TO@ @ #P 03 04 *.TT@ @ .PRX .PR .APX .AP .TOX .TO .TTX .TT ******************************************************************** Deze diskette is samengesteld door de Stichting ST, Postbus 11129, 2301 EC Leiden. Onze bibliotheek van public domain programma's omvat op dit moment (lente 1992) al meer dan achthonderd disks. Daarop vindt u programma's op elk gebied, van tekstverwerker en database tot de leukste spelletjes, de fraaiste tekenprogramma's en de handigste utilities. Ook bevat onze bibliotheek een speciale afdeling voor public domain disks met Macintosh software, die te gebruiken zijn onder de ALADIN emulator. Deze MAC-PD serie bevat tot nu toe ongeveer vijfendertig disks. ******************************************************************** U vindt in het twee maandelijks tijdschrift "ST" (Onafhankelijk tijd- schrift van en voor gebruikers van Atari ST computers) een overzicht en een bespreking van de inhoud van de nieuwe public-domain diskettes. Dit tijdschrift bevat tevens een bestelkaart zodat U vlot over de software kunt beschikken. De november/december uitgave bevat een compleet overzicht van de Public Domain bibliotheek op dat moment. De Stichting ST geeft ook een speciale PD catalogus disk uit. Deze public domain disk is geproduceerd en gedistribueerd door: ************** Stichting ST afd. Software Bakkersteeg 9A 2311 RH LEIDEN ************** Ondanks onze controle komt het af en toe voor dat een diskje niet goed is gecopieerd.Mocht U dit overkomen, aarzel dan niet en stuur de defecte disk aan ons terug. U krijgt dan direct een vervangende disk toegestuurd. ************************************************************************ Teneinde het voor ons mogelijk te maken om productiefouten op te sporen en vervolgens in de toekomst te vermijden, zijn alle disks, geproduceerd door de Stichting ST, voorzien van een groen productienummer. ************************************************************************ l Spa mit den neuen Programmen * * . |um.. WPRORSC S kaWPROTECTACC ~Y/WPROTECTPRG ~Y/WPROTECTRSC SWPROTECTRSD S`WPROTECTS j]niWPROTECTTXT ]f5`x`XBRAWPRO/g$6/(8g8:gpagpNu/:NuHd??p xNXLdNux [1][WPROTECT 0.97: |Bitte installieren!][Ok][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : ][  |  | Weiter ][2][ Christoph Conrad 2/89 V0.97| | Laufwerk : | Sichern = | Ende-Button+ShiftLinks+Alt][Schutz |Normal | Ende ] WPROTECT [1][ Dateifehler beim Speichern | auf WPROTECT !][ Ok ][1][ Nicht installiert ! ][ Ok ]:\WPROTECT.ACC:\WPROTECT.PRG #4AaAN9 2:gSAa<3AHa8 yga`AC39 2:`g I3 AaAHa yg09 2:& yg3`L?:G; g<|AHz*?< NA\RE<mHzNAX3 Nu3A&a>`H  $.        B  :& * * Source-Datei erzeugt mit: * << Resource-to-Source Konverter >> * v1.17 Dez 1991 by Bernd Eckstein * Turmstrasse 188 * 5100 Aachen * Tel: 0241/876533 * * Dieses Programm war wirklich Arbeit, wer es gut findet, der * sollte mir 10 DM schicken. Dann gibt's die neueste Version. * Dieses Programm ist NICHT Public Domain, sondern SHAREWARE! * Wer Ideen und Vorschge hat: oben steht meine Adresse ... * * * Quelldatei: WPROTECT.RSC * G_BOX equ 20 G_TEXT equ 21 G_BOXTEXT equ 22 G_IMAGE equ 23 G_USERDEF equ 24 G_IBOX equ 25 G_BUTTON equ 26 G_BOXCHAR equ 27 G_STRING equ 28 G_FTEXT equ 29 G_FBOXTEXT equ 30 G_ICON equ 31 G_TITLE equ 32 ******* * -->> Konstantendefinitionen: DIALOG equ 0 ; /* form/dialog */ DRIVEA equ 4 ; /* BOXCHAR in tree DIALOG */ EXIT equ 30 ; /* BUTTON in tree DIALOG */ SAVE equ 31 ; /* BUTTON in tree DIALOG */ WIDMUNG equ 32 ; /* STRING in tree DIALOG */ OK equ 34 ; /* BUTTON in tree DIALOG */ sumTREES equ 1 ; Anzahl aller Bume OBJCs000 equ 35 ; Objekte in Baum 1 sumOBJCS equ 35 ; Summe aller Objekte ******* * -->> Objektbaum $0 Objc000000: dc.w $FFFF,$0001,$0022,$8900+G_BOX,$0000,$0010 dc.l $00021100 dc.w $0001,$0001,$002A,$000C Objc000001: dc.w $0002,$FFFF,$FFFF,G_STRING,$0000,$0000 dc.l spec000001 dc.w $0001,$0001,$000D,$0001 Objc000002: dc.w $0003,$FFFF,$FFFF,G_TEXT,$0000,$0000 dc.l spec000002 dc.w $0001,$0003,$0407,$0001 Objc000003: dc.w $001E,$0004,$001D,G_BOX,$0000,$0000 dc.l $00011141 dc.w $0001,$0004,$0028,$0005 Objc000004: dc.w $0005,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $41FF1100 dc.w $0001,$0001,$0002,$0001 Objc000005: dc.w $0006,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $42FF1100 dc.w $0004,$0001,$0002,$0001 Objc000006: dc.w $0007,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $43FF1100 dc.w $0007,$0001,$0002,$0001 Objc000007: dc.w $0008,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $44FF1100 dc.w $000A,$0001,$0002,$0001 Objc000008: dc.w $0009,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $45FF1100 dc.w $000D,$0001,$0002,$0001 Objc000009: dc.w $000A,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $46FF1100 dc.w $0010,$0001,$0002,$0001 Objc00000A: dc.w $000B,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $47FF1100 dc.w $0013,$0001,$0002,$0001 Objc00000B: dc.w $000C,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $48FF1100 dc.w $0016,$0001,$0002,$0001 Objc00000C: dc.w $000D,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $49FF1100 dc.w $0019,$0001,$0002,$0001 Objc00000D: dc.w $000E,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $4AFF1100 dc.w $001C,$0001,$0002,$0001 Objc00000E: dc.w $000F,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $4BFF1100 dc.w $001F,$0001,$0002,$0001 Objc00000F: dc.w $0010,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $4CFF1100 dc.w $0022,$0001,$0002,$0001 Objc000010: dc.w $0011,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $4DFF1100 dc.w $0025,$0001,$0002,$0001 Objc000011: dc.w $0012,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $4EFF1100 dc.w $0001,$0003,$0002,$0001 Objc000012: dc.w $0013,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $4FFF1100 dc.w $0004,$0003,$0002,$0001 Objc000013: dc.w $0014,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $50FF1100 dc.w $0007,$0003,$0002,$0001 Objc000014: dc.w $0015,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $51FF1100 dc.w $000A,$0003,$0002,$0001 Objc000015: dc.w $0016,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $52FF1100 dc.w $000D,$0003,$0002,$0001 Objc000016: dc.w $0017,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $53FF1100 dc.w $0010,$0003,$0002,$0001 Objc000017: dc.w $0018,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $54FF1100 dc.w $0013,$0003,$0002,$0001 Objc000018: dc.w $0019,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $55FF1100 dc.w $0016,$0003,$0002,$0001 Objc000019: dc.w $001A,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $56FF1100 dc.w $0019,$0003,$0002,$0001 Objc00001A: dc.w $001B,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $57FF1100 dc.w $001C,$0003,$0002,$0001 Objc00001B: dc.w $001C,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $58FF1100 dc.w $001F,$0003,$0002,$0001 Objc00001C: dc.w $001D,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $59FF1100 dc.w $0022,$0003,$0002,$0001 Objc00001D: dc.w $0003,$FFFF,$FFFF,G_BOXCHAR,$0001,$0000 dc.l $5AFF1100 dc.w $0025,$0003,$0002,$0001 Objc00001E: dc.w $001F,$FFFF,$FFFF,$2100+G_BUTTON,$0005,$0000 dc.l spec00001E dc.w $0001,$000A,$000A,$0001 Objc00001F: dc.w $0020,$FFFF,$FFFF,$2200+G_BUTTON,$0005,$0000 dc.l spec00001F dc.w $0013,$000A,$000C,$0001 Objc000020: dc.w $0021,$FFFF,$FFFF,G_STRING,$0805,$0000 dc.l spec000020 dc.w $0017,$0001,$0012,$0001 Objc000021: dc.w $0022,$FFFF,$FFFF,G_STRING,$0000,$0000 dc.l spec000021 dc.w $001A,$0002,$000D,$0001 Objc000022: dc.w $0000,$FFFF,$FFFF,G_BUTTON,$0827,$0000 dc.l spec000022 dc.w $0021,$000A,$0008,$0001 ******* * -->> Objektinhalte * -->> Objektbaum $0 spec000001: dc.b 'WProtect 1.02',0 even ; TedInfo 000002 spec000002: dc.l te_t000002,te_m000002,te_v000002 dc.w $0005,$0006,$0000,$1180,$0000,$FFFF,$000B,$0001 te_t000002: dc.b 'Laufwerke:',0 te_m000002: dc.b 0 te_v000002: dc.b 0 spec00001E: dc.b ' Abbruch ',0 spec00001F: dc.b ' Sichern ',0 spec000020: dc.b ' Christoph Conrad ',0 spec000021: dc.b 'MAUSnet @ AC3',0 spec000022: dc.b ' Ok ',0 `d` 1.02XBRAWPROH/gV6/(8gJ(:gBpaJf,C x he"h$ f6/(:# ` L"pNuL/:Nu??p xNXONu"*  *A(ABCD  E  F G H IJKL"M%NOPQ R STUVWXY"Z%!S  "] !g"z '! WProtect 1.02FQR Laufwerke: Abbruch Sichern Christoph Conrad MAUSnet @ AC3 Ok j[1][WProtect 1.02:|Bleibe nicht resident.][Ok][1][WProtect 1.02:|Bitte installieren!][Ok][0][~~~~~~~~~~~~~~~ | Widmung an| Barbara|~~~~~~~~~~~~~~~ ][ Ok ][1][WProtect 1.02:|Kann keinen Cookie anlegen.][Ok][2][WProtect 1.02:|Laufwerk ist geschtzt.|Trotzdem sichern?][Ok|Abbruch]  WProtect 1.02 [1][ Dateifehler beim Speichern | auf X:\WPROTECT.INF!][ Ok ]X:\WPROTECT.INF #423 6Nkr/*ByB##AaNu#6<"3AaQNu#Ala##Aa(9*:6<Byf 3`fBy`3<XF3aDQ3A aTByAaFByBB##AaBy3##AaBy#Afa09| f6#3A6a3 By3ar`|gb|fa3`Ұ|"g,`An0<0<B( gQNu3Baa y!A3Ba3BB##AaByAaJ9gtJ9f`"J f&#3A0aA aBgNAAaf#L3Aaz`AapBg/9?<1NA#AaP y(g yGfaJ9f y# `F#3Aa`H3j#l#p"<0<NBLNuWf o.|^J9g"C^#/9HPBg?<JNAO aByAaJyg@J9f3#Aa\a^J9fvJ9g`$J9f y!zdBgNAAa fHz?< NA\O`?<NATO3aHzh?< NA\O.:$g2HzK?< NA\OBEG; g<AHz*?< NA\ORE<mHzB?< NA\OBgHx?<1NA A Schtze: *** WProtect 1.02 RESIDENT. *** WProtect 1.02: kein COOKIE anlegbar. *** NICHT RESIDENT! #NuHP?<&NN\ONu NAXONuHx?< NA\O/ `d` 1.02XBRAWPROH/gV6/(8gJ(:gBpaJf,C x he"h$ f6/(:# ` L"pNuL/:Nu??p xNXONu"*  *A(ABCD  E  F G H IJKL"M%NOPQ R STUVWXY"Z%!S  "] !g"z '! WProtect 1.02FQR Laufwerke: Abbruch Sichern Christoph Conrad MAUSnet @ AC3 Ok j[1][WProtect 1.02:|Bleibe nicht resident.][Ok][1][WProtect 1.02:|Bitte installieren!][Ok][0][~~~~~~~~~~~~~~~ | Widmung an| Barbara|~~~~~~~~~~~~~~~ ][ Ok ][1][WProtect 1.02:|Kann keinen Cookie anlegen.][Ok][2][WProtect 1.02:|Laufwerk ist geschtzt.|Trotzdem sichern?][Ok|Abbruch]  WProtect 1.02 [1][ Dateifehler beim Speichern | auf X:\WPROTECT.INF!][ Ok ]X:\WPROTECT.INF #423 6Nkr/*ByB##AaNu#6<"3AaQNu#Ala##Aa(9*:6<Byf 3`fBy`3<XF3aDQ3A aTByAaFByBB##AaBy3##AaBy#Afa09| f6#3A6a3 By3ar`|gb|fa3`Ұ|"g,`An0<0<B( gQNu3Baa y!A3Ba3BB##AaByAaJ9gtJ9f`"J f&#3A0aA aBgNAAaf#L3Aaz`AapBg/9?<1NA#AaP y(g yGfaJ9f y# `F#3Aa`H3j#l#p"<0<NBLNuWf o.|^J9g"C^#/9HPBg?<JNAO aByAaJyg@J9f3#Aa\a^J9fvJ9g`$J9f y!zdBgNAAa fHz?< NA\O`?<NATO3aHzh?< NA\O.:$g2HzK?< NA\OBEG; g<AHz*?< NA\ORE<mHzB?< NA\OBgHx?<1NA A Schtze: *** WProtect 1.02 RESIDENT. *** WProtect 1.02: kein COOKIE anlegbar. *** NICHT RESIDENT! #NuHP?<&NN\ONu NAXONuHx?< NA\O/ zzz$zz#WProtect 1.02Laufwerke: Abbruch Sichern Christoph Conrad MAUSnet @ AC3 Ok 2=> "* $ zA(ABCD  E  F G H IJKL"M%NOPQ R STUVWXY"Z%!?  "I !S"f 't! DIALOGDRIVEAEXITASAVEA WIDMUNG"OKMUNG******************************************************************************* * * >> WPROTECT.S << V1.02 25.10.1992 * * PD by * P*ST: * Christoph Conrad * Adalbertsteinweg 113 * 5100 Aachen * * E-Mail (lieber die als P*ST) direkt ber * MAUS: Christoph Conrad @ AC3 * ...und die Gateways * FIDO: Christoph Conrad % Maus AC3 2:242/2.6 * USEnet: Christoph_Conrad@ac3.maus.de * Zerberus: Christoph_Conrad%ac3@zermaus.zer * Pronet: MAUS:AC3:Christoph_Conrad * Internet: conrad@rama.Informatik.RWTH-Aachen.DE (ca. 1 mal/Woche) * BTX: Seite *35008024#, im Formular ausfllen * Christoph_Conrad@AC3.MAUS.DE.UUCP * (kostet 90 Pfennig) * * Dieses Programm liegt auch dem VIRENDETEKTOR bei, _DEM_ Virensuchprogramm * auf dem ATARI ST/TT von Volker Soehnitz @ AC. Keiner bietet mehr! * Lassen Sie sich registrieren und geniessen Schutz vor allen aktuellen * Viren durch den Updateservice. * * WProtect kann und soll weiterkopiert werden, allerdings nur * _MIT_ * WPROTECT.S * WPRORSC.S * Vernderungen an Source/Programm NUR zu privaten Zwecken!! * Wer vernderte Versionen von Source oder Programm ffentlich zugnglich * macht, wird von mir ganz schnen rger bekommen! * WPROTECT.PRG (Unter GEM/Autoordner, durch Umbenennen auch Accessory) * WPROTECT.RSC * WPROTECT.RSD (Kuma NRCS) * WPROTECT.TXT * * Liebe Leute, diese Source entstand vor grauer Vorzeit. Also verzeiht mir * die nicht ganz so bersichtliche Programmierung (in der nchsten Version * komplett berarbeitet). * * Im folgenden bedeute * * + Neues Feature * - Beseitigter Bug / Unschnheit / Inkompatibilitt * * History: * 0.97/f: - Sicherungslaufwerk jetzt aus _bootdev ($446) * - _drvbits / ProtDrive / ProtDouble wird jetzt als 32 Bit behandelt * (Laufwerke A-Z) * - Im Accessory werden jetzt bei jeder Aktivierung die aktuellen * Schutzwerte aus dem CurrentVec bernommen (sonst wrde eine * zwischenzeitliche nderung ber einen Programmaufruf ignoriert) * + Nachfrage bei Sichern auf X:\AUTO\WPROTECT.PRG (X == Bootlaufwerk), * falls Bootlaufwerk als geschtzt gilt. * + Accessory erkennt nachtrglich installierten Schutz. * + Untersttzung des VA-Protokolls (VA_START) * * Die magische Grenze... * * 1.00: (internal release, not distributed) * + GEM-Dialogbox * Zum Umwandeln der Resource in Assemblerquellcode verwende * ich RSC_TO_S.PRG von * Bernd Eckstein @ AC (Shareware, 10,- die sich lohnen!) * Version >= 1.18!! ( Hallo Bernd =:^} ) * + Erkennung des residenten Prg ber Cookies anstatt XBRA * COOKIE-Library von * Arnd Beissner @ MS (PD, sehr einfach in der Anwendung) * Version >= 1.03!! * In Version 1.03 sind noch eine Menge bra, die sich in bra.s * umwandeln lassen. * + Anpassung des Resourcefiles an Letemfly von * Oliver Scheel @ K (PD, 'man fliegt nicht mehr ohne...') * Version >= 1.14!! * Die Laufwerksbuttons 'A'-'Z' sind ber ALT-A - ALT-Z erreichbar. * UNDO entspricht dem Abbruchbutton, HELP dem Sichernbutton. * In V1.14 verhlt sich die Letemfly-form_alert-Routine bezglich * innerhalb der Box zentrierter Texte anders als die Original- * AES-Routine. Dies ist ein rein kosmetisches Problem. * * Alle ber MAUS E-Mail addressierbaren Leute knnen auch ber die * Gateways erreicht werden, indem mein Name und mein Mausknoten (@AC3) * gegen ihren Namen/MAUS-Knoten ausgetauscht wird, also etwa * FIDO: Bernd Eckstein % Maus AC @ 2:242/2.6 * * 1.01: + Fr das Sichern der Konfiguration wird das Bootlaufwerk * DGetDrv (GEMDOS 25) im Autoordner-Programm ermittelt. * + Versionsnummer abfragbar (siehe Source Label 'Version') * + LinksShift+[Button]Nochmal in der Critical-Error-Handler-Box * hebt den Schreibschutz fr dieses Laufwerk auf! * * 1.02: +- WPROTECT.INF-Datei auf der Wurzel des Bootlaufwerkes * fr das Speichern zu schtzender Laufwerke anstatt * im Programm selbst. * * Future Releases (bei gengender Programierermotivation) * * MetaDOS-Laufwerke werden evt. untersttzt * * CPX-Modul (wenn es dazu ein vernnftiges Assembler-Toolkit gibt) * * Kommandozeile a la * WPROTECT +ABC-EFG schtzt A/B/C, entschtzt E/F/G * und lsst den Schutzstatus aller anderen Laufwerke unangetastet * WPROTECT ++-EF schtze alle ausser E und F * WPROTECT --+EF entschtze alle, schtze E und F * * Buttons [ Schtze alle ] / [ Entschtze alle ] * + aufgerumterer Source * + bessere Dokumentation * * mfg chris. * * Assemblieren mit MadMac V 0.13 (uralt, aber schnell & zuverlssig) * Kommandozeile: -p wprotect * * WPRORSC.S (das umgewandelte Resourcefile) + COOKIE.S * mssen sich in demselben Verzeichnis wie WPROTECT.S befinden! * * Noch einige Bemerkungen zur RESOURCE. Die Objekte mssen mit 'Erst X, dann Y' * sortiert sein, damit die Laufwerksknpfe aufsteigende Objektindize haben. * * In der umgewandelten Resource bezeichnet * OBJCs000 Anzahl Objekte in Baum 1 * Objc000000 Label des ersten Objekts in Baum 1 * Falls Ihr Resourcekonverter andere Bezeichnungen whlt, mssen Sie * diese anpassen. * ******************************************************************************* WRITE_PROTECT EQU -13 ; Bios-Fehlermeldung _bootdev EQU $446 hdv_rw EQU $476 ; Harddisk Schreiben-Lesen _drvbits EQU $4C2 NrOfDrives EQU 26 .macro AES func lea \func(pc),a0 bsr CallAES .endm .macro SupExec func lea \func(pc),a0 bsr SupExec .endm .macro ZeigeAlert func move.l #\func,addrin move.w #1,intin ; Defaultbutton 1 AES FormAlert .endm .macro GEMDOS trpno, clean .if \trpno != 0 move.w #\trpno,-(sp) .else clr.w -(sp) .endif trap #1 .if \# = 2 .if \clean <= 6 ; -2 wegen trpno addq.w #2+\clean,sp ; .w ok, da Extension automatisch! .else lea 2+\clean(sp),sp .endif .endif .endm .TEXT Anfang: bra Install *--------------------------- *--------------------------- Version: DC.L '1.02' ; Position: -18(NewHdvRW) AutoBootDrv:DC.W 0 ; aktuelles Laufwerk bei Autoordner-Programm * Bitstring zu schtzender Laufwerke Bit 0 == A:, Bit 1 == B: etc. ProtDrive: DC.L 0 ; Position: -16(NewHdvRW) * * XBRA-Struktur * XBRA: DC.B "XBRA" ; Position: -12(NewHdvRW) Ident: DC.B "WPRO" ; Position: -8(NewHdvRW) ; alter hdv_rw-Vektor OldHdvRW: DC.L 0 ; Position: -4(NewHdvRW) * Neuer hdv_rw-Vektor NewHdvRW: ProtDriveOffs EQU ProtDrive - * AutoBootDrvOffs EQU AutoBootDrv - * movem.l d1-a6,RegSave btst.b #0,5(sp) ; Read-Write-Flag beq.s gotoOld ; es wird nur gelesen move.w 14(sp),d3 ; Laufwerk 0=A:, 1=B: etc. move.l _drvbits.w,d4 btst.l d3,d4 ; gibt's das Laufwerk berhaupt ? beq.s gotoOld ; nein move.l ProtDrive(pc),d4 btst.l d3,d4 ; soll Laufwerk geschtzt werden ? beq.s gotoOld ; nein .loop: moveq #WRITE_PROTECT,d0 ; D3-D7 / A3-A6 werden vom Critical-Error-Handler gerettet bsr.s CallCritErr ; critical-error-handler aufrufen cmp.l #$10000,d0 ; Retry ? bne.s .wpro ; Bei Linksshift+Button[Nochmal] wird der Laufwerksschutz ; fr das betreffende Laufwerk aufgehoben lea $E1B.w,a1 ; Vorannahme TOS 1.00 move.l $4F2.w,a0 ; _sysbase ; TOS >= 1.02? cmp.w #$102,2(a0) bcs.s .tos10 move.l $24(a0),a1 ; *pkbshift ; LinksShift gedrckt? .tos10: cmp.b #2,(a1) bne.s .loop ; Laufwerksschutz aufheben move.w 14(sp),d3 ; Laufwerk 0=A:, 1=B: etc. move.l ProtDrive(pc),d4 bclr d3,d4 move.l d4,ProtDrive bra.s gotoOld .wpro: movem.l RegSave(pc),d1-a6 moveq #WRITE_PROTECT,d0 rts gotoOld: movem.l RegSave(pc),d1-a6 move.l OldHdvRW(pc),-(sp) rts CallCritErr:move.w d3,-(sp) ; Laufwerk move.w d0,-(sp) ; Fehlercode moveq #-1,d0 ; Kompatibilitt zum Bios move.l $404.w,a0 ; etv_critic jsr (a0) addq.w #4,sp rts RegSave: .DCB.L 14,0 ; D1-D7/a0-a6 AutoResident EQU * *---------------------------- * * Resource einbinden * .include "WPRORSC.S" AESPB: DC.L control, global, intin, intout, addrin, addrout NotResident:DC.B "[1][WProtect 1.02:|Bleibe nicht resident.][Ok]",0 .even AlertNotInstalled: DC.B "[1][WProtect 1.02:|Bitte installieren!][Ok]",0 .even Widmung: DC.B "[0][~~~~~~~~~~~~~~~ | Widmung an| Barbara|" DC.B "~~~~~~~~~~~~~~~ ][ Ok ]",0 .even NoCookie: DC.B "[1][WProtect 1.02:|Kann keinen Cookie anlegen.][Ok]",0 .even AlertBootProt: DC.B "[2][WProtect 1.02:|Laufwerk " AlertBootDrv: DC.B 0," ist geschtzt.|Trotzdem sichern?]" DC.B "[Ok|Abbruch]",0 .even Menu_entry: DC.B " ",3," WProtect 1.02 ",0 .even FileError: DC.B "[1][ Dateifehler beim Speichern | auf " FileErrDrv: DC.B "X:\\WPROTECT.INF!][ Ok ]",0 .even FName: DC.B "X:\\WPROTECT.INF",0 ; 1. Byte == Laufwerk .even * Worte fr's control-Feld * contrl[0..4] = opcode / #intin / #intout / #addrin / #addrout * O-Ton Profibuch 10te Auflage: * "Darber, welche Werte vor einem AES-Aufruf gesetzt werden mssen, gibt es * keine klaren Informationen. Ntig ist es auf jeden Fall fr contrl[0], * contrl[1] und contrl[3]. Wenig sinnvoll erscheint es fr contrl[2] und * contrl[4] - schliesslich wissen ja die AES-Funktionen selbst, wie viele * Werte sie in den Ausgabefeldern zurckliefern. * Die mit dem Original-Entwicklungspaket mitgelieferten Bindings [...] setzen * allerdings alle Werte des Arrays." * ...und tatschlich: Unterlasse ich das Vorbesetzen von contrl[2] und * contrl[4] funktioniert der Aufruf ber Anklicken der Accessory-Menleiste * nicht mehr. ApplicationInit: DC.W 10,0,1,0,0 ApplExit: DC.W 19,0,1,0,0 EvntMesag: DC.W 23,0,1,1,0 MenuRegister:DC.W 35,1,1,1,0 FormAlert: DC.W 52,1,1,1,0 FormDo: DC.W 50,1,1,1,0 FormDial: DC.W 51,9,1,0,0 FormCenter: DC.W 54,0,5,1,0 GrafMouse: DC.W 78,1,1,1,0 WindUpdate: DC.W 107,1,1,0,0 RSRCObFix: DC.W 114,1,1,1,0 OBJC_Change:DC.W 47,8,1,1,0 OBJC_Draw: DC.W 42,6,1,1,0 .BSS control: DS.W 12 global: DS.W 15 intin: DS.W 128 intout: DS.W 128 addrin: DS.W 128 addrout: DS.W 128 CurrentVec: DS.L 1 ; NewHdvRW-Vektor Installed: DS.B 1 ; 0 : Installiert ! Accessory: DS.B 1 ; Falls 0 -> Accessory * beim Abspeichern von ProtDrive darf das Laufwerk, auf dem * gespeichert wird, nicht geschtzt sein. ProtDouble dient als * Buffer, whrend in ProtDrive das entsprechende Bit gelscht wird ProtDouble: DS.L 1 BootDrv: DS.W 1 ActDrive: DS.B 1 ; Aktuell zu bearbeitendes Laufwerk DrvBits: DS.L 1 ; Kopie von _drvbits ($4C2) Keep: DS.L 1 * Per FormCenter ermittelte zentrierte Koordinaten der Dialogbox xClip: DS.W 1 yClip: DS.W 1 wClip: DS.W 1 hClip: DS.W 1 MsgBuf: DS.B 16 ; Nachrichtenbuffer AES DS.B $190 ; 400 Byte Stack reichen dicke Stack EQU * .TEXT *------------------------- ObjcChange: * Vorzubesetzen sind * intin Objektnummer * intin+12 newstate * intin+14 (0) 1 = (nicht) neuzeichnen * Parameterfelder fr OBJC_Change setzen clr.w intin+2 ; reserved ; Clipping setzen (quasi abschalten) clr.l intin+4 move.l #$7FFF7FFF,intin+8 move.l #Objc000000,addrin ; Objektbaumadresse AES OBJC_Change rts ObFixCenter: * Anpassung Koordinaten Zeichen- in Pixeldarstellung move.l #Objc000000,addrin move.w #OBJCs000-1,d3 .convert: move.w d3,intin AES RSRCObFix dbra d3,.convert rts DialogInit: move.l #Objc000000,addrin AES FormCenter move.l intout+2,xClip move.l intout+6,wClip SupExec GetDrvBits move.l DrvBits,d4 move.l ProtDrive(pc),d5 move.w #NrOfDrives-1,d3 ; 26 Laufwerke testen clr.w intin+14 ; nicht neuzeichnen .loop: btst.l d3,d4 ; gibt's das Laufwerk berhaupt ? bne.s .protect ; ja move.w #8,intin+12 ; DISABLED bra.s .change .protect: btst.l d3,d5 ; soll Laufwerk geschtzt werden ? bne.s .prot ; ja clr.w intin+12 ; NOT SELECTED bra.s .change .prot: move.w #1,intin+12 ; SELECTED .change: move.w d3,d6 addq.w #DRIVEA,d6 move.w d6,intin ; Objektnummer bsr ObjcChange .loop1: dbra d3,.loop move.w #1,intin ; BEG_UPDATE AES WindUpdate DrawDialog: clr.w intin ; Mauszeiger als Pfeil AES GrafMouse clr.w intin ; FMD_START clr.l intin+2 clr.l intin+6 move.l xClip,intin+10 move.l wClip,intin+14 AES FormDial clr.w intin ; Startobjekt 0 move.w #8,intin+2 ; Alle Objektebenen zeichnen move.l xClip,intin+4 move.l wClip,intin+8 AES OBJC_Draw Dialog: clr.w intin move.l #Objc000000,addrin ; Objektbaumadresse AES FormDo move.w intout,d0 cmp.w #WIDMUNG,d0 bne.s .weiter ZeigeAlert Widmung move.w #WIDMUNG,intin .change: clr.w intin+12 move.w #1,intin+14 bsr ObjcChange bra.s Dialog .weiter: cmp.w #EXIT,d0 beq.s ExitButton cmp.w #SAVE,d0 bne.s IsOk? bsr SaveConfig move.w #SAVE,intin bra.s .change IsOk?: cmp.w #OK,d0 beq.s OkButton bra Dialog *------------------------ NewProtDrv: lea Objc000000(pc),a0 ; Objektbaumadresse move.w #DRIVEA+NrOfDrives-1,d0 mulu #24,d0 adda.l d0,a0 move.w #NrOfDrives-1,d0 clr.l d1 ; Default: alle deselektiert * Laufwerke durchgehen .test: btst.b #0,11(a0) ; Selected? beq.s .weiter ; nein bset.l d0,d1 .weiter: suba.l #24,a0 ; nchstes Objekt dbra d0,.test rts OkButton: move.w d0,intin clr.l intin+12 bsr ObjcChange bsr NewProtDrv move.l CurrentVec,a0 ; die neuen Schutzwerte bernehmen move.l d1,ProtDriveOffs(a0) ExitButton: move.w d0,intin clr.l intin+12 bsr ObjcChange move.w #3,intin ; FMD_FINISH clr.l intin+2 clr.l intin+6 move.l xClip,intin+10 move.l wClip,intin+14 AES FormDial clr.w intin ; END_UPDATE AES WindUpdate IsAcc?: tst.b Accessory beq.s WaitForAC_OPEN * Wir sind ein Programm! tst.b Installed bne.s .Protected? ; brancht falls NICHT installiert bra.s .terminate * Sind berhaupt irgendwelche Laufwerke zum Schtzen gekennzeichnet worden ? * Falls nicht, brauchen wir nicht resident zu verbleiben .Protected?:tst.l ProtDrive bne.s .install ZeigeAlert NotResident ; ApplExit - Vom AES abmelden .terminate: AES ApplExit GEMDOS 0 ; PTerm .install: SupExec InstallVecs bne.s .raus ZeigeAlert NoCookie bra.s .terminate ; ApplExit - Vom AES abmelden .raus: AES ApplExit clr.w -(sp) move.l Keep,-(sp) GEMDOS 49 ; PTermRes WaitForAC_OPEN: ; EvntMesag - auf Mitteilung warten move.l #MsgBuf,addrin AES EvntMesag cmp.w #40,MsgBuf ; AC_OPEN beq.s .test cmp.w #$4711,MsgBuf ; VA_START (Gemini) bne.s WaitForAC_OPEN * Falls Accessory ohne installiertes Autoordnerprogramm gestartet * immer mal wieder nachschauen ob nicht inzwischen ber WPROTECT.PRG * (nachtrglich gestartet) ein residentes WProtect drin ist. .test: bsr IsInstalled? tst.b Installed bne.s AccNotInstEntry ; Nicht installiert move.l CurrentVec,a0 move.l ProtDriveOffs(a0),ProtDrive bra DialogInit AccNotInstEntry: ; Nicht installiert ZeigeAlert AlertNotInstalled bra WaitForAC_OPEN *------------------------- CallAES: movem.l d0-a6,-(sp) move.w (a0)+,control move.l (a0)+,control+2 move.l (a0),control+6 move.l #AESPB,d1 move.w #200,d0 trap #2 movem.l (sp)+,d0-a6 rts *----------------------------------- Install: * Offiziell dokumentiert: * Bei Accessories steht in a0 ein Zeiger auf die Basepage. * Sonst (alles ausser Accessories) ist a0 == 0. cmpa.l #0,a0 ; Basepageadresse in a0? seq Accessory ; Nein ---> Wir sind ein Programm bne.s .weiter0 move.l 4(sp),a0 ; Basepageadresse .weiter0: move.l #Stack,sp tst.b Accessory beq.s .cookie lea Stack,a1 suba.l a0,a1 move.l a1,Keep ; Anzahl evt. resident zu haltender Bytes move.l Keep,-(sp) pea (a0) ; ab Basepage clr.w -(sp) ; Dummy GEMDOS 74,10 ; MShrink ** Cookietest - sind wir schonmal installiert ? .cookie: bsr IsInstalled? *------------------------------------------------------------- ** Beim AES anmelden clr.w global AES ApplicationInit tst.w global ; global[0] (GEM-Version) wurde ja vorher auf 0 gesetzt ; falls immer noch 0 kann das AES noch nicht initialisiert sein ; d.h. wir sind im AUTO-Ordner beq.s AutoOrd tst.b Accessory bne.s .weiter ; bne -> Programm ** MenuRegister - In die Menzeile eintragen move.w intout,intin move.l #Menu_entry,addrin AES MenuRegister .weiter: bsr ObFixCenter tst.b Accessory bne DialogInit ; Programm tst.b Installed beq WaitForAC_OPEN bra AccNotInstEntry ; Accessory *-------------------------------------------------------- ; Auto-Ordner-Programm AutoOrd: tst.b Installed bne.s .install move.l CurrentVec,a0 move.l ProtDrive(pc),ProtDriveOffs(a0) .terminate: GEMDOS 0 ; PTerm .install: SupExec InstallVecs bne.s .weiter pea AutoInf1(pc) GEMDOS 9,4 bra.s .terminate .weiter: GEMDOS 25,0 ; DGetDrv, aktuelles Laufwerk move.w d0,AutoBootDrv bsr ReadConfig pea AutoInf0(pc) GEMDOS 9,4 *---------- move.l ProtDrive(pc),d7 beq.s .raus pea ProtectStr(pc) GEMDOS 9,4 clr.w d5 lea Drives+1(pc),a3 .test: btst d5,d7 beq.s .loopD move d5,d6 addi.b #'A',d6 move.b d6,(a3) pea Drives(pc) GEMDOS 9,4 .loopD: addq.w #1,d5 cmp.b #NrOfDrives,d5 blt.s .test *---------- .raus: pea CRLFCRLF(pc) GEMDOS 9,4 clr.w -(sp) pea AutoResident-Anfang+$100 GEMDOS 49 Drives: DC.B " A",0 ProtectStr: DC.B " Schtze: ",0 AutoInf0: DC.B 13,10,"*** WProtect 1.02 RESIDENT.",0 CRLFCRLF: DC.B 13,10,13,10,0 AutoInf1: DC.B "*** WProtect 1.02: kein COOKIE anlegbar.",13,10 DC.B "*** NICHT RESIDENT!",13,10,0 .even *---------------------- * Bitstring der angemeldeten Laufwerke holen GetDrvBits: move.l _drvbits.w,DrvBits ; angemeldete Laufwerke rts *------------------- **** Per XBios(38) im Supervisormode ausgefhrte Funktionen SupExec: pea (a0) move.w #38,-(sp) trap #14 addq.w #6,sp rts *---------------------------------------------------- * IN: - * OUT: d0.w == 0 Installation schlug fehl InstallVecs:move.l #'WPRO',d0 move.l #NewHdvRW,d1 bsr CK_WriteJar tst.w d0 beq.s .return move.l hdv_rw.w,OldHdvRW move.l #NewHdvRW,hdv_rw.w .return: rts Get_bootdev:tst.b Installed beq.s .weiter move.w _bootdev.w,BootDrv rts .weiter: move.l CurrentVec,a0 move.w AutoBootDrvOffs(a0),BootDrv rts *------------------- SaveConfig: * Sichern der Konfiguration bsr NewProtDrv move.l d1,d4 move.l d1,ProtDrive ; ProtDrive zum Sichern retten move.l ProtDrive(pc),ProtDouble SupExec Get_bootdev move.w BootDrv,d3 ; das Laufwerk, auf dem gesichert wird, darf nicht als ; geschtzt gelten bclr.l d3,d4 beq.s .noprot ; war nicht geschtzt * Bei geschtztem Bootlaufwerk nochmal nachfragen, ob wirklich gesichert * werden soll! Dies auch bei NICHT installiertem WProtect. move.b d3,AlertBootDrv addi.b #'A',AlertBootDrv ZeigeAlert AlertBootProt cmpi.w #2,intout beq SaveRet .noprot: move.l CurrentVec,a0 move.l d4,ProtDriveOffs(a0) addi.b #'A',d3 lea FName(pc),a0 ; 'X:\\WPROTECT.INF' move.b d3,(a0) move.b d3,FileErrDrv ; FCreate clr.w -(sp) pea (a0) GEMDOS 60,6 tst.w d0 bmi FileErr ; D3 wird bei GemDos-Aufrufen automatisch gerettet move.w d0,d3 ; FWrite pea ProtDouble pea 4 move.w d3,-(sp) GEMDOS 64,10 tst.w d0 bmi.s FileErr bsr FClose move.l ProtDouble,ProtDrive move.l CurrentVec,a0 move.l ProtDrive(pc),ProtDriveOffs(a0) SaveRet: rts *------------------- ReadConfig: * Einlesen der Konfiguration SupExec Get_bootdev move.w BootDrv,d3 addi.b #'A',d3 lea FName(pc),a0 ; 'X:\\WPROTECT.INF' move.b d3,(a0) ; FOpen move.w #1,-(sp) pea (a0) GEMDOS 61,6 tst.w d0 bmi ReadErrAuto ; D3 wird bei GemDos-Aufrufen automatisch gerettet move.w d0,d3 ; FRead pea ProtDrive(pc) pea 4 move.w d3,-(sp) GEMDOS 63,10 tst.w d0 bpl.s FClose bsr ReadErrAuto bra.s FClose *-------------------------------------------------- * Ein Dateifehler ist aufgetreten FileErr:ZeigeAlert FileError FClose: move.w d3,-(sp) GEMDOS 62,2 rts *-------------------------------------------------- CookieVal: DC.L 0 IsInstalled?: ; Ab in den Supervisormode pea 0 GEMDOS 32,4 move.l d0,-(sp) move.l #'WPRO',d0 lea CookieVal(pc),a0 bsr CK_ReadJar tst.w d0 seq Installed bne.s .installed move.l #NewHdvRW,CurrentVec bra.s .weiter .installed: move.l CookieVal(pc),a0 move.l a0,CurrentVec move.l ProtDriveOffs(a0),ProtDrive ; Zurck in den Usermode .weiter: GEMDOS 32,4 rts ReadErr: DC.B "*** WProtect 1.02: " DC.B "Fehler beim Lesen der Konfiguration!",13,10 DC.B "Bleibe resident!",0 ReadErrAuto:pea ReadErr(pc) GEMDOS 9,4 rts .include "COOKIE.S" .END /////////////////////////////////////////////////////////////////////////////// / / / >> WProtect << V1.02 25.10.1992 / / / / PD by / / P*ST: / / Christoph Conrad / / Adalbertsteinweg 113 / / 5100 Aachen / / / / E-Mail Direkt: / / MAUS: Christoph Conrad @ AC3 / / / / E-Mail Gateways: / / FIDO: Christoph Conrad % Maus AC3 2:242/2.6 / / USEnet: Christoph_Conrad@ac3.maus.de / / Zerberus: Christoph_Conrad%ac3@zermaus.zer / / Pronet: MAUS:AC3:Christoph_Conrad / / Internet: conrad@rama.Informatik.RWTH-Aachen.DE (ca. 1 mal/Woche) / / BTX: Seite *35008024#, im Formular ausfllen / / Christoph_Conrad@AC3.MAUS.DE.UUCP / / (kostet 90 Pfennig) / / / / Falls Sie irgendetwas entdecken, was Sie strt, oder Verbesserungsvorschlge/ / haben, nur zu: schreiben Sie mir ber EMail (vorzugsweise) oder P*ST. / / / / Dieses Programm liegt auch dem VIRENDETEKTOR bei, _DEM_ Virensuchprogramm / / auf dem ATARI ST/TT von Volker Soehnitz @ AC. Keiner bietet mehr! / / Lassen Sie sich registrieren und geniessen Schutz vor allen aktuellen / / Viren durch den Updateservice. / / / / Eine Weitergabe des VIRENDETEKTOR ohne diese Dateien ist nicht gestattet! / / / / WProtect kann und soll weiterkopiert werden, allerdings nur / / _MIT_ / / WPROTECT.S / / WPRORSC.S / / Vernderungen an Source/Programm NUR zu privaten Zwecken!! / / Wer vernderte Versionen von Source oder Programm ffentlich zugnglich / / macht, wird von mir ganz schnen rger bekommen! / / WPROTECT.PRG / / WPROTECT.RSC / / WPROTECT.RSD / / WPROTECT.TXT / / / /////////////////////////////////////////////////////////////////////////////// WICHTIG: Unbedingt zumindest Kapitel I und den Anhang lesen! Inhalt: 0. Das (etwas lngere) Vorwort a) Danksagungen b) Was ist WProtect? c) Vernderungen gegenber alten Versionen I. Installation II. Bedienung des a) Autoordnerprogramms b) 'Normalen' Programms c) Accessory's III. Schluwort Anhang: Bekannte Programmfehler, Inkompatibilitten und Unschnheiten (auch MetaDOS!) Ausblick: Was gibt's in der nchsten WProtect Version? Registrierungsformular ---------------------- 0. Das (etwas lngere) Vorwort ---------------------- 0.a) Danksagungen - Jankowski/Rabich/Reschke fr ihr "Profibuch", eine unverzichtbare Fundgrube. - Karsten Isakovic fr seinen 'SysMon', sowie Thomas Tempelmann sowie Johannes Hill fr den 'TempleMon' beide Tools bekannt als 'The Programmers best friends' :-) - ATARI / Landon Dyer fr den 'MadMac'. - GENESIS fr 'Selling England by the pound' sowie 'Foxtrot' THE CURE fr 'Disintegrations' & 'Wish' THE RED HOT CHILI PEPPERS fr 'Blood sugar sex magik' KING'S X 1992 (mit 'Black Flag') - Barbara fr die Erkenntnis, dass es ein Leben ohne Rechner gibt =:^} ---------------------- 0.b) Was ist WProtect? WProtect steht fr 'Write Protect', also Schreibschutz. Bei Disketten knnen Sie ja einen Schreibschutz aktivieren, aber was machen bei Ramdisks oder Festplattenpartitionen? WProtect bietet die Mglichkeit, ein beliebiges logisches Laufwerk schreibzuschtzen. Es knnen die Laufwerke 'A' bis 'Z' geschtzt werden. Die Programme wurden auf den TOS-Versionen 1.00, 1.02 1.04, 2.05, 3.01 und 3.05, mit diversen RAM-Disks sowie mit den Festplatten SH204, SH205, Megafile 30 und einigen SCSI-Platten getestet. Es luft mit dem AHDI von Atari ebenso zusammen, wie mit dem CBHD vom Scheibenkleister und Julian Reschkes HUSHI. TROTZDEM empfehle ich bei der Verwendung eines anderen Treibers (insbesondere bei VORTEX-Treibern) Vorsicht walten zu lassen. Ich habe alle Sorgfalt walten lassen, um ein fehlerfreies Programm zu erstellen. Trotzdem sind Fehler nie ganz auszuschliessen. Deshalb kann weder die juristische Verantwortung noch irgendeine Haftung von Seiten des Autors fr eventuelle Schden an Daten oder Programmen, die direkt oder indirekt auf die Benutzung dieses Programms zurckzufhren sind, bernommen werden! ---------------------- 0.c) Vernderungen gegenber alten Versionen WProtect 1.01 wurde komplett berarbeitet gegenber 0.97/f, der letzten ausgelieferten Version. Die wesentlichste Neuerung betrifft die Oberflche, die jetzt ber eine GEM-Dialogbox wesentlich komfortabler als vorher zu bedienen ist. Weitere Neuerungen entnehmen Sie bitte der History am Anfang des Quelltextes WPROTECT.S. In WProtect 1.02 werden die zu sichernden Laufwerke in einem INF-File in der Wurzel des Bootlaufwerkes vermerkt, anstatt im Programm selbst. WProtect befindet sich nach einem kurzen Intermezzo wieder im PD (Public Domain) Status. ---------------------- I. Installation Ganz einfach: WPROTECT.PRG gehrt in den Autoordner. Es installiert sich resident. WPROTECT.ACC gehrt auf die Wurzel des Bootlaufwerks. Es dient dem Konfigurieren des Schreibschutzes. Es kann, muss aber nicht installiert sein, da genausogut mit WPROTECT.PRG, als normales GEM-Programm gestartet, konfiguriert werden kann. WPROTECT.PRG als GEM-Programm gestartet installiert sich brigens resident (wie das Autoordnerprogramm), falls das Autoordnerprogramm mal vergessen wurde und vor dem Verlassen von WPROTECT.PRG mindestens ein Laufwerk schreibgeschtzt wurde. Autoordnerprogramm, GEM-Programm und Accessory sind vllig identisch und knnen durch Kopieren/Umbenennen neu erzeugt werden. ---------------------- II. Bedienung der Programme ---------------------- II.a) Autoordnerprogramm: WPROTECT.PRG Da gibt's nichts weiter zu bedienen. Ab in den Autoordner und vergessen. Das Autoordnerprogramm gibt eine kurze Meldung aus, das es sich installiert hat, und evt. eine Liste der geschtzen Laufwerke. Falls kein Cookie angelegt werden konnte, wird ebenfalls eine entsprechende Meldung ausgegeben. Das Autoordnerprogramm belegt 472 Byte Hauptspeicher. ---------------------- II.b) 'Normales' Programm: WPROTECT.PRG Nach dem Start sehen Sie eine Dialogbox mit 26 kleinen Knpfchen 'A'-'Z' sowie drei Buttons 'Abbruch', 'Sichern' und 'Ok'. 'A'-'Z' stehen fr die logischen Laufwerke. Nicht vorhandene Laufwerke sind disabled, also grau und nicht anwhlbar. Vorhandene Laufwerke sind entweder weiss (nicht geschtzt) oder invertiert (geschtzt). Durch Mausklick auf einen solchen Knopf wird der Schutzstatus gendert, aus einem geschtzten Laufwerk wird ein ungeschtztes und aus einem ungeschtzten ein geschtztes. 'Sichern' sichert in 'X:\WPROTECT.INF' die aktuellen Schutzeinstellungen, wobei X das Bootlaufwerk darstellt. Falls das Bootlaufwerk geschtzt werden soll, wird eine Warnbox ausgegeben und noch einmal nachgefragt, ob wirklich gesichert werden soll. 'Abbruch' belsst alle Einstellungen so, wie Sie beim Start von WProtect waren, das heisst alle nderungen werden verworfen (wenn Sie zwischenzeitlich gesichert haben, dann bleibt die Sicherung erhalten, das heisst beim nchsten Booten gelten immer die bei einer erfolgreichen Sicherung zum Zeitpunkt des Sicherns eingestellten Werte, EBENSO GELTEN NACH 'Abbruch' DIE ZUM ZEITPUNKT DES SICHERNS EINGESTELLTEN WERTE!). Falls Sie Letemfly von Oliver Scheel installiert und aktiviert haben (einschliesslich 'Key Dials'), knnen Sie die Knpfe auch mit ALTERNATE+Laufwerksbuchstabe (gleichzeitig gedrckt) selektieren (als htten Sie mit der Maus draufgeklickt). 'Abbruch' ist dann mit der Taste UNDO aktivierbar, 'Sichern' mit HELP. !!! Ist ein Schutz installiert und wird bei der Alertbox !!! 'Die Diskette in Laufwerk X: ist schreibgeschtzt' bei 'Nochmal' !!! die linke Shifttaste gedrckt, wird der Schreibschutz fr das !!! entsprechende Laufwerk aufgehoben. ---------------------- II.c) Accessory: WPROTECT.ACC Die grundstzliche Bedienung aller Elemente der Dialogbox funktioniert exakt wie im vorigen Abschnitt ('Normales' Programm) beschrieben. Kein Wunder, es handelt sich schliesslich um dieselbe Dialogbox. Falls das Accessory beim Start feststellt, dass kein residentes Programm installiert ist, wird eine Meldung ausgegeben. Entweder Sie booten nach Kopieren von WPROTECT.PRG in den Autoordner des Bootlaufwerks neu ODER starten WPROTECT.PRG als GEM-Programm, schtzen irgendein Laufwerk und verlassen das Programm. Es installiert sich dann resident. Falls Sie GEMINI benutzen, wird seit 0.97/f das VA-Protokoll mit der Message VA_START untersttzt. Das heisst, Sie knnen WPROTECT.ACC in einem Fenster anklicken oder als auf dem Desktop abgelegtes Icon und GEMINI schickt eine Message an ein evt. installiertes Accessory, das daraufhin gestartet wird. Das Accessory arbeitet auch wunderbar mit 'The Chameleon' von Karsten Isakovic zusammen, lsst sich also nachtrglich nachladen und wieder entladen. Das Accessory belegt 7864 Byte Hauptspeicher. ---------------------- III. Schluwort Ich hoffe, das Sie sich von der Leistungsfhigkeit von WProtect berzeugen konnten und wnsche Ihnen wenig Begegnungen mit Viren auf dem ST, nicht zuletzt durch den Schutz durch dieses Programm. ---------------------- Anhang: Bekannte Programmfehler (P), Inkompatibilitten (I) und Unschnheiten (U) - (P) Bei nachtrglich installiertem Programm (Kein Autoordnerprogramm, WPROTECT.PRG als GEM-Programm gestartet und mindestens ein Laufwerk zum Schutz angemeldet) wird immer versucht auf A:\AUTO\WPROTECT.PRG zu sichern. Wird behoben in der nchsten Version! - (U) Bei nicht resident installiertem WProtect wird bei 'Sichern', falls das Bootlaufwerk als geschtzt gilt und kein WPROTECT.PRG im Autoordner des Bootlaufwerks liegt, trotzdem nachgefragt, ob gesichert werden soll. Wird diese Frage mit dem 'Ok'-Button quittiert, kommt natrlich prompt die Meldung, das kein WPROTECT.PRG im Autoordner liegt. Dies liesse sich umgehen durch vorheriges Abchecken, ob WPROTECT.PRG auch wirklich da ist. Ich halte dieses Verhalten zwar fr wenig intuitiv, aber kaum strend. Wird evt. behoben in der nchsten Version! - (U) Die Laufwerke 'Q' bis 'Z' sind MetaDOS-Laufwerke. Ob der Schreibschutz bei diesen Gerten funktioniert, ist von IHNEN zu berprfen. Mir fehlen leider genauere Unterlagen ber MetaDOS. Ein erstes Disassembly des CD-Rom Treibers spricht allerdings stark gegen die Funktionstchtigkeit von WProtect bei MetaDOS-Laufwerken. - (U) Nach 'Sichern' gelten auch bei nachfolgendem 'Abbruch' die zum Zeitpunkt des Sicherns aktiven Schutzwerte. Falls Sie irgendetwas entdecken, was Sie strt, oder Verbesserungsvorschlge haben, nur zu: schreiben Sie mir ber EMail (vorzugsweise) oder P*ST. ---------------------- Ausblick: Was gibt's in der nchsten WProtect Version? (Nur bei ausreichender Motivation des Programmierers) * CPX-Modul (wenn es dazu ein vernnftiges Assembler-Toolkit gibt) * Kommandozeile a la WPROTECT +ABC-EFG schtzt A/B/C, entschtzt E/F/G und lsst den Schutzstatus aller anderen Laufwerke unangetastet WPROTECT ++-EF schtze alle ausser E und F WPROTECT --+EF entschtze alle, schtze E und F * Buttons [ Schtze alle ] / [ Entschtze alle ] + aufgerumterer Source + bessere Dokumentation Vielen Dank fr Ihre Aufmerksamkeit, bis demnchst, tschuesssschen, chris.