home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
THICDROM.ZIP
/
CDROM.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-12-05
|
5KB
|
352 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 BOOLEAN002
Boolean BOOLEAN003
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
BigStr TBIGSTR001(3)
Declare Function FUNCTION001(Integer INTEGER001, Integer INTEGER002, Integer INTEGER003, Integer INTEGER004, Integer INTEGER005, Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
Declare Function FUNCTION002(Boolean BOOLEAN001, Integer INTEGER009, Integer INTEGER010, Integer INTEGER011, String STRING001, String STRING002, String STRING003) String
;------------------------------------------------------------------------------
If (1 == 2) Gosub LABEL004
Goto LABEL002
End
;------------------------------------------------------------------------------
Function FUNCTION001(Integer INTEGER001, Integer INTEGER002, Integer INTEGER003, Integer INTEGER004, Integer INTEGER005, Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
Boolean BOOLEAN001
DoIntr 47, INTEGER001, INTEGER002, INTEGER003, INTEGER004, INTEGER005, INTEGER006, RegF(), INTEGER007, INTEGER008
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION002(Boolean BOOLEAN001, Integer INTEGER009, Integer INTEGER010, Integer INTEGER011, String STRING001, String STRING002, String STRING003) String
String STRING005
String STRING006
Integer INTEGER012
BigStr TBIGSTR001(3)
AnsiPos INTEGER010, INTEGER011
Print STRING003
INTEGER010 = GetX()
Print Left(" ", INTEGER009) + ")"
AnsiPos INTEGER010 - 1, INTEGER011
Print "("
AnsiPos INTEGER010, INTEGER011
STRING005 = ""
INTEGER012 = 0
While ((STRING006 <> Chr(13)) && (INTEGER012 < INTEGER009)) Do
STRING006 = ""
While (STRING006 == "") Do
STRING006 = Inkey()
If ((BOOLEAN001 && (STRING006 == Chr(13))) && (INTEGER012 == 0)) STRING006 = ""
If (Abort()) ResetDisp
EndWhile
If ((STRING006 >= " ") && (InStr(STRING001, STRING006) > 0)) Then
STRING005 = STRING005 + STRING006
AnsiPos INTEGER010 + Len(STRING005) - 1, INTEGER011
If (STRING002 == " ") Then
Print STRING006
Goto LABEL001
Endif
Print STRING002
Endif
:LABEL001
If ((STRING006 == Chr(8)) && (Len(STRING005) > 0)) Then
AnsiPos INTEGER010 + Len(STRING005) - 1, INTEGER011
Print " "
STRING005 = Left(STRING005, Len(STRING005) - 1)
AnsiPos INTEGER010 + Len(STRING005), INTEGER011
Endif
INTEGER012 = Len(STRING005)
EndWhile
AnsiPos 1, INTEGER011 + 1
FUNCTION002 = STRING005
EndFunc
:LABEL002
GetUser
FOpen 1, PPEPath() + "cdrom.cfg", 0, 1
INTEGER023 = 1
While (INTEGER023 <> 0) Do
FGet 1, INTEGER023
If (INTEGER023 > 0) Then
If (ConfSel(INTEGER023)) ConfUnflag INTEGER023, 4
If (ConfSys(INTEGER023)) ConfUnflag INTEGER023, 8
If (ConfReg(INTEGER023)) ConfUnflag INTEGER023, 1
If (ConfMW(INTEGER023)) ConfUnflag INTEGER023, 16
If (ConfExp(INTEGER023)) ConfUnflag INTEGER023, 2
ConfFlag INTEGER023, 2
Endif
EndWhile
FClose 1
PutUser
STRING017 = ""
For INTEGER018 = 32 To 255
STRING017 = STRING017 + Chr(INTEGER018)
Next
TBIGSTR001(1) = Space(2048)
TBIGSTR001(2) = Space(2048)
VarSeg TBIGSTR001(1), INTEGER015
VarOff TBIGSTR001(1), INTEGER016
If (Exist(PPEPath() + "cdbase.dat")) Goto LABEL003
FCreate 1, PPEPath() + "cdbase.dat", 1, 1
FClose 1
:LABEL003
Cls
PrintLn "@POFF@@X0FCD@X08-@X0FROM @X07Searcher @X08- Coded by Pedro J S Correia - @X071995 @X0FTHI"
PrintLn
Eval FUNCTION001(5376, 0, RegCX(), RegDX(), RegSI(), RegDI(), RegDS(), RegES())
INTEGER017 = RegCX()
INTEGER020 = RegBX()
For INTEGER019 = 0 To INTEGER020 - 1
PrintLn "@X08Scanning CDROM " + Chr(INTEGER017 + INTEGER019 + 65) + ":"
BOOLEAN002 = Exist(Chr(INTEGER017 + INTEGER019 + 65) + ":\THI.CHK")
Eval FUNCTION001(5384, INTEGER016, INTEGER017, 1, 0, 16, RegDS(), INTEGER015)
STRING007 = Trim(Mid(TBIGSTR001(1), 41, 32), " ")
STRING008 = Trim(Mid(TBIGSTR001(1), 319, 128), " ")
STRING009 = Trim(Mid(TBIGSTR001(1), 447, 128), " ")
STRING010 = Trim(Mid(TBIGSTR001(1), 575, 128), " ")
INTEGER021 = Crc32(0, TBIGSTR001(1))
Eval FUNCTION001(5384, INTEGER016, INTEGER017, 1, 0, 56, RegDS(), INTEGER015)
INTEGER022 = Crc32(0, TBIGSTR001(1))
FOpen 1, PPEPath() + "cdbase.dat", 0, 1
INTEGER013 = 1
BOOLEAN002 = 0
While ((INTEGER013 <> 0) && (BOOLEAN002 == 0)) Do
FGet 1, STRING015
FGet 1, STRING016
FGet 1, STRING011
FGet 2, STRING012
FGet 1, STRING013
FGet 1, STRING014
FGet 1, INTEGER013
FGet 1, INTEGER014
FGet 1, INTEGER023
If (Left(STRING015, 1) == " ") INTEGER013 = 0
If ((INTEGER013 == INTEGER021) && (INTEGER014 == INTEGER022)) Then
BOOLEAN002 = 1
Endif
EndWhile
FClose 1
If (BOOLEAN002) Then
PrintLn "@X08CD Name@X07.......:@X0F " + STRING015
PrintLn "@X08Subject@X07.......:@X0F " + STRING016
If (INTEGER023 > 0) Then
PrintLn "@X08Enabling@X07......:@X0F Conference@X0E " + Trim(String(INTEGER023), " ")
ConfUnflag INTEGER023, 2
ConfFlag INTEGER023, 1
Endif
PrintLn
Continue
Endif
If (SysopSec() <= U_Sec) Then
PrintLn "@X08Volume@X07........:@X0F @X0F@X0F" + STRING007
PrintLn "@X08Publisher@X07.....:@X0F " + STRING008
PrintLn "@X08Preparer@X07......:@X0F " + STRING009
STRING015 = FUNCTION002(1, 63, 1, GetY(), STRING017, " ", "@X08CD Name@X07.......:@X0F ")
STRING016 = FUNCTION002(1, 63, 1, GetY(), STRING017, " ", "@X08CD Subject@X07....:@X0F ")
INTEGER023 = S2I(FUNCTION002(1, 5, 1, GetY(), "0123456789", " ", "@X08Conference@X07....:@X0F "), 10)
PrintLn
FAppend 1, PPEPath() + "cdbase.dat", 1, 1
FPutLn 1, STRING015
FPutLn 1, STRING016
FPutLn 1, STRING007
FPutLn 2, STRING008
FPutLn 1, STRING009
FPutLn 1, STRING010
FPutLn 1, INTEGER021
FPutLn 1, INTEGER022
FPutLn 1, INTEGER023
FClose 1
Continue
Endif
PrintLn "@X84CD-ROM Not found in Database!"
PrintLn
Next
Wait
Return
PrintLn BOOLEAN003
:LABEL004
Cls
PrintLn "INVIOLABLE"
Wait
Cls
PrintLn
PrintLn "INVIOLABLE"
PrintLn "@X4FProtected with PPP THI INTERNAL The PPL Protector from THI@X07"
PrintLn "@X4F Coded by CAPTAIN HOOK (c) 1995 @X07"
PrintLn "@X4F Dedicated to all PPL PIRATES: FUCK YOU LAME @X07"
PrintLn
PrintLn "INVIOLABLE"
Wait
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 3 Cls
; 3 Wait
; 25 Goto
; 35 Let
; 6 Print
; 22 PrintLn
; 24 If
; 2 ConfFlag
; 6 ConfUnflag
; 1 FCreate
; 2 FOpen
; 1 FAppend
; 4 FClose
; 10 FGet
; 9 FPutLn
; 1 ResetDisp
; 1 GetUser
; 1 PutUser
; 1 Gosub
; 2 Return
; 1 DoIntr
; 1 VarSeg
; 1 VarOff
; 7 AnsiPos
; 2 EndFunc
; 3 Eval
;
;
; ■ Functions used :
;
; 27 +
; 6 -
; 10 ==
; 3 <>
; 3 <
; 3 <=
; 4 >
; 5 >=
; 15 !
; 11 &&
; 2 ||
; 6 Len(
; 4 Mid()
; 3 Left()
; 2 Space()
; 6 Chr()
; 1 InStr()
; 1 Abort()
; 5 Trim()
; 1 Inkey()
; 1 String()
; 5 PPEPath()
; 1 SysopSec()
; 1 RegBX()
; 2 RegCX()
; 1 RegDX()
; 1 RegSI()
; 1 RegDI()
; 1 RegF()
; 3 RegDS()
; 1 RegES()
; 2 Exist()
; 1 S2I()
; 1 GetX()
; 3 GetY()
; 1 ConfReg()
; 1 ConfExp()
; 1 ConfSel()
; 1 ConfSys()
; 1 ConfMW()
; 2 Crc32()
;
;------------------------------------------------------------------------------
;
; Analysis flags : FWIs
;
; F - Change conference flags status ■ 2
; This may be normal for a SELECT replacement but it may also be
; a way to get access to conferences a user is not allowed to.
; ■ Search for : CONFFLAG, CONFUNFLAG
;
; 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
;
; I - Interrupt call ■ 5
; This is rare in PPE... Although it may be a way to replace a PPE
; command by its fast interrupt equivalent. Be aware that an
; interrupt call may do anything... nasty (formating HD, rebooting,...)
; or usefull (fast screen i/o, hardware ressource access,...). Check!
; ■ Search for : DOINTR
;
; 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
;
; 2 For/Next
; 4 While/EndWhile
; 8 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------