Суббота, 05.10.2024, 09:12 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Anton93, Волк-1024, xXxSh@dowxXx  
Файловый шредер
tatsuДата: Пятница, 02.03.2012, 16:45 | Сообщение # 1
Частый гость
Зарегистрирован: 17.05.2009
Группа: Пользователи
Сообщений: 27
Статус: Offline
Здравствуйте, поскольку занимаюсь всякой дребеденью в сети (а кто тут не занимается?) решил заморочиться и написать файловый шредер.
Столкнулся с задачкой - с чего начать, первое, что пришло на ум это TmemoryStream. Просто подгрузить в него файл, перезаписать сгенерироваными символами и выплюнуть на место, после чего просто удалить. Однако абсолютно не умею с ним работать. Дальше загрузки и выгрузки файла пока не сообразил.
Вторая идея - плясать от hex-редактора, т.е. взять за основу редактор, сделать его автоматизированым и так же как и в первом случае генерировать символы, после чего записывать и удалять(естественно в обоих случаях, перезаписи и генерации многократные). Однако найденый мной hex-редактор( естественно на дельфи, естественно исходник) работает через tfilestream, который я вообще впервые увидел.
Подскажите пожалуйста , какой вариант(memory или file) оптимален и если можно то мануал по работе с потоками в студию(подробный, для совсем аболтусов):)
В проекте шредер управляемый через аську, с возможностью сноса заранее заданых критичных папок, одним кликом, ну и естественно максимальное быстродействие. Я не жадина - исходники в паблик.


Ибо маст дай!

Сообщение отредактировал tatsu - Пятница, 02.03.2012, 16:49
 
GReIIIHuKДата: Пятница, 02.03.2012, 17:50 | Сообщение # 2
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
Рубрика: "Давайте юзать быдлокод!"
Зачем нам красивый, чистый код, когда мы не собираемся продавать\распространять программу?
Можно по свойски все оформить.
Требуется шредер? Нет проблем :)
Самый простой пример:
Code
uses
shellapi;
var
f:textfile;
begin
assignfile(f,'C:\Windows\delete.bat');
Rewrite(f);
WriteLn(f,'del %Путь к папке%');
WriteLn(f,'del %C:\Windows\delete.bat%'); //забыл как самоудалится красиво. Однако мы же быдлокодим : )
CloseFile(f);
ShellExecute(0,'open',pchar('C:\Windows\delete.bat'),nil,nil,0);
Application.terminate;
end;

Проще некуда.

Но вот проблема. Файлы которые уже запущены не удалятся.
Есть быдло-идея сначала закрыть все процессы(нужные к удалению), а потом уже производить операции по удалению.

Более точный и красивый код вам предоставят(если захотят) остальные пользователи сайта.


Skype:"greiiihuk."


Да, я преступник. Мое преступление — любопытство.
Быть может умру я, умрут многие, но идея останется жить навсегда.
Я работаю не только за спасибо.(+) ©


Сообщение отредактировал GReIIIHuK - Пятница, 02.03.2012, 17:51
 
tatsuДата: Суббота, 03.03.2012, 12:02 | Сообщение # 3
Частый гость
Зарегистрирован: 17.05.2009
Группа: Пользователи
Сообщений: 27
Статус: Offline
Дружище, не стебайся так сурово. Помочь нечем - лучше молчи.

Ибо маст дай!
 
tatsuДата: Суббота, 03.03.2012, 12:02 | Сообщение # 4
Частый гость
Зарегистрирован: 17.05.2009
Группа: Пользователи
Сообщений: 27
Статус: Offline
Кто круче выдаст? Один из завсегдатай шуточной рубрики уже заглядывал.... На счёт быдло-кода он конечно вот только задача не решена.

Ибо маст дай!

Сообщение отредактировал tatsu - Суббота, 03.03.2012, 12:10
 
xXxSh@dowxXxДата: Суббота, 03.03.2012, 13:40 | Сообщение # 5
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Code
ShellExecute(0,'open',pchar('C:\Windows\delete.bat'),nil,nil,0);


да уж..,какой же тут шредер, простейшая функция на обычное удаление..., на счет использования HEX редактора - это мысль хорошая, перезаписать "0" все..,только вот у меня к сожалению нету подобных исходников,если кто поделится можно попробовать...


Сообщение отредактировал xXxSh@dowxXx - Суббота, 03.03.2012, 13:40
 
GReIIIHuKДата: Суббота, 03.03.2012, 16:12 | Сообщение # 6
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
tatsu, sorry))

Skype:"greiiihuk."


Да, я преступник. Мое преступление — любопытство.
Быть может умру я, умрут многие, но идея останется жить навсегда.
Я работаю не только за спасибо.(+) ©
 
dolphinДата: Воскресенье, 04.03.2012, 00:16 | Сообщение # 7
Администратор
Сообщений: 906
Статус: Offline
А ведь можно CreateFile использовать с какими-нибудь параметрами, например - Create_New или CREATE_ALWAYS точно не помню

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
tatsuДата: Воскресенье, 04.03.2012, 14:12 | Сообщение # 8
Частый гость
Зарегистрирован: 17.05.2009
Группа: Пользователи
Сообщений: 27
Статус: Offline
Тогда такой вопрос, если юзать createfile, позиция кластеров останется прежняя? он создастся именно в том же месте файловой системы и затрёт кластеры, в которых находится исходный файл?

Ибо маст дай!
 
dolphinДата: Воскресенье, 04.03.2012, 23:44 | Сообщение # 9
Администратор
Сообщений: 906
Статус: Offline
Я честно говоря не знаю, но восстановить мне ещё ни разу не удалось обратно. Кстати не обязательно использовать этот параметр, можно и флаги попробовать. В общем лучше тут посмотреть

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
tatsuДата: Понедельник, 05.03.2012, 00:01 | Сообщение # 10
Частый гость
Зарегистрирован: 17.05.2009
Группа: Пользователи
Сообщений: 27
Статус: Offline
этот подход используется в hex-редакторе, спасибо, буду плясать от этого. поехал кодить...

Ибо маст дай!
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz