Size: a a a

Ассемблер

2021 March 12

d

disba1ancer in Ассемблер
Алексей Шведов
Друзья, объясните алгоритм получения списка файлов из MFT
хотя бы самое основное. А то сурсы есть, а теории нет.

А в сурсах тут такое творится....
ntfs штука проприетарная, так что мало кто сможет нормально это объяснить
источник

АШ

Алексей Шведов... in Ассемблер
Ну как-то же пишут, понимают
источник

d

disba1ancer in Ассемблер
Алексей Шведов
Ну как-то же пишут, понимают
я намекаю что тут может не быть таких людей
источник

АШ

Алексей Шведов... in Ассемблер
Оу... Понял
источник

АШ

Алексей Шведов... in Ассемблер
Извиняюсь
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
беее. что есть сурсы? почему сурсы? что это за слово? вы что свой язык забывать стали?
источник

АШ

Алексей Шведов... in Ассемблер
Так легче)
источник

АШ

Алексей Шведов... in Ассемблер
Забавно. Оказалось всё просто: C:\$mft
Только теперь нужно его правильно прочитать, ибо система просто так не даст. Теперь пойдут велосипеды
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Алексей Шведов
Так легче)
https://youtu.be/Kqd7k5F-YBI

смотри в нее не превратись
источник

АШ

Алексей Шведов... in Ассемблер
Кажется, нет в мире человека, который не использует взаимствованные слова в русском языке
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Алексей Шведов
Кажется, нет в мире человека, который не использует взаимствованные слова в русском языке
есть заимственные, а есть иностранные написанные кирилицей
источник

АШ

Алексей Шведов... in Ассемблер
Тоже верно))
источник

АШ

Алексей Шведов... in Ассемблер
А если быстро пишешь, и нет времени переключать раскладку?))
Но при этом, если перевести слово - оно будет больше, а если их очень много в предложении - текст станет затянутым
источник

ST

Saenro T in Ассемблер
Алексей Шведов
Друзья, объясните алгоритм получения списка файлов из MFT
хотя бы самое основное. А то сурсы есть, а теории нет.

А в сурсах тут такое творится....
Там вроде отводится по 1024 байта информации о файле(лах) / директории(ях).
Каждый такой блок имеет сигнатуру, т.е. строго начинается с "FILE0".
Начиная со смещения F0h:
Первый байт = длина имени файла+точка+расширение;
Второй байт — точно не понял пока, возможно какой-то флаг;
Начиная с третьего байта собственно имя файла в юникоде ограниченное 8-ю символами (как в ДОСе);
Следующее слово: 2Eh, 00 — "точка";
Ну и расширение до 6 байт (юникод).

А со смещения 160h+ тоже самое, но уже полное имя в юникоде (не ограниченное 8 символами)

Но это я так, для себя начал копать когда задумался о ручном восстановлении стёртых файлов.
И кстати да, имя файла не портится после удаления как раньше.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Алексей Шведов
А если быстро пишешь, и нет времени переключать раскладку?))
Но при этом, если перевести слово - оно будет больше, а если их очень много в предложении - текст станет затянутым
ну да, вместо 73.32р, легче написать 1$
источник

АШ

Алексей Шведов... in Ассемблер
Saenro T
Там вроде отводится по 1024 байта информации о файле(лах) / директории(ях).
Каждый такой блок имеет сигнатуру, т.е. строго начинается с "FILE0".
Начиная со смещения F0h:
Первый байт = длина имени файла+точка+расширение;
Второй байт — точно не понял пока, возможно какой-то флаг;
Начиная с третьего байта собственно имя файла в юникоде ограниченное 8-ю символами (как в ДОСе);
Следующее слово: 2Eh, 00 — "точка";
Ну и расширение до 6 байт (юникод).

А со смещения 160h+ тоже самое, но уже полное имя в юникоде (не ограниченное 8 символами)

Но это я так, для себя начал копать когда задумался о ручном восстановлении стёртых файлов.
И кстати да, имя файла не портится после удаления как раньше.
Спасибо
источник

ST

Saenro T in Ассемблер
Дальше — больше: путь к файлу разбит и лежит в таких же блоках, а т.к. блок небольшой, то помещается в него далеко не весь путь.
Вернее там вообще только соседние директории. После чего я делаю для себя вывод: чем меньше директорий на пути к файлу, тем быстрее всё это работает)
источник

A

Aleksandr in Ассемблер
Драйвер наверняка кеширует это все в память
источник

АШ

Алексей Шведов... in Ассемблер
Saenro T
Дальше — больше: путь к файлу разбит и лежит в таких же блоках, а т.к. блок небольшой, то помещается в него далеко не весь путь.
Вернее там вообще только соседние директории. После чего я делаю для себя вывод: чем меньше директорий на пути к файлу, тем быстрее всё это работает)
Именно из-за потеряного пути и сложно будет находить файлы, чтобы его затереть
источник

АШ

Алексей Шведов... in Ассемблер
Но пока мне надо только чтение
источник