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

  #21  
Старый 27.03.2009, 10:51
Аватар для HornetBlack
HornetBlack
Новичок
Регистрация: 28.10.2007
Сообщений: 11
Провел на форуме:
86145

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

Цитата:
Сообщение от mailbrush  
HornetBlack, а я так понимаю, ты хочешь минус получить. Прошло больше года =\. Это археология =\
Mailbrush, а я так понимаю, что тебе минусы девать некуда или ты можешь сказать что-нибудь полезное по обсуждаемой теме?
Во-первых, это не археология, т.к. FBSD на хостах до сих пор встречается довольно часто и нужно получить максимум из доступной инфы.
Во-вторых, я сейчас разрабатываю инструмент для детального исследования SI и обсуждаемая тема это только малая часть моей тулзы.
Итак?
 
Ответить с цитированием

  #22  
Старый 30.03.2009, 09:42
Аватар для HornetBlack
HornetBlack
Новичок
Регистрация: 28.10.2007
Сообщений: 11
Провел на форуме:
86145

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

После недолгих поисков на сайте www.kernel-api.org нашел документацию по форматам записей каталога EXT/EXT2. Итого имеем 3 варианта каталогов:

1. struct ext_dir_entry:

unsigned long inode
unsigned short rec_len
unsigned short name_len
char name [EXT_NAME_LEN]

2. struct ext2_dir_entry:

__u32 inode Inode number.
__u16 rec_len Directory entry length.
__u16 name_len Name length.
char name [EXT2_NAME_LEN] File name.

3. struct ext2_dir_entry2:

__u32 inode Inode number.
__u16 rec_len Directory entry length.
__u8 name_len Name length.
__u8 file_type
char name [EXT2_NAME_LEN] File name.

Первый и второй варианты практически идентичны (видимо для совместимости ext и ext2)

Дополнительно по типам и выравниванию:

#define EXT2_FT_UNKNOWN 0
#define EXT2_FT_REG_FILE 1
#define EXT2_FT_DIR 2
#define EXT2_FT_CHRDEV 3
#define EXT2_FT_BLKDEV 4
#define EXT2_FT_FIFO 5
#define EXT2_FT_SOCK 6
#define EXT2_FT_SYMLINK 7
#define EXT2_FT_MAX 8

/**

* EXT2_DIR_PAD defines the directory entries boundaries
*
* NOTE: It must be a multiple of 4

*/
#define EXT2_DIR_PAD 4
#define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1)
#define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \
~EXT2_DIR_ROUND)


Жаль, что до таблиц inode не добраться, но надо уметь довольствоваться малым... ))

Последний раз редактировалось HornetBlack; 30.03.2009 в 09:57..
 
Ответить с цитированием

  #23  
Старый 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