про скрытие информации в NTFS

Тема в разделе "WASM.WIN32", создана пользователем Cneg, 27 апр 2007.

  1. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    Есть 2 задачи, обе по нахождению возможной скрытой информации на разделах с файловой системой NTFS.
    Первая -> связана со скрытием информации в конце тома после конца файловой системы (файловую систему при этом как бы усекают) => необходимо сравнить размер тома с размеров файловой системы (по умолчанию правда размер тома должен быть на один сектор больше, т.к. в самом конце хранится копия boot сектора) Правильно ли я понимаю, что размер файловой системы храниться в системном файле $Boot, а размер тома можно найти в MBR? и как прочитать эту ячейку MBR? (подозреваю, что просто с помощью ReadSector...)
    Вторая задача намного сложней. Речь идёт о скрытии данных в "битых" кластерах.(например при ручном редактировании метафайла $BadClus) Вообще как я понял это некий пережиток прошлого, когда жёсткие диски не могли сами себя тестировать и заменять битые сектора (именно сектора!... в NTFS если хотя бы один сектор кластера будет 3 раза неудачно прочитан, то весь кластер будет отмечен "битым" в файле $BadClus) на сектора из резервной области. Сегодня впринципе такая функция уже не нужна, т.к. на сколько я знаю ЖД определяют битые сектора раньше чем их увидит файловая система. Однако вопрос в следующем: отмечаются ли сектора, которые NTFs воспринимает как битые, где-то в служебной области ЖД? Да и вообще целесообразно ли скрывать информацию под видом битых кластеров в файловой системе?

    Также хочу поинтересоваться о возможности сокрытия информации под видом используемых кластеров (банально изменяя битовую карту $Bitmap). Ведь в этом случае придётся проводить достаточно обширную проверку: действительно ли эти кластеры принадлежат како-либо файловой записи... А если количество файлов на разделе порядка тыщ этак 500.....
    Плюс на засыпку прошу высказать соображения по отношению помещения скрытых данных в неиспользуемые части записей MFT и атрибутов. Да, природа NTFS динамична, т.е. записи могут обновляться достаточно часто и просто затереть эти скрытые данные при выделении новому файлу, либо при расширении исходного (так происходит например с документами word). НО политика выделения записей такова, что чаще перезаписываются те записи, которые находятся ближе к началу MFT, а записи в самом конце могут сохранять какие-то старые данные достаточно долгое время.. что скажете?
     
  2. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    check disk именно этим и занимается..

    с "битыми" кластерами идея самая реальная, но такие кластера как на ладони
    можно стеганографию попробовать.. типа поиграться с каким-нибудь редкоиспользуемым битиком, типа "archived", и по характеру его распределения восстанавливать закодированные данные.. )))
     
  3. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    Кстати если есть идеи про то где ещё можно спрятать данные в NTFS, напишите плиз. Буду очень благодарен. (только не пишите про дополнительные потоки данных и концы последних кластеров в файлах... это я уже собственно реализовал)
     
  4. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    Nouzui
    Идея интересная канешна, но я говорю о поиске скрытых данных целиком (т.е. например если мы сняли образ ЖД возможного злоумышленника и хотим найти что-то) Короче я пишу что-то типа программы криминалистического анализа файловой системы.(кстати на эту тему советую читать Кэрриэ "Криминалистический анализ файловых систем")

    Кстати про идею с битыми кластерами (на уровне файл. системы) или секторами (на уровне ЖД). Если каким-то образом в системой области ЖД сектора были помечены битыми, то как программно их можно увидеть/прочитать?.... Существуют целые программно-апппаратные комплексы типа PC3000, которые лезут в системную область ЖД, причём делают это только для определённых моделей ЖД опрелённых производителей так как архитектура микроконтроллера меняется от версии к версии... Можно как-то это сделать программно, не заморачиваясь на архитектуре конкретного ЖД? Как? (подозреваю что это непосильная работа для одного программмиста....)
    А насчёт уровня файловой системы.... Как узнать, собственно, действительно ли какой-то сектор в кластере который указан как битый является неисправным??
     
  5. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    программы? криминалистического?? анализа???
    ну ты хватанул )) типа ПО "Гайка"?
    насчет реально перемещенных секторов не знаю - разве их вообще можно реаллокейтить программно?
    а как отличить битый от замаскированного.. протестить, наверное - читается/не читается.. хотя тоже не факт, что если сектор читабельный, то был скрыт умышленно
    короче, хз
     
  6. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    Ну да типа того.. Курсовая кароче такая. Если честно то я уже успел пару раз утонуть в своём же коде, используя native api функции, параллельно вкуривая справочник Неббета и книжку Руссиновича... В общем жду с нетерпением любых соображений по теме
     
  7. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Есть еще файловые потоки NTFS, туда тоже можне чета "скрыть"
     
  8. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    argv[0]
     
  9. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    ntcdm
    я уже это реализовал, только назвал это не файловый поток, а дополнительный поток данных у определённого файла. (см. выше)
    Кстати, что имелось ввиду: цитирую
     
  10. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    блин, кнопочка запала.... Сорри
    ЧТо имелось ввиду при фразе argv[0]?
     
  11. Nekto0n

    Nekto0n New Member

    Публикаций:
    0
    Регистрация:
    22 фев 2007
    Сообщения:
    13
    Чтоб не создавать тему, спрошу здесь. Как можно проверить наличие у файла дополнительного потока средствами API?
     
  12. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    средствами Native Api -> есть такие функции замечательные NtQueryEaFile, NtQueryInformationFile. (справочник по Native Api в помощь) А если знаешь имя дополнительного потока данных у файла (папки), его можно смотреть даж с помощью командной строки. (смотри команду more, потоки данных отделяются от имени двоеточием - file.txt:field1)
     
  13. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    Nekto0n
    Может есть идеи насчёт других "тайничков"?