[comp.sys.ibm.pc] HD Protectors

agollum@engr.uky.edu (David Herron aka Admiral Gollum) (12/30/87)

>]>I have a program downloaded from a BBS (WPDH.COM) which allows me to put
>]>a software write protect on the hard disk.  Any attempts to write result
> [etc]
>]Could the above poster, or someone else please post this program.  It sounds
>]like it would be very useful to most of us. Especially the paranoid ones. :-)
>
>	Yes, I also vote for posting this program.
>	Thanks.

A mandate from the masses!  Well, this isn't WPDH.COM,but it's just as good
if not better:

TRAPDISK.COM intercepts INT13 calls (that's the BIOS disk-interface
interrupt) and lets you know what's about to happen.  You tell trapdisk
whether to intercept reads, writes, formats, and/or verifys, and what
disk to 'protect':  when one of these calls are performed, trapdisk
pops open a window telling you what is about to happen.  You can 
allow the request to succeed, or make it fail (in which case trapdisk
returns a 'device timeout' error).

TRAPDISK will not work with custom drivers or ram disks as they generally
do not use INT13.  It also doesn't (I think) intercept disk reads to
sectors which have been BUFFERed by MS-DOS's built-in buffering.  However
it *will* catch any *actual* device access by the standard disk devices
(ie, the 5 1/4" floppy and hard drives).  I don't know if devices using
DRIVER.SYS will work or not, but I think they will.

Anyway, here it is.

Kenneth Herron


begin 0666 trapdisk.arc
M(&)L;V-K<PT*5&]T86P@5VEL;"!"93H@(" Q.#0S,B!B>71E<R @( T*5')A
M;G-F97(@86)O<G1S(&EF(&YO="!S=&%R=&5D('=I=&AI;B V,"!S96-O;F1S
M+@T*4F5A9'D@=&\@<V5N9"!U<VEN9R!8;6]D96TN(%M#=')L+5A=('1O($%B
M;W)T+@T*&@A44D%01$E32RY#3TT =0D  "T'=&9]\4L/   ,Z9 EV.?!P0= 
M_ 34:6#/@)T" >@,2&<)0+I# ! .J/.@X4,!=/88,W '8KH_&?D1J*/ 8P$"
M=,ZLBP,I90&.+A'0P3*R9(!U76K:$P:(SA*$!G Z+*#S1T^(ZXC41'A Z4.=
M*Y[^A#&5GP*6+B->6!>BZP*K!4 BT+JN0<T/+O[9H%,@K@TY!99]@#(EBI0J
M5ZQX,&!P$;LJZ! %0%=M<2L!Z'0 Z((.%@!T8@;PV$"' X\&=!3T #"E#KR1
M#R]W"W#@@Y<O7;1DV8)EW2QTSUB[ABV;-JZ,^90) *#(A)\"C6P(2X#NL2T"
MZ)0,0!=B@"T#BBST*0!(F %T.P8D?\;<@7@;,Q2@6R3 %@)T**;_:Z\@^_;N
MT#.<EZ*>7?L%]G$G#'0&G!>&>MD(D!P<ZEG17@/HS .9<,E)HMX1 OAC##KD
M0+:+ ,/, (PB/ARGB!$1 .)#20!(!,@S@+ @0"P#2 -.<N,D,  \BIP38'<:
M7(?.+) I(@ @Y/R1W1X%0*..+0E(T=T\Z'@BP(D*H%*4 23\(8 !>+P4!#I9
M" "+#NA0(8 64@PB3#[H>*F(%0N@@T\ ;';G#SIQ7&D%A.K@V:8P!: SAI\,
MH,,-GMTEZN"<$. 6@"WU:2>@!>@0(< B5ESV3@!GHF/ IE8XP.&D %K:':8G
MD$H!.M* BF8Z 7 J 3K'!# ,+0\T P$B)C )"#LH0,,.L-LAX@,@!8C"1P$\
M5#7!2,?!,=(?!1QPC &!%   +.M$4!.U!9!Q;0%A;-LM +C0,H"OB5B01P&V
M9" + +0(X.LP9 + CP<'+.)!MXWX($L!N30 @"T#!(B.)0%$D0L* 'C@R#;S
ME/*!AEF(XPZ_<?AK@"/<(F?#P0P'F/!E@D0\,0 99Z&A./($+&\!)#*;[[XJ
M/GL '3KT_)(<,_ E!2Q0B,(D-.BP0($HVS7BP2 %T$(<,;I0,X [BAR@2S5;
M#^$/,0@MX <[NF S "B>%.".%K0-(_3/-0A-@!PN&"WU(U5?G?7677\=]MAE
MGSW#-HIX\*PBAVQ20-I;PXW%,/R,7')RE*9LZ0S)*,) %,5ABXXSQ!$1P"J*
M:,H#"'404-QQN9@ ,^HF8)OZ *MP+,XU@QCC.@,*)%.',P<,8T444'"N" $*
M $,' 4$8L8X]T:0#2#0 N+!DD^JH$ T667AAO!3(0Y$+   D)TH!H LC SFQ
MM!2/(M H0@P!,"!"@!%9!*& -  !0H 1602A@#0 ==!A<:*( +H1 ,3APY)%
MRY=A4:#D(@ @2BP"TX0I$D;BP0D"\"@ 06< 0!9Q[!@.,^#(0* "JPX,FP&L
MF85A5J 4-*( &)T"Z,[]6T</BY=A4*2X +6G #1P]LPM@B?#7C1Q ^1IP8)4
M*5.G4*7BJWIU@+ZMP[[H @ I0APH6A1\,)"!@X #!@[@0-%"P1\#9. (")"7
M!=\4*EQX8/N/L6-(C2&1())DRA(039XX24+EB10 0N24";,&Q!LW($3'J5-F
M#AT0=-X D%(D"!$ N %<D<*Y2&XK17@;R8+;B.<F0:@4;T(%A!#; (PP!T%$
MBA4 9.JT:9,'! CLVKE[GTT$!!/-1W1+,8\> !$Y:>R4 8%D-!D05.2$&5-Z
M2IDQL<D!@A/:B5&&'.Z%04<8( 1!!AFBS3''>%*404<=<J#F((2MS0$ #T7,
M,88/L+W1H!AOR/&:=SQ42 >)L8$ Q8%FI-C&AT24P0:,)L)!HXT@F  "&6G,
M$888;,Q'A11!0$&990 $D$PSNP2@"PBZ!' ,,;8D<&66R#3#"P"-6% % [0D
MT$P(Z"0# "=3T%(#+'"LV8@-<!2P12=RS&%"(#RH50<%9<[Q0)IVVF!' 069
M@ @!Z4P"P +;U+% F2= @&@(Z1!"I@59'*IF",88@$<! #0302H! $!' [$(
M, TX@) S@#_$(&+"J7+",L&:B7@@1P&,&/!3F0,$X"LM)=AI0;)T,NOL,@HT
M<\*?@>I21PT&T#+ +:E"X(\SM C0# 1E5B+JF@?<.:P)BQ!JPT\F.,+!LLV&
M$&T),TCCB#9K#E,F#)J.NDX]I2X*@ SM*.( (  D\<< Z4""6R,>" * (@?P
M\ ,=%_" !AT3\( $'0] 428E:([:+Q;K.&!QF5(TL.D,VZQCA\4\A"&' 3SH
M<8< !(##0Q5U$)#/.F7P+$4="0#BP*(!E'D+ SQ< ;74BPI09B]86['UU 40
M4"8Q6!LQ]J((E,D, PM(0T>W+DLS!,?BK%(E (#XH' =%JR3P,P6L+QIF=.T
MO.;>^ RS9)-/+L$""%8<.$<:IX$0@PLPP.""=T*$,4<9]V4NQ!--" '"%%%4
M81L(8G07A!MD=(?$&W"LD88;<S2@  GYA0$';&C,5R,;;+QQQ^YG#%ED::JQ
MYMH<.H! 0H5AW$?"%?#1,1\)E<-G1G<D&&&C@B2@X,1I9:3@NP+KPZ;?\-&W
M1L>$=QPX7Y%SL%8Z:G0H'@C&\(;MA(%V(&##[LKP.1"83T ,4J!K3&,&$-@A
M# J\3_TFZ#LZY,%'<YB<'.J FL<YJ3*7^8%I!&3"R($ #2X@@>^2@)H4D>% 
M)9*?\)PWA]+@[D *PASO)N=!'YG&#?-)$0C:D*(D5C" QGL#\I3'O 1:R'M]
MTL'[UN.=X T/@VS@(?3L8QH?Z8<.0IR#"WQW!>_@9WX@ *,807"'[B71C$$\
MC1I]9P4W>C&.R)NC?,37G1^>,8UK5( 1_ A'.1*IAR"HD1S:H* R A&->DRD
M I)001%4001QA(./?#:A ^;A#L43S1&)-Q\"&A"!"D0B$04(!SF\X0SZ:0,=
MTQ!($N[.-7),P_UT9(9$4@$-1>+AD9)42C=TQPP8@J* Z# _.%11#'5X#1G>
MT!H0N.$-KS&#:.93A^%!<8EE8*(<NE.'T=TG=AT4X"\7A#S2@:"6M\QE SG)
MR@$6D)*P7" (D@G&%B#I@&N891E0(T=J"J^4HO'=(Y=)NLEA\S7GQ"<NPZ!+
M88Z.#15,YC=?XTO>T3-)9(CA^V@(3.15L84H=(%,9:@ !<#4,@,M)1M$D[WN
MS!.,I%.I39ET0IR*U$3)<\,9<+@?-,K'HMGL9QO2F2*?ON8-8QA#.=/0S3$<
M\(ALZ(Z!(CG.=^;!=Z)!$3B9%P+O\#,/;ZA#:@Y$0OP0U85PE>OR OG30#)(
MG*U!@S_AD >AP@^<9:C>32]SU-?T%:4A( $:"%1205!$25-++D1/0P#K#0  
M,@W'I?O#!AL   P@((&@(B4(%"))IBQQ,>1)DP8* H*P4D;.G#1OW("(X0(&
M1! ?(8F 4D4*E"=3BGR$*(**G#!P0!!),V>-"! H"!I$J)"APQ0@:()P\H0*
MB# @SH1I4R8$"!!)Z 2=<Q2$F3IRZ*"I>)0.G3)MX$BE\P:D CARRM@IXT8J
MVC!NULSY:M&JG#=M0) I,_=NGC1NSH#(\P:KWC!TPKAX2F4K"+1OV*0Q4Q$Q
M1HUOS(#06L9LR[MJX() \L9BF9MT\L#I#/G,RS94[Z!),P;-X[MP2H\M*Z:S
M4J94Q=21&F8,G3IAV+#)\Y@-7*D0Q> 50Q7PX,)R0,S),Q<L"-FT;9LIW0;Q
M=<-HPL@AHY?F&A"E052>TYES^YIFR:1):[QT'A8@I$<59&%]Q9Y]=\B1!AV 
M"9;99K,->)=K2P$81FQE*'<451 -@<02- CAD! N%(%%$3B),,168[PW7G9"
M3"=""HL-%.%M;U"8EU!B7%@&>QF!(&(30DP111!$^-0$"&(P!U$0;I#!'&EP
MK '8'(M!U.&'(8Y8XHD@I!4&&539U]IK5J7!1F=FW)67?OC!Q1YB7Q589EES
MY"85&7"=45%A'"HPQAM['16E=G7D21M&B8( W!QA^#D'@,))=9$;8W0V:*%"
M9?:51DA=A2F#03XH1QT:0<0@4XZ"Y9]V"R)'JAN3!B75H'6PP5X;-%&5YQM>
M-0AA9R)(UP9U(F2I $0Z'9300@TM*1129RX%H7F T96I6%2-D1P;=PXK9!(H
M@;!I9]9)X="&54$T1Z)P+ HHCCI.%2:J ,()AW/<?9>>5$*=\8:P9 4(TVH:
MD8$5P8Y!Y*UR%AYZH5Q!:498'=\]MUE9@[8%6!UEU)A%8>:*%H9T6<&77<<,
MN@$RNQ>;11^;"RIK5D 3).'$% 15,005Y.X,@A%/2 &"%%4XX83.1PQ4D+,]
M1;N2 E2H1FRS/"UQDYSPN=%9?&V4]K5F]HVGW!MW"+NF5Q51A4(=<*R677QL
MH%U1"CI\!(((4MP$20(%S_5&3$$BE58<(,^U\=%%(%D5??W)H;<(5_@-.)YD
M$0YJF&4@SM=N(%PA11)4H%@P4I"3)7E$>UMA>>"9=UW5X8F#;D41HQN1Q>-E
M1#ZY$:]C/KCLAG=>^^)$2]%$$$8A1<=++4Y>1? @G)"TSCP'P003)SB]T[,@
MM ""&\#6]R^]:*:M(?E2]78S) X4Q^!:E [7:MAR,.>M1NPSV5E:B?H1"%#%
M(#:(:SO=:4-('""4M$BG?&1PP>20<)/XB. '-UF<OOA5%3$HJ R:&50;RG.H
M=XU0/<Q!@?H,V+\K)49#"\3:LV@T-2IP+#V!Z0Q<F/,@^[CP5,:Y3*W4D"BI
MG$HC9IH0FB(5!NND32OB\MH=(+(VNLQA!T])CE8*<P;;R% A]D(*4_"7AQ:D
MY2)[:0OZ*M2U3$'$A=\2X(*^HR86 JLK=1++XM+2 CAJ:$'T88,9)!@1B$@!
M+&#I37:T8IXO+H&.&A*<YI8CNRW2AW.>FXNO5C.&R:1!@/9QSEQ4E096S?$.
M%PJ*&^SPAC7\J$9)L!C)YJ(>@$GEB;81 ?"Z1DG8#:]P0RO:\JC@L&]%C#W.
MH4O&U'@Z,K"'<J@1GN:J(CK2H>AA; !0S-I01.UP<C)YR!O5GI:UH5VADHXA
M0KE$2$)D B9D4TN"$8;R!! PH0A4*)T4I@""($@!15. 0A&&(,\D%($(.F ,
M.<&W0LZ5QSKR2\-:F&2_AO9/DA IG!N8 Z?W8!-+3XFE]Z#V2*&TD%8O7!,9
M++0W,3@G+C?!)B0-^$:4?LM6JKR??PAIEBE4X0A'* +/@I90ES#'D4=;G"2)
MQSC'T>YSACK05I"8OZH@1 H.PTL[:W0%Q-1&7(.KS*QDAU39L.4^[_DGDOBI
M'DW%,8*,B1!$&GH&B78F9J(!C'Z\-=8'H0%MXJI67NY0&KGP=&KO"T$3A#J%
M( 1U"E.[PE1'6LZ]?,4X5$&*3 MF'R&0BY]W&<X[:S7'VO2.8H$K [K(MA5W
MQ:YC^AFK4)A"!UBREDVH"F*0!#2^._;FK('LG8$ 1-EGS;6.C[E0MS+RO,BT
MAS]TZ&59.OM9M(:I,"T+64C- *"_WD$M%6$I1A7 V]]JY*G=84]O7J1#ZXI*
MMY@9PQBP4JNR(G>#86 .9R!BMKJE+3"MF@.D_"3.]TV #RV A GX$)(#!X0!
MY6S"$Y9&A:(%Q $,C@@D#IS@!3>8#P$Q@!#$])X@H1=T:B5"0!"089R!6,$M
MWC"(93*ZVST%"8U3L?>&\$@0I.1G%AY*%8B$NZ?$V,%/Z6="DPP"&# 9!#*P
MP9-C$) #Y.#)1YYQDHF &*2,B0QGI$J282"$(.1 !S" @1&<# D6?_C)ASR.
M'$#ES# _)<TW@ &:8T"#&:PXRP'QL(:1S(,BS&$,/EA<$% F%1#P(,Z)+A@4
M*O*BO"09T#P@0H8B71:Y51H$)KC/R=:TF9? H:-&_G"'6PP1(M0819!0@%#L
M<V(!@MFN. E""XA 0P7@V'&06,"L'8/&KV5G*V/""0Q:$ .@O BM96";LEO@
M9[")S=GQ"<D#TK,>M!)2)SP.B*S+Y)@QY$$R4>)*?)Y7G/=89R^=+(\!4;#L
M&5S9VFGI]8\K;+2_#;LSM,R*L%(7'Y<=BROO[ETIDX.3&+0 !RK;2 ONG1UM
MXZ\,O7;"D(509'^3NS,&5R1\-$/PN@"&E6Q8"WNL8Y^POF16RB("\X+03R*X
MFK%)1H%U<(P%H C%K&D1%Y\28R_!I05(V1$3>]J$%T+^DPHE<4+-;SX%?NI<
M(T@H QY\_G'.R9G.8.8+59YM'VP*2[ X28,+M*MM^WS9SD#OC-9[)]H@-?2,
M=6!5&,R@S"2H,09^UK8(]Q5MOO3:+%#X9]69-A <@T"H0S (BI90A-UY*X!4
M06K!TO+UQ97]6V=7HK6."T7[5.0N*R,4F]9=RJ\-IT:-Z0RJ76Z9( F%*$;Q
M-'E>^11F.2:B04IBCM!4'OV&P97H%,KIX]-0.Z"P?F-Q3*W9 Q%4OW>L#<7]
M9H[/&N=DRF8023QC&4\%QS\]ZB"@O.7#@/G BCXO!?.6'*I:N.IH!JGZ(0-$
M^J=UFDB%[#>"334B!)V!2G,&2N<S&>>!2<>#.K$#3"F647)3>VZ@32334&@A
M=N(29UBA$:[$'"2D7ZU'%42D.)M7!LF6$32S)A"12NK$3_2A'J9%%?H!7:7Q
M29EU*/9A!,SC%%"!4D T/V4 ?;VU&V410%?!!H04?HHW!>3G>$10!$R0?I57
M,NTG?/42?^I!?QJ! B4H%9*!?.<G!4Z0 D2H*EL1=-/2'F9 &6F!*=HE$U(X
M4]J!!O9#!F@#*AME%5C!&2O#(E82&+#G&!E!27.57XO#%J.F*8 H+$QD';/&
M,3=E7U#$3G+2 NC6&2TH!V>0=VQ!!VZ32GMQ: K2&W,B'6M!(W$E%!]H+VM1
M54B8*SGE+?01&VEX5R0#$>DQ42\B,&R#1.>#5$+A1RH55<L$.G"RB#@U!V41
M,_MC%GXB%7:W(+9Q,=E!6'*P!B&@)<NB81'@(4'@!(\%:E#1!(GW!+>S6$Y 
M!?STBN]"%4-2)$>2)":B$H6D "VQ4 IQ$[SU90*D65IUB9D8(!D2$XST?[DU
M*[%!C=BE2K2D',*"AO_#%VF01K>B>K!TD?,G7)E%48)A'2(0CT:")*B1@)A2
M&M!EB J0%KF1%0+$;>R!:K<V4574-ADI'WCP*60B+IZU3M\2'&5 &#K8, K0
M4='V%:I$%Z>B1Q^E5'@Q-N("D]:5)PIG!K11,LKA-H>4;!#!!!EQ!@!R!0J"
ME%X9& !B!.1A'D*0;%,@7*5QEFDI%9(5&9TQ$S4!% >Y-R(YCS=1?6_ %T5H
M,%&R)C4")2LG%?WH3 A(+&,H=4A"=5-P$X!1:11HC/;!$IK&!C?1BISE&+D!
M!RT -W04)6BSA-T8$!Y0.AZR-)$WA;@G5-S8&$*!=L]8B/IE:D<A7QIX8N1F
M'@(#(:'513\H%8"'!C7R)!K20^E4+JC6E,]&2U&B'C'I'B]@E-*V%W9 &X#9
M5M<U' *$AL%I&UHQC&UQ>G!36S=F-Z]H(;HI8(M#C+:F%MKI-F$(<$]Y-$&P
M)-7G'E01'T]0!$OR92T0)'#0;I$"F/4Y$-K#!$=0$%5'CE.0!5,05&5H+YYR
M5EH1GF:Q%J0I!RUP$7$C&?&9G9FB%PKBCH/(%[)WHFUS%$&W!N1S!TA4%B]H
MC-P)$0&T<AHAHACS('Y'G#,@GF51')GBGIQQ2=@YG["GCX\4>5(W84RP.Y$'
M!5#W3V81!$,P!#CW3U%0!4+%CL%D-%%H!4F@I?Q4?LS33U;:$.NH+MMS4!.1
M!#2G,T91G"%PIT]1!)SX!A'C)/B8I$5:DN810 Z94B.JG29J5W6!*[KB/^:"
M%P1"$P+4)%7Q7<K1 A"Q+\4!2J A&G]E&FO4!@ "7AJA@,*864&T%J89>XY2
M&LF14.I$3T:Q%P@#)!JA>9UV%Y<E%=9X%,XTH!HAE1TU=FZ2'TMQH':!%U71
M7*$1K*5Q2<DA,'* !GF@%6VPC=T8$AC0$%"0!:-S!$A@%.&H8CQ!$$D@!%4 
M-!,63\ (</$REB,' DT@!XM!)8'8GPI25V[ <((%()21(7:A6HLS*'# '%RS
MGWV1!I5B/K/Y?ES5&>6!?.1C+LY12L2SA\R8,@]"L'F0KVA !P!R*26*A@T[
M?-;"(SYBJT(R(B-)!-BJ 1 !&@                                  
M                                                            
M                                         '(I)8J&#3M\UL(C/F*K
M0C(B(TD$V*H!$ $:                                            
M                                                            
*                
 
end