home *** CD-ROM | disk | FTP | other *** search
Wrap
;------------------------------------------------------------------------------ ; .ss. ; `²²' ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs. ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,. ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b. ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$ ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²' ; .sS²°$$$²²°"' d²°' ; .$$² .$$' ; $$$.,d$$' ; `²S$$S²' ;------------------------------------------------------------------------------ ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96 ;------------------------------------------------------------------------------ ; PPE 1.OO (plain) - Analysis ON - Postprocessing ON ;------------------------------------------------------------------------------ Boolean BOOLEAN007 Boolean BOOLEAN008 Boolean BOOLEAN009 Boolean BOOLEAN010 Integer INTEGER001 Integer INTEGER002 String STRING009 String STRING010 String STRING011 String STRING012 String STRING013 String STRING014 String STRING015 String STRING016 String STRING017 String STRING018 String STRING019 String STRING020 String STRING021 String STRING022 String STRING023 String STRING024 String STRING025 String STRING026 String STRING027 String STRING028 String STRING029 String STRING030 String STRING031 String STRING032 String STRING033 String STRING034 String STRING035 String STRING036 String STRING037 String STRING038 String STRING039 String STRING040 ;------------------------------------------------------------------------------ GetUser Gosub LABEL022 GetToken STRING011 If (Strip(STRING011, " ") == "A") Goto LABEL002 If (Strip(STRING011, " ") == "B") Goto LABEL003 If (Strip(STRING011, " ") == "C") Goto LABEL004 If (Strip(STRING011, " ") == "D") Goto LABEL005 If (Strip(STRING011, " ") == "E") Goto LABEL006 If (Strip(STRING011, " ") == "F") Goto LABEL007 If (Strip(STRING011, " ") == "G") Goto LABEL008 If (Strip(STRING011, " ") == "H") Goto LABEL009 If (Strip(STRING011, " ") == "I") Goto LABEL010 If (Strip(STRING011, " ") == "J") Goto LABEL011 If ((Strip(STRING011, " ") == "K") && Psa(3)) Goto LABEL012 If ((Strip(STRING011, " ") == "L") && Psa(3)) Goto LABEL013 If ((Strip(STRING011, " ") == "M") && Psa(3)) Goto LABEL014 If ((Strip(STRING011, " ") == "N") && Psa(3)) Goto LABEL015 If ((Strip(STRING011, " ") == "O") && Psa(3)) Goto LABEL016 If ((Strip(STRING011, " ") == "P") && Psa(3)) Goto LABEL017 If ((Strip(STRING011, " ") == "S") && Psa(5)) Goto LABEL026 If ((Strip(STRING011, " ") == "X") && Psa(1)) Goto LABEL018 If ((Strip(STRING011, " ") == "Y") && Psa(2)) Goto LABEL021 If (Strip(STRING011, " ") == "V") Goto LABEL024 If (Strip(STRING011, " ") <> "") STRING011 = "" :LABEL001 Cls STRING009 = "" PrintLn "@X7F┌─────────────────────────────────────────────────────────────────────────────@X70┐@X07" PrintLn "@X7F│ @X70@SYSDATE:8@ @X7BW R I T E U S E R I N F O R M A T I O N @X70" + String(Time()) + "@POS:79@│@X07" PrintLn "@X7F└@X70─────────────────────────────────────────────────────────────────────────────┘@X07" PrintLn "@X70┌─────────────────────────────────────────────────────────────────────────────@X7F┐@X07" PrintLn "@X70│ @X71(@X7EA@X71) Change your Password (@X7EF@X71) Clear the screen between each message @X7F│@X07" PrintLn "@X70│ @X71(@X7EB@X71) Change City and State (@X7EG@X71) Scroll multi-screen messages @X7F│@X07" PrintLn "@X70│ @X71(@X7EC@X71) Business or data phone (@X7EH@X71) Use long header when reading messages @X7F│@X07" PrintLn "@X70│ @X71(@X7ED@X71) Home or voice phone (@X7EI@X71) Full Screen Editor Default @X7F│@X07" PrintLn "@X70│ @X71(@X7EE@X71) Brand of CPU you are using (@X7EJ@X71) Set editor workspace to 79 columns @X7F│@X07" If ((Psa(1) || Psa(2)) || Psa(3)) Then PrintLn "@X70│ @X7F│@X07" PrintLn "@X70│ @X71(@X7EK@X71) Street Address and Number (@X7EX@X71) Create or change your ALIAS name @X7F│@X07" PrintLn "@X70│ @X71(@X7EL@X71) Suite or Apartment Number (@X7EY@X71) User Verification Information @X7F│@X07" PrintLn "@X70│ @X71(@X7EM@X71) City, Town or Village @POS:79@@X7F│@X07" PrintLn "@X70│ @X71(@X7EN@X71) Province or State @X7F┌───────────────────────────────────────@X70┐@X70 @X7F│@X07" PrintLn "@X70│ @X71(@X7EO@X71) Postal Zip Code @X7F│ @X71Name: @X7E" + Left(U_Name(), 20) + "@POS:66@@X71Level: @X7E" + String(U_Sec) + "@POS:77@@X70│@X70 @X7F│@X07" PrintLn "@X70│ @X71(@X7EP@X71) Country or Region @X7F└@X70───────────────────────────────────────┘@X70 @X7F│@X07" PrintLn "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X07" InputStr "(@X0EV@X0F)iew, (@X0ES@X0F)tats, (@X0EQ@X0F)uit, Write User Information Command", STRING009, 15, 1, "abcdefghijklmnopqsvxyABCDEFGHIJKLMNOPQSVXY", 2 + 4 + 8 + 128 + 32 Else PrintLn "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X07" InputStr "(@X0EV@X0F)iew, (@X0ES@X0F)tats, (@X0EQ@X0F)uit, Write User Information Command", STRING009, 15, 1, "abcdefghijqsvABCDEFGHIJQSV", 2 + 4 + 8 + 128 + 32 Endif If (STRING009 == "A") Goto LABEL002 If (STRING009 == "B") Goto LABEL003 If (STRING009 == "C") Goto LABEL004 If (STRING009 == "D") Goto LABEL005 If (STRING009 == "E") Goto LABEL006 If (STRING009 == "F") Goto LABEL007 If (STRING009 == "G") Goto LABEL008 If (STRING009 == "H") Goto LABEL009 If (STRING009 == "I") Goto LABEL010 If (STRING009 == "J") Goto LABEL011 If ((STRING009 == "K") && Psa(3)) Goto LABEL012 If ((STRING009 == "L") && Psa(3)) Goto LABEL013 If ((STRING009 == "M") && Psa(3)) Goto LABEL014 If ((STRING009 == "N") && Psa(3)) Goto LABEL015 If ((STRING009 == "O") && Psa(3)) Goto LABEL016 If ((STRING009 == "P") && Psa(3)) Goto LABEL017 If ((STRING009 == "S") && Psa(5)) Goto LABEL026 If ((STRING009 == "X") && Psa(1)) Goto LABEL018 If ((STRING009 == "Y") && Psa(2)) Goto LABEL021 If (STRING009 == "V") Goto LABEL024 If (STRING009 == "Q") Goto LABEL027 If (STRING009 == "") Goto LABEL027 Goto LABEL001 :LABEL002 If (Exist(PPEPath() + "WUI_A")) DispFile PPEPath() + "WUI_A", 4 + 2 + 1 PromptStr 152, STRING013, 13, Mask_Pwd(), 2 + 4 + 8 + 128 + 1 + 256 If ((Strip(STRING011, " ") == "A") && (STRING013 == "")) Goto LABEL027 If ((STRING009 == "A") && (STRING013 == "")) Goto LABEL001 If (Psa(4) && (Len(STRING013) < ReadLine(PCBDat(), 265))) Then STRING013 = "" Newline PrintLn "@X0CPassword too short! Must be @X0F" + Trim(ReadLine(PCBDat(), 265), Chr(32)) + " @X0Ccharacters or longer, try again.@X07" FreshLine Goto LABEL002 ElseIf (Psa(4) && (InStr(U_Name(), STRING013) > 0)) Then STRING013 = "" Newline PrintLn "@X0CYour password cannot be a subset of your name. While this may make it easy for" PrintLn "@X0Cyou to remember, it also makes it easier for someone to guess your password.@X07" FreshLine Goto LABEL002 Endif PromptStr 111, STRING014, 13, Mask_Pwd(), 2 + 4 + 8 + 128 + 1 If (STRING013 <> STRING014) Then STRING013 = "" STRING014 = "" Newlines 2 PrintLn "@X0CSorry, @FIRST@, the two passwords do not match, try again.@X07" FreshLine Goto LABEL002 ElseIf (STRING013 == STRING014) Then BOOLEAN007 = 1 U_Pwd = STRING013 STRING013 = "" STRING014 = "" Endif If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL003 If (Exist(PPEPath() + "WUI_B")) DispFile PPEPath() + "WUI_B", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 265, U_City, 24, Mask_Ascii(), 2 + 4 + 8 + 128 STRING016 = Left(RTrim(U_City, Chr(32)) + "·························", 25) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL004 If (Exist(PPEPath() + "WUI_C")) DispFile PPEPath() + "WUI_C", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 113, U_BDPhone, 13, Mask_Num() + "- ", 2 + 4 + 8 + 128 STRING017 = Left(RTrim(U_BDPhone, Chr(32)) + "·············", 13) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL005 If (Exist(PPEPath() + "WUI_D")) DispFile PPEPath() + "WUI_D", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 114, U_HVPhone, 13, Mask_Num() + "- ", 2 + 4 + 8 + 128 STRING018 = Left(RTrim(U_HVPhone, Chr(32)) + "·············", 13) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL006 If (Exist(PPEPath() + "WUI_E")) DispFile PPEPath() + "WUI_E", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 2, U_Cmnt1, 30, Mask_Ascii(), 2 + 4 + 8 + 128 If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL007 If (Exist(PPEPath() + "WUI_F")) DispFile PPEPath() + "WUI_F", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 556, STRING038, 1, "YN", 2 + 4 + 8 + 128 + 16384 If (STRING038 == NoChar()) U_Cls = 0 If (STRING038 == YesChar()) U_Cls = 1 If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL008 If (Exist(PPEPath() + "WUI_G")) DispFile PPEPath() + "WUI_G", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 627, STRING037, 1, "YN", 2 + 4 + 8 + 128 + 16384 If (STRING037 == NoChar()) U_Scroll = 0 If (STRING037 == YesChar()) U_Scroll = 1 If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL009 If (Exist(PPEPath() + "WUI_H")) DispFile PPEPath() + "WUI_H", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 628, STRING035, 1, "YN", 2 + 4 + 8 + 128 + 16384 If (STRING035 == NoChar()) U_LongHDR = 0 If (STRING035 == YesChar()) U_LongHDR = 1 If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL010 If (Exist(PPEPath() + "WUI_I")) DispFile PPEPath() + "WUI_I", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 583, STRING039, 1, "YNA", 2 + 4 + 8 + 128 Select Case (STRING039) Case NoChar() U_FSEP = 0 U_FSE = 0 Case YesChar() U_FSEP = 0 U_FSE = 1 Case "A" U_FSEP = 1 U_FSE = 0 End Select If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL011 If (Exist(PPEPath() + "WUI_J")) DispFile PPEPath() + "WUI_J", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 637, STRING040, 1, "YN", 2 + 4 + 8 + 128 + 16384 If (STRING040 == NoChar()) U_Def79 = 0 If (STRING040 == YesChar()) U_Def79 = 1 If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL012 If (Exist(PPEPath() + "WUI_K")) DispFile PPEPath() + "WUI_K", 4 + 2 + 1 BOOLEAN007 = 1 InputStr "Street Address and Number", U_Addr(0), 14, 50, Mask_Ascii(), 2 + 4 + 8 + 128 STRING023 = Left(RTrim(U_Addr(0), Chr(32)) + "······················································", 54) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL013 If (Exist(PPEPath() + "WUI_L")) DispFile PPEPath() + "WUI_L", 4 + 2 + 1 BOOLEAN007 = 1 InputStr "Suite or Apartment Number", U_Addr(1), 14, 50, Mask_Ascii(), 2 + 4 + 8 + 128 STRING024 = Left(RTrim(U_Addr(1), Chr(32)) + "······················································", 54) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL014 If (Exist(PPEPath() + "WUI_M")) DispFile PPEPath() + "WUI_M", 4 + 2 + 1 BOOLEAN007 = 1 InputStr "City, Town or Village", U_Addr(2), 14, 25, Mask_Ascii(), 2 + 4 + 8 + 128 STRING025 = Left(RTrim(U_Addr(2), Chr(32)) + "·························", 25) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL015 If (Exist(PPEPath() + "WUI_N")) DispFile PPEPath() + "WUI_N", 4 + 2 + 1 BOOLEAN007 = 1 InputStr "Province or State", U_Addr(3), 14, 10, Mask_Ascii(), 2 + 4 + 8 + 128 STRING026 = Left(RTrim(U_Addr(3), Chr(32)) + "·························", 25) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL016 If (Exist(PPEPath() + "WUI_O")) DispFile PPEPath() + "WUI_O", 4 + 2 + 1 BOOLEAN007 = 1 InputStr "Postal/Zip Code", U_Addr(4), 14, 10, Mask_Num() + "-", 2 + 4 + 8 + 128 STRING027 = Left(RTrim(U_Addr(4), Chr(32)) + "················", 16) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL017 If (Exist(PPEPath() + "WUI_P")) DispFile PPEPath() + "WUI_P", 4 + 2 + 1 BOOLEAN007 = 1 InputStr "Country or Region", U_Addr(5), 14, 15, Mask_Ascii(), 2 + 4 + 8 + 128 STRING028 = Left(RTrim(U_Addr(5), Chr(32)) + "················", 16) If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL018 If ((ReadLine(PCBDat(), 259) == "0") && (U_Alias <> "")) Then PrintLn PrintLn "@X0CSorry, @FIRST@, You have already chosen an ALIAS name." PrintLn PrintLn "@X0EThe SysOp has disabled the ability to change your alias name. You may leave a" PrintLn "@X0Ecomment to the System Operator to request a change of your alias name." PrintLn Wait Else If (Exist(PPEPath() + "ALIAS")) DispFile PPEPath() + "ALIAS", 4 + 2 + 1 PromptStr 690, U_Alias, 25, Mask_Ascii(), 2 + 4 + 8 + 128 If (Trim(U_Alias, Chr(32)) <> Trim(Strip(STRING019, Chr(250)), Chr(32))) Then If (U_RecNum(U_Alias) <> -1) Then Log "Attempted to use " + Trim(U_Alias, Chr(32)) + " as an alias.", 0 Newlines 2 DispText 256, 256 + 2048 + 64 U_Alias = Strip(STRING019, Chr(250)) Wait Goto LABEL020 Endif BOOLEAN008 = 1 If (Trim(U_Alias, Chr(32)) <> "") Then Log "Changed alias to " + Trim(U_Alias, Chr(32)) + ".", 0 Goto LABEL019 Endif Log "Deleted current alias name " + Trim(Strip(STRING019, Chr(250)), Chr(32)) + ".", 0 :LABEL019 BOOLEAN007 = 1 STRING019 = Left(RTrim(U_Alias, Chr(32)) + "·························", 25) Endif Endif :LABEL020 If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL021 If (U_Ver <> "") Then STRING010 = "" If (Strip(STRING011, " ") == "Y") Newline PrintLn "If you need to change or alter this field, you must first enter the information" PrintLn "exactly like it was first entered. If you can't remember what was entered in" PrintLn "this field, leave a comment to the SysOp, so he can help you out." PromptStr 707, STRING010, 25, Mask_Ascii(), 2 + 4 + 8 + 128 + 256 If (STRING010 == U_Ver) Then If (Exist(PPEPath() + "VERIFY")) DispFile PPEPath() + "VERIFY", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 706, U_Ver, 25, Mask_Ascii(), 2 + 4 + 8 + 128 ElseIf (STRING010 <> "") Then Log "Incorrect Verification Information (" + STRING010 + ")", 0 Newline PrintLn "Sorry, the User Verification Information you just entered, does NOT match the" PrintLn "information you previuosly entered. At this point you may leave a comment to" PrintLn "the SysOp, or try again, make sure the information is entered correctly." Newline Wait Endif Else If (Exist(PPEPath() + "VERIFY")) DispFile PPEPath() + "VERIFY", 4 + 2 + 1 BOOLEAN007 = 1 PromptStr 706, U_Ver, 25, Mask_Ascii(), 2 + 4 + 8 + 128 Endif STRING020 = Left(RTrim(U_Ver, Chr(32)) + "·························", 25) For INTEGER002 = 1 To Len(U_Ver) STRING020 = Replace(STRING020, Mid(STRING020, INTEGER002, 1), "*") Next If (STRING011 == "") Goto LABEL001 Goto LABEL027 :LABEL022 Log "Write User Information (" + PPEName() + ".PPE) " + "at (" + Left(Time(), 5) + ")", 0 RdUNet PcbNode() STRING015 = Left(RTrim(U_Name(), Chr(32)) + "·························", 25) STRING016 = Left(RTrim(U_City, Chr(32)) + "·························", 25) STRING017 = Left(RTrim(U_BDPhone, Chr(32)) + "·············", 13) STRING018 = Left(RTrim(U_HVPhone, Chr(32)) + "·············", 13) STRING021 = Left(RTrim(U_Pwd, Chr(32)) + "·············", 13) STRING022 = Left(RTrim(String(U_Sec), Chr(32)) + "·············", 13) STRING019 = Left(RTrim(U_Alias, Chr(32)) + "·························", 25) STRING020 = Left(RTrim(U_Ver, Chr(32)) + "·························", 25) For INTEGER002 = 1 To Len(U_Ver) STRING020 = Replace(STRING020, Mid(STRING020, INTEGER002, 1), "*") Next STRING023 = Left(RTrim(U_Addr(0), Chr(32)) + "······················································", 54) STRING024 = Left(RTrim(U_Addr(1), Chr(32)) + "······················································", 54) STRING025 = Left(RTrim(U_Addr(2), Chr(32)) + "·························", 25) STRING026 = Left(RTrim(U_Addr(3), Chr(32)) + "·························", 25) STRING027 = Left(RTrim(U_Addr(4), Chr(32)) + "················", 16) STRING028 = Left(RTrim(U_Addr(5), Chr(32)) + "················", 16) STRING030 = Right(Space(8) + "········" + String(U_ExpSec), 8) INTEGER001 = U_ExpDate - Date() If (INTEGER001 < 0) INTEGER001 = 0 STRING029 = Right(Space(8) + "········" + String(INTEGER001), 8) STRING031 = Right(Space(8) + "········" + String(U_TimeOn()), 8) STRING032 = Right(Space(8) + "········" + String(MinOn()), 8) STRING033 = Right(Space(8) + "········" + String(CallNum() + 1), 8) STRING034 = Right(Space(8) + "········" + String(U_Logons()), 8) If (U_Expert == 0) STRING036 = NoChar() If (U_Expert == 1) STRING036 = YesChar() If (U_Cls == 0) STRING038 = NoChar() If (U_Cls == 1) STRING038 = YesChar() If ((U_FSEP == 0) && (U_FSE == 0)) STRING039 = NoChar() If ((U_FSEP == 0) && (U_FSE == 1)) STRING039 = YesChar() If ((U_FSEP == 1) && (U_FSE == 0)) STRING039 = "A" If (U_Def79 == 0) STRING040 = NoChar() If (U_Def79 == 1) STRING040 = YesChar() If (U_Scroll == 0) STRING037 = NoChar() If (U_Scroll == 1) STRING037 = YesChar() If (U_LongHDR == 0) STRING035 = NoChar() If (U_LongHDR == 1) STRING035 = YesChar() Return :LABEL023 STRING012 = "" If (BOOLEAN010 == 0) Then InputStr "(@X0EN@X0F)ext Page, (@X0ES@X0F)tatistics, (@X0EQ@X0F)uit, (@X0EEnter@X0F)=none", STRING012, 15, 1, "nqsNQS", 2 + 4 + 8 + 128 + 32 Else InputStr "(@X0EL@X0F)ast Page, (@X0ES@X0F)tatistics, (@X0EQ@X0F)uit, (@X0EEnter@X0F)=none", STRING012, 15, 1, "lqsLQS", 2 + 4 + 8 + 128 + 32 Endif If (STRING012 == "L") Goto LABEL024 If (STRING012 == "N") Goto LABEL025 If (STRING012 == "S") Goto LABEL026 If ((STRING012 == "Q") && (STRING011 == "")) Goto LABEL001 If ((STRING012 == "") && (STRING011 == "")) Goto LABEL001 Goto LABEL027 :LABEL024 BOOLEAN010 = 0 If (BOOLEAN009 == 0) Then Log "User Statistics Viewed at (" + Left(Time(), 5) + ")", 0 BOOLEAN009 = 1 Endif Cls PrintLn "@X30┌@X3B───────────────────────────────────────────────────────────────────────────┐@X07" PrintLn "@X30│ @X34U S E R S I N F O R M A T I O N@POS:77@@X3B│@X07" PrintLn "@X30└───────────────────────────────────────────────────────────────────────────@X3B┘@X07" PrintLn PrintLn "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PrintLn "@X30│ @X3FUsers Full Name@X30: @X31[@X3E" + STRING015 + "@X31] @X3FData Phone@X30: @X31[@X3E" + STRING017 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FCity and State @X30: @X31[@X3E" + STRING016 + "@X31] @X3FHome Phone@X30: @X31[@X3E" + STRING018 + "@X31] @POS:77@@X3B│@X07" If (Psa(1)) Then PrintLn "@X30│ @X3FUser Alias Name@X30: @X31[@X3E" + STRING019 + "@X31] @X3FPassword @X30: @X31[@X3E" + STRING021 + "@X31] @POS:77@@X3B│@X07" Else PrintLn "@X30│ @X3FUser Alias Name@X30: @X31[@X38" + STRING019 + "@X31] @X3FPassword @X30: @X31[@X3E" + STRING021 + "@X31] @POS:77@@X3B│@X07" Endif If (Psa(2)) Then PrintLn "@X30│ @X3FVerification @X30: @X31[@X3E" + STRING020 + "@X31] @X3FSecurity @X30: @X31[@X3E" + STRING022 + "@X31] @POS:77@@X3B│@X07" Else PrintLn "@X30│ @X3FVerification @X30: @X31[@X38" + STRING020 + "@X31] @X3FSecurity @X30: @X31[@X3E" + STRING022 + "@X31] @POS:77@@X3B│@X07" Endif PrintLn "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" If (Psa(3)) Then PrintLn PrintLn "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PrintLn "@X30│ @X3FStreet Address @X30: @X31[@X3E" + STRING023 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FSuite/Apartment@X30: @X31[@X3E" + STRING024 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FCity or Town @X30: @X31[@X3E" + STRING025 + "@X31] @X3FZipCode@X30: @X31[@X3E" + STRING027 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FProvince/State @X30: @X31[@X3E" + STRING026 + "@X31] @X3FCountry@X30: @X31[@X3E" + STRING028 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" Else PrintLn PrintLn "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PrintLn "@X30│ @X3FStreet Address @X30: @X31[@X38" + STRING023 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FSuite/Apartment@X30: @X31[@X38" + STRING024 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FCity or Town @X30: @X31[@X38" + STRING025 + "@X31] @X3FZipCode@X30: @X31[@X38" + STRING027 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FProvince/State @X30: @X31[@X38" + STRING026 + "@X31] @X3FCountry@X30: @X31[@X38" + STRING028 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" Endif PrintLn PrintLn "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PrintLn "@X30│ @X3FNumber of Times on System@X30: @X31[@X3E" + STRING034 + "@X31] @X3FNumber of System Calls@X30: @X31[@X3E" + STRING033 + "@X31]@POS:77@@X3B│@X07" PrintLn "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" Goto LABEL023 :LABEL025 BOOLEAN010 = 1 Cls PrintLn "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PrintLn "@X30│ @X3FRegistration Expiration Date@X30: @X31[@X3E" + Left(U_ExpDate, 8) + "@X31] @X3FLast Date on System@X30: @X31[@X3E" + Left(U_LDate(), 8) + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FDays Left before Expiration @X30: @X31[@X3E" + STRING029 + "@X31] @X3FLast Time on System@X30: @X31[@X3E" + Left(U_LTime(), 8) + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FExpired User Security Level @X30: @X31[@X3E" + STRING030 + "@X31] @X3FLast Directory Scan@X30: @X31[@X3E" + Left(U_LDir(), 8) + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30│ @X3FMinutes Used this Session @X30: @X31[@X3E" + STRING032 + "@X31] @X3FMinutes Used Today @X30: @X31[@X3E" + STRING031 + "@X31] @POS:77@@X3B│@X07" PrintLn "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" PrintLn PrintLn "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PrintLn "@X30│ @X3FGraphics Mode @X30: @X31[@X3E" + GrafMode() + "@X31] @X3FExpert Mode @X30: @X31[@X3E" + STRING036 + "@X31] @X3FDefault Protocol@X30: @X31[@X3E" + U_Trans + "@X31]@POS:77@@X3B│@X07" PrintLn "@X30│ @X3F79-Column Editor@X30: @X31[@X3E" + STRING040 + "@X31] @X3FFull Scrn Editor@X30: @X31[@X3E" + STRING039 + "@X31] @X3FLong Headers @X30: @X31[@X3E" + STRING035 + "@X31]@POS:77@@X3B│@X07" PrintLn "@X30│ @X3FScroll Long Msgs@X30: @X31[@X3E" + STRING037 + "@X31] @X3FChat Status @X30: @X31[@X3E" + UN_Stat() + "@X31] @X3FMessage Clear @X30: @X31[@X3E" + STRING038 + "@X31]@POS:77@@X3B│@X07" PrintLn "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" PrintLn PrintLn "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PrintLn "@X30│ @X3FFiles Downloaded@X30: @X31[@X3E@DLFILES:14R@@X31] @X3FFiles Uploaded@X30: @X31[@X3E@UPFILES:14R@@X31]@POS:77@@X3B│@X07" PrintLn "@X30│ @X3FBytes Downloaded@X30: @X31[@X3E@DLBYTES:14R@@X31] @X3FBytes Uploaded@X30: @X31[@X3E@UPBYTES:14R@@X31]@POS:77@@X3B│@X07" PrintLn "@X30│ @X3FFile Ratios @X30: @X31[@X3E@FILERATIO:14R@@X31] @X3FByte Ratios @X30: @X31[@X3E@BYTERATIO:14R@@X31]@POS:77@@X3B│@X07" PrintLn "@X30│@X38───────────────────────────────────────────────────────────────────────────@X3B│@X07" PrintLn "@X30│ @X3FMessages Left @X30: @X31[@X3E@MSGLEFT:14R@@X31] @X3FMessages Read @X30: @X31[@X3E@MSGREAD:14R@@X31]@POS:77@@X3B│@X07" PrintLn "@X30│ @X3FHighest Message @X30: @X31[@X3E@HIGHMSGNUM:14R@@X31] @X3FLast Msg Read @X30: @X31[@X3E@LMR:14R@@X31]@POS:77@@X3B│@X07" PrintLn "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" Goto LABEL023 :LABEL026 If (Psa(5)) Then Log "Security Information Viewed at (" + Left(Time(), 5) + ")", 0 Cls PrintLn "@X40┌───────────────────────────────────────────────────────────────────────────@X4C┐@X07" PrintLn "@X40│ @X4BU S E R S E C U R I T Y S T A T I S T I C S @X4C│@X07" PrintLn "@X40└@X4C───────────────────────────────────────────────────────────────────────────┘@X07" Newline PrintLn "@X40┌───────────────────────────────────────────────────────────────────────────@X4C┐@X07" PrintLn "@X40│ @X4FFirst Date On system @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(1)), 8) + "@X47] @POS:43@@X4FLast PWD Change Date @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_PwdLc()), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @X4FLast Date On system @X40: @X47[@X4E" + Left(U_LDate(), 8) + "@X47] @POS:43@@X4FPWD Expiration Date @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_PwdExp), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @X4FNumber Times On system @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Logons()), 8) + "@X47] @POS:43@@X4F# Times PWD Changed @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_PwdTc()), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @POS:77@@X4C│@X07" PrintLn "@X40│ @X4F# Security Violations @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(10)), 8) + "@X47] @POS:43@@X4F# Times Paged Sysop @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(2)), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @X4F# Un-Reg Conf Attempts @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(11)), 8) + "@X47] @POS:43@@X4F# Times Group Chat @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(3)), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @X4F# Password Failures @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(14)), 8) + "@X47] @POS:43@@X4F# Comments to Sysop @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(4)), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @X4F# Dnld Limit Reached @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(12)), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @X4F# Dnld File Not Found @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(13)), 8) + "@X47] @POS:43@@X4F# Upld Verify Failed @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(15)), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @POS:77@@X4C│@X07" PrintLn "@X40│ @X4F# Times On at 1200 @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(6)), 8) + "@X47] @POS:43@@X4F# Times On at 2400 @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(7)), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40│ @X4F# Times On at 9600 @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(8)), 8) + "@X47] @POS:43@@X4F# Times On at 14400+ @X40: @X47[@X4E" + Right(Space(8) + "········" + String(U_Stat(9)), 8) + "@X47] @POS:77@@X4C│@X07" PrintLn "@X40└@X4C───────────────────────────────────────────────────────────────────────────┘@X07" Newlines 2 Wait Endif If (Strip(STRING011, " ") == "S") Goto LABEL027 If (STRING009 == "S") Goto LABEL001 If (BOOLEAN010 == 0) Goto LABEL024 If (BOOLEAN010 == 1) Goto LABEL025 Goto LABEL023 :LABEL027 If (BOOLEAN007 == 1) Then PutUser If (STRING011 <> "") PrintLn If (BOOLEAN008 == 1) Then WrUSys If (Exist(PPEPath() + "INDEX.BAT")) Then Newline Print "@X0FOnline update of user's record being processed. Please wait, @FIRST@ ... " RdUSys Shell 1, INTEGER002, PPEPath() + "INDEX.BAT", "" FreshLine Endif Endif DispText 273, 256 + 128 + 2048 + 32768 Endif End ;------------------------------------------------------------------------------ ; ; Usage report (before postprocessing) ; ; ■ Statements used : ; ; 1 End ; 4 Cls ; 4 Wait ; 139 Goto ; 101 Let ; 1 Print ; 103 PrintLn ; 141 If ; 19 DispFile ; 1 GetUser ; 1 PutUser ; 7 Log ; 10 InputStr ; 1 Gosub ; 1 Return ; 15 PromptStr ; 7 Newline ; 3 Newlines ; 1 GetToken ; 1 Shell ; 2 DispText ; 1 RdUNet ; 4 FreshLine ; 1 WrUSys ; 1 RdUSys ; ; ; ■ Functions used : ; ; 1 - ; 398 + ; 1 - ; 110 == ; 9 <> ; 4 < ; 2 <= ; 1 > ; 4 >= ; 26 ! ; 32 && ; 4 || ; 5 Len( ; 2 Mid() ; 34 Left() ; 24 Right() ; 24 Space() ; 35 Chr() ; 1 InStr() ; 25 RTrim() ; 7 Trim() ; 1 Date() ; 4 Time() ; 3 U_Name() ; 2 U_LDate() ; 1 U_LTime() ; 1 U_LDir() ; 2 U_Logons() ; 1 U_TimeOn() ; 11 NoChar() ; 11 YesChar() ; 2 Replace() ; 27 Strip() ; 27 String() ; 2 Mask_Pwd() ; 3 Mask_Num() ; 11 Mask_Ascii() ; 3 PCBDat() ; 40 PPEPath() ; 1 PcbNode() ; 3 ReadLine() ; 1 UN_Stat() ; 1 MinOn() ; 20 Exist() ; 1 U_PwdLc() ; 1 U_PwdTc() ; 14 U_Stat() ; 1 GrafMode() ; 27 Psa() ; 1 PPEName() ; 1 CallNum() ; 1 U_RecNum() ; ;------------------------------------------------------------------------------ ; ; Analysis flags : WSdH ; ; W - Write user ■ 5 ; Program writes a user record. Although this may be normal for a ; User Editor, it may also be a way to modify an account level. ; ■ Search for : PUTUSER ; ; S - Shell to DOS ■ 5 ; This may be normal if the PPE need to execute an external command, ; but may be actually anything... nasty (formating HD, rebooting,...) ; or usefull (sorting, maintenance,...). Check! ; ■ Search for : SHELL ; ; d - Access PCBOARD.DAT ■ 2 ; Program gets the full pathname to PCBOARD.DAT, this may be usefull ; for many PPE so they can find various informations on the system ; (system paths, max number of lines in messages, ...) but it may also ; be a way to gather vital informations. ; ■ Search for : PCBDAT() ; ; H - Read Password or Password History ■ 5 ; Program is reading the user's password or last password history ; This may be ok for a password manager, but it is very suspect. Check! ; ■ Search for : U_PWDHIST, U_PWD ; ;------------------------------------------------------------------------------ ; ; Postprocessing report ; ; 2 For/Next ; 0 While/EndWhile ; 21 If/Then or If/Then/Else ; 1 Select Case ; ;------------------------------------------------------------------------------ ; AEGiS Corp - Break the routines, code against the machines! ;------------------------------------------------------------------------------