home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / TOPUP09B.ZIP / HANGUP.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-07-16  |  7KB  |  255 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.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  TINTEGER003(18)
  23.     Integer  INTEGER004
  24.     String   STRING001
  25.     String   STRING002
  26.     String   STRING003
  27.     String   TSTRING004(11)
  28.     String   TSTRING005(4)
  29.  
  30. ;------------------------------------------------------------------------------
  31.  
  32.     Goto LABEL002
  33.     :LABEL001
  34.     :LABEL002
  35.     If (INTEGER001) Goto LABEL001
  36.     TSTRING005(1) = "@X0F▐@X78 »@X7FYES@X78« @X08▌"
  37.     TSTRING005(2) = "@X0F▐@X78 »@X7FNO@X78« @X08▌"
  38.     TSTRING005(3) = "@X0F▐@X78  YES  @X08▌"
  39.     TSTRING005(4) = "@X0F▐@X78  NO  @X08▌"
  40.     TINTEGER003(1) = 8
  41.     TINTEGER003(2) = 1
  42.     TINTEGER003(3) = 9
  43.     TINTEGER003(4) = 3
  44.     TINTEGER003(5) = 3
  45.     TINTEGER003(6) = 11
  46.     TINTEGER003(7) = 11
  47.     TINTEGER003(8) = 15
  48.     TINTEGER003(9) = 15
  49.     TINTEGER003(10) = 15
  50.     TINTEGER003(11) = 15
  51.     TINTEGER003(12) = 11
  52.     TINTEGER003(13) = 11
  53.     TINTEGER003(14) = 3
  54.     TINTEGER003(15) = 3
  55.     TINTEGER003(16) = 9
  56.     TINTEGER003(17) = 1
  57.     TINTEGER003(18) = 8
  58.     TSTRING004(1) = "1o"
  59.     TSTRING004(2) = "o9"
  60.     TSTRING004(3) = "o8"
  61.     TSTRING004(4) = "o7"
  62.     TSTRING004(5) = "o6"
  63.     TSTRING004(6) = "o5"
  64.     TSTRING004(7) = "o4"
  65.     TSTRING004(8) = "o3"
  66.     TSTRING004(9) = "o2"
  67.     TSTRING004(10) = "o1"
  68.     TSTRING004(11) = "oo"
  69.     STRING003 = PcbNode()
  70.     If (STRING003 == 0) STRING003 = ""
  71.     FOpen 1, TempPath() + "HANGUP." + STRING003, 0, 0
  72.     FGet 1, BOOLEAN001
  73.     FClose 1
  74.     Delete TempPath() + "HANGUP." + STRING003
  75.     If (BOOLEAN001) Then
  76.         DispFile PPEPath() + "GFX\HANGUPS", 1 + 4
  77.         INTEGER004 = 1
  78.     Else
  79.         DispFile PPEPath() + "GFX\HANGUPN", 1 + 4
  80.         INTEGER004 = 2
  81.     Endif
  82.     KeyFlush
  83.     For INTEGER001 = 1 To 11
  84.         For INTEGER002 = 1 To 18
  85.             If (CDOn()) Then
  86.                 AnsiPos 26, 12
  87.                 Color TINTEGER003(INTEGER002)
  88.                 Print TSTRING004(INTEGER001)
  89.                 AnsiPos 54, 12
  90.                 Print TSTRING004(INTEGER001)
  91.                 If (GrafMode() == ("G" || "R")) AnsiPos 41, 14
  92.                 Delay 1
  93.                 STRING001 = Inkey()
  94.                 If (STRING001 <> "") Then
  95.                     INTEGER001 = 1
  96.                     INTEGER002 = 0
  97.                     STRING001 = Upper(STRING001)
  98.                     If (STRING001 == Chr(27)) Goto LABEL003
  99.                     If ((STRING001 == Chr(32)) || (STRING001 == Chr(13))) Then
  100.                         If (INTEGER004 == 1) Goto LABEL004
  101.                         If (INTEGER004 == 2) Goto LABEL003
  102.                     Endif
  103.                     If (STRING001 == "H") Goto LABEL004
  104.                     If (STRING001 == YesChar()) Goto LABEL004
  105.                     If (STRING001 == NoChar()) Goto LABEL003
  106.                     If ((STRING001 == "LEFT") && (INTEGER004 > 1)) Then
  107.                         AnsiPos 42, 12
  108.                         Print TSTRING005(4)
  109.                         AnsiPos 32, 12
  110.                         Print TSTRING005(1)
  111.                         INTEGER004 = 1
  112.                     Endif
  113.                     If ((STRING001 == "RIGHT") && (INTEGER004 < 2)) Then
  114.                         AnsiPos 32, 12
  115.                         Print TSTRING005(3)
  116.                         AnsiPos 42, 12
  117.                         Print TSTRING005(2)
  118.                         INTEGER004 = 2
  119.                     Endif
  120.                 Endif
  121.             Next
  122.         Next
  123.         If (CDOn()) Then
  124.             If (INTEGER004 == 1) Goto LABEL004
  125.             If (INTEGER004 == 2) Goto LABEL003
  126.             :LABEL003
  127.             Color 7
  128.             Cls
  129.             End
  130.         Endif
  131.     Endif
  132.     :LABEL004
  133.     Newline
  134.     Color 7
  135.     Cls
  136.     DispText 435, 128 + 32768 + 256
  137.     MdmFlush
  138.     Delay 10
  139.     DtrOff
  140.     Delay 30
  141.     DispText 411, 128
  142.     STRING002 = ReadLine(PCBDat(), 56)
  143.     FClose -1
  144.     For INTEGER001 = 1 To Len(STRING002)
  145.         If ((Mid(STRING002, INTEGER001, 1) <> "~") && (Mid(STRING002, INTEGER001, 2) <> "^M")) SendModem Mid(STRING002, INTEGER001, 1)
  146.         If (Mid(STRING002, INTEGER001, 1) == "~") Delay 9
  147.         If (Mid(STRING002, INTEGER001, 2) == "^M") Then
  148.             SendModem Chr(13) + Chr(10)
  149.             Inc INTEGER001
  150.         Endif
  151.     Next
  152.     SendModem Chr(13) + Chr(10)
  153.     End
  154.  
  155. ;------------------------------------------------------------------------------
  156. ;
  157. ; Usage report (before postprocessing)
  158. ;
  159. ; ■ Statements used :
  160. ;
  161. ;    2       End
  162. ;    2       Cls
  163. ;    3       Color 
  164. ;    25      Goto 
  165. ;    51      Let 
  166. ;    6       Print 
  167. ;    24      If 
  168. ;    2       DispFile 
  169. ;    1       FOpen 
  170. ;    2       FClose 
  171. ;    1       FGet 
  172. ;    1       Delete 
  173. ;    1       DtrOff
  174. ;    4       Delay 
  175. ;    3       SendModem 
  176. ;    1       Inc 
  177. ;    1       Newline
  178. ;    2       DispText 
  179. ;    7       AnsiPos 
  180. ;    1       MdmFlush
  181. ;    1       KeyFlush
  182. ;
  183. ;
  184. ; ■ Functions used :
  185. ;
  186. ;    1       -
  187. ;    413     +
  188. ;    16      ==
  189. ;    3       <>
  190. ;    4       <
  191. ;    3       <=
  192. ;    1       >
  193. ;    6       >=
  194. ;    410     !
  195. ;    9       &&
  196. ;    5       ||
  197. ;    2       Len(
  198. ;    1       Upper()
  199. ;    5       Mid()
  200. ;    7       Chr()
  201. ;    1       NoChar()
  202. ;    1       YesChar()
  203. ;    1       Inkey()
  204. ;    1       PCBDat()
  205. ;    2       PPEPath()
  206. ;    1       PcbNode()
  207. ;    1       ReadLine()
  208. ;    2       CDOn()
  209. ;    1       GrafMode()
  210. ;    2       TempPath()
  211. ;
  212. ;------------------------------------------------------------------------------
  213. ;
  214. ; Analysis flags : BMd
  215. ;
  216. ; B - Brute hangup ■ 1
  217. ;     Program hangup without notification. This may be a good way to
  218. ;     disconnect a user, but if used randomly, may be very nasty
  219. ;     ■ Search for : HANGUP, DTROFF
  220. ;
  221. ; M - Send text to modem only ■ 4
  222. ;     Some informations are sent only to the modem, not to the local
  223. ;     screen, this is a well known way to make stealth backdoors, Check!
  224. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  225. ;
  226. ; d - Access PCBOARD.DAT ■ 2
  227. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  228. ;     for many PPE so they can find various informations on the system
  229. ;     (system paths, max number of lines in messages, ...) but it may also
  230. ;     be a way to gather vital informations.
  231. ;     ■ Search for : PCBDAT()
  232. ;
  233. ;
  234. ;------------------------------------------------------------------------------
  235. ;
  236. ;     One or more PPLC bugs were found, this is not a PPLX error, but PPLX is  
  237. ;     reporting the error ;)  Some statements  like VAR = !!!!10, VAR = !0*!0  
  238. ;     or similar things are not handled  correctly by PPLC, some may use this  
  239. ;     to  avoid a  correct decompilation...  This doesn't mean that there  is  
  240. ;     actually an error, but the probability of error is high...               
  241. ;     ■ Search for : PPLC BUG
  242. ;
  243. ;------------------------------------------------------------------------------
  244. ;
  245. ; Postprocessing report
  246. ;
  247. ;    3       For/Next
  248. ;    0       While/EndWhile
  249. ;    8       If/Then or If/Then/Else
  250. ;    0       Select Case
  251. ;
  252. ;------------------------------------------------------------------------------
  253. ;                 AEGiS Corp - Break the routines, code against the machines!
  254. ;------------------------------------------------------------------------------
  255.