home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SCUMN10.ZIP
/
NUKER.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-06-13
|
15KB
|
813 lines
;------------------------------------------------------------------------------
; .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 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
Integer INTEGER025
Integer INTEGER026
Integer INTEGER027
Integer INTEGER028
Integer INTEGER029
Real REAL001
String STRING002
String TSTRING003(50)
String STRING004
String STRING005
String TSTRING006(25)
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String TSTRING014(23)
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 TSTRING037(48)
String STRING038
;------------------------------------------------------------------------------
STRING038 = TokenStr()
FOpen 2, PPEPath() + "nuker.cfg", 2, 0
FGet 2, INTEGER003
For INTEGER013 = 1 To INTEGER003
FGet 2, STRING018
Next
FGet 2, STRING018
For INTEGER013 = 0 To 48
FGet 2, TSTRING037(INTEGER013)
Next
FClose 2
For INTEGER028 = 1 To MaxNode()
RdUNet INTEGER028
If (UN_City() == "Running SCuM-NuKeR!") Then
PrintLn
PrintLn "Node " + String(INTEGER028) + " - " + UN_Name() + " - " + UN_City()
PrintLn TSTRING037(0)
PrintLn TSTRING037(1)
PrintLn
Goto LABEL018
Endif
Next
RdUNet PcbNode()
WrUNet PcbNode(), UN_Stat(), UN_Name(), "Running SCuM-NuKeR!", "", ""
If (STRING038 == "") STRING038 = "NONE"
STRING025 = STRING038
Gosub LABEL029
STRING027 = FileInf(PCBDat(), 6) + ":" + FileInf(PCBDat(), 7) + "public.bak"
Copy STRING007, STRING027
STRING013 = FileInf(PCBDat(), 6) + ":" + FileInf(PCBDat(), 7) + "UPLOADS.BAK"
If (Exist(STRING013)) Delete STRING013
BOOLEAN003 = 1
GetUser
STRING010 = U_Name()
INTEGER013 = 0
:LABEL001
If ((TSTRING003(1) == "") && Exist(PPEPath() + "FNUKE." + String(PcbNode()))) Then
FOpen 3, PPEPath() + "FNUKE." + String(PcbNode()), 2, 0
INTEGER013 = 0
FGet 3, STRING021
STRING021 = ""
:LABEL002
If (Ferr(3)) Goto LABEL003
INTEGER013 = INTEGER013 + 1
FGet 3, TSTRING003(INTEGER013)
Goto LABEL002
:LABEL003
INTEGER013 = INTEGER013 - 1
FClose 3
Endif
INTEGER016 = 1
INTEGER014 = 0
INTEGER018 = 0
BOOLEAN001 = 0
Cls
DispFile PPEPath() + "NUKER.MNU", 4 + 2 + 1
InputStr TSTRING037(2), STRING002, 15, 1, Mask_Ascii(), 8 + 256
If (STRING002 == "") Goto LABEL018
If (Upper(STRING002) == "F") Goto LABEL009
If (Upper(STRING002) == "Q") Goto LABEL018
If (Upper(STRING002) == "H") Goto LABEL015
If (Upper(STRING002) == "S") Goto LABEL016
If (Upper(STRING002) == "L") Goto LABEL016
If (Upper(STRING002) == "Z") Goto LABEL017
If (Upper(STRING002) == "?") Goto LABEL001
If (Upper(STRING002) == "E") Goto LABEL006
If (Upper(STRING002) == "V") Goto LABEL005
If (Upper(STRING002) == "D") Goto LABEL004
PrintLn
PrintLn TSTRING037(3)
More
Goto LABEL001
:LABEL004
If (CurSec() <> SysopSec()) Then
PrintLn
PrintLn TSTRING037(33)
PrintLn
More
Goto LABEL001
Endif
PrintLn
InputStr TSTRING037(4), STRING021, 15, 1, Mask_Ascii(), 8 + 256 + 16384
If (STRING021 == "Y") Then
If (Exist(PPEPath() + "NUKER.LOG")) Then
Delete PPEPath() + "nuker.log"
FreshLine
PrintLn
PrintLn TSTRING037(5)
PrintLn
More
Endif
Endif
Goto LABEL001
:LABEL005
PrintLn " @X07"
DispFile PPEPath() + "nuker.log", 0
More
InputStr TSTRING037(37), STRING018, 15, 1, Mask_Ascii(), 256
Goto LABEL001
:LABEL006
FreshLine
Newline
InputStr TSTRING037(47), STRING019, 15, 1, "RrAa", 256 + 8
If (STRING019 == "") Goto LABEL001
If (Upper(STRING019) == "R") Goto LABEL008
:LABEL007
STRING019 = ""
FreshLine
Newline
InputStr TSTRING037(48), STRING019, 15, 12, Mask_File(), 256 + 8
If (STRING019 == "") Goto LABEL001
If ((InStr(STRING019, "?") > 0) || (InStr(STRING019, "*") > 0)) Goto LABEL007
FCreate 3, PPEPath() + "FNUKE." + String(PcbNode()), 2, 0
GetUser
FPutLn 3, U_Name()
For INTEGER019 = 1 To INTEGER013
FPutLn 3, TSTRING003(INTEGER019)
Next
FPutLn 3, STRING019
TSTRING003(INTEGER019 + 1) = STRING019
FClose 3
Goto LABEL001
:LABEL008
FreshLine
Newline
INTEGER020 = 0
If (TSTRING003(1) == "") Then
PrintLn
PrintLn TSTRING037(6)
PrintLn
More
Goto LABEL001
Endif
For INTEGER019 = 1 To INTEGER013
If (INTEGER019 < 10) PrintLn "@X08[ @X0F" + String(INTEGER019) + "@X08]@X0F " + TSTRING003(INTEGER019)
If (INTEGER019 > 10) PrintLn "@X08[@X0F" + String(INTEGER019) + "@X08]@X0F " + TSTRING003(INTEGER019)
Next
FreshLine
Newline
InputStr TSTRING037(7), INTEGER020, 15, 2, Mask_Ascii(), 4096 + 256 + 8
If ((INTEGER020 == "") || (INTEGER020 == 0)) Goto LABEL001
Gosub LABEL031
FCreate 3, PPEPath() + "FNUKE." + String(PcbNode()), 2, 0
GetUser
FPutLn 3, U_Name()
For INTEGER019 = 1 To INTEGER013
FPutLn 3, TSTRING003(INTEGER019)
Next
FClose 3
Goto LABEL001
:LABEL009
GetUser
If (!Exist(PPEPath() + "FNUKE." + String(PcbNode())) || (ReadLine(PPEPath() + "FNUKE." + String(PcbNode()), 1) <> U_Name())) Then
PrintLn TSTRING037(8)
PrintLn
More
Goto LABEL001
Endif
PrintLn TSTRING037(9)
BOOLEAN004 = 0
FOpen 2, STRING027, 2, 0
FOpen 6, STRING013, 2, 0
:LABEL010
If (Ferr(2)) Goto LABEL012
BOOLEAN001 = 0
FGet 2, STRING016
:LABEL011
If (INTEGER013 > 0) Then
If (Left(STRING016, 1) <> " ") Then
For INTEGER014 = 1 To INTEGER013
STRING005 = Left(STRING016, 12)
STRING005 = Trim(STRING005, " ")
If (Upper(STRING005) == Upper(TSTRING003(INTEGER014))) Then
STRING028 = Upper(STRING005)
Gosub LABEL019
STRING016 = TSTRING014(INTEGER018)
BOOLEAN001 = 0
Goto LABEL011
Endif
Next
Endif
Endif
If (!BOOLEAN001 && (InStr(STRING016, STRING028) == 0)) Then
FPutLn 6, STRING016
TSTRING014(INTEGER018) = ""
Endif
If (!BOOLEAN004 && (INTEGER013 == 0)) Then
BOOLEAN004 = 1
FreshLine
PrintLn TSTRING037(10)
Endif
Goto LABEL010
:LABEL012
FClose 2
FClose 6
For INTEGER021 = 1 To INTEGER013
TSTRING003(INTEGER021) = ""
Next
Delete PPEPath() + "FNUKE." + String(PcbNode())
:LABEL013
Copy STRING013, STRING007
STRING029 = 0
If (FileInf(STRING013, 4) <> FileInf(STRING007, 4)) Then
FreshLine
Newline
PrintLn " " + TSTRING037(41)
PrintLn
PrintLn TSTRING037(42)
PrintLn
PrintLn TSTRING037(43)
PrintLn TSTRING037(44)
PrintLn TSTRING037(45)
PrintLn
:LABEL014
InputStr TSTRING037(46), STRING029, 15, 1, Mask_Num(), 256
If (STRING029 == 1) Goto LABEL013
If (STRING029 == 2) Goto LABEL001
If (STRING029 == 3) Then
If (Exist("$$LOGOFF.BAT")) Copy "$$LOGOFF.BAT", "$$LOGOFF.BAK"
FAppend 7, "$$LOGOFF.BAT", 2, 0
FPutLn 7, PPEPath() + "TRYAGAIN.EXE " + STRING007 + " " + STRING013
FPutLn 7, "if exist $$LOGOFF.BAK del $$LOGOFF.BAK"
FClose 7
Goto LABEL001
Endif
Goto LABEL014
Endif
Goto LABEL001
:LABEL015
PrintLn " @X07"
DispFile PPEPath() + "NUKER.HLP", 2
More
InputStr TSTRING037(37), STRING018, 15, 1, Mask_Ascii(), 256
Goto LABEL001
:LABEL016
PromptStr 71, STRING020, 12, Mask_Ascii(), 8 + 256 + 128
Dir "L " + STRING020 + " U"
Gosub LABEL030
Goto LABEL001
:LABEL017
Dir "Z" + STRING020 + " U"
Gosub LABEL030
Goto LABEL001
:LABEL018
FreshLine
Newline
PrintLn "@X08 NuKeR PPe Mindfryer/Liquidater SCuM '94"
Delete PPEPath() + "FNUKE." + String(PcbNode())
Delete PPEPath() + "INUSE." + String(PcbNode())
End
:LABEL019
INTEGER018 = 0
STRING008 = ""
STRING008 = TSTRING037(34) + Mid(STRING016, 1, 13)
STRING008 = STRING008 + TSTRING037(35) + Mid(STRING016, 14, 10)
STRING008 = STRING008 + TSTRING037(34) + Mid(STRING016, 24, 10)
STRING008 = STRING008 + TSTRING037(36) + Mid(STRING016, 34, 45)
PrintLn STRING008
STRING026 = Trim(Mid(STRING016, 15, 21), " ")
INTEGER026 = STRING026
STRING005 = " "
INTEGER016 = 1
TSTRING014(INTEGER016) = " "
While (((Left(TSTRING014(INTEGER016), 1) == " ") && !Ferr(2)) && (INTEGER016 < 23)) Do
FGet 2, TSTRING014(INTEGER016)
If (Left(TSTRING014(INTEGER016), 1) <> " ") Break
STRING008 = TSTRING037(34) + TSTRING014(INTEGER016)
STRING008 = Replace(STRING008, "|", " ")
PrintLn STRING008
INTEGER016 = INTEGER016 + 1
EndWhile
InputYN TSTRING037(11), STRING021, 15
INTEGER018 = INTEGER016
If (Upper(STRING021) == "N") Then
FPutLn 6, STRING016
For INTEGER016 = 1 To INTEGER018 - 1
FPutLn 6, TSTRING014(INTEGER016)
TSTRING014(INTEGER016) = ""
Next
INTEGER020 = INTEGER014
Gosub LABEL031
PrintLn
Return
Endif
GetUser
FAppend 4, PPEPath() + "nuker.log", 2, 0
FPutLn 4, "**********************************************************************"
FPutLn 4, String(Date()) + " " + String(TimeAp(Time()))
FPutLn 4, TSTRING003(INTEGER014) + " was nuked by " + Mixed(U_Name())
INTEGER007 = FileInf(STRING017 + TSTRING003(INTEGER014), 4)
STRING009 = INTEGER007
If (Exist(STRING017 + TSTRING003(INTEGER014))) Then
FreshLine
Newline
PrintLn
PrintLn TSTRING037(12)
PrintLn TSTRING037(13)
PrintLn TSTRING037(14)
PrintLn
InputStr TSTRING037(15), INTEGER008, 15, 1, "123", 4096
If (INTEGER008 == 3) Then
FPutLn 4, TSTRING003(INTEGER014) + " left online."
PrintLn
PrintLn TSTRING037(16) + TSTRING003(INTEGER014) + TSTRING037(17)
Goto LABEL020
Endif
Delete STRING017 + TSTRING003(INTEGER014)
If (INTEGER008 == 1) Then
FPutLn 4, TSTRING003(INTEGER014) + " was Deleted."
PrintLn
PrintLn TSTRING037(16) + TSTRING003(INTEGER014) + TSTRING037(18)
Goto LABEL020
Endif
FCreate 5, STRING017 + TSTRING003(INTEGER014), 2, 0
FClose 5
PrintLn
FPutLn 4, TSTRING003(INTEGER014) + " was 0-byted."
PrintLn TSTRING037(19)
Endif
:LABEL020
PrintLn
Print TSTRING037(20)
FOpen 1, ReadLine(PCBDat(), 46), 2, 0
BOOLEAN002 = 1
:LABEL021
If (Ferr(1)) Goto LABEL022
FGet 1, STRING023
If (Mid(STRING023, 2, 1) == "U") Then
If (InStr(STRING023, "," + TSTRING003(INTEGER014)) > 0) Then
BOOLEAN002 = 0
Else
Goto LABEL021
Endif
Endif
:LABEL022
FClose 1
PrintLn
STRING023 = Mid(STRING023, 5, 30)
STRING023 = Mid(STRING023, 1, InStr(STRING023, ",") - 1)
STRING024 = STRING023
STRING018 = STRING024
INTEGER024 = U_RecNum(STRING024)
If (BOOLEAN002 == 1) Then
PrintLn TSTRING037(21)
FPutLn 4, "Uploader was not found in DOWNLOAD.TXT"
Else
FreshLine
Newline
Gosub LABEL032
If (!BOOLEAN002) PrintLn TSTRING037(22) + Mixed(STRING024)
InputStr TSTRING037(23), INTEGER005, 15, 1, "012345", 256
If (INTEGER005 == 0) Goto LABEL023
INTEGER007 = INTEGER007 * INTEGER005
Shell 0, BOOLEAN005, PPEPath() + "UPBYTES.EXE", " " + STRING035 + " -" + String(INTEGER007) + " " + String(INTEGER024) + " U"
PrintLn TSTRING037(36) + String(INTEGER007) + " " + TSTRING037(38) + " " + STRING018
FPutLn 4, String(INTEGER007) + " Upload bytes have been removed from " + STRING018
FPutLn 4, String(INTEGER005) + " Upload files have been removed from " + STRING018
PrintLn TSTRING037(36) + String(INTEGER005) + " " + TSTRING037(39) + " " + STRING018
FOpen 5, STRING035, 2, 0
FreshLine
INTEGER009 = (INTEGER024 - 1) * 400 + 111
FSeek 5, INTEGER009, 0
FRead 5, INTEGER029, 2
INTEGER029 = INTEGER029 - INTEGER005
If (INTEGER029 > 0) INTEGER029 = 0
FSeek 5, INTEGER009, 0
FWrite 5, INTEGER029, 2
FClose 5
If (BOOLEAN003 == 1) Then
INTEGER025 = U_RecNum(STRING024)
Gosub LABEL033
INTEGER027 = INTEGER026 / INTEGER002
INTEGER027 = INTEGER027 * INTEGER005
STRING036 = INTEGER027
INTEGER006 = STRING031
INTEGER006 = INTEGER006 - INTEGER027
STRING031 = INTEGER006
Gosub LABEL034
PrintLn TSTRING037(16) + String(INTEGER027) + TSTRING037(24)
FPutLn 4, String(INTEGER027) + " file points were removed from " + Mixed(STRING024) + " (" + String(INTEGER005) + " times)"
INTEGER020 = INTEGER014
Endif
Endif
:LABEL023
FreshLine
Newline
For INTEGER016 = 1 To ReadLine(PPEPath() + "NUKER.CFG", 1)
TSTRING006(INTEGER016) = ReadLine(PPEPath() + "NUKER.CFG", INTEGER016 + 1)
If (INTEGER016 < 10) PrintLn " @X08[@X0F" + String(INTEGER016) + "@X08] @X0F" + TSTRING006(INTEGER016)
If (INTEGER016 >= 10) Print "@X08[@X0F" + String(INTEGER016) + "@X08] @X0F" + TSTRING006(INTEGER016)
Next
If (INTEGER016 < 10) Then
Print " @X08[@X0F"
Print INTEGER016
PrintLn "@X08] " + TSTRING037(25)
Endif
If (INTEGER016 >= 10) Then
Print "@X08[@X0F"
Print INTEGER016
PrintLn "@X08] " + TSTRING037(25)
Endif
FreshLine
Newline
FreshLine
:LABEL024
InputStr TSTRING037(26), INTEGER017, 15, 2, Mask_Ascii(), 4096 + 256
If ((INTEGER017 == "") || (INTEGER017 == "0")) Goto LABEL024
If (INTEGER017 == INTEGER016) Then
FreshLine
Newline
InputStr TSTRING037(27) + " _", STRING015, 15, 45, Mask_Ascii(), 4096 + 256
TSTRING006(INTEGER017) = STRING015
Endif
STRING004 = Mid(STRING016, 1, 33)
FPut 6, STRING004
STRING022 = Mid(STRING004, 14, 9)
STRING022 = Trim(STRING004, " ")
INTEGER023 = STRING022
FPutLn 6, TSTRING006(INTEGER017)
FPutLn 4, "Comment used: " + TSTRING006(INTEGER017) + " @X07"
GetUser
STRING004 = Space(31) + "| @X04Nuked by: " + Mixed(U_Name())
FPutLn 6, STRING004
STRING004 = Space(31) + "| " + Mid(STRING016, 34, Len(STRING016) - 33)
FPutLn 6, STRING004
STRING004 = ""
For INTEGER016 = 1 To INTEGER018 - 1
FPutLn 6, TSTRING014(INTEGER016)
TSTRING014(INTEGER016) = ""
FreshLine
Next
InputYN TSTRING037(28), STRING021, 15
PrintLn
INTEGER010 = 0
If (Upper(STRING021) == "Y") Then
BOOLEAN006 = 0
PrintLn TSTRING037(29)
FOpen 1, ReadLine(PCBDat(), 46), 2, 0
:LABEL025
If (Ferr(1)) Goto LABEL026
FGet 1, STRING023
If (Mid(STRING023, 2, 1) == "D") Then
If (InStr(STRING023, "," + TSTRING003(INTEGER014)) > 0) Then
INTEGER027 = INTEGER026 / INTEGER002
STRING023 = Mid(STRING023, 5, 30)
STRING023 = Mid(STRING023, 1, InStr(STRING023, ",") - 1)
STRING024 = STRING023
Shell 0, BOOLEAN005, PPEPath() + "UPBYTES.EXE", " " + STRING035 + " -" + String(STRING009) + " " + String(INTEGER024) + " D"
FPutLn 4, String(STRING009) + " download bytes returned to : " + Mixed(STRING024)
PrintLn TSTRING037(36) + String(STRING009) + " " + TSTRING037(40) + " " + Mixed(STRING024)
INTEGER025 = U_RecNum(STRING024)
FOpen 5, STRING035, 2, 0
FreshLine
INTEGER009 = (INTEGER025 - 1) * 400 + 113
FSeek 5, INTEGER009, 0
FRead 5, INTEGER029, 2
INTEGER029 = INTEGER029 - 1
FSeek 5, INTEGER009, 0
FWrite 5, INTEGER029, 2
FPutLn 4, "1 downloaded file returned to " + Mixed(STRING024)
FClose 5
If (BOOLEAN003 == 1) Then
Gosub LABEL033
INTEGER006 = STRING031
INTEGER006 = INTEGER006 + INTEGER027
STRING031 = INTEGER006
Gosub LABEL034
FreshLine
PrintLn TSTRING037(16) + String(INTEGER027) + TSTRING037(30) + Mixed(STRING024) + "@X07"
FPutLn 4, String(INTEGER027) + " file points returned to : " + Mixed(STRING024)
INTEGER012 = INTEGER004
REAL001 = INTEGER012
REAL001 = REAL001 / 100
REAL001 = REAL001 * INTEGER027
INTEGER010 = INTEGER010 + ToInteger(REAL001)
Endif
BOOLEAN006 = 1
Endif
Endif
Goto LABEL025
:LABEL026
FClose 1
If ((BOOLEAN006 == 1) && (BOOLEAN003 == 1)) Then
If (INTEGER010 > 0) Then
INTEGER025 = U_RecNum(STRING018)
Gosub LABEL033
INTEGER011 = STRING031
INTEGER011 = INTEGER011 - INTEGER010
STRING031 = INTEGER011
FPutLn 4, String(INTEGER010) + " Commission file points deducted from : " + STRING018
Gosub LABEL034
Endif
Endif
If (BOOLEAN006) Goto LABEL027
FPutLn 4, "No downloaders were found."
FreshLine
PrintLn TSTRING037(31)
Endif
:LABEL027
If (BOOLEAN002) Goto LABEL028
FPutLn 4, "Message Written to " + Mixed(STRING018) + " about this nukeing."
FClose 4
BOOLEAN001 = 1
If (STRING036 == "") STRING036 = "0"
If (Exist(PPEPath() + "MESSAGE.TMP")) Delete PPEPath() + "MESSAGE.TMP"
FOpen 5, PPEPath() + "MESSAGE.TMP", 2, 0
FPutLn 5, "Hello, "
FPutLn 5, Mixed(STRING010) + " has nuked your upload: " + TSTRING003(INTEGER014) + ". (" + String(INTEGER005) + " times)"
FPutLn 5, "It was nuked for the reason of: " + TSTRING006(INTEGER017) + "@X07."
FPutLn 5, "You lost " + String(INTEGER007) + " uploaded bytes and " + String(INTEGER005) + " upload file credits."
If (STRING025 <> "NONE") Then
FPutLn 5, "Also, " + STRING036 + " upload file points were deducted, and " + String(INTEGER010) + " commission."
Endif
FPutLn 5, ""
FPutLn 5, ""
FPutLn 5, " -=[ ViA SCuM-NuKeR ]=-"
FClose 5
FReAltUser
Message 0, STRING018, "", "Nuke!", "R", 0, 0, 0, PPEPath() + "MESSAGE.TMP"
PrintLn TSTRING037(32)
:LABEL028
Gosub LABEL031
Return
:LABEL029
INTEGER015 = CurConf()
INTEGER015 = INTEGER015 * 33
INTEGER015 = INTEGER015 + 15
STRING012 = ReadLine(PCBDat(), 31)
STRING011 = ReadLine(STRING012, INTEGER015)
INTEGER015 = INTEGER015 + 1
STRING017 = ReadLine(STRING012, INTEGER015)
STRING007 = STRING011
STRING035 = ReadLine(PCBDat(), 29)
Return
:LABEL030
For INTEGER021 = 1 To INTEGER013
TSTRING003(INTEGER021) = ""
Next
INTEGER013 = 0
Return
:LABEL031
INTEGER022 = INTEGER020
For INTEGER021 = INTEGER022 To INTEGER013
TSTRING003(INTEGER021) = TSTRING003(INTEGER021 + 1)
Next
INTEGER013 = INTEGER013 - 1
Return
:LABEL032
If (!Exist(STRING025 + "PCBFPS.CFG") || (STRING025 == "NONE")) Then
BOOLEAN003 = 0
Return
Endif
FOpen 1, STRING025 + "PCBFPS.CFG", 0, 0
FGet 1, STRING034
FGet 1, INTEGER001
FGet 1, INTEGER003
FGet 1, INTEGER002
FGet 1, INTEGER004
FClose 1
BOOLEAN003 = 1
Return
:LABEL033
GetAltUser INTEGER025
STRING033 = U_Notes(3)
Tokenize STRING033
STRING030 = GetToken()
STRING031 = GetToken()
STRING032 = GetToken()
Return
:LABEL034
U_Notes(3) = STRING030 + " " + STRING031 + " " + STRING032
PutUser
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 1 Cls
; 7 More
; 112 Goto
; 149 Let
; 6 Print
; 64 PrintLn
; 85 If
; 3 DispFile
; 3 FCreate
; 10 FOpen
; 2 FAppend
; 15 FClose
; 15 FGet
; 1 FPut
; 39 FPutLn
; 6 GetUser
; 1 PutUser
; 7 Delete
; 12 InputStr
; 2 InputYN
; 14 Gosub
; 9 Return
; 1 PromptStr
; 11 Newline
; 1 Tokenize
; 2 Shell
; 2 Dir
; 2 RdUNet
; 1 WrUNet
; 19 FreshLine
; 1 Message
; 4 FSeek
; 2 FRead
; 2 FWrite
; 3 Copy
; 1 GetAltUser
; 1 FReAltUser
;
;
; ■ Functions used :
;
; 6 *
; 3 /
; 210 +
; 15 -
; 45 ==
; 6 <>
; 17 <
; 13 <=
; 8 >
; 28 >=
; 59 !
; 32 &&
; 18 ||
; 1 Len(
; 16 Upper()
; 14 Mid()
; 4 Left()
; 2 Space()
; 5 Ferr()
; 7 InStr()
; 3 Trim()
; 1 Date()
; 1 Time()
; 6 U_Name()
; 1 TimeAp()
; 1 Replace()
; 36 String()
; 1 Mask_Num()
; 1 Mask_File()
; 8 Mask_Ascii()
; 1 CurConf()
; 8 PCBDat()
; 26 PPEPath()
; 11 PcbNode()
; 10 ReadLine()
; 1 SysopSec()
; 1 UN_Stat()
; 2 UN_Name()
; 2 UN_City()
; 1 CurSec()
; 3 GetToken()
; 8 Exist()
; 1 TokenStr()
; 7 FileInf()
; 2 MaxNode()
; 4 U_RecNum()
; 1 ToInteger()
; 11 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WRSds
;
; 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
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; 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()
;
; s - Sysop level access ■ 5
; Program is reading the sysop access level, this may be normal
; but still it is very suspect. It is the best way to give a user
; all priviledges. Check!
; ■ Search for : SYSOPSEC()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 13 For/Next
; 1 While/EndWhile
; 33 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------