pomoc za jedan niz

2

pomoc za jedan niz

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Pa da kazem ti, ti si pokusao sa ovim
("/(D202)(0D|0B)(.*?)(4007)(030B00)(08|09)(.*?)(EA10)(.*?)((FOO8-)(.{16}))/
ali sta ako je jedan ubacen fake kao sto si i probao, dobijas gresku hmm, komplikovano do zla...P.S. ovo je test znanja hehe, ko ovo resi skidam kapu



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Možda ovako.
((d202)(0d|0b))(.{2})(4007)(030B00)(08|09)(.*?)(ea10)(.*?)((f008)(.{16}))
Pod uslovom da je razmak između D202 i 4007 dva karaktera. Po šablonu bi trebalo da jeste ako nije tražićemo još nešto.



offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

nece moci regex zato sto nano ima dinamicke pozicije a ne staticke i to je problem, mislim da tu jedino pomaze ono kako sam poceo "explode,2" samo treba naci gde je greska i zasto ne brise niz gde je nano fake Sad Isto tako ovo: 08|09 to nije stalna vrednost i menja se, to je samo u tom primeru tako. Ovako sam dobio nesto mada sam ga zakomplikovao i izgubio sam na brzini dosta. Opet ima gresku jer reaguje samo na nano 4007 dok na nano d2o2 ako stavim 0d gubi jedan niz hmmm joj
 <?php $_GET['ecm'] = "018033D2020B014007030B0009056700E2033D8600E2033D86FFEA10B69EA7CE061429648AE1FF1CEFAE520EF008284FBE9A16D699908033D2020B014007030B0008061500E2033D8600E2033D86FFEA1028A7B6910F960D15127CC339044A24B2F0081E140DFB76340FAE8033D2020B014007030B0009056701E2033D8600E2033D86FFEA101A308E50EB67FE98F7D43156778315C9F008DD475A5D5AE26ABA8033D2020B014007030B0008061501E2033D8600E2033D86FFEA1049104600156592E8A93B199D4C990F75F008C03FDE35DF9C3040"; if (isset($_GET['ecm']) && trim($_GET['ecm']) != "" && strstr($_GET['ecm'], "EA10")) {     $ulaz = strtoupper($_GET['ecm']);     $ulaz = str_replace(" ", "", $ulaz);     $ulaz = trim($ulaz);     $ulaz_array = str_split($ulaz, 2);     $ulaz_len = count($ulaz_array);         $proc = array();     $aes_enkripted = false;         for ($i=0; $i<$ulaz_len; $i++)     {         $ab = $ulaz_array[$i].$ulaz_array[$i+1];         $cde = $ulaz_array[$i+2].$ulaz_array[$i+3].$ulaz_array[$i+4];             switch ($cde)         {             case "D2020B":                 $aes_enkripted = true;                 $rt = "preaes";                 break;             case "D2020D":                 $aes_enkripted = true;                 $rt = "posaes";                 break;         }                    if ($aes_enkripted == true)         {             switch ($ab)             {                 case "D202":                     $proc[$rt]['aes_id_pos'][] = $i+3;                     for ($k=0; $k<count($proc[$rt]['aes_id_pos']); $k++)                     {                          $proc[$rt]['aes_id'][$k] = $ulaz_array[  $proc[$rt]['aes_id_pos'][$k]  ];                     }                     break;                 case "4007":                     $proc[$rt]['prov_pos'][] = $i+2;                     for ($k=0; $k<count($proc[$rt]['prov_pos']); $k++)                     {                          $proc[$rt]['prov'][$k] = $ulaz_array[  $proc[$rt]['prov_pos'][$k]  ]                                                 .$ulaz_array[  $proc[$rt]['prov_pos'][$k] +1 ]                                                 .$ulaz_array[  $proc[$rt]['prov_pos'][$k] +2 ];                     }                                         $proc[$rt]['key_id_pos'][] = $i+5;                     for ($k=0; $k<count($proc[$rt]['key_id_pos']); $k++)                     {                          $proc[$rt]['key_id'][$k] = $ulaz_array[  $proc[$rt]['key_id_pos'][$k]  ];                     }                     break;                 case "EA10":                     $proc[$rt]['key_pos'][] = $i+2;                     for ($k=0; $k<count($proc[$rt]['key_pos']); $k++)                     {                          $proc[$rt]['key'][$k] = $ulaz_array[  $proc[$rt]['key_pos'][$k]  ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +1 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +2 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +3 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +4 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +5 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +6 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +7 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +8 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +9 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +10 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +11 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +12 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +13 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +14 ]                                                 .$ulaz_array[  $proc[$rt]['key_pos'][$k] +15 ];                     }                     break;                 case "F008":                     $proc[$rt]['crc_pos'][] = $i+2;                     for ($k=0; $k<count($proc[$rt]['crc_pos']); $k++)                     {                          $proc[$rt]['crc'][$k] = $ulaz_array[  $proc[$rt]['crc_pos'][$k]  ]                                                 .$ulaz_array[  $proc[$rt]['crc_pos'][$k] +1 ]                                                 .$ulaz_array[  $proc[$rt]['crc_pos'][$k] +2 ]                                                 .$ulaz_array[  $proc[$rt]['crc_pos'][$k] +3 ]                                                 .$ulaz_array[  $proc[$rt]['crc_pos'][$k] +4 ]                                                 .$ulaz_array[  $proc[$rt]['crc_pos'][$k] +5 ]                                                 .$ulaz_array[  $proc[$rt]['crc_pos'][$k] +6 ]                                                 .$ulaz_array[  $proc[$rt]['crc_pos'][$k] +7 ];                     }                     break;              }         }     }         if ($aes_enkripted == true)     {         if (isset($proc['preaes']))         {             if (isset($proc['preaes']['prov']))             {                 for ($i=0; $i<count($proc['preaes']['prov']); $i++)                 {                     $out[$i]['aesencrptd'] = "pre";                     $out[$i]['aes_id'] = $proc['preaes']['aes_id'][$i];                     $out[$i]['prov'] = $proc['preaes']['prov'][$i];                     $out[$i]['key_id'] = $proc['preaes']['key_id'][$i];                     $out[$i]['key_pos'] = $proc['preaes']['key_pos'][$i];                     $out[$i]['key'] = $proc['preaes']['key'][$i];                     $out[$i]['crc'] = $proc['preaes']['crc'][$i];                 }             }         }         if (isset($proc['posaes']))         {             if (isset($proc['posaes']['prov']))             {                 for ($i=0; $i<count($proc['posaes']['prov']); $i++)                 {                     $out[$i]['aesencrptd'] = "pos";                     $out[$i]['aes_id'] = $proc['posaes']['aes_id'][$i];                     $out[$i]['prov'] = $proc['posaes']['prov'][$i];                     $out[$i]['key_id'] = $proc['posaes']['key_id'][$i];                     $out[$i]['key_pos'] = $proc['posaes']['key_pos'][$i];                     $out[$i]['key'] = $proc['posaes']['key'][$i];                     $out[$i]['crc'] = $proc['posaes']['crc'][$i];                 }             }         }         //else die('');     }     print_r($out); }     ?>

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

<?php    //require_once('timer.class.php');    //$timer = new timer(1);    $_GET['ecm'] = "";    if (isset($_GET['ecm'])&& trim($_GET['ecm'])!= "" && strstr($_GET['ecm'], "EA10"))    {       $out = array();       $ulaz = strtoupper($_GET['ecm']);       $ulaz = str_replace(" ", "", $ulaz);       $ulaz = trim($ulaz);       $ulaz_array = str_split($ulaz, 2);       $ulaz_len = count($ulaz_array);              $aes_enkripted = false;       $proc = array();       $aes_ids = array();       $provs = array();       $prov_keys = array();       $key_poss = array();       $keys = array();       $crc_poss = array();       $crc_keys = array();       $m=-1;       for ($i=0;$i<$ulaz_len;$i++)       {             $a = $ulaz_array[$i];             if($i+1<$ulaz_len)             {$b = $ulaz_array[$i+1];}             else             {$b = '';}             if($i+2<$ulaz_len)             {$c = $ulaz_array[$i+2];}             else             {$c = '';}             if($i+3<$ulaz_len)             {$d = $ulaz_array[$i+3];}             else             {$d = '';}             if($i+4<$ulaz_len)             {$e = $ulaz_array[$i+4];}             else             {$e = '';}             $cde = $c.$d.$e;             switch ($cde)             {                   case "D2020B":                         $aes_enkripted = true;                         $rt = "preaes";                         $m++;                   break;                   case "D2020D":                         $aes_enkripted = true;                         $rt = "posaes";                         $m++;                   break;                   default:                   break;             }             if ($aes_enkripted == true)             {                   $ab = substr($cde, 0, 4);                   switch($ab)                   {                         case "D202":                               $proc[$rt]['aes_id_pos'][$m] = $i+5;                               $proc[$rt]['aes_id'][$m] = $ulaz_array[$proc[$rt]['aes_id_pos'][$m]];                         break;                         case "4007":                               $proc[$rt]['prov_pos'][$m] = $i+4;                               $pom = '';                               for ($j=0;$j<3;$j++)                               {                                     $pom .= $ulaz_array[$proc[$rt]['prov_pos'][$m]+$j];                               }                               $proc[$rt]['prov'][$m] = $pom;                               $proc[$rt]['key_id_pos'][$m] = $i+5;                               $proc[$rt]['key_id'][$m] = $ulaz_array[$proc[$rt]['key_id_pos'][$m]+3];                         break;                         case "EA10":                               $proc[$rt]['key_pos'][$m] = $i+4;                               $pom = '';                               for ($j=0;$j<16;$j++)                               {                                     $pom .= $ulaz_array[$proc[$rt]['key_pos'][$m]+$j];                               }                               $proc[$rt]['key'][$m] = $pom;                         break;                         case "F008":                               $proc[$rt]['crc_pos'][$m] = $i+4;                               $pom = '';                               for ($j=0;$j<8;$j++)                               {                                     $pom .= $ulaz_array[$proc[$rt]['crc_pos'][$m]+$j];                               }                               $proc[$rt]['crc'][$m] = $pom;                         break;                         default:                         break;                   }             }       }       //print_r($proc);       if ($aes_enkripted == true)       {             if (isset($proc['preaes'])|| (isset($proc['posaes'])))             {                   foreach($proc as $proc_index => $proc_value)                   {                         foreach($proc_value as $provindex => $prov_value)                         {                               foreach($prov_value as $pkey => $pvalue)                               {                                     if($proc_index=='preaes')                                     {                                           $out[$pkey]['aesencrptd'] = "pre";                                           $out[$pkey]['aes_id'] = $proc['preaes']['aes_id'][$pkey];                                           $out[$pkey]['prov'] = $proc['preaes']['prov'][$pkey];                                           $out[$pkey]['key_id'] = $proc['preaes']['key_id'][$pkey];                                           $out[$pkey]['key_pos'] = $proc['preaes']['key_pos'][$pkey];                                           $out[$pkey]['key'] = $proc['preaes']['key'][$pkey];                                           $out[$pkey]['crc'] = $proc['preaes']['crc'][$pkey];                                     }                                     if($proc_index=='posaes')                                     {                                           $out[$pkey]['aesencrptd'] = "pos";                                           $out[$pkey]['aes_id'] = $proc['posaes']['aes_id'][$pkey];                                           $out[$pkey]['prov'] = $proc['posaes']['prov'][$pkey];                                           $out[$pkey]['key_id'] = $proc['posaes']['key_id'][$pkey];                                           $out[$pkey]['key_pos'] = $proc['posaes']['key_pos'][$pkey];                                           $out[$pkey]['key'] = $proc['posaes']['key'][$pkey];                                           $out[$pkey]['crc'] = $proc['posaes']['crc'][$pkey];                                     }                               }                         }                   }             }       }       print_r($out);       //echo $timer->get();    } ?>
Imao sam tri vrste $p probao sa njima i radi. Menjao 0B i 0D i to radi. Nadam se da će raditi i u ostalim slučajevima koji postoje. Smile

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Bravo majtore svaka cast, za 5, bez greske, error reporting bez greske takodje, bravo bravo i hvala ti puno puno puno!! Samo ima jos jedna stvar al to cu da sredim sa unset() jer ako postoji fake nano treba da obrise ceo taj niz sa kljucem da ne moram novu logiku da pravim, al ok, shvatio sam gde gresim i sta treba, i naucio kako, hvala ti !!!

Ko je trenutno na forumu
 

Ukupno su 1020 korisnika na forumu :: 16 registrovanih, 2 sakrivenih i 1002 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Battlehammer, brundo65, comi_pfc, Dimitrise93, DonRumataEstorski, dragoljub11987, flash12, Kenanjoz, Krvava Devetka, mikki jons, novator, pein, radionica1, sasa76, slonic_tonic, Srle993