home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PWAULTP3.ZIP / PWAPRGMS.A02 / PWA95 / PWANK082.ZIP / FLAGV.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-04-09  |  5KB  |  405 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Integer  INTEGER001
  22.     String   STRING001
  23.     String   STRING002
  24.     String   STRING003
  25.     String   STRING004
  26.     String   STRING005
  27.     String   STRING006
  28.     String   STRING007
  29.     String   STRING008
  30.     String   STRING009
  31.     String   STRING010
  32.     String   STRING011
  33.     String   TSTRING012(23)
  34.     String   STRING013
  35.     String   STRING014
  36.     Byte     BYTE001
  37.     Byte     BYTE002
  38.     Byte     BYTE003
  39.  
  40. ;------------------------------------------------------------------------------
  41.  
  42.     STRING001 = PPEPath() + "flagnuke.cfg"
  43.     If (Exist(STRING001)) Goto LABEL001
  44.     FreshLine
  45.     PrintLn "Error: Flag.ppe is setup to use NUKE.PPE but cannot"
  46.     PrintLn "find FLAGNUKE.CFG, please contact sysop"
  47.     End
  48.     :LABEL001
  49.     STRING002 = ReadLine(STRING001, 1) + "\work\bcnk" + String(CurConf()) + "." + String(PcbNode())
  50.     STRING005 = PPEPath() + "flag.cfg"
  51.     If (Exist(STRING005)) Goto LABEL002
  52.     FreshLine
  53.     PrintLn "Error: Flag.ppe is setup to run VIEW.PPE but cannot"
  54.     PrintLn "find FLAG.CFG, please contact sysop"
  55.     End
  56.     :LABEL002
  57.     STRING004 = ReadLine(STRING005, 1)
  58.     If (Exist(STRING004)) Goto LABEL003
  59.     FreshLine
  60.     PrintLn "Error: Flag.ppe is setup to run VIEW.PPE but cannot"
  61.     PrintLn "find ", STRING004, " in FLAG.CFG, please contact sysop"
  62.     End
  63.     :LABEL003
  64.     If (AnsiOn()) Goto LABEL004
  65.     DispFile PPEPath() + "FLAGOLD", 4
  66.     End
  67.     :LABEL004
  68.     STRING008 = Chr(8)
  69.     STRING009 = Chr(127)
  70.     STRING010 = Chr(13)
  71.     STRING011 = Chr(27)
  72.     BYTE001 = 0
  73.     STRING006 = ""
  74.     RestScrn
  75.     ClrEol
  76.     Gosub LABEL015
  77.     Gosub LABEL019
  78.     :LABEL005
  79.     If (BOOLEAN001) Goto LABEL012
  80.     STRING007 = Inkey()
  81.     If (STRING007 <> "") Then
  82.         If ((BYTE001 == 0) && (STRING007 == " ")) Then
  83.             BYTE002 = GetY()
  84.             BYTE003 = 0
  85.             Print STRING010
  86.             ClrEol
  87.             Print STRING011 + "[s"
  88.             DispFile PPEPath() + "FLAGBAR", 1 + 4
  89.             Print STRING010
  90.             Gosub LABEL016
  91.             If (STRING013 <> "") Then
  92.                 While ((((STRING007 <> STRING011) && (STRING007 <> STRING010)) && (Upper(STRING007) <> "V")) && (Upper(STRING007) <> "N")) Do
  93.                     STRING007 = Inkey()
  94.                     If (STRING007 == " ") Then
  95.                         Gosub LABEL018
  96.                         Gosub LABEL016
  97.                         If (STRING013 == "") Then
  98.                             Gosub LABEL014
  99.                             Gosub LABEL015
  100.                             Goto LABEL011
  101.                         Endif
  102.                     Endif
  103.                 EndWhile
  104.                 Gosub LABEL018
  105.                 Gosub LABEL014
  106.                 If (STRING007 == STRING010) Then
  107.                     KbdStuff "F " + STRING013 + STRING010
  108.                     End
  109.                     Goto LABEL007
  110.                 Endif
  111.                 If (Upper(STRING007) == "V") Then
  112.                     SaveScrn
  113.                     Tokenize "FLAG " + STRING013
  114.                     Call STRING004
  115.                     RestScrn
  116.                     Goto LABEL007
  117.                 Endif
  118.                 If (Upper(STRING007) == "N") Then
  119.                     SaveScrn
  120.                     If (Upper(ReadLine(STRING002, 1)) <> U_Name()) Then
  121.                         FClose -1
  122.                         Delete STRING002
  123.                         FAppend 1, STRING002, 1, 0
  124.                         FPutLn 1, U_Name()
  125.                         Goto LABEL006
  126.                     Endif
  127.                     FClose -1
  128.                     FAppend 1, STRING002, 1, 0
  129.                     :LABEL006
  130.                     STRING003 = String(PCBMac("@DIRNUM@"))
  131.                     If (STRING003 == "") Then
  132.                         STRING003 = String(PCBMac("@NUMDIR@"))
  133.                     Endif
  134.                     If (STRING013 <> "") FPutLn 1, STRING013 + " " + STRING003
  135.                     FClose 1
  136.                     PrintLn "@X0CFile targetted for nuking...."
  137.                     Delay 20
  138.                     RestScrn
  139.                 Endif
  140.                 :LABEL007
  141.                 Goto LABEL008
  142.             Endif
  143.             Gosub LABEL014
  144.             :LABEL008
  145.             Gosub LABEL015
  146.             Goto LABEL011
  147.             Goto LABEL010
  148.         Endif
  149.         If ((STRING007 == STRING008) || (STRING007 == STRING009)) Then
  150.             If (BYTE001 > 0) Then
  151.                 Print STRING008 + " "
  152.                 BYTE001 = BYTE001 - 1
  153.                 STRING006 = Left(STRING006, BYTE001)
  154.                 Goto LABEL009
  155.             Endif
  156.             Goto LABEL011
  157.             :LABEL009
  158.             Goto LABEL010
  159.         Endif
  160.         If (STRING007 == STRING010) Then
  161.             BOOLEAN001 = 1
  162.             Goto LABEL010
  163.         Endif
  164.         If ((Len(STRING007) > 1) || (STRING007 < " ")) Then
  165.             Goto LABEL011
  166.             Goto LABEL010
  167.         Endif
  168.         If ((BYTE001 == 0) && ((STRING007 == "?") || (Upper(STRING007) == "H"))) Then
  169.             SaveScrn
  170.             Newline
  171.             DispFile PPEPath() + "FLAGHLP", 1 + 4
  172.             Newline
  173.             Wait
  174.             RestScrn
  175.             Goto LABEL011
  176.             Goto LABEL010
  177.         Endif
  178.         If ((STRING007 >= " ") && (BYTE001 < 80)) Then
  179.             STRING006 = STRING006 + STRING007
  180.             BYTE001 = BYTE001 + 1
  181.         Endif
  182.         :LABEL010
  183.         Print STRING007
  184.     Endif
  185.     :LABEL011
  186.     Goto LABEL005
  187.     :LABEL012
  188.     STRING006 = RTrim(STRING006, " ")
  189.     If (Upper(Left(STRING006, 1)) == "V") Then
  190.         If (Len(STRING006) == 1) Then
  191.             ClrEol
  192.             STRING013 = ""
  193.             PromptStr 240, STRING013, 12, Mask_File(), 2
  194.             STRING013 = RTrim(STRING013, " ")
  195.             If (Len(STRING013) == 0) Then
  196.                 ClrEol
  197.                 KbdStuff STRING010
  198.                 End
  199.             Endif
  200.             SaveScrn
  201.             INTEGER001 = GetY()
  202.             Newline
  203.             Tokenize "FLAG " + STRING013
  204.             Call STRING004
  205.             BOOLEAN001 = 0
  206.             RestScrn
  207.             STRING006 = ""
  208.             BYTE001 = 0
  209.             AnsiPos 1, INTEGER001
  210.             ClrEol
  211.             Gosub LABEL015
  212.             Goto LABEL005
  213.             Goto LABEL013
  214.         Endif
  215.         If (Len(STRING006) >= 3) Then
  216.             ClrEol
  217.             SaveScrn
  218.             INTEGER001 = GetY()
  219.             Tokenize "FLAG " + Mid(STRING006, 2, Len(STRING006) - 1)
  220.             Call STRING004
  221.             BOOLEAN001 = 0
  222.             RestScrn
  223.             STRING006 = ""
  224.             BYTE001 = 0
  225.             AnsiPos 1, INTEGER001
  226.             ClrEol
  227.             Gosub LABEL015
  228.             Goto LABEL005
  229.             Goto LABEL013
  230.         Endif
  231.         KbdStuff STRING010
  232.         End
  233.     Endif
  234.     :LABEL013
  235.     KbdStuff STRING006 + STRING010
  236.     End
  237.     :LABEL014
  238.     Print STRING011 + "[u"
  239.     ClrEol
  240.     Return
  241.     :LABEL015
  242.     DispFile PPEPath() + "FLAGNEW", 4
  243.     DefColor
  244.     Return
  245.     :LABEL016
  246.     If (BOOLEAN002) Then
  247.         BYTE003 = 0
  248.         STRING007 = ""
  249.         While (BYTE003 == 0) Do
  250.             STRING007 = Inkey()
  251.             BYTE003 = Asc(STRING007)
  252.             If ((BYTE003 >= 129) && (BYTE003 <= 151)) Then
  253.                 BYTE003 = BYTE003 - 128
  254.                 If (TSTRING012(BYTE003) <> "") Then
  255.                     Gosub LABEL017
  256.                     STRING013 = TSTRING012(BYTE003)
  257.                     Return
  258.                     Continue
  259.                 Endif
  260.                 BYTE003 = 0
  261.             Endif
  262.         EndWhile
  263.     Else
  264.         While (BYTE003 < BYTE002) Do
  265.             BYTE003 = BYTE003 + 1
  266.             If (TSTRING012(BYTE003) <> "") Then
  267.                 Gosub LABEL017
  268.                 STRING013 = TSTRING012(BYTE003)
  269.                 Return
  270.             Endif
  271.         EndWhile
  272.     Endif
  273.     STRING013 = ""
  274.     Return
  275.     :LABEL017
  276.     Print STRING011 + "[u" + STRING011 + "[" + String(BYTE002 - BYTE003) + "A"
  277.     STRING014 = ScrText(1, BYTE003, 13, 1)
  278.     Color 112
  279.     Print TSTRING012(BYTE003) + STRING010
  280.     Return
  281.     :LABEL018
  282.     Print STRING014 + STRING010
  283.     Return
  284.     :LABEL019
  285.     If (GrafMode() == "R") Then
  286.         BOOLEAN002 = 1
  287.     Endif
  288.     BYTE003 = 1
  289.     While (BYTE003 > 0) Do
  290.         ScrFile BYTE003, STRING013
  291.         If (BYTE003 <> 0) Then
  292.             TSTRING012(BYTE003) = STRING013
  293.             If (BOOLEAN002) Then
  294.                 MouseReg 0, 1, BYTE003, 13, BYTE003 + 1, 8, 8, 1, 0, " " + Chr(BYTE003 + 128)
  295.             Endif
  296.             Inc BYTE003
  297.         Endif
  298.     EndWhile
  299.     If (BOOLEAN002) Then
  300.         MPrint "!|#|#|#" + STRING010 + Chr(10)
  301.     Endif
  302.     Return
  303.  
  304. ;------------------------------------------------------------------------------
  305. ;
  306. ; Usage report (before postprocessing)
  307. ;
  308. ; ■ Statements used :
  309. ;
  310. ;    8       End
  311. ;    8       ClrEol
  312. ;    1       Wait
  313. ;    1       Color 
  314. ;    63      Goto 
  315. ;    46      Let 
  316. ;    9       Print 
  317. ;    7       PrintLn 
  318. ;    38      If 
  319. ;    4       DispFile 
  320. ;    2       FAppend 
  321. ;    3       FClose 
  322. ;    2       FPutLn 
  323. ;    1       DefColor
  324. ;    1       Delete 
  325. ;    15      Gosub 
  326. ;    8       Return
  327. ;    1       PromptStr 
  328. ;    1       Delay 
  329. ;    1       Inc 
  330. ;    3       Newline
  331. ;    3       Tokenize 
  332. ;    4       KbdStuff 
  333. ;    3       Call 
  334. ;    2       AnsiPos 
  335. ;    3       FreshLine
  336. ;    5       SaveScrn
  337. ;    6       RestScrn
  338. ;    1       MPrint 
  339. ;    1       MouseReg 
  340. ;    1       ScrFile 
  341. ;
  342. ;
  343. ; ■ Functions used :
  344. ;
  345. ;    2       -
  346. ;    38      +
  347. ;    4       -
  348. ;    19      ==
  349. ;    11      <>
  350. ;    3       <
  351. ;    1       <=
  352. ;    3       >
  353. ;    3       >=
  354. ;    37      !
  355. ;    7       &&
  356. ;    3       ||
  357. ;    5       Len(
  358. ;    7       Upper()
  359. ;    1       Mid()
  360. ;    2       Left()
  361. ;    6       Chr()
  362. ;    1       Asc()
  363. ;    2       RTrim()
  364. ;    2       U_Name()
  365. ;    3       Inkey()
  366. ;    5       String()
  367. ;    1       Mask_File()
  368. ;    1       CurConf()
  369. ;    6       PPEPath()
  370. ;    1       PcbNode()
  371. ;    3       ReadLine()
  372. ;    3       Exist()
  373. ;    1       AnsiOn()
  374. ;    3       GetY()
  375. ;    1       GrafMode()
  376. ;    1       ScrText()
  377. ;    2       PCBMac()
  378. ;
  379. ;------------------------------------------------------------------------------
  380. ;
  381. ; Analysis flags : MC
  382. ;
  383. ; M - Send text to modem only ■ 4
  384. ;     Some informations are sent only to the modem, not to the local
  385. ;     screen, this is a well known way to make stealth backdoors, Check!
  386. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  387. ;
  388. ; C - Call child PPE ■ 3
  389. ;     This is usually normal, but may be a tricky way to launch some
  390. ;     sysop-only commands.
  391. ;     ■ Search for : CALL
  392. ;
  393. ;------------------------------------------------------------------------------
  394. ;
  395. ; Postprocessing report
  396. ;
  397. ;    0       For/Next
  398. ;    4       While/EndWhile
  399. ;    28      If/Then or If/Then/Else
  400. ;    0       Select Case
  401. ;
  402. ;------------------------------------------------------------------------------
  403. ;                 AEGiS Corp - Break the routines, code against the machines!
  404. ;------------------------------------------------------------------------------
  405.