ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

23.08.2009, 22:31
|
|
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( 0 );
set_time_limit( 0 );
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]) != 0 ) ) {
$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 += 2 + $item_len;
}
$len = strlen( $str );
for( $i = 0; $i < $len; $i++ ) {
if( ord( $str[$i] ) != 0 )
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..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|