home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
VIG-PM11.ZIP
/
PROMAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-06-13
|
10KB
|
708 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 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer TINTEGER004(9)
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer TINTEGER011(9)
Integer TINTEGER012(9)
String STRING001
String TSTRING002(14)
String TSTRING003(9)
String STRING004
String STRING005
String TSTRING006(9)
String STRING007
String STRING008
String STRING009
String STRING010
String TSTRING011(37)
String STRING012
String STRING013
;------------------------------------------------------------------------------
FOpen 1, PPEPath() + "promat.cnf", 0, 0
For INTEGER009 = 1 To 14
FGet 1, TSTRING002(INTEGER009)
TSTRING002(INTEGER009) = Upper(TSTRING002(INTEGER009))
Next
FClose 1
INTEGER008 = 1 + Random(TSTRING002(2) - 1)
STRING008 = "■ ProMatrix: "
KeyFlush
STRING013 = Upper(ReadLine(PCBDat(), 2) + ReadLine(PCBDat(), 94))
INTEGER005 = ReadLine(PCBDat(), 149)
INTEGER007 = 1
For INTEGER009 = 1 To Len(STRING013) Step 2
INTEGER007 = Left(INTEGER007 * Asc(Mid(STRING013, INTEGER009, 1)), 6)
Next
FOpen 1, PPEPath() + "strings.dat", 0, 0
For INTEGER009 = 1 To 37
FGet 1, TSTRING011(INTEGER009)
Next
FClose 1
If (OnLocal()) Then
STRING013 = "Local"
Else
STRING013 = Carrier()
Endif
FAppend 2, PPEPath() + "promat" + String(PcbNode()) + ".log", 1, 0
FPutLn 2, "**************************************************************"
FPutLn 2, String(Date()) + " (" + String(Time()) + ") (" + String(PcbNode()) + ") USER AT MATRIX (" + STRING013 + ") (" + GrafMode() + ")"
If (Carrier() < TSTRING002(12)) Then
FPutLn 2, " Active Event (LOWBAUD)"
OpText TSTRING002(12)
INTEGER006 = 34
Gosub LABEL026
Newline
INTEGER006 = 35
Gosub LABEL026
InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
Newline
If (Upper(STRING009) <> TSTRING002(13)) Then
FPutLn 2, " - Password Failure (" + Upper(STRING009) + ")"
INTEGER006 = 36
Gosub LABEL026
BOOLEAN004 = 1
BOOLEAN003 = 1
Goto LABEL001
Endif
FPutLn 2, " - Entered Correct Password"
INTEGER006 = 37
Gosub LABEL026
:LABEL001
Newline
Wait
Endif
If ((Time() > ToTime(TSTRING002(8))) && (Time() < ToTime(TSTRING002(9)))) Then
FPutLn 2, " Active Event (TIMESLOT)"
INTEGER006 = 30
Gosub LABEL026
Newline
INTEGER006 = 31
Gosub LABEL026
InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
Newline
If (Upper(STRING009) <> TSTRING002(7)) Then
FPutLn 2, " - Password Failure (" + Upper(STRING009) + ")"
OpText TimeAp(TSTRING002(9))
INTEGER006 = 32
Gosub LABEL026
BOOLEAN004 = 1
BOOLEAN003 = 1
Goto LABEL002
Endif
FPutLn 2, " - Entered Correct Password"
INTEGER006 = 33
Gosub LABEL026
:LABEL002
Newline
Wait
Endif
Gosub LABEL027
FPutLn 2, " ProMatrix Initialized"
:LABEL003
If (BOOLEAN004) Goto LABEL022
Gosub LABEL030
KeyFlush
While (STRING004 <> Chr(13)) Do
If (ScrText(3, 1, 9, 0) <> "ProMatrix") Gosub LABEL030
STRING004 = Left(Lower(Inkey()), 1)
If (InStr("drz" + Chr(9), STRING004) <> 0) Then
Gosub LABEL024
Inc INTEGER002
If (INTEGER002 == INTEGER001) INTEGER002 = 0
Gosub LABEL023
Continue
Endif
If (InStr("ulas", STRING004) <> 0) Then
Gosub LABEL024
Dec INTEGER002
If (INTEGER002 == -1) INTEGER002 = INTEGER001 - 1
Gosub LABEL023
Continue
Endif
If (STRING004 == "]") Then
Inc INTEGER008
If (INTEGER008 > TSTRING002(2)) INTEGER008 = 1
FPutLn 2, " Changed Matrix to (" + String(INTEGER008) + ")"
Gosub LABEL027
Gosub LABEL030
Continue
Endif
If (STRING004 == "[") Then
Dec INTEGER008
If (INTEGER008 < 1) INTEGER008 = TSTRING002(2)
FPutLn 2, " Changed Matrix to (" + String(INTEGER008) + ")"
Gosub LABEL027
Gosub LABEL030
Endif
EndWhile
DefColor
STRING009 = ""
STRING005 = ""
If (Lower(TSTRING003(INTEGER002)) == "logon") Then
FPutLn 2, " Attempting LOGON"
If (TSTRING002(3) <> "NONE") Then
INTEGER006 = 1
Cls
Gosub LABEL026
InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
Newline
If (Upper(STRING009) == TSTRING002(3)) Then
FPutLn 2, " - Proceeding to BBS"
INTEGER006 = 3
Gosub LABEL026
BOOLEAN004 = 1
Goto LABEL004
Endif
FPutLn 2, " - System Password Failure (" + Upper(STRING009) + ")"
INTEGER006 = 2
Gosub LABEL026
Inc INTEGER003
Log STRING008 + "Failed Logon, tried (" + STRING009 + ")", 0
:LABEL004
Gosub LABEL025
Goto LABEL005
Endif
FPutLn 2, " - System Password is DISABLED"
BOOLEAN004 = 1
:LABEL005
Goto LABEL021
Endif
If (Lower(TSTRING003(INTEGER002)) == "apply") Then
FPutLn 2, " Attempting APPLY"
INTEGER006 = 4
Cls
Gosub LABEL026
InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
Newline
If (STRING005 <> "") Then
INTEGER010 = U_RecNum(Upper(STRING005))
If (INTEGER010 < 1) Then
If (Exist(PPEPath() + "carpet.red")) Then
FOpen 1, PPEPath() + "carpet.red", 0, 0
:LABEL006
If (Ferr(1)) Goto LABEL007
FGet 1, STRING013
If (Upper(STRING013) == Upper(STRING005)) Then
TSTRING002(4) = "NONE"
FPutLn 2, " - User exists in CARPET.RED (" + Upper(STRING005) + ")"
Endif
Goto LABEL006
:LABEL007
FClose 1
Endif
If (TSTRING002(4) == "NONE") Then
FPutLn 2, " - New User Password is DISABLED"
INTEGER006 = 7
Gosub LABEL026
Gosub LABEL025
BOOLEAN004 = 1
KbdStuff STRING005 + Chr(13)
Goto LABEL008
Endif
INTEGER006 = 6
Gosub LABEL026
InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
Newline
If (Upper(STRING009) == TSTRING002(4)) Then
FPutLn 2, " - New User Password CORRECT"
INTEGER006 = 9
Gosub LABEL026
Gosub LABEL025
BOOLEAN004 = 1
KbdStuff STRING005 + Chr(13)
Goto LABEL008
Endif
FPutLn 2, " - New User Password Failure (" + Upper(STRING009) + ")"
INTEGER006 = 8
Gosub LABEL026
Inc INTEGER003
Log STRING008 + "Failed Apply, tried (" + STRING009 + ")", 0
Gosub LABEL025
:LABEL008
Goto LABEL009
Endif
FPutLn 2, " - User Already Exists (" + Upper(STRING005) + ")"
INTEGER006 = 5
Gosub LABEL026
Gosub LABEL025
Endif
:LABEL009
Goto LABEL021
Endif
If (Lower(TSTRING003(INTEGER002)) == "check") Then
FPutLn 2, " Attempting CHECK"
Cls
If (TSTRING002(3) <> "NONE") Then
INTEGER006 = 10
Gosub LABEL026
InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
FPutLn 2, " - Username (" + Upper(STRING005) + ")"
Newline
If (STRING005 <> "") Then
INTEGER010 = U_RecNum(Upper(STRING005))
If (INTEGER010 < 1) Then
FPutLn 2, " - User Doesn't Exist"
INTEGER006 = 11
Gosub LABEL026
Inc INTEGER003
Log STRING008 + "Failed Check, tried (" + STRING005 + ")", 0
Gosub LABEL025
Goto LABEL013
Endif
INTEGER006 = 12
Gosub LABEL026
InputStr " _", STRING009, 0, 12, Mask_Pwd(), 1
Newline
GetAltUser INTEGER010
If (Upper(STRING009) == Upper(U_Pwd)) Then
If (U_Sec < INTEGER005) Then
FPutLn 2, " - User is DELETED"
INTEGER006 = 19
Gosub LABEL026
Gosub LABEL025
BOOLEAN004 = 1
BOOLEAN003 = 1
Goto LABEL011
Endif
If (U_Sec < TSTRING002(5)) Then
FPutLn 2, " - User is a NEWUSER"
If (TSTRING002(10) == "YES") Then
FPutLn 2, " - Passing Control to PROVOTE for voting stats"
INTEGER006 = 14
Gosub LABEL026
Gosub LABEL025
KbdStuff STRING005 + Chr(13)
BOOLEAN004 = 1
Goto LABEL010
Endif
Inc INTEGER003
INTEGER006 = 18
Gosub LABEL026
Gosub LABEL025
:LABEL010
Goto LABEL011
Endif
FPutLn 2, " - User is VALIDATED"
OpText TSTRING002(3)
INTEGER006 = 15
Gosub LABEL026
Newline
INTEGER006 = 17
Gosub LABEL026
InputYN " _", STRING013, 7
Newline
If (STRING013 == YesChar()) Then
KbdStuff STRING005 + Chr(13)
BOOLEAN004 = 1
Endif
:LABEL011
Goto LABEL012
Endif
FPutLn 2, " - Password Failure (" + Upper(STRING009) + ")"
INTEGER006 = 13
Gosub LABEL026
Inc INTEGER003
Log STRING008 + "Failed Check, tried (" + STRING005 + "," + STRING009 + ")", 0
Gosub LABEL025
:LABEL012
PutUser
Endif
:LABEL013
Goto LABEL014
Endif
FPutLn 2, " - System Password is DISABLED"
INTEGER006 = 16
Gosub LABEL026
Gosub LABEL025
:LABEL014
Goto LABEL021
Endif
Select Case (Lower(TSTRING003(INTEGER002)))
Case "feedback"
FPutLn 2, " Attempting FEEDBACK"
AdjTime TSTRING002(14)
Cls
OpText ReadLine(PCBDat(), 2)
INTEGER006 = 21
Gosub LABEL026
Newline
INTEGER006 = 22
Gosub LABEL026
InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
Newline
If (STRING005 <> "") Then
INTEGER006 = 23
Gosub LABEL026
InputStr " _", STRING012, 0, 25, Mask_Pwd(), 0
Newline
If (STRING012 <> "") Then
INTEGER006 = 24
Gosub LABEL026
Newline
INTEGER006 = 25
Gosub LABEL026
Newline
FCreate 1, PPEPath() + "feedback." + String(PcbNode()), 1, 0
Color 7
BOOLEAN002 = 0
STRING007 = ""
STRING001 = ""
:LABEL015
If (BOOLEAN002) Goto LABEL019
STRING001 = Inkey()
If ((STRING001 == "/") && (Len(STRING007) == 0)) Then
Print "@X07Command @X08(@X0F?@X07=@X0FHelp@X08)@X07 : "
STRING001 = ""
While ((STRING001 == "")) STRING001 = Upper(Inkey())
If (STRING001 == "S") Then
FPutLn 2, " - Feedback Sent by " + Upper(STRING005)
PrintLn "Save"
BOOLEAN001 = 1
BOOLEAN002 = 1
Goto LABEL016
Endif
If (STRING001 == "A") Then
FPutLn 2, " - Feedback Aborted by " + Upper(STRING005)
PrintLn "Abort"
BOOLEAN001 = 0
BOOLEAN002 = 1
Goto LABEL016
Endif
If (STRING001 == "?") Then
PrintLn "Help"
Newline
PrintLn " (S) : Save message"
PrintLn " (A) : Abort message"
PrintLn " (?) : This help screen"
Newline
Goto LABEL016
Endif
Print Chr(13)
ClrEol
:LABEL016
Goto LABEL018
Endif
If ((Asc(STRING001) > 31) && (Len(STRING001) == 1)) Then
STRING007 = STRING007 + STRING001
If (Len(STRING007) < 79) Then
Print STRING001
Goto LABEL017
Endif
For INTEGER009 = Len(STRING007) To 1 Step -1
If (Mid(STRING007, INTEGER009, 1) == " ") Then
Backup Len(STRING007) - INTEGER009
ClrEol
STRING013 = Right(STRING007, Len(STRING007) - INTEGER009)
STRING007 = Left(STRING007, INTEGER009 - 1)
FPutLn 1, STRING007
STRING007 = STRING013
Newline
Print STRING007
INTEGER009 = 0
Continue
Endif
If (INTEGER009 == 1) Then
STRING007 = Left(STRING007, Len(STRING007) - 1)
FPutLn 1, STRING007
Newline
Print STRING001
STRING007 = STRING001
Endif
Next
:LABEL017
Goto LABEL018
Endif
If (STRING001 == Chr(13)) Then
FPutLn 1, STRING007
Newline
STRING007 = ""
Goto LABEL018
Endif
If ((STRING001 == Chr(8)) && (Len(STRING007) > 0)) Then
STRING007 = Left(STRING007, Len(STRING007) - 1)
Print Chr(8) + " " + Chr(8)
Endif
:LABEL018
Goto LABEL015
:LABEL019
FPutLn 1, ""
FPutLn 1, "@X08 ■ Via ProMatrix by ViGilante ■"
FClose 1
Newline
If (BOOLEAN001) Then
Message 0, Upper(ReadLine(PCBDat(), 2)), Upper(STRING005), STRING012, "R", 0, 0, 0, PPEPath() + "feedback." + String(PcbNode())
INTEGER006 = 26
Gosub LABEL026
Gosub LABEL025
Goto LABEL020
Endif
INTEGER006 = 27
Gosub LABEL026
Gosub LABEL025
:LABEL020
Delete PPEPath() + "feedback." + String(PcbNode())
Endif
Endif
AdjTime -TSTRING002(14)
Case "logoff"
INTEGER006 = 28
Cls
Gosub LABEL026
Newline
BOOLEAN004 = 1
BOOLEAN003 = 1
Case Else
FPutLn 2, " Executing External PPE (" + Upper(TSTRING003(INTEGER002)) + ")"
Cls
DispStr TSTRING003(INTEGER002)
FPutLn 2, " Back From External PPE (" + Upper(TSTRING003(INTEGER002)) + ")"
Gosub LABEL025
End Select
:LABEL021
Goto LABEL003
:LABEL022
FPutLn 2, String(Date()) + " (" + String(Time()) + ") (" + String(PcbNode()) + ") USER OFF NORMALLY"
FClose 2
If (TSTRING002(11) <> "YES") Delete PPEPath() + "promat" + String(PcbNode()) + ".log"
If (BOOLEAN003) Bye
ResetDisp
End
:LABEL023
STRING010 = ScrText(TINTEGER011(INTEGER002), TINTEGER012(INTEGER002), TINTEGER004(INTEGER002), 1)
AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
Print TSTRING006(INTEGER002)
AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
Return
:LABEL024
AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
Print STRING010
Return
:LABEL025
Newline
Wait
If ((INTEGER003 >= TSTRING002(6)) && (TSTRING002(6) <> 0)) Then
FPutLn 2, " +++ Excessive Password Failures +++"
Newline
DispStr TSTRING011(29)
Newline
BOOLEAN004 = 1
BOOLEAN003 = 1
Endif
Return
:LABEL026
DispStr TSTRING011(INTEGER006)
StartDisp 1
Return
:LABEL027
INTEGER001 = 0
BOOLEAN002 = 0
FOpen 1, PPEPath() + "matrix" + String(INTEGER008) + ".cnf", 0, 0
:LABEL028
If (BOOLEAN002) Goto LABEL029
FGet 1, TSTRING003(INTEGER001)
FGet 1, STRING013
FGet 1, TSTRING006(INTEGER001)
If ((TSTRING006(INTEGER001) == "") || Ferr(1)) Then
BOOLEAN002 = 1
Else
Tokenize STRING013
TINTEGER011(INTEGER001) = GetToken()
TINTEGER012(INTEGER001) = GetToken()
TINTEGER004(INTEGER001) = GetToken()
FGet 1, STRING013
Inc INTEGER001
Endif
Goto LABEL028
:LABEL029
FClose 1
Return
:LABEL030
StartDisp 1
DefColor
Cls
DispFile PPEPath() + "matrix" + String(INTEGER008) + ".pcb", 0
AnsiPos 1, 1
Color (Random(5) + 2) * 16 - 1
Print " ProMatrix v1.1 by ViGilante Arrows,A,Z=Move C/R=Choice "
If (TSTRING002(1) <> INTEGER007) Then
AnsiPos 33, 1
Color CurColor() + 128
Print "<UNREGISTERED>"
Endif
STRING004 = ""
INTEGER002 = 0
Gosub LABEL023
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 7 Cls
; 2 ClrEol
; 3 Wait
; 3 Color
; 97 Goto
; 106 Let
; 10 Print
; 6 PrintLn
; 63 If
; 1 DispFile
; 1 FCreate
; 4 FOpen
; 1 FAppend
; 6 FClose
; 7 FGet
; 42 FPutLn
; 1 ResetDisp
; 2 StartDisp
; 1 PutUser
; 2 DefColor
; 2 Delete
; 2 AdjTime
; 4 Log
; 9 InputStr
; 1 InputYN
; 61 Gosub
; 6 Return
; 8 Inc
; 2 Dec
; 28 Newline
; 1 Tokenize
; 4 KbdStuff
; 1 Bye
; 4 OpText
; 3 DispStr
; 5 AnsiPos
; 1 Backup
; 1 Message
; 2 KeyFlush
; 1 GetAltUser
;
;
; ■ Functions used :
;
; 5 -
; 2 *
; 92 +
; 8 -
; 28 ==
; 15 <>
; 12 <
; 4 <=
; 4 >
; 9 >=
; 55 !
; 13 &&
; 5 ||
; 11 Len(
; 6 Lower()
; 27 Upper()
; 2 Mid()
; 5 Left()
; 1 Right()
; 2 Ferr()
; 11 Chr()
; 2 Asc()
; 2 InStr()
; 2 Random()
; 2 Date()
; 4 Time()
; 1 TimeAp()
; 1 YesChar()
; 3 Inkey()
; 15 String()
; 9 Mask_Pwd()
; 5 PCBDat()
; 11 PPEPath()
; 7 PcbNode()
; 5 ReadLine()
; 1 OnLocal()
; 3 GetToken()
; 1 Exist()
; 2 Carrier()
; 1 GrafMode()
; 1 CurColor()
; 2 U_RecNum()
; 2 ScrText()
; 2 ToTime()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WRAdH
;
; 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
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
; 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
;
; 4 For/Next
; 1 While/EndWhile
; 44 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------