3v4l.org

run code in 500+ PHP versions simultaneously
<?php $flag = "THIS IS FLAG"; $password= "\x34\x32\x2E"; if (0 >= preg_match('/^[[:graph:]]{12,}$/', $password)) { echo 'Wrong Format'; exit; } while (TRUE) { $reg = '/([[:punct:]]+|[[:digit:]]+|[[:upper:]]+|[[:lower:]]+)/'; if (6 > preg_match_all($reg, $password, $arr)) break; $c = 0; $ps = array('punct', 'digit', 'upper', 'lower'); foreach ($ps as $pt) { if (preg_match("/[[:$pt:]]+/", $password)) $c += 1; } if ($c < 3) break; if ("42" == $password) echo $flag; else echo 'Wrong password'; exit; } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 8
Branch analysis from position: 5
1 jumps found. (Code = 61) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 9
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 18
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
Branch analysis from position: 18
2 jumps found. (Code = 77) Position 1 = 21, Position 2 = 29
Branch analysis from position: 21
2 jumps found. (Code = 78) Position 1 = 22, Position 2 = 29
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 28
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
Branch analysis from position: 28
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 33
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 35, Position 2 = 37
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
1 jumps found. (Code = 61) Position 1 = -2
Branch analysis from position: 37
1 jumps found. (Code = 61) Position 1 = -2
Branch analysis from position: 29
filename:       /in/eLuX7
function name:  (null)
number of ops:  42
compiled vars:  !0 = $flag, !1 = $password, !2 = $reg, !3 = $arr, !4 = $c, !5 = $ps, !6 = $pt
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                       !0, 'THIS+IS+FLAG'
    3     1        ASSIGN                                                       !1, '42.'
    5     2        FRAMELESS_ICALL_2                preg_match          ~9      '%2F%5E%5B%5B%3Agraph%3A%5D%5D%7B12%2C%7D%24%2F', !1
          3        IS_SMALLER_OR_EQUAL                                          ~9, 0
          4      > JMPZ                                                         ~10, ->8
    7     5    >   ECHO                                                         'Wrong+Format'
    8     6      > INIT_FCALL                                                   'exit'
          7*       DO_ICALL                                                     
   11     8    > > JMP                                                          ->40
   13     9    >   ASSIGN                                                       !2, '%2F%28%5B%5B%3Apunct%3A%5D%5D%2B%7C%5B%5B%3Adigit%3A%5D%5D%2B%7C%5B%5B%3Aupper%3A%5D%5D%2B%7C%5B%5B%3Alower%3A%5D%5D%2B%29%2F'
   14    10        INIT_FCALL                                                   'preg_match_all'
         11        SEND_VAR                                                     !2
         12        SEND_VAR                                                     !1
         13        SEND_REF                                                     !3
         14        DO_ICALL                                             $13     
         15        IS_SMALLER                                                   $13, 6
         16      > JMPZ                                                         ~14, ->18
   15    17    > > JMP                                                          ->41
   17    18    >   ASSIGN                                                       !4, 0
   18    19        ASSIGN                                                       !5, <array>
   19    20      > FE_RESET_R                                           $17     !5, ->29
         21    > > FE_FETCH_R                                                   $17, !6, ->29
   21    22    >   ROPE_INIT                                         3  ~19     '%2F%5B%5B%3A'
         23        ROPE_ADD                                          1  ~19     ~19, !6
         24        ROPE_END                                          2  ~18     ~19, '%3A%5D%5D%2B%2F'
         25        FRAMELESS_ICALL_2                preg_match          ~21     ~18, !1
         26      > JMPZ                                                         ~21, ->28
   22    27    >   ASSIGN_OP                                         1          !4, 1
   19    28    > > JMP                                                          ->21
         29    >   FE_FREE                                                      $17
   25    30        IS_SMALLER                                                   !4, 3
         31      > JMPZ                                                         ~23, ->33
         32    > > JMP                                                          ->41
   26    33    >   IS_EQUAL                                                     !1, '42'
         34      > JMPZ                                                         ~24, ->37
         35    >   ECHO                                                         !0
         36      > JMP                                                          ->38
   27    37    >   ECHO                                                         'Wrong+password'
   28    38    > > INIT_FCALL                                                   'exit'
         39*       DO_ICALL                                                     
   11    40    > > JMPNZ                                                        <true>, ->9
   30    41    > > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
168.66 ms | 2692 KiB | 15 Q