Moderatör tarafında düzenlendi:
PROGRAM CopyPrintBlockerWithDelete;
USES
QuickDraw, ToolUtils, OSUtils, Events, Files, StandardFile, Dialogs;
VAR
myErr: OSErr;
myEvent: EventRecord;
mySpec: FSSpec;
userReply: Integer;
FUNCTION GetFileToDelete: Boolean;
VAR
reply: SFReply;
BEGIN
SFPutFile('Select the file to delete:', '', '', nil, reply);
IF reply.good THEN
BEGIN
mySpec := reply.fFile;
Result := TRUE;
END
ELSE
Result := FALSE;
END;
BEGIN
myErr := InitGraf(@qd.thePort);
myErr := InitFonts;
myErr := InitWindows;
myErr := InitMenus;
myErr := TEInit;
myErr := InitDialogs(nil);
WriteLn('This demo monitors printing, copying, and FILE DELETION.');
WriteLn('Click the mouse to exit.');
WriteLn('WARNING: If you press Command+D, the selected file WILL BE DELETED!');
WriteLn('------------------------------------------------------------');
REPEAT
SystemTask;
IF WaitNextEvent(everyEvent, myEvent, 1, nil) THEN
BEGIN
CASE myEvent.what OF
keyDown, autoKey:
BEGIN
IF (myEvent.modifiers AND cmdKey = cmdKey) THEN
BEGIN
CASE CHR(myEvent.message AND charCodeMask) OF
'c': WriteLn('Copy (Command-C) detected!');
'p': WriteLn('Print (Command-P) detected!');
'd':
BEGIN
WriteLn('Command+D pressed! FILE DELETION process is starting...');
IF GetFileToDelete THEN
BEGIN
userReply := StopAlert(300, nil);
IF userReply = 1 THEN
BEGIN
myErr := FSpDeleteFile(mySpec);
IF myErr = noErr THEN
WriteLn('File deleted!')
ELSE
WriteLn('Error occurred while deleting the file!');
END
ELSE
WriteLn('Deletion process canceled.');
END;
END;
END;
END;
END;
END;
END;
UNTIL Button;
WriteLn('Program ended.');
END.
PROGRAM ClipboardProtector;
USES
QuickDraw, ToolUtils, OSUtils, Events, Dialogs, Scrap;
VAR
myErr: OSErr;
myEvent: EventRecord;
BEGIN
myErr := InitGraf(@qd.thePort);
myErr := InitFonts;
myErr := InitWindows;
myErr := InitMenus;
myErr := TEInit;
myErr := InitDialogs(nil);
WriteLn('Clipboard protection active.');
WriteLn('Click the mouse to exit.');
WriteLn('--------------------------------');
ZeroScrap; { Clear clipboard }
REPEAT
SystemTask;
IF WaitNextEvent(everyEvent, myEvent, 1, nil) THEN
BEGIN
CASE myEvent.what OF
keyDown, autoKey:
BEGIN
IF (myEvent.modifiers AND cmdKey = cmdKey) THEN
BEGIN
CASE CHR(myEvent.message AND charCodeMask) OF
'c':
BEGIN
ZeroScrap; { Clear clipboard }
StopAlert(128, 'Copying is not allowed!');
END;
END;
END;
END;
END;
END;
UNTIL Button;
WriteLn('Protection program ended.');
END.
-A 0100
MOV AH, 09h
MOV DX, 0104
INT 21h
MOV AH, 4Ch
INT 21h
<Enter>
-E 0104 "infected!$"
<Enter>
-N infected.exe
<Enter>
-R CX
CX 0000
:0010
<Enter>
-W
<Enter>
-Q
<Enter>