Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uunet!crdgw1!sixhub!crdgw1.crd.ge.com!ibmbin-request From: ibmbin-request@crdgw1.crd.ge.com Newsgroups: comp.binaries.ibm.pc Subject: v06i195: cvirprot, virus resistance for C (part 01/01) Summary: Help C programs resist viruses Message-ID: <1075@sixhub.UUCP> Date: 4 Jun 90 03:13:27 GMT Sender: davidsen@sixhub.UUCP Followup-To: comp.binaries.ibm.pc.d Lines: 276 Approved: davidsen@sixhub.UUCP X-Submissions-to: ibmbin@crdgw1.crd.ge.com X-Questions-to: ibmbin-request@crdgw1.crd.ge.com Checksum: 3209149213 (Verify with "brik -cv") Posting-number: Volume 06, Issue 195 Submitted-by: caprio@uhccux.uhcc.hawaii.edu Archive-name: cvirprot/part01 Because I don't keep viruses around for testing I can't say anything about how well these routines work. With the virus problems we've been having I felt this was a useful toolset. The submitter says: This archive contains several programs designed to make C programs virus resistant. The programs do not actually stop virus infection, but will alert the user that such an event has occurred. The technique works by embedding CRC or checksum values into the executable file. When the user program is started, it checks itself against the CRC values embedded when the file was first compiled to see if any changes have been made. The program is a faster revision of the version published in PC Magazine, Aug. 1989 (and includes a correction for a bug in that version). These programs have been compiled under Turbo C 2.0 and MSC 5.1. They have not been tested with other compilers. [ Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 54689 14393 part01 checksum size (bytes) file 18146 10423 cvirprot.zoo -- bill ] cvirprot part01/01 BEGIN--cut here--cut here begin 644 cvirprot.zoo M6D]/(#(N,#`@07)C:&EV92X:``##"AB#%OW#P$2=$BR8PGZ>2!4X:ER(LE-=*1 M,_",S98(S0Q,2$5*E2(@8@`M(]1-0B-!F$Q!"H/BTJ8)Q;!Y,V;-'!`RJBJX M.A3$$"E#OC0I0@7)$R(@0+Q08?9-FS9EW-`!\:;.7CIO0-29DW`,FC)=Y]1I M\U7%"ZMC(S,,0R?-&!`,Y=09LQ=$&#MI-'_=0Q&$X3!RXJ)$N`5'EQVE!W8& M(28/G3)S8"L0[&9.FC-.R8#8ZN;,\#=WQL@9HQN$[+BFE\_9$O8UQ3X@=%/, MO'GOY]"#XX;1FP9TZAX@]H@8$@2*E"1/N.`A8X8+#!%]M$>&+-!,4+-HJ<66 M6T1`1E$=O?T6G'-Z13=&##;0$888U-5@0Q<@]$`1:0HD``,>,(0(`PL@?#@$ M#$/$0**),>"@8HD@QD##B#`.,0,,+WX(PPPGK@BB##C0:*(,-*A(D8=X#&$# MCC["8$./,,)P0Y`^#G%#D4W6$&*5-:18)0TN-DG#C"P<:>*).8(X!)0Z$D%E MC41@&:416]9HA)`*PZXPQ(HDG<+>&.D,+39KA(QISG"C MOCRF:020_1(YXI\S+*GODP)/V>^5^FK9;Y?-H@MJK]Y^R..I=ZIJA)O]QJDO MG?W>6;&>^O9II+)0U4MHQ8?JJVB_C>H+J<"3]FOIP:J>JA;Q:9HRC-IL M$:82G6JS,K!Z-*PK(UD$K43?RK2N1_=*=+!'$YOFK:V2*^^'?0I+9*0R1'OT MM$1;>W2V7V]+=+<\(RE#6$>3^[6Y1*-[]+I$M\OTNT?'&_6'@0J[9*0VY.MC M$/SZ:,._CP?\.,&2&URFLC8H_#C#CSLL.<2/2RPYQ9*#V2RL&>/QY*F$JAH$ MR)*+_#C)DILL.\^,S2U[SXS<_GK/D.__^X92G'JJJ M$$/[>(/1/@J1M/9+:^]T]U!+CX<05&MOM?98=Z^U]EQW[W7WQJ:9[=CGSVC_ ML\W>H';W;-.>V[H'M^[)37MT(]&?;H"W[NFM>WS3GM^Z!SCM"4Y[A.N>X12H M+"V=JE&JRD&+TE0#&34K!S^&52.C! M%W8I3:-JU;3P!REA=2E2-1MGD@A!O@%.&81#3&/.(04;*@UT&/27-L"A.?LT M9UQ4H)PQ?,&<`(4./!4T3Q"H80?[A(XLG1"8;G8%,VCH"QN$(X:$^``$W5J" M-!^SFWV:X0VI08$:>D"C@AY4G3U(IS*9Z4R(J@$$/!AF,6^3&X>N8`4L<*DY M?XK/DD*'0PF@@S][4-!Q>H&@RWDI:G23@*:&@0T]0(%5V>`#'^`@!5XH*(0D M1"&EP@$$)H"1&F2!Y MTG.GN"DJAZ`C4*@:%*%Q7:AQ':H?Z)PTI4*%*7#9V5D2K10&-L6I3NUITY^6 M,ZI#74%1(YK;TZ9V!>AQKE3ED-"YUO6NI=7M8O;*G[PXQ`RPI`@V3;L&$-S6 M.W(XPQAZBQIIHN8,=MA"%Y0+F;@\A[G+`:A`!RJ&S9H!HA$-L8CW*4LHO$$V MG1UM8,A`F3#0QL/-C&Q)-\P@A([XQA&5914(DYJ!P,$O.-YG:RW<(.BHX45J MD`%`+ZR:9!:G#"`.\HUE207-)"0-9@"!4-B0D*NVLZ'0&3)OXKD@9Z9!#U"6 M(Q:QJX8BXU;Z&M9)' M+$M;>U/%6AY(&N8@VE[_VCBUX6F(B5W(23 MS:ZL>MA]1F:#@XQ.=4)!W"*N-(I30UIS9T.XH"*S=4#$S&\1M&,B]U3Q8$!3!#9C-LD4+C%+/ MD,<\F-E)=^R:$!G#,BZRE`)=[8K7U1Q3S+*$P2Q!L.,8WW=!<9AGL$.-2TR&;9""1&P*S]#] MW6MH:%_V\@21DESM()C!T-V>D&1^I:-YD7>H,3.2A'C]U*VM,,[ITEY$`81I&"](;8OS\%27=<;&`6$'OU):>*&VB;A`@4U'=&'?4)G`FDU@>41&A8H'5L0`QC2`^@!`]ZW7"1&%U0`:9_V M!AEA@%\Q=GMQ>(=!!BZ0?8&1>5^Q>8B!=J8Q'K1A>+X&&@@A'!#X>05A:66` M?&Z0?VY59SN'7[*F?S<7%QUV>>@Q!E=56[7WKT>PF5 M9*,'7G'E<&V84*!V!@F!'E`A%4604(Q64*/G@16XA\*T`H1GAF;PA10(@CYW M?2M0A48%:6<@:<*$'GX(@H!X&8)8AF5PAMS!&9[!@U`('1K'4Q>''BA0;"F` M`I4H%RYWB'+@`F)X3PD5BKC!<:1HBBC@B)!X&2^PBA_8BJ_XB7&1<`O7<+JB(''QH@B"`BP4%A7%%!H&A@OMD9FBF?.EF8%EH!F1X9IE8B.:4`B0RB;YH M3R1":,`84)%8(OH!?H.E`N[XCO`8C_(XC_18C_98C_&V@OEU4;E6!I$W6BYH M;L_6!H.Q%\G$=9AW575P3`0G'*15!@3)!I3Q@/DH472!4K\Q$%<5`!)&0`Y;3&G&9Q!%$8@2@`A\HHB['F?4?%CG$1((E]I6:[>FAG()>BA06JBAENB1C2`@B'1)9G9YC(UV&7H)AN/8ER#@<"G0 M`HQ(&FIWI88EI8+:(EY`)DF$H;'[I3>>( M8Z2I7J(Y4,&ICJIYA>AX&5M(8+3U;%KE:"^V5B1"C64PG<;GEA5X@5N09#^% M(2&PA%YVDL;6<>`G?/@U M`PG5FC7';'11!%-I&T!I''`G=T!6=YXG5U.(5V[85_O75QH0$-RGQ/T"`7$: M``!!#0``?11J@;^:'1H``#`-```!````````````<&%T8V@N8P````````H` M$%],`````*0!0````$`I(R@``$>D<3.&31TR94"(F$.'3)HW+M"(:*!`($&# M"!4R),,FC9B($RL.+'@PX4(Z<@:>`4G1(LF,(AZR%&D&H1D03:80>3*EY4B, M"7FT*=/FC9P\$7VT+,-F3AF?%TLJ'-IFYH@R;AR:@?K29,C,F=G2YL"$ M5*14*0(B1MDR9LZ",!*$R12V,-[&=9.PR)0A($#(N*%7KA@V;\:LF2,XKX+" M?$$,D3+D2Y,B5)`\(1*X\PL5DM^T&>J&#H@W=4S3>0.BCE,08]"443RG3AO& M*EY0W*V`H9PZ8TR#"&,GS6_&>RC"1A-&3N`Q;Q!NP=%EA_*!PD&(R4.GS!SK M"EJ[F9/F#%\R(!"[.9/^S9TQ< M:X&%45H:Q3G7`PA[B#!$$%!(D<037.!!AAE&G'4D=!`(.2!FG-QL9%0;LJ5:.21)TI!%%%BE.$< MC+$I>$9"8<0VVQHNC#%<4ZP=V1F1CX7I4TUP24:999AI1@1O%-4Q7GGGT5<: M;/'%8`,=88BA7PTV=`%"#Q0EIT`",.`!PZ$PL`!"H4/`,$0,BC(:`PZ0+FIH M##0D:ND0,\!0::$PS-!HI(;*@(.FC,I``Z04$8K'$#9X2BH,-HQJ*0PWG$KJ M$#>L.FL-A^Y:PZ.[TD#IK#1DRD*KC#;ZJ:%#V`HJ$;IN2H2OMQH1[*9&$+MI M$6H2RS!H:Q+:,!N$MHT*$"ZH0RFZ:@ZRWYB"MH3A4RR@.OI9++;V%3GIO M##GHBP<1.6`;L!#H'BS$N@<'X2X>,01![J`!%]$P$45`3(01$\=@1+R%$D$$ MP!03,?`0!JO<+\849XKJP31X7$/(-9!\\`THQW##P#:T;,/+KA*QW[,QR##P M#"W/H##%,6P<@\JS1I@ZMJJ)ECM# MKBG:N8_<*-K!C#SNSTP:/3'2AHC;<+<1&4#OVM6!K.W:W>X,+]KBLPDS7 MUNKNW2[8\(X]+]CVHIWOV/RV#;.I#8,+<1$%/RM#PC,7P;#J#\\L@\2M6QRY MJT5HK'K'LH/<^LBJG]RZRL]V/+'26!Y^F4.?YNK7^?J]SG\A:Z$A3>E8-,#6S''1*D8$C50U(1ZH,A!K!1904GJL)*]4B0A M*SFL9R5L8CGSHKU0-JQ[U>!?E;R6(K56R6Z9$ER*7!X3:_"^2JK+E.U2)+P: M.2]%KE*2^6HDOS"9S&<9ZUXT*-C,<)`P9S)LF@][%@XDYDR+;:]0--#8-#NF M39`Y!FSLS9-'GFS)^U,VC3'!HSCT8J M&BBMG4R;IM.<&;5I3DV;57/FU1P#(C:%Z40MR*A&-\K1CF84!$$@@QT4-(:$ MW`<$;A`"=[RSG.94J3MR8(Q'9PH",#$D#'1(@Y;J8R7%?.$PB5D#"G@:GY&R M05%1P!JB*B1$:4,,&]#0)!#X`P="64%/=A$=$ M9C`*"%"@AAYH"JU)[0%371HAJ8.1`HSK(P0UT&H-1P1-=,7EW*4U)R(EV,&=P0AJ%L`5C.?4Y9S:I?YBI*!84V@UB-="(H MO`$[_841&7`:!NWLUPQ.@N]AZQP8-<@@1)P&06+=1(:Y>FE$)Z+";W9T$SC@ M-#:PB4Y"1IT53=-Y3IT1PU3+8.I3>P8T4Q!Q0MYPDY/B=0U&`E-@=DUB$,14 MV+WV-0A.%(2BN,DTQ`;!I/'D[#*$`3W8N>NE,ZUL.64G1K-9C1Q80&PS.(4. MT?XU"!Q-GISBU[^RH2X(7$T'6$,G([1&3[G5PY[`F($-\9;VM$%CA#0(*3U8 M.4.`%4ZBGFQ;=92#QXD@R,'!L4B\LT8X)"'Q>ZYSV50 M5)O?'(,XC[6[G6&*4[J*\L[`(26E,0,*1%"".8A`42(@`J5%[?"$\'DH.E!( M"M8*@BF)!04O'\K4N]I=C]\$!5C'[H,2"P>LA!WF+!"!',2P`A&D(`5_>I`3 MJL`$)I@<0M+==VH8,_2&/]P-;S!-P$'`A1N(``1;?RX(RH"'L"PV!HGO3-?# M).\CT"A&PCY-L>.CG0DC&T;DM;7!V?`GI@M)2.MA$=:;#OBPOWVL9&!-SP/S M<^Q\701<<$/N_9Z07=.',27HJZ+$C(?.!Y4Q+@)!"@'%[_GY[`"R%.]^G2X?19^%'UD M^[X-KC'-7X4TAQ>E2/EU0'CGQP)5D`1.0`66$018,'T^!W3Q=WVYEWL@4`2E MD6G@YQWJ%U0@$'5N1W5S,`8*+Y8()$5@']WH6-6>!<2(-5VLLDA#\!FM,`E<(`6[8%20KPAH3 MAE-4LB`-$B,H02#6-22&E6N75GH@R`83A@)1HRHLL&O$QEM-Y8.HY13!H5@/ M`@-C-7@/0A=V401C]6PO.';4]6THD&AE*&QGF%0IP`*+)`,LL&>)UU4JV'2+ M!0(A4`9GZ(2MAXAP9P+*%0(!=W>SAVYM*`>A175XF!!ZZ&UD@`(E>&E_%@,S MT`5_2%6!F(:$F#2'Z`8,:'"*A0+M]FZ.-5>Y>'F:58B\R%SO9EIY)RB?\7%] MB(J]2`=^`E@@D"ERMFESPEHA`F.+A5QO.%>LQ0,XH(UA18RH!7\B.`9'EVA; MP%HV5R3B.'3-EWC=56XB@HR^01!A98KFN(RL.!Q4:!Q9(FM2A1*HAP(*DE,- MTH\(\79QMRAWEUIY9XND5GIIL194%QABL(=K,)$X)R(9V1E4L7)YD(R&=HK, ME8JK&(LE=W,6)6]V=0?HUARP5H3I$08,P8GJUFW?1A\W`7@@T"*FD0>7!X_( MB(FHD16:F'=LJ&Z?F'?6B(O"2".[J'GNYHO.YGLM8(5R$)`#R2#\^&]E,'50 M.8Q&5HP-26=?-X]C4(\B:09;L(PKL$@EJ8\$N97^:)58N8]R8)!="7*AUA#B1X/$I%VV)?:89$3"5UYMY&3YW6!@76!692*)X[79P2!&6L9@5,T MJ5C+IRC+)X!'=Y1&T0*5LHRUJ'=B<7U),!Y.DE/K`9=:>1S:1FD=R'5=I7-/ M@5JS!P=[-W1#(&LH%7BB=ID\XH2U^5R\>74B8%>PV2`(LFV5-A!.(0?=@1Z% M=YPBPGAA(88H^(.4%X2@L9*PD5MC4`=L((79!0)&I2.,H2#HP1!=&&[-:1Q6 MB87Z!H]F0%UE`))FP(")YH6Y%88Z&&*N*'2"R(#4=0<#48J(.%:>5GIP"(3: M)GL-&8JEEY^DF(.71J"0:*"PJ!V[IB@-VI")!@>EEV@3>5+9V)`JNAQ7(F$: M*&-I5J(L$(JG.9]W>1_YX6FAY28&,\2`Z.%9PRH^(\1Z<]R`H()IR0)IP!QJ%R`1,]I4T$H=.40;( M%G8R9YH7!,1S.J54L M`"DC^F(%\09.X7HNUIAAH@$!`=RGQ/T"`4(F``"X&@``/A-L7*TYE!0``(H+ M```!````````````<&%T8V@N9&]C``````H`$('J`````*0!0````$`I(R@` M`!LH$)@@`90@5(8@`=$"1!`0<.2\.2,G3!L0=-Z`2.-F#)LZ9,J`".,F#9TT M=M+(J3,'Q)@W(0DF`$&SIDV;'#-"E$C1XAR9!0O2!!ITJ`*:!Q,N?.EF3IHY M=%J^,8/QCL:($RNVF<,"Q!LW(J>"N(,FS1@T(,Z4B;JQX\>09-J"R/.FCAR! M<^K*&2/R94@0*,*<+3-FC8LQ*4:ZB3L2Q!S"7^-B[7D1!9PP=,ZZ*(.G3&*R M9M$^!;'2#0B!7QN#O<,FC\LW;>"D85-&,D^MBB5C'MR2#AK,.[-:Q'A58LJ8 M"GR+)'DRY,2G:C9DW74=B%0()(W=T"T&UI6R;'&'#H0E)1"8V%W(`ABN#;&?6/4 MP<9V;IP!PA!2#-$2"MBYA`9A!]:Q56+7R0&"'6'(D4888M`F$&T9^@8A&V\4 M)M5Z(X+`&6%UT`$C;2"X1YL+-%$QXF,;=MA2BR+985X>>-7G5',BZ70626JU MQ!%&/1I91E3<<&&P*=J1:8(G$X!)FTR7%2AG/5 M!29P8:RH$DL@:.?:;U**R&5M>+;W'I(@*)EGARO>5T<9T%%H(6:01@C"@@M! MZ6,;\Y$!EUQAX$7'2F/089=(*$"UW1B.O5I'K",YQU)B>0W:9AE2RN':26UD M&>9[&_VDP(\5ED=&5PH5,<02@"DG8&9HF5%'1R>E1E<=;7D$4GJFC:MB="G4 M21)IA'EZ87EX-NEA;J_%9JIR%^FD[5><>N7B&1S=UYJ[;%0X;ZBNDME;CVN4<:Q&_\)AWG:IB>6P0!.[)P=4F;HX)+KU0E7QK,TJ M!@(.CE84JWD4IRD0:&S;#Q&EGDPJUODI$GV^%5K$-D%QQM,BN7;:$X#.EI&`F%UW'(@=.Q:L+X! M1ZI+[[JW6+UA^-J2S+M:C*Y`8D,;Y,MC'TG3$QV)]'=\(.`XH;0QZQKKK%V9 MA+#"H&Y\Z;UECN5B>:9?E!/(/3HN9(PBB?DP$Z#*T=77IE5[;IG[!D\ZZ0-KJR56^E[D(*+_$U0MP2Y=Q"^GK]8H)(94*.$S3%2.: MYIU^@BU)N.$4)PXZ"&@`2*QYR@L-E4`8G"#`X@9>:4IXPQ,5M/=)3ICX2 ML+_!X4)\B6%$2!-[\ MI3-E`,TJ^`\CQH345*B"E7:&RS3<5.9IY"G,&8R369B;3WTLH[$S"#8!S_F<<-V&F65 M1A(M>]KI6+U"8H8P6&BO&DGL&A6IO>9VBM,QQ:F/OTI9@9'6?R(F$P.@MVU,$DMF`>:<- M:XV:>MRCL#:EU7`!TPEGRP`<;?4SB)1\V-^XJAS3D.$I#\QOO5C$0"^U:33] M,X\0V^*O$4F*-F0R0W[&$DNT-*XST8*<^$;S14BESG`"T8]3;*7*APGD(;#- MZ#O%,@>1U2:,"4`?LQ1(X]B.Y&+%VIN5C-8HID&V(O\<("2CTQ7EN.8^?`N# M9F%KDN6`ADA:DA>H*$6YS+7H3F+B"EC'$@;O3,@T\RG2FQ^ M_HN2JZITEB/IVAM<:JY518>+3*+F'$RTP-A2RE),,A5MYG`X(.GGE0I`8IO2 M#`(^CS+0"?M4>9`T1H;>24NB+-%6NC+39*G2*TE,3H^L"@(1C("SZ+'7%YI0 M!"H@X0E$$(%B([X<-@0K*Z`(;1K"6D8&9B4Q6;>N>Q*\4N*4 MDE'EU-A)`\$D.Z>]U4$,;3`)Y^A6OCHV(0QG"(,>T$/:N``-+4U]JGXD*-4> M!:$.9U@CK6=E02O8T@4V8,$(8D"#3Y8-.*?^5HID]=\RH.TW,840R.6RXB(+ MY,6,J5J;#+9%[^BD0.5-S876Z^`Y4,H(3U"1;]@FG?HE2N!HH(-`0$T'..1A MMFVIHC44=Z>7O]PE'9SC`AS=80Q[`4$/`/.86&&G!3%(C#!K$`-ZKL"G M9G@,'7:`%T86%UX&#"--U,YVM\,=5W.O51#OGG=X@H#O,F`""/Z^3\'O8*`$ M46EEXX(TS?:8).55<-7J(0IY6DF6BLA2G#?>4Z&.OO*?->-Z$-Z1O9?N8XTC$56?=B+/&9`J"R5M/%[W,74S@9 M0SVT02_382.M51(E<1+W<5ZXIP`B-#5R)H#/<1A[X70TD014(38W57]>H5-I MD'!*DVG&5088)B7.HAQ,$H$6UG%A)1VK4QY2-1Y/L09BMU!I)&-<-VH*P!%& MTX`%IBV(`X!9HA$Q@%:;@0=$!451`SM/T17ZD2RH8AY&!7/)YAB&MT+ITQ;^ MTR9'B"]"!P(LV!)2=`9O\#2V1X72]F">HSB4,@4B,P;J818&DP==448()!)- M8!82D1="YA7%P(1M]@H$.X013 MH%)U)#54@`@)3("LA\6Q?4@2J!!NV-!&N@0)Z-4!U M%Q4AT"X*4&(]4@4E42Q7XAIB@00>U&AIT!4/5S5A0"E(T!?O$FGLHT*&TBJY M9A)@,71MDGZ`@Y%O``1U@`9C4"%*>&72>&!2201EH%-((A8FF1$8AB-G0#Y" M`0(S``,U``,@\'#,<@7YI9&S@6$7,P,Q``,R01/_434?\1%=@00J!0(Y8`,X M(`,R\$W.BDC1\R>(.7?2T('8$:+$ M-1U9E@PYTDZ*%"!FFJTY)LP#5X!L23 M)2I?^*S)UR_#&(+STN1,NC10H6[HF.DH`D32I2#,I&'#\(Y?$%Q!P@FS-B*9 MD&Y^]W63FW"9L65-*P=:AP[3HC;?EOEMYHT<$';2R*GS=P[RT=+PVG^O'65O]?IU)'C9CJ(-V:LEMUV3`75E41TI/&&&PV1 M95Y\XQV67'SHJ><9"#.\]^!Y\SG'&@A!J:4Q557?[45A4$.Q)H9586"G'7:J$0`Y\4IF>DILPY M5]1K3&&E%0BTS>'=G'UH$!#