Poslao: 19 Apr 2011 17:47
|
offline
- savan2
- Građanin
- 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.
|
|
Poslao: 19 Apr 2011 18:01
|
offline
- MSMarkoN
- Ugledni građanin
- 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.
|
|
|
|
Poslao: 19 Apr 2011 18:10
|
offline
- savan2
- Građanin
- 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 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);
}
?>
|
|
|
|
Poslao: 20 Apr 2011 03:19
|
offline
- MSMarkoN
- Ugledni građanin
- 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.
|
|
|
|
Poslao: 20 Apr 2011 20:05
|
offline
- savan2
- Građanin
- 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 !!!
|
|
|
|