home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / TC-LOGIN.ZIP / AMILOG.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-02-21  |  2KB  |  181 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 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     String   STRING001
  20.     String   STRING002
  21.     String   STRING003
  22.     String   STRING004
  23.     Int      INT001
  24.     Int      INT002
  25.     Int      INT003
  26.  
  27. ;------------------------------------------------------------------------------
  28.  
  29.     If (Exist(PPEPath() + "logon.pcb")) DispFile PPEPath() + "logon.pcb", 1
  30.     INT002 = GetY()
  31.     INT003 = -1
  32.     If (U_Name() <> "") Goto LABEL004
  33.     :LABEL001
  34.     INT003 = INT003 + 1
  35.     If (INT003 == 3) Hangup
  36.     STRING001 = ""
  37.     INT002 = INT002 + 1
  38.     AnsiPos INT001, INT002
  39.     Print Space(25)
  40.     AnsiPos 1, INT002
  41.     Print "@X07Enter Your Name: "
  42.     InputText "_", STRING001, 0, 25
  43.     AnsiPos 1, INT002 + 2
  44.     STRING002 = Upper(STRING001)
  45.     If (Len(STRING001) < 2) Then
  46.         INT002 = INT002 + 2
  47.         Print "Name Must Be At Least 2 Characters Long"
  48.         INT002 = INT002 + 1
  49.         Goto LABEL001
  50.     Endif
  51.     If (U_RecNum(STRING002) == -1) Then
  52.         INT002 = INT002 + 1
  53.         Print "The name ", STRING001, " is not used on this BBS."
  54.         AnsiPos 1, INT002 + 2
  55.         Print "[R]etry your name or [C]ontinue to log on as a new user? "
  56.         INT001 = GetX()
  57.         :LABEL002
  58.         STRING003 = ""
  59.         While (STRING003 == "") Do
  60.             STRING003 = Upper(Inkey())
  61.             AnsiPos INT001, INT002 + 2
  62.         EndWhile
  63.         INT002 = INT002 + 3
  64.         If (STRING003 == "C") Then
  65.             If (CDOn() || OnLocal()) Then
  66.                 KbdStuff STRING001 + Chr(13)
  67.                 End
  68.             Endif
  69.             Goto LABEL003
  70.         Endif
  71.         If (STRING003 == "R") Then
  72.             Goto LABEL001
  73.             Goto LABEL003
  74.         Endif
  75.         Goto LABEL002
  76.     Endif
  77.     :LABEL003
  78.     If (CDOn() || OnLocal()) KbdStuff STRING001 + Chr(13)
  79.     End
  80.     :LABEL004
  81.     GetUser
  82.     INT002 = GetY()
  83.     :LABEL005
  84.     INT003 = INT003 + 1
  85.     If (INT003 == 3) Then
  86.         Print "@X07Excessive Password Failures!"
  87.         Hangup
  88.     Endif
  89.     INT002 = INT002 + 1
  90.     AnsiPos 1, 1
  91.     Print "@X4F"
  92.     SPrint "Password: ", U_Pwd, Space(16 - Len(U_Pwd)), "Attempts: ", String(INT003 + 1), "/3", Space(7), "Input: ", STRING004, Space(15 - Len(STRING004)), Space(12)
  93.     AnsiPos 1, INT002
  94.     Print "@X07password : "
  95.     InputStr "_", STRING004, 0, 25, Mask_Pwd(), 1
  96.     STRING004 = Upper(STRING004)
  97.     If (STRING004 == U_Pwd) Goto LABEL006
  98.     INT002 = INT002 + 1
  99.     AnsiPos 1, INT002 + 1
  100.     PrintLn "Wrong Password!"
  101.     INT002 = INT002 + 2
  102.     Goto LABEL005
  103.     :LABEL006
  104.     KbdStuff STRING004 + Chr(13)
  105.     End
  106.  
  107. ;------------------------------------------------------------------------------
  108. ;
  109. ; Usage report (before postprocessing)
  110. ;
  111. ; ■ Statements used :
  112. ;
  113. ;    3       End
  114. ;    16      Goto 
  115. ;    19      Let 
  116. ;    8       Print 
  117. ;    1       PrintLn 
  118. ;    12      If 
  119. ;    1       DispFile 
  120. ;    2       Hangup
  121. ;    1       GetUser
  122. ;    1       InputStr 
  123. ;    1       InputText 
  124. ;    3       KbdStuff 
  125. ;    8       AnsiPos 
  126. ;    1       SPrint 
  127. ;
  128. ;
  129. ; ■ Functions used :
  130. ;
  131. ;    2       -
  132. ;    20      +
  133. ;    2       -
  134. ;    7       ==
  135. ;    1       <>
  136. ;    1       <
  137. ;    8       !
  138. ;    2       ||
  139. ;    3       Len(
  140. ;    3       Upper()
  141. ;    5       Space()
  142. ;    3       Chr()
  143. ;    1       U_Name()
  144. ;    1       Inkey()
  145. ;    1       String()
  146. ;    1       Mask_Pwd()
  147. ;    2       PPEPath()
  148. ;    2       OnLocal()
  149. ;    1       Exist()
  150. ;    2       CDOn()
  151. ;    1       GetX()
  152. ;    2       GetY()
  153. ;    1       U_RecNum()
  154. ;
  155. ;------------------------------------------------------------------------------
  156. ;
  157. ; Analysis flags : BH
  158. ;
  159. ; B - Brute hangup ■ 1
  160. ;     Program hangup without notification. This may be a good way to
  161. ;     disconnect a user, but if used randomly, may be very nasty
  162. ;     ■ Search for : HANGUP, DTROFF
  163. ;
  164. ; H - Read Password or Password History ■ 5
  165. ;     Program is reading the user's password or last password history
  166. ;     This may be ok for a password manager, but it is very suspect. Check!
  167. ;     ■ Search for : U_PWDHIST, U_PWD
  168. ;
  169. ;------------------------------------------------------------------------------
  170. ;
  171. ; Postprocessing report
  172. ;
  173. ;    0       For/Next
  174. ;    1       While/EndWhile
  175. ;    6       If/Then or If/Then/Else
  176. ;    0       Select Case
  177. ;
  178. ;------------------------------------------------------------------------------
  179. ;                 AEGiS Corp - Break the routines, code against the machines!
  180. ;------------------------------------------------------------------------------
  181.