Код:
span style="color: #0000BB"><?phpfunction antialarm($file){ require_once 'pclzip.lib.php'; // проверка jar файлов $zip = new PclZip($file); $list = $zip->listContent(); if (!$list) { return false; } // проверка на алармы $content = $zip->extract(PCLZIP_OPT_BY_NAME, 'META-INF/MANIFEST.MF', PCLZIP_OPT_EXTRACT_AS_STRING); if (preg_match('/(id|sms|to|t\-1|n\-1|SMSNum\-1):\s*(\d+)/i', $content[0]['content'])) { return false; } if(strpos($content[0]['content'], 'MIDlet-Vendor: New-XXX')){ return false; } foreach ($list as $v) { if (strtolower(strrchr($v['filename'], '.')) == '.class') { $content = $zip->extract(PCLZIP_OPT_BY_NAME, $v['filename'], PCLZIP_OPT_EXTRACT_AS_STRING); if(($v['filename'] == 'JavaBox.class') || ($v['filename'] == 'SMSAlarm.class') || preg_match('/sms:\/\/(\d+)/i', $content[0]['content']) || strpos($content[0]['content'], 'sendSMS') || strpos($content[0]['content'], 'setPayloadText') || strpos($content[0]['content'], 'SMS_PERCENT') || preg_match('/tel:(\d+)/i', $content[0]['content'])){ return false; } } } return true;}?> |
Функция на вход принимает путь к файлу, требует библиотеку
PCLZip. В случае, если файл предположительно является алармом, либо его не удалось проверить возвращается
false, в противном случае возвращается
true
Отредактировано Gemorroj (2009.07.29 14:02)