C~KILL.BCKAKILL.BCK&BACKUPE/NOASSIST/LOG *.*; KILL.BCK/SAV ND "+V5.3 _CNI01::  _CNI01$DUB1: V5.3 ~ !*[DECUS.VAXF90B.VMS.KILL].README;1+, ./ 4G-'0123KPWO56`ۓ7` ۓ8`ҕl9GHJ/KILLDRIVER: forcer le crash d'une machine hang.C Ce programme de compose d'un driver et d'un programme de contrle.= Le driver, KILLDRIVER, est a mettre dans sys$loadable_images' le driver se connecte par la commande:$ run sys$system:sysgen)connect KILL0/driver=killdriver/noadapterG Le programme de contrle , KILL,cherche le noeud specifi, puis envoie:le QIO fatal. Il faut le privilege PHY_IO pour l'utiliser."*[DECUS.VAXF90B.VMS.KILL]KILL.EXE;1+,./ 4-'0123 KPWO56jۓ7ۓ8&l9GHJ 0DX0205([hKILL0ۓ05-05  ?! LIBRTL_0016Node:%CCe noeud n'existe pas dans le cluster%pLe driver KILLDRIVER n'est pas charg:le driver KILLDRIVER n'est pas charg sur le noeud distantErreur pendant GET_FOREIGNErreur pendant $GETSYIErreur pendant $ASSIGN=Erreur pendant $QIO%XLe driver KILLDRIVER n'est pas chargKILL0:PRЎPϓ1Ϲ1Rima|P&R|~)E0PPЯPPP|~pPP HPR|~|~|~X<~ moval get_foreign_mess,r2 pushal node_desc pushal prompt_d pushal node_desc calls #3,G^LIB$GET_FOREIGN1$: blbc r0,exit moval getsyi_mess,r2 $GETSYIW_S- itmlst=itm_list,- nodename=node_desc,- iosb=iosb cmpl r0,#SS$_NOSUCHNODE beql nonode2$: blbc r0,1$ movl iosb,r0 blbc r0,1$ moval assign_mess,r0 $ASSIGN_S devnam=drvr_d,- chan=drvr_chan cmpl r0,#SS$_NOSUCHDEV beql nodriver blbc r0,2$ moval qio_mess,r2< $QIOW_S chan=drvr_chan,func=#IO$_STOP,iosb=iosb,p1=systemid blbc r0,2$ movl iosb,r0 cmpl r0,#SS$_NOLISTENER beql nodriver cmpl r0,#SS$_VCBROKEN bneq 2$ movzbl #SS$_NORMAL,R0 ret nodriver: pushal nodriver_mess put_output: calls #1,G^LIB$PUT_OUTPUT ret .end main"*[DECUS.VAXF90B.VMS.KILL]KILL.OBJ;1+,./ 4-'0123KPWO56ۓ7.ۓ8磤l9GHJ.KILL0 5-OCT-1990 16:45 VAX MACRO V5.0-9 MAC KILL*-- provoque le crash d'une station du cl KILLLIB$GET_FOREIGNLIB$PUT_OUTPUTSS$_NOLISTENER SS$_NORMAL SS$_NOSUCHDEVSS$_NOSUCHNODE SS$_VCBROKEN SYS$ASSIGN SYS$GETSYIWSYS$QIOW . ABS .q . BLANK .P$ABS$PPPQQ23Node:Q&Q ?3Ce noeud n'existe pas dans le clusterQ%&Q+l3Le driver KILLDRIVER n'est pas chargQ%&Q+3le driver KILLDRIVER n'est pas charg sur le noeud distantQ:&Q@3Erreur pendant GET_FOREIGNQ&Q 3Erreur pendant $GETSYIQ&Q3Erreur pendant $ASSIGNQ&Q93Erreur pendant $QIOQ&QT3Le driver KILLDRIVER n'est pas chargQ%&Q+3KILL0:Q&Q QQPRLIB$PUT_OUTPUTЎPϓ1Ϲ1 MAIN&;RimaLIB$GET_FOREIGNP&R|~)E SYS$GETSYIWPSS$_NOSUCHNODEPЯPPP|~p SYS$ASSIGNP SS$_NOSUCHDEVHPR|~|~|~X<~,- UCBSIZE=UCB$K_KILL_LENGTH,- NAME=KILLDRIVER DPT_STORE INIT* DPT_STORE UCB , UCB$B_FLCK,B,SPL$C_SCS# DPT_STORE UCB , UCB$B_DIPL,B,229 DPT_STORE UCB , UCB$L_DEVCHAR,L,? DPT_STORE UCB , UCB$L_DEVCHAR2,L, ; ca fait joli- DPT_STORE UCB , UCB$B_DEVCLASS,B,DC$_SCOM DPT_STORE REINIT( DPT_STORE DDB , DDB$L_DDT,D,kill$DDT= DPT_STORE CRB , CRB$L_INTD+VEC$L_INITIAL,D,kill$CTRL_INIT> DPT_STORE CRB , CRB$L_INTD+VEC$L_UNITINIT,D,kill$UNIT_INIT DPT_STORE END;; Driver dispatch table; DDTAB - START=kill$START,- CANCEL=kill$CANCEL,- FUNCTB=kill$FDT,- DEVNAM=KILL kill$FDT: FUNCTAB ,- FUNCTAB ,- <> FUNCTAB kill$FDT_STOP,- kill$PRNAME:6 .ASCII "VMS$VAXClystere " ; nom process SCS (16 car.) kill$PRINFO:9 .ASCII "Gare au gorille!" ; ident. process SCS (16 car.); ; CONTROLLER INIT ROUTINE; ; R8 CRB ;A; declaration du process SCS en LISTEN. pour cela, il faut forker ; a lock SCS;kill$CTRL_INIT: PUSHL R5 ; save R5 BSBB DO_FORK POPL R5 ; restore R5 RSB;8; pour restaurer ce R5, et que 0(SP) - @ caller's caller;DO_FORK:;6; on forke dans le CRB. il faut initialiser CRB$B_FLCK;6 MOVB #SPL$C_SCS,CRB$B_FLCK(R8) ; init CRB lock number MOVL R8,R5 ; adresse du FKB( FORK ; access SCS with SCS spinlock;; MOVAB kill$PRNAME,R1;; locate process; JSB G^SCS$LOCLOOKUP; ; R0 status ; R1 SDIR; R3 CDT or 0 if failure; all others preserved; BLBC R0,2$;; already exists; RSB2$:;! LISTEN MSGADR=kill$CONNECT_RCV,- ERRADR=kill$LISTEN_ERROR,- LPRNAM=kill$PRNAME,- PRINFO=kill$PRINFO; ; R0 status; R3 CDT or 0 if failure; r1,r2 destroyed; all others preserved; BLBS R0,1$; kata. que faire ?1$: RSB; kill$LISTEN_ERROR: DISCONNECT RSBkill$CONNECT_RCV: BUG_CHECK CLUEXIT,FATAL HALT;6; FDT pour le seul IO function code autoris: IO$_STOP1; P1 contient l'adresse du systemid du noeud vis;kill$FDT_STOP: BISL3 4(AP),8(AP),R0 BISL 16(AP),R0 BISL 20(AP),R0 BISL 24(AP),R0+ BNEQ BADPARAM ; p2--p6 doivent tre nuls MOVL (AP),R1C IFNORD #SB$S_SYSTEMID,(R1),ACCVIO ; impossible de lire le systemid4 PUSHR #^M ; sauvegarde de systemid dans5 MOVC3 #SB$S_SYSTEMID,(r1),UCB$B_SYSTEMID(R5) ; l'UCB- POPR #^M ; registres ncessaires* MOVL R4,UCB$L_PCB(R5) ; save PCB address& JMP G^EXE$QIODRVPKT ; call START IO BADPARAM: MOVZBL #SS$_BADPARAM,R0 BRB ABORTACCVIO: MOVZBL #SS$_ACCVIO,R0ABORT: JMP G^EXE$ABORTIO; ; START I/O routine2; ouverture d'une connexion vers la machine cible.;; R3 IRP; R5 UCB kill$START:; MOVL UCB$L_PCB(R5),R4 MOVL PCB$L_JIB(R4),R0 CONNECT LPRNAM=kill$PRNAME,- RPRNAM=kill$PRNAME,- ERRADR=kill$LISTEN_ERROR,-' CONDAT=JIB$T_USERNAME(R0),- ; flicage- RSYSID=UCB$B_SYSTEMID(R5) ; attention: FORK; ; r0 status; R1,R2 destroyed(; R3 address of CDT or 0 if unsuccessful; R4 address of PDT; REQCOM; kill$CANCEL: RSBkill$UNIT_INIT:" BISB2 #UCB$M_ONLINE,UCB$L_STS(R5)# BISL2 #DEV$M_AVL,UCB$L_DEVCHAR(R5) RSBkill$END_OF_DRIVER: .end(*[DECUS.VAXF90B.VMS.KILL]KILLDRIVER.OBJ;1+, ./ 4(-'0123KPWO56́ۓ7 l*ۓ8 l9GHJ4 KILLDRIVER0 5-OCT-1990 15:38 VAX MACRO V5.0-9MAC KILLDRIVER.MAR*-- SYSAP pour forcer le crash d'une stat KILLDRIVER BUG$_CLUEXIT DEV$M_AVL DEV$M_IDV DEV$M_NNM DEV$M_SHR EXE$ABORTIOEXE$FORK EXE$QIODRVPKT IOC$MNTVER IOC$REQCOM IOC$RETURN KILL$DDT SCS$CONNECTSCS$DISCONNECT SCS$LISTEN SCS$LOCLOOKUPSYS$SYSTEM:SYS.STB . ABS .P$ABS$MPPPPPPPPPPPPPPPPPPP$$$105_PROLOGUEPQN4&884&4&KILLDRIVERQ Q Q 4r< DEV$M_SHR DEV$M_IDV8@ DEV$M_NNML  4&\|4&hA4&PN $$$115_DRIVERPP4 IOC$RETURN@4@4 IOC$RETURN IOC$RETURN IOC$RETURN IOC$MNTVER2 IOC$RETURN& IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURNX43VMS$VAXClystere Gare au gorille!UЎU4 XUEXE$FORKQ SCS$LOCLOOKUPPǟ SCS$LISTENPSCS$DISCONNECT BUG$_CLUEXIT8&ɬPȬPȬPȬPlQ a8(aŤ8 EXE$QIODRVPKTP P EXE$ABORTIOФ|P: ~~~~95Ť SCS$CONNECT IOC$REQCOMx DEV$M_AVL<:$$$105_PROLOGUE $$$115_DRIVERN@76=~KILL.BCKKILL.BCK&BACKUPE/NOASSIST/LOG *.*; KILL.BCK/SAV ND "+V5.3 _CNI01::  _CNI01$DUB1: V5.3 ~ !*[DECUS.VAXF90B.VMS.KILL].README;1+, ./ 4G-'0123KPWO56`ۓ7` ۓ8`ҕl9GHJ/KILLDRIVER: forcer le crash d'une machine hang.C Ce programme de compose d'un driver et d'un programme de contrle.= Le driver, KILLDRIVER, est a mettre dans sys$loadable_images' le driver se connecte par la commande:$ run sys$system:sysgen)connect KILL0/driver=killdriver/noadapterG Le programme de contrle , KILL,cherche le noeud specifi, puis envoie:le QIO fatal. Il faut le privilege PHY_IO pour l'utiliser."*[DECUS.VAXF90B.VMS.KILL]KILL.EXE;1+,./ 4-'0123 KPWO56jۓ7ۓ8&l9GHJ 0DX0205([hKILL0ۓ05-05  ?! LIBRTL_0016Node:%CCe noeud n'existe pas dans le cluster%pLe driver KILLDRIVER n'est pas charg:le driver KILLDRIVER n'est pas charg sur le noeud distantErreur pendant GET_FOREIGNErreur pendant $GETSYIErreur pendant $ASSIGN=Erreur pendant $QIO%XLe driver KILLDRIVER n'est pas chargKILL0:PRЎPϓ1Ϲ1Rima|P&R|~)E0PPЯPPP|~pPP HPR|~|~|~X<~ moval get_foreign_mess,r2 pushal node_desc pushal prompt_d pushal node_desc calls #3,G^LIB$GET_FOREIGN1$: blbc r0,exit moval getsyi_mess,r2 $GETSYIW_S- itmlst=itm_list,- nodename=node_desc,- iosb=iosb cmpl r0,#SS$_NOSUCHNODE beql nonode2$: blbc r0,1$ movl iosb,r0 blbc r0,1$ moval assign_mess,r0 $ASSIGN_S devnam=drvr_d,- chan=drvr_chan cmpl r0,#SS$_NOSUCHDEV beql nodriver blbc r0,2$ moval qio_mess,r2< $QIOW_S chan=drvr_chan,func=#IO$_STOP,iosb=iosb,p1=systemid blbc r0,2$ movl iosb,r0 cmpl r0,#SS$_NOLISTENER beql nodriver cmpl r0,#SS$_VCBROKEN bneq 2$ movzbl #SS$_NORMAL,R0 ret nodriver: pushal nodriver_mess put_output: calls #1,G^LIB$PUT_OUTPUT ret .end main"*[DECUS.VAXF90B.VMS.KILL]KILL.OBJ;1+,./ 4-'0123KPWO56ۓ7.ۓ8磤l9GHJ.KILL0 5-OCT-1990 16:45 VAX MACRO V5.0-9 MAC KILL*-- provoque le crash d'une station du cl KILLLIB$GET_FOREIGNLIB$PUT_OUTPUTSS$_NOLISTENER SS$_NORMAL SS$_NOSUCHDEVSS$_NOSUCHNODE SS$_VCBROKEN SYS$ASSIGN SYS$GETSYIWSYS$QIOW . ABS .q . BLANK .P$ABS$PPPQQ23Node:Q&Q ?3Ce noeud n'existe pas dans le clusterQ%&Q+l3Le driver KILLDRIVER n'est pas chargQ%&Q+3le driver KILLDRIVER n'est pas charg sur le noeud distantQ:&Q@3Erreur pendant GET_FOREIGNQ&Q 3Erreur pendant $GETSYIQ&Q3Erreur pendant $ASSIGNQ&Q93Erreur pendant $QIOQ&QT3Le driver KILLDRIVER n'est pas chargQ%&Q+3KILL0:Q&Q QQPRLIB$PUT_OUTPUTЎPϓ1Ϲ1 MAIN&;RimaLIB$GET_FOREIGNP&R|~)E SYS$GETSYIWPSS$_NOSUCHNODEPЯPPP|~p SYS$ASSIGNP SS$_NOSUCHDEVHPR|~|~|~X<~,- UCBSIZE=UCB$K_KILL_LENGTH,- NAME=KILLDRIVER DPT_STORE INIT* DPT_STORE UCB , UCB$B_FLCK,B,SPL$C_SCS# DPT_STORE UCB , UCB$B_DIPL,B,229 DPT_STORE UCB , UCB$L_DEVCHAR,L,? DPT_STORE UCB , UCB$L_DEVCHAR2,L, ; ca fait joli- DPT_STORE UCB , UCB$B_DEVCLASS,B,DC$_SCOM DPT_STORE REINIT( DPT_STORE DDB , DDB$L_DDT,D,kill$DDT= DPT_STORE CRB , CRB$L_INTD+VEC$L_INITIAL,D,kill$CTRL_INIT> DPT_STORE CRB , CRB$L_INTD+VEC$L_UNITINIT,D,kill$UNIT_INIT DPT_STORE END;; Driver dispatch table; DDTAB - START=kill$START,- CANCEL=kill$CANCEL,- FUNCTB=kill$FDT,- DEVNAM=KILL kill$FDT: FUNCTAB ,- FUNCTAB ,- <> FUNCTAB kill$FDT_STOP,- kill$PRNAME:6 .ASCII "VMS$VAXClystere " ; nom process SCS (16 car.) kill$PRINFO:9 .ASCII "Gare au gorille!" ; ident. process SCS (16 car.); ; CONTROLLER INIT ROUTINE; ; R8 CRB ;A; declaration du process SCS en LISTEN. pour cela, il faut forker ; a lock SCS;kill$CTRL_INIT: PUSHL R5 ; save R5 BSBB DO_FORK POPL R5 ; restore R5 RSB;8; pour restaurer ce R5, et que 0(SP) - @ caller's caller;DO_FORK:;6; on forke dans le CRB. il faut initialiser CRB$B_FLCK;6 MOVB #SPL$C_SCS,CRB$B_FLCK(R8) ; init CRB lock number MOVL R8,R5 ; adresse du FKB( FORK ; access SCS with SCS spinlock;; MOVAB kill$PRNAME,R1;; locate process; JSB G^SCS$LOCLOOKUP; ; R0 status ; R1 SDIR; R3 CDT or 0 if failure; all others preserved; BLBC R0,2$;; already exists; RSB2$:;! LISTEN MSGADR=kill$CONNECT_RCV,- ERRADR=kill$LISTEN_ERROR,- LPRNAM=kill$PRNAME,- PRINFO=kill$PRINFO; ; R0 status; R3 CDT or 0 if failure; r1,r2 destroyed; all others preserved; BLBS R0,1$; kata. que faire ?1$: RSB; kill$LISTEN_ERROR: DISCONNECT RSBkill$CONNECT_RCV: BUG_CHECK CLUEXIT,FATAL HALT;6; FDT pour le seul IO function code autoris: IO$_STOP1; P1 contient l'adresse du systemid du noeud vis;kill$FDT_STOP: BISL3 4(AP),8(AP),R0 BISL 16(AP),R0 BISL 20(AP),R0 BISL 24(AP),R0+ BNEQ BADPARAM ; p2--p6 doivent tre nuls MOVL (AP),R1C IFNORD #SB$S_SYSTEMID,(R1),ACCVIO ; impossible de lire le systemid4 PUSHR #^M ; sauvegarde de systemid dans5 MOVC3 #SB$S_SYSTEMID,(r1),UCB$B_SYSTEMID(R5) ; l'UCB- POPR #^M ; registres ncessaires* MOVL R4,UCB$L_PCB(R5) ; save PCB address& JMP G^EXE$QIODRVPKT ; call START IO BADPARAM: MOVZBL #SS$_BADPARAM,R0 BRB ABORTACCVIO: MOVZBL #SS$_ACCVIO,R0ABORT: JMP G^EXE$ABORTIO; ; START I/O routine2; ouverture d'une connexion vers la machine cible.;; R3 IRP; R5 UCB kill$START:; MOVL UCB$L_PCB(R5),R4 MOVL PCB$L_JIB(R4),R0 CONNECT LPRNAM=kill$PRNAME,- RPRNAM=kill$PRNAME,- ERRADR=kill$LISTEN_ERROR,-' CONDAT=JIB$T_USERNAME(R0),- ; flicage- RSYSID=UCB$B_SYSTEMID(R5) ; attention: FORK; ; r0 status; R1,R2 destroyed(; R3 address of CDT or 0 if unsuccessful; R4 address of PDT; REQCOM; kill$CANCEL: RSBkill$UNIT_INIT:" BISB2 #UCB$M_ONLINE,UCB$L_STS(R5)# BISL2 #DEV$M_AVL,UCB$L_DEVCHAR(R5) RSBkill$END_OF_DRIVER: .end(*[DECUS.VAXF90B.VMS.KILL]KILLDRIVER.OBJ;1+, ./ 4(-'0123KPWO56́ۓ7 l*ۓ8 l9GHJ4 KILLDRIVER0 5-OCT-1990 15:38 VAX MACRO V5.0-9MAC KILLDRIVER.MAR*-- SYSAP pour forcer le crash d'une stat KILLDRIVER BUG$_CLUEXIT DEV$M_AVL DEV$M_IDV DEV$M_NNM DEV$M_SHR EXE$ABORTIOEXE$FORK EXE$QIODRVPKT IOC$MNTVER IOC$REQCOM IOC$RETURN KILL$DDT SCS$CONNECTSCS$DISCONNECT SCS$LISTEN SCS$LOCLOOKUPSYS$SYSTEM:SYS.STB . ABS .P$ABS$MPPPPPPPPPPPPPPPPPPP$$$105_PROLOGUEPQN4&884&4&KILLDRIVERQ Q Q 4r< DEV$M_SHR DEV$M_IDV8@ DEV$M_NNML  4&\|4&hA4&PN $$$115_DRIVERPP4 IOC$RETURN@4@4 IOC$RETURN IOC$RETURN IOC$RETURN IOC$MNTVER2 IOC$RETURN& IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURNX43VMS$VAXClystere Gare au gorille!UЎU4 XUEXE$FORKQ SCS$LOCLOOKUPPǟ SCS$LISTENPSCS$DISCONNECT BUG$_CLUEXIT8&ɬPȬPȬPȬPlQ a8(aŤ8 EXE$QIODRVPKTP P EXE$ABORTIOФ|P: ~~~~95Ť SCS$CONNECT IOC$REQCOMx DEV$M_AVL<:$$$105_PROLOGUE $$$115_DRIVERN@7