Сейчас на форуме: Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› Обход ограничений Fat32/ntfs
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 мая 2008 18:59 · Поправил: Unami
· Личное сообщение · #1

В Windows можно создать директорию с запрещенным именем. Для этого нужно в консоли ввести:
"mkdir ..invalid..\"
С созданой папкой, с мнимым именем "..invalid.", нельзя производить какие либо операции (удаление, переименование итп). Удалить можно тоже через консоль.
"rmdir ..invalid..\"

Задача: написать программу (на С) обходящую ограничения файловой системы т.е. позволяющая работать (создавать, переименовывать, удалять) с файлом или папкой с неправильным именем.

Поискав материал по теме, я нашел статью http://www.xakep.ru/magazine/xa/062/080/1.asp , в которой был приведен код, якобы позволяющий переименовать файл в соответствии с заданием.

#include <windows.h>
void main()
{
char *old = "C:\TMP\somefile.txt";
char *_new = "C:\TMP\twodots.."; //переменные для нового и старого имени файла
char *newname;
wsprintf(newname,"%s.",_new); //добавляем символы «.\» в новое имя файла
MoveFile(old, newname); //переименовываем файл
}


Код оказался не рабочим, а привести его в рабоспособное состояние я не смог.



Чуть позже, я обнаружил ошибку в Миранде. Дело в том, что если в настроках указать в качестве места куда сохраняются принятые файлы "patch\Downloads\%nick%\", а у человека будет в начале и в конце ника будет стоять по две точки то полученый файл, сохранится в директорию с неправильным именем.

В моем случае ник был "..::[Pandorinnn]::..". Вместо скобок и двоеточий, миранда поставила "%", соответственно мнимое имя папки получилось "..%%%Pandorinnn%%%.".

Исходники миранды (моей версии, есть ли в других такая ошибка - не знаю) можно забрать отсюда. http://internap.dl.sourceforge.net/sourceforge/miranda/miranda-im-v0.7.3-src.zip

Модуль приема файла, называется "srfile" и находится в "miranda\src\modules\srfile". Сам не смог найти нужный код.

Помогите написать софтину, уже отчаялся!




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 19 мая 2008 01:43
· Личное сообщение · #2

MACKLIA
Да я впринципе за местных не сильно волнуюсь, тут вроде народ грамотный в основном сидит и разберуться самостоятельно

Я предлагал совет/метод 100% подручными средствами без написания какого либо софта так сказать.

KingSize'у вроде верно посоветовали забить фат таблицу нулями и теоретически должно все форматнуться, но что на деле у него там хз. Могу предложить еще как вариант форматировать не стандартными средствами винды, а другими. Например форматнуть из того же линуха как сам Кинг захотел или партишенем. И еще вариант взять утилиты от производителя флешки.

Согласен рядовой пользователь незнает таких слов как файловая система и WinHex. В том числе он не знает и что такое реестр и каким макаром искать скрытый системный файл. Так что триальщики перехавшие с реестра на CON, LPT или PRN ничего не выиграют. Крэкеры как ломали так и будут ломать, а юзверя как незнали так и не будут ничего знать.

-----
Computer Security Laboratory




Ранг: 75.0 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 19 мая 2008 11:18
· Личное сообщение · #3

[HEX] пишет:
KingSize'у вроде верно посоветовали забить фат таблицу нулями и теоретически должно все форматнуться, но что на деле у него там хз. Могу предложить еще как вариант форматировать не стандартными средствами винды, а другими. Например форматнуть из того же линуха как сам Кинг захотел или партишенем. И еще вариант взять утилиты от производителя флешки.


Если это действительно программный косяк, то самый верный способ для FAT - снести первые 64 сектора в нули - затрется PT в MBR и BR.



Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 21 июня 2008 14:34
· Личное сообщение · #4

MACKLIA пишет:
откат

Я им больше не пользуюсь и вам не советую. Он у мну на диске д все испоганил месяца 3 назад.

кстати насчет файлов con вот почему их нельзя создавать как обычные файлы.

Consoles

The CreateFile function can create a handle to console input (CONIN$). If the process has an open handle to it as a result of inheritance or duplication, it can also create a handle to the active screen buffer (CONOUT$). The calling process must be attached to an inherited console or one allocated by the AllocConsole function. For console handles, set the CreateFile parameters as follows:

Parameters Value
lpFileName Use the CONIN$ value to specify console input and the CONOUT$ value to specify console output.
CONIN$ gets a handle to the console's input buffer, even if the SetStdHandle function redirected the standard input handle. To get the standard input handle, use the GetStdHandle function.
CONOUT$ gets a handle to the active screen buffer, even if SetStdHandle redirected the standard output handle. To get the standard output handle, use GetStdHandle.
dwDesiredAccess GENERIC_READ | GENERIC_WRITE is preferred, but either one can limit access.
dwShareMode If the calling process inherited the console or if a child process should be able to access the console, this parameter must be FILE_SHARE_READ | FILE_SHARE_WRITE.
lpSecurityAttributes If you want the console to be inherited, the bInheritHandle member of the SECURITY_ATTRIBUTES structure must be TRUE.
dwCreationDistribution You should specify OPEN_EXISTING when using CreateFile to open the console.
dwFlagsAndAttributes Ignored.
hTemplateFile Ignored.


The following list shows the effects of various settings of fwdAccess and lpFileName.

lpFileName fwdAccess Result
CON GENERIC_READ Opens console for input.
CON GENERIC_WRITE Opens console for output.
CON GENERIC_READ
GENERIC_WRITE Windows 95: Causes CreateFile to fail; GetLastError returns ERROR_PATH_NOT_FOUND.Windows NT: Causes CreateFile to fail; GetLastError returns ERROR_FILE_NOT_FOUND

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 22 июня 2008 15:08
· Личное сообщение · #5

Stack пишет:
Я им больше не пользуюсь и вам не советую. Он у мну на диске д все испоганил месяца 3 назад.


Stack интересно каким образом ,даже если откат не привел к положительным результатом ,всегда есть возможность его отменить .Нужно конечно помнить ,что "восстановление системы" не распостраняется на файлы текстовых документов ,картинки и содержимое папок "Мои документы", "Корзина", "Избранное " и некоторые другие.

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 22 июня 2008 16:47
· Личное сообщение · #6

MACKLIA пишет:
Нужно конечно помнить ,что "восстановление системы" не распостраняется на файлы текстовых документов ,картинки и содержимое папок "Мои документы", "Корзина", "Избранное " и некоторые другие.

Откат то и привел стер мне половину инсталов которые я с инета скачал

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




Ранг: 38.4 (посетитель), 16thx
Активность: 0.050
Статус: Участник

Создано: 23 июня 2008 08:59
· Личное сообщение · #7

Держи их на отдельном логическом диске и в настройках восстановления запрети восстановление этого диска.

Хотя конечно "восстановление системы" далеко не всегда есть хорошо... в точке сохранения могут оказаться "зловреды"...




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 23 июня 2008 11:29
· Личное сообщение · #8

fire4x пишет:
Держи их на отдельном логическом диске и в настройках восстановления запрети восстановление этого диска.


Точно ,у меня на всех дисках ,кроме системного восстановление отключено.

Stack пишет:
Откат то и привел стер мне половину инсталов которые я с инета скачал


Можно было отменить последнее восстановление и инсталы бы вернулись

-----
Что один человек сделал , другой всегда сломать может...



<< . 1 . 2 .
 eXeL@B —› Программирование —› Обход ограничений Fat32/ntfs
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати