ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Избранное
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #19  
Старый 23.08.2009, 22:31
Аватар для oRb
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме:
7875940

Репутация: 2362
По умолчанию

Только сегодня наткнулся на эту тему, хотя скрипт уже юзал, тк нашел его на blacktoad'е.
Scipio, отличная вещь.
Решил немного сам покопаться.
Цитата:
идет поиск по байтам со значением 04 и 08 и причем следующий байт после них должен тоже быть не больше 0Fh
Там сначала идет нульбайт, далее 04 | 08 | 0a, потом идет длина имени папки/файла/ссылки. Поэтому твой скрипт не показывал файлы, в названиях которых более 16 символов.
Пытался вдуплить как определить удален файл/папка или нет. 2 часа пялился в hex-редактор, так ничего и не придумал.
Переписанный скрипт:
PHP код:
 <html> 
<head> 
<title>FreeBSD dir parser</title> 
<style> 
    body { background-color:#444;font: 9pt Lucida,Verdana;color:#fff;margin: 5; } 
    a { text-decoration:none; color:#df5; } 
</style> 
</head> 
<body> 
<form method="post"> 
Path: <input type="text" name="pole" value="<?=htmlspecialchars($_POST['pole']);?>"/> <input type="submit"/> 
</form> 
<pre> 
<?php 
error_reporting
); 
set_time_limit); 
if ( isset( 
$_POST['pole'] ) ) 
    
$str = @file_get_contents$_POST['pole'] ); 
if ( !empty( 
$str ) ) { 
    
$content = array( 'dirs' => array(), 'files' => array(), 'links' => array() ); 
    function 
getItem$type, &$i ) { 
        
$item_len ord$GLOBALS['str'][$i+1] ); 
        if( 
$item_len && ( ord($GLOBALS['str'][$i+2]) != ) ) {
            
$item substr$GLOBALS['str'], $i+2$item_len );
            if( 
strpos($item"\0") !== false )
                return;
            
$GLOBALS['content'][$type][] = substr$GLOBALS['str'], $i+2$item_len );
        } else
            
$item_len 0
        
$i += $item_len
    } 
    
$len strlen$str ); 
    for( 
$i 0$i $len$i++ ) { 
        if( 
ord$str[$i] ) != 
            continue; 
        
$i++; 
        
$char ord$str[$i] ); 
        if( 
$char == 0x04 
            
getItem('dirs'$i); 
        elseif( 
$char == 0x08 
            
getItem('files'$i); 
        elseif( 
$char == 0x0a 
            
getItem('links'$i); 
    } 
    
sort($content['dirs']); 
    foreach( 
$content['dirs'] as $item 
        echo 
"<i>dir</i>\t[ ".$item." ]\n"
    
sort($content['files']); 
    foreach(
$content['files'] as $item
        echo 
"<i>file</i>\t".$item."\n"
    
sort($content['links']); 
    foreach(
$content['links'] as $item
        echo 
"<i>link</i>\t".$item."\n"

?> 
</pre> 
<a href="https://forum.antichat.ru/thread55237.html">Original https://forum.antichat.ru/thread55237.html</a> 
</body> 
</html>
__________________
включи голову

Последний раз редактировалось oRb; 01.11.2009 в 13:08..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42
Взлом Unix а silveran *nix 4 21.12.2005 22:46
Основные команды командной строчки. silveran Windows 5 27.10.2005 14:45



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ