PDA

Просмотр полной версии : ATC File Wiper by AlexTheC0d3r


AlexTheC0d3r
29.01.2010, 00:00
Обновление! V1.0 + Console! +Source
C# версия https://forum.antichat.ru/showpost.php?p=1898379&postcount=69


*Пролог:
По совету sn0w, я перевоплотил идею RandomFileGenerator в File wiper...

я тебе предлагаю это переделать в вайпер. суть таже - по очереди открываются файлы в папке, переписываются случайными значениями, закрываются, снова открываются и снова переписываются, а потом дружно сносятся. easyrecovery уже никогда не поможет восстановить инфу стертую таким образом)



*Скрины:

[IMG]http://zemus.us/wp-content/images/wiperscr1.jpg

http://zemus.us/wp-content/images/wiperscr1a.jpg

*Описание:


В режиме ExtraClean возможность сохранить список папок в файл (в папку с программой) (добавлено в v0.9)
В режиме ExtraClean добавил возможность добавление папки, указанной в списке папок, кнопкой "<" (добавлено в v0.9)
Поддержка русского языка... Смена языков по правому клику мышкой по форме (добавлено в v0.8.7)
Функция чистки логов Windows (добавлено в v0.8.6)
Запуск GUI из консоли с параметрами пути до файла и количеством циклов перезаписи
Пример: e:\Program Files\ATC\wipergui.exe "D:\papka_dlya_ydaleniya" 15 (добавлено в v0.8.6)
Интегрирование в контекстное меню проводника, для более быстрого и удобного запуска утилиты (добавлено в v0.8.5)
Запуск программы с параметром начального пути до папки
Пример: E:\ATCfilewiper.exe "e:\downloads\papka_dlya_ydaleniya" (добавлено в v0.8.5)
Удаление всех файлов из папки +Функция удаления самих папок (добавлено в v0.8)
Перезапись всех файлов в папке случайными значениями, и последующее удаление их
Перезапись всех файлов в папке случайными значениями в несколько циклов и последующее удаление их

РЕЖИМ extraClean


Вы указываете файл, с полными путями до папок, и маской файлов, которые надо удалить с перезаписью их значений, или же создаете этот список сами.

Для примера:

D:\vasya\*.exe

C:\documents and settings\Admin\My Documents\*.*

C:\MyProgs\*.pas

C:\nokia\jimm.*

Если вам необходимо удалить папку, в которой есть другие папки, тогда для начала укажите путь до вложенных папок в иерархичном порядке, чтобы вложенные папки были выше.





*Скрины:

http://zemus.us/wp-content/images/wiperscr2.jpg

*Описание:

Поддержка параметра количества циклов перезаписи файла
Пример: e:\Program Files\ATC\wiperconsole.exe "D:\papka_dlya_ydaleniya" 20 (добавлено в v0.8.6 console)
Интегрирование в контекстное меню проводника, для более быстрого и удобного запуска утилиты (добавлено в v0.8.5 console)
Запуск программы с параметром начального пути до папки
Пример: E:\ATCfilewiperconsole.exe "e:\downloads\papka_dlya_ydaleniya" (добавлено в v0.8.5 console)
Удаление всех файлов из папки +Функция удаления самих папок (добавлено в v0.8.5 console)
Перезапись всех файлов в папке случайными значениями, и последующее удаление их (добавлено в v0.8.5 console)
Перезапись всех файлов в папке случайными значениями в несколько циклов и последующее удаление их (добавлено в v0.8.5 console)




*Фиксы:
*Если в папке не было файлов, то программа висла (Исправил)

*Добавлена функция удаления папок за файлами

*Неправильно раскрывал путь до папки при обращении из контекстного меню (Исправил)

*Исправлена поддержка русских букв в названии файлов при выводе в консоли

*Исправлены некоторые недочеты как в GUI так и в Console версиях

*Исправлен выход за границы label в чекбоксах и радиобоксах в GUI версии

*Исправил запись в реестр пути до исполняемого файла, теперь вам ничего не надо вводить с самого начала

*Сильно оптимизировал код в GUI версии

*Улучшил интерфейс, добавил строчку прогресса + визуальное оформление

*Выбрал другой компонент для отображения списка папок

*Обновил механизм добавление записи в реестр для интеграции в контекстное меню

*Сильно оптимизировал обе версии программ, Доработал, исправил, подправил в некоторых местах код... Наиболее стабильная, законченная версия v1.0



В дальнейшем разберетесь сами :) Good Luck!




*Ссылки

Предупреждение: Kaspersky с проактивкой может ругаться на Trojan.Cryptor
Но мне, мое имя дороже ;)




Сжатые UPX:

http://zemus.us/downloads/wpgui.rar







Сжатые UPX:

http://zemus.us/downloads/wpconsole.rar






*Source




http://zemus.us/downloads/wpguisrc.rar








http://zemus.us/downloads/wpconsolesrc.rar

shell_c0de
29.01.2010, 00:43
чем ccleaner хуже ?

Zombi ****
29.01.2010, 00:43
Спасибо полезно!

Retimiled
29.01.2010, 00:59
надеюсь пишешь плотненько по всему размеру файла?

W!z@rD
29.01.2010, 07:21
сделать скрин активного окна можно нажатием Alt+PrintScreen =\

AlexTheC0d3r
29.01.2010, 08:37
надеюсь пишешь плотненько по всему размеру файла?

да

AlexTheC0d3r
29.01.2010, 08:38
сделать скрин активного окна можно нажатием Alt+PrintScreen =\
Мне это не особо важно.. Но спасибо, буду знать :)

AlexTheC0d3r
29.01.2010, 10:43
Отзывы будут? :)
Жду предложений по улучшению, добавлению функций

sn0w
29.01.2010, 13:01
нормуль, вот кстати почитай и можешь доделать прям по ГОСТу )

Все алгоритмы уничтожения информации основываются на многократной перезаписи информации в секторах жесткого диска, с физической точки зрения -- на многократном перемагничивании материала записывающей поверхности диска.

Алгоритмы, предлагаемые национальными стандартами, предусматривают запись в каждый байт каждого сектора жесткого диска единиц, случайных чисел, а также чисел, дополнительных к записанным на предыдущем проходе. Предполагается несколько проходов по жесткому диску.

Национальные стандарты уничтожения данных:
# Российский: ГОСТ P50739--95;
# Американские: DoD 5220.22-M; NAVSO P-5239-26 (RLL); NAVSO P-5239-26 (MFM);
# Германский: VSITR.

sn0w
29.01.2010, 13:03
и вот еще

тогда так
http://ru.wikipedia.org/wiki/Алгоритмы_уничтожения_инфо рмации

AlexTheC0d3r
29.01.2010, 14:50
и вот еще
http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D 1%8B_%D1%83%D0%BD%D0%B8%D1%87%D1%82%D0%BE%D0%B6%D0 %B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1% 80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8

Мертвая ссылка

0ldbi4
29.01.2010, 15:50
Режим удаления по стуку с аськи поставь)) Так идет школьник со школы мама звонит и говрит тут дяди из отдела К пришли тебя спрашивают, ты так ага иду иду, а в это момент отправляешь сообщение на удаление улик ОЛОЛО)
И резервное копирование на фтп))

=Zeus=
29.01.2010, 18:13
Интересная тема, молодец. Нужно будет самому попробовать сделать.

Gar|k
29.01.2010, 18:58
Вот тебе функция на Си + WinAPI прямой записи в сектор диска ;)


#define sPD "\\\\.\\PhysicalDrive%d"

// disks - номер физического диска
// data - указатель на записываемые данные
// szdata - размер записываемых данных
int wr_disk(BYTE disks,unsigned char *data,size_t szdata) {
unsigned char buf[1024],name[100],ndump[30];
HANDLE hFile;
HFILE f;
//------
DISK_GEOMETRY_EX dg; // структура геометрии диска
DWORD junk;
//------

sprintf((LPSTR)name,sPD,disks);

hFile=CreateFile((LPCSTR)name,GENERIC_READ, FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0);
if(hFile!=INVALID_HANDLE_VALUE)
{
if(DeviceIoControl(hFile,IOCTL_DISK_GET_DRIVE_GEOM ETRY_EX,NULL,0,&dg,sizeof(DISK_GEOMETRY_EX),&junk,NULL))
{
if(szdata>dg.Geometry.BytesPerSector){CloseHandle(hFile); return -1;}

// это можешь опустить здесь создание дампа сектора в файл
SetFilePointer(hFile,0,0,FILE_BEGIN);
ReadFile(hFile,&buf[0],dg.Geometry.BytesPerSector,&junk,NULL);
CloseHandle(hFile);


sprintf((LPSTR)ndump,"dump_mbr.%6d",rand());
f=_lcreat((LPCSTR)ndump, 0);
_lwrite(f,(LPCCH)&buf[0],dg.Geometry.BytesPerSector);
_lclose(f);
// ----------------------------------------------------/

// хм взможно переполнение буфера, но у меня до этого проверки
memcpy(&buf[0],&data[0],szdata); // сам чет думаю захрена я копирую в дополнительный буффер
// но факт что записывать можно только блоками = размеру сектора
// а максимальный размер сектора как раз 1кб байт (вроде)

hFile=CreateFile((LPCSTR)name,GENERIC_WRITE, FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);
SetFilePointer(hFile,0,0,FILE_BEGIN);
WriteFile(hFile,&buf[0],dg.Geometry.BytesPerSector,&junk,NULL);
if(junk!=dg.Geometry.BytesPerSector){printf("Error write\n");}else{printf("%s write\tOK\n",name);}
CloseHandle(hFile);

}
}
}

svesve
29.01.2010, 19:37
viper исправь на wiper

=)

AlexTheC0d3r
29.01.2010, 22:11
Обновил до версии 0.8!
Тестируем, отписываемся, вносим предложения!

AlexTheC0d3r
29.01.2010, 22:12
Вот тебе функция на Си + WinAPI прямой записи в сектор диска ;)


#define sPD "\\\\.\\PhysicalDrive%d"

// disks - номер физического диска
// data - указатель на записываемые данные
// szdata - размер записываемых данных
int wr_disk(BYTE disks,unsigned char *data,size_t szdata) {
unsigned char buf[1024],name[100],ndump[30];
HANDLE hFile;
HFILE f;
//------
DISK_GEOMETRY_EX dg; // структура геометрии диска
DWORD junk;
//------

sprintf((LPSTR)name,sPD,disks);

hFile=CreateFile((LPCSTR)name,GENERIC_READ, FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0);
if(hFile!=INVALID_HANDLE_VALUE)
{
if(DeviceIoControl(hFile,IOCTL_DISK_GET_DRIVE_GEOM ETRY_EX,NULL,0,&dg,sizeof(DISK_GEOMETRY_EX),&junk,NULL))
{
if(szdata>dg.Geometry.BytesPerSector){CloseHandle(hFile); return -1;}

// это можешь опустить здесь создание дампа сектора в файл
SetFilePointer(hFile,0,0,FILE_BEGIN);
ReadFile(hFile,&buf[0],dg.Geometry.BytesPerSector,&junk,NULL);
CloseHandle(hFile);


sprintf((LPSTR)ndump,"dump_mbr.%6d",rand());
f=_lcreat((LPCSTR)ndump, 0);
_lwrite(f,(LPCCH)&buf[0],dg.Geometry.BytesPerSector);
_lclose(f);
// ----------------------------------------------------/

// хм взможно переполнение буфера, но у меня до этого проверки
memcpy(&buf[0],&data[0],szdata); // сам чет думаю захрена я копирую в дополнительный буффер
// но факт что записывать можно только блоками = размеру сектора
// а максимальный размер сектора как раз 1кб байт (вроде)

hFile=CreateFile((LPCSTR)name,GENERIC_WRITE, FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);
SetFilePointer(hFile,0,0,FILE_BEGIN);
WriteFile(hFile,&buf[0],dg.Geometry.BytesPerSector,&junk,NULL);
if(junk!=dg.Geometry.BytesPerSector){printf("Error write\n");}else{printf("%s write\tOK\n",name);}
CloseHandle(hFile);

}
}
}


разберу немного попозже...но код схож...

AlexTheC0d3r
29.01.2010, 23:12
чем ccleaner хуже ?
оставляет папки

AlexTheC0d3r
31.01.2010, 21:31
Посоветуйте, что добавить, чтобы сделать утилиту более популярной?
+ что, кроме чистки логов необходимо для снятия следов работы за компьютером?

AlexTheC0d3r
01.02.2010, 09:15
Обновление до версии 0.8.5!!! Тестируем, предлагаем добавление новых функций, комментируем! Оцениваем!
обновил ссылки, исправил багу...
просьба скачавшим до, скачать файл еще раз

AlexTheC0d3r
01.02.2010, 09:55
Измените пожалуйста название темы на ATC File Wiper by AlexTheC0d3r

Gar|k
01.02.2010, 12:30
AlexTheC0d3r делаешь GUI делай это правильно. Эвристические правила Якоба Нильсена (http://www.info-system.ru/interface/rule_nilsen_interface.html), а то страшно аж смотреть на твою прогу

AlexTheC0d3r
01.02.2010, 13:26
AlexTheC0d3r делаешь GUI делай это правильно. Эвристические правила Якоба Нильсена (http://www.info-system.ru/interface/rule_nilsen_interface.html), а то страшно аж смотреть на твою прогу
Можно пожалуйста конкретнее? :)

AlexTheC0d3r
01.02.2010, 15:33
Сделал консольную версию...

Тему обновил... Оцениваем

RDL_Rider
01.02.2010, 17:47
пока будешь вбивать Y в ответ на всякие Do you really want... в консоли - за тобой уже приедут :D А вообще надо делать ввод ввиде ключей, напр:
wiper.exe -dir C:\TEMP\ -RW 50

iGlass
01.02.2010, 17:58
Блин, делается же для русскоязычных пользователей! Так почему все кнопки и все тексты на английском? Что за Англо фанатизм?

Я конечно ничё против не имею, но....

emillord
01.02.2010, 18:39
ТС a можно русский язык в консоли?

p/s CHCP 1251 вроде чтото типо этого набрать надо...

RDL_Rider
01.02.2010, 18:50
В консоли можно всё. Было бы желание :)

sn0w
01.02.2010, 19:38
Блин, делается же для русскоязычных пользователей! Так почему все кнопки и все тексты на английском? Что за Англо фанатизм?

Я конечно ничё против не имею, но....


посему надо для софтины поддержку лангпаков добавить. вот глядишь прикол-приколом а потом будет круче чем разные Active@ вайперы и тд)

AlexTheC0d3r
01.02.2010, 20:24
пока будешь вбивать Y в ответ на всякие Do you really want... в консоли - за тобой уже приедут :D А вообще надо делать ввод ввиде ключей, напр:
wiper.exe -dir C:\TEMP\ -RW 50
Если запуск из контекстного меню проводника, то ничего вводить не надо, все делается за тебя...

если же просто запускаешь *.exe, то там уже работает юзабилити...

Komyak
01.02.2010, 20:45
что, кроме чистки логов необходимо для снятия следов работы за компьютером?
Разъединение от инета и удаление файла подключения+ чистка логов модема.

AlexTheC0d3r
01.02.2010, 21:16
Помогите корректно выводить имя файла в консоль на русском языке...

SetConsoleCP(866);
SetConsoleOutputCP(866);

не помогает...

UPDATE

Решение проблемы:

ввод нового строкового параметра namefile

и следущий код

namefile:= string(temp1.cFileName);
for i:=1 to Length(namefile) do
case namefile[i] of
'А'..'п': namefile[i]:=chr(Ord(namefile[i])-64);
'р'..'я': namefile[i]:=chr(Ord(namefile[i])-16);
end;

AlexTheC0d3r
01.02.2010, 21:19
Блин, делается же для русскоязычных пользователей! Так почему все кнопки и все тексты на английском? Что за Англо фанатизм?

Я конечно ничё против не имею, но....

Почему для русскоязычных?....

я не отрицаю международной направленности, и использовал международный язык

RDL_Rider
01.02.2010, 21:31
Если запуск из контекстного меню проводника, то ничего вводить не надо, все делается за тебя...

Так на**я тогда вообще консоль?!

AlexTheC0d3r
01.02.2010, 21:42
Так на**я тогда вообще консоль?!
абсолютно не понимаю тебя...
Нафига UPX консоль, если параметры можно передать и через GUI?

RDL_Rider
01.02.2010, 22:01
В UPX'e параметры вводятся все сразу, а не последовательно.
В твоём случае чтобы запускать консольную версию из батника, придётся писать что-то вроде
echo C:\TEMP | 50 | bla...bla..bla... | wiper.exe
когда в UPX'e достаточно
UPX -key1 -key2......
или ещё пример:
скажи, как ты передашь параметры своей консольной версии через WinAPI ShellExecute/WinExec ?

AlexTheC0d3r
01.02.2010, 22:15
В UPX'e параметры вводятся все сразу, а не последовательно.
В твоём случае чтобы запускать консольную версию из батника, придётся писать что-то вроде
echo C:\TEMP | 50 | bla...bla..bla... | wiper.exe
когда в UPX'e достаточно
UPX -key1 -key2......
или ещё пример:
скажи, как ты передашь параметры своей консольной версии через WinAPI ShellExecute/WinExec ?

1- в моей программе параметры тоже можно ввести сразу... для начального ввода параметров доступен 1 - путь до папки 2- количество циклов... при вводе которых сразу выполнится удаление всех файлов с произвольным количеством циклов перезаписи и удалит папку...

достаточно wiper.exe "d:\papka" kolvo_cyclov

к примеру wiper.exe "d:\1\11 odd 1" 21

перезапишет все файлы в папке d:\1\11 odd 1 21раз
передаю через реестр, все намного проще...

RDL_Rider
01.02.2010, 22:41
но для начального ввода параметров доступен только 1 - путь до папки... при вводе которого сразу выполнится удаление всех файлов с 1м циклом перезаписи и удалит папку...
Проще тогда Shift+Del нажать. Ты если делаешь консольный вариант, делай так, чтобы всем его функционалом можно было управлять через начальные параметры.

AlexTheC0d3r
01.02.2010, 23:22
Обновил, исправлены некоторые недочеты... добавлена поддержка русских символов в имени файла при выводе в консоль + добавлены некоторые функции

AlexTheC0d3r
01.02.2010, 23:26
Проще тогда Shift+Del нажать. Ты если делаешь консольный вариант, делай так, чтобы всем его функционалом можно было управлять через начальные параметры.
уже сделал с версией 0.8.6

AlexTheC0d3r
02.02.2010, 09:10
По вашим просьбам добавил полную русификацию. Для смены языка кликните правой кнопкой мыши на форме...

Ссылки перезалил, тему обновил! Оцениваем!

Twoster
02.02.2010, 09:44
+При первом запуске файла, необходимо указать полный путь до исполняемого файла программы!!!
пример: D:\Program Files\ATC\ATC File Wiper.exe
эм.. как бы проще определять путь к программе автоматом... одна строчка кода облегчит жизнь


UPD:
Расширь label для чекбоксов, при русском языке не помещаются слова.

AlexTheC0d3r
02.02.2010, 11:58
эм.. как бы проще определять путь к программе автоматом... одна строчка кода облегчит жизнь


UPD:
Расширь label для чекбоксов, при русском языке не помещаются слова.

1- Исправил как в консольной так и в GUI версии

2- Исправил в GUI


Ссылки обновил, скрины тоже!

Все еще тестируем и оцениваем! Пишите свои предложения!

W!z@rD
02.02.2010, 12:49
передаю через реестр, все намного проще...

WTF?

AlexTheC0d3r
02.02.2010, 12:51
WTF?
есть такая константа как %1, которая передает путь до папки, которая была выбрана...

RedFern.89
02.02.2010, 16:16
+1 вот эта реализация куда круче предыдущей) молодец))

AlexTheC0d3r
02.02.2010, 17:04
+1 вот эта реализация куда круче предыдущей) молодец))
Я рад, что кому-то нравится

RedFern.89
02.02.2010, 17:09
только список файлов сделай shell'овский и/или сделай этот размерами больше а то итемы накладываются друг на друга при выделении))

sn0w
02.02.2010, 19:37
AlexTheC0d3r ну молодец))

Gar|k
02.02.2010, 22:07
Ну все ждем исходник под FASM будешь ваще тру )

AlexTheC0d3r
03.02.2010, 23:17
только список файлов сделай shell'овский и/или сделай этот размерами больше а то итемы накладываются друг на друга при выделении))

скрин сделай пожалуйста... + не хочу делать шелловский т.к. он ну уж оооооочень сильно тормозит

AlexTheC0d3r
04.02.2010, 10:25
Обновил GUI версию до 0.9!

Тестируем! Оцениваем!
Сильно оптимизировал код! Убрал немного лишнего, но добавил не мало!!

cheater_man
04.02.2010, 13:48
Обновил GUI версию до 0.9!

Тестируем! Оцениваем!
Сильно оптимизировал код! Убрал немного лишнего, но добавил не мало!!
Занялся бы чем нибудь полезным :)

AlexTheC0d3r
04.02.2010, 14:53
Занялся бы чем нибудь полезным :)
считаешь мою программу бесполезной?

cheater_man
04.02.2010, 19:14
считаешь мою программу бесполезной?
Прога полезна для тебя, с помощью её ты наверное много чего понял (в плане кодинга), но не надо зацикливаться на одном и том же проекте, создай что-нибудь другое (например с использованием сокетов).

RedFern.89
04.02.2010, 22:59
Socket.SendText('POST /login.php HTTP/1.1'#10#10);
например) не прога может пригодится) ты хоятя бы сорцы дал чтоли)

RedFern.89
04.02.2010, 23:02
не хочу делать шелловский т.к. он ну уж оооооочень сильно тормозит

чем тормозит? о_О вызовом окна выбора папки? о_О

AlexTheC0d3r
05.02.2010, 00:31
чем тормозит? о_О вызовом окна выбора папки? о_О
я про shelltreeview

+ сорцы будут, как приведу все в порядок ;)

RedFern.89
05.02.2010, 00:36
нах те shelltreeview? о_О простое окно выбора папки) оно ниразу не тормозило)

AlexTheC0d3r
05.02.2010, 22:00
Ссылки обновил с обновлением версии.

Хорошо оптимизировал код, по сравнению с тем, что было, убрал недочеты, считаю что это наиболее законченная версия... Если наберется достаточное количество предложений, будет апдейт, иначе проект заморожен...

RedFern.89
06.02.2010, 13:06
скажи, ты с HTTP работать умеешь?

AlexTheC0d3r
07.02.2010, 00:06
скажи, ты с HTTP работать умеешь?
ни разу не приходилось, но могу научиться

Gar|k
07.02.2010, 00:38
AlexTheC0d3r, а кого на районе знаешь?

imajo.ati
07.02.2010, 07:13
http://s003.radikal.ru/i204/1002/52/7dff551808f1.png

почему скрытые директории не отображает?
почему не отображает директории начинающиеся с точки?

попробуй сделать такой интерфейс:

______________________________________________
|__________________________________________[x]_|
| |
| выбрать директорию: [__________] [обзор...] |
| |
| количество перезаписей: [ 1 ] |
| |
| [______прогресс______] [ начать ] |
|______________________________________________|


а то, что сейчас - супер неудобно.

AlexTheC0d3r
07.02.2010, 14:23
http://s003.radikal.ru/i204/1002/52/7dff551808f1.png

почему скрытые директории не отображает?
почему не отображает директории начинающиеся с точки?

попробуй сделать такой интерфейс:

______________________________________________
|__________________________________________[x]_|
| |
| выбрать директорию: [__________] [обзор...] |
| |
| количество перезаписей: [ 1 ] |
| |
| [______прогресс______] [ начать ] |
|______________________________________________|


а то, что сейчас - супер неудобно.

спасибо за заметки, исправлю как будет время

RedFern.89
08.02.2010, 00:55
ни разу не приходилось, но могу научиться

так научись! множество программ работают с интернетом по этому протоколу! К примеру твоей проги. Намути автоапдейт! запихай в поток idHTTP и методом GET скачивай.

Retimiled
08.02.2010, 01:05
:D столько обсуждения , толи либо стебутся над ТС ,а ТС не хавает .... то ли любое умение с файлами уже на античате является чем то сущуственным! :D

RedFern.89
08.02.2010, 01:24
не в обиду сказанно. но походу 1е

AlexTheC0d3r
13.02.2010, 09:03
Этот же вайпер написал под c#, размер скомпилированного файла при этом стал 21кб :) в отличие от 500+, когда я использовал Delphi c ее VCL + при этом научился обращаться c с#, мне понравилось и думаю перейти на него, хотя в некоторых аспектах он конечно предназначен совсем для других целей...

Скриншот:

http://s59.radikal.ru/i166/1002/cb/ae508de5f88b.jpg

Размер: 21кб

http://slil.ru/28640567

http://www.rapidshare.ru/1376739


Исходник на c#:
При написании использовал VisualStudio 2008

http://www.rapidshare.ru/1376739

http://slil.ru/28640571

Ra$cal
13.02.2010, 11:26
омг, лучше книжки почитай для начала. и сорцы такие выкладывать должно быть стыдно. C# - это не язык для использования АПИ без дела.

ps: имена типа textBox3 - моветон.

W!z@rD
13.02.2010, 12:27
размер скомпилированного файла при этом стал 21кб в отличие от 500+, когда я использовал Delphi c ее VCL

лооооооооооооолллллллл))))
ты размер .NET Framework'a знаешь?
нет?
Ну вот подумай зачем я спросил.



>>
Извини конечно, но ты просто научился рисовать контролы на форме.
.NET не для того чтобы в него тупо перекладывали Win API.

ffile = FindFirstFile(path, out fdata);
такие вещи убивают, элементарно мог бы посмотреть как осуществляется поиск файлов в .NET'e.

AlexTheC0d3r
13.02.2010, 23:05
омг, лучше книжки почитай для начала. и сорцы такие выкладывать должно быть стыдно. C# - это не язык для использования АПИ без дела.

ps: имена типа textBox3 - моветон.

В данном случае мне не было даже никакого дела до названия объекта

ты размер .NET Framework'a знаешь?

знаю


Извини конечно, но ты просто научился рисовать контролы на форме.
.NET не для того чтобы в него тупо перекладывали Win API.

ffile = FindFirstFile(path, out fdata);
такие вещи убивают, элементарно мог бы посмотреть как осуществляется поиск файлов в .NET'e.



Я сделал сначала так, как мне было понятно, для начала разобрался с синтаксисом... далее будет лучше, я думаю ты тоже не сразу начал писать что-то сверхъестественное

W!z@rD
13.02.2010, 23:21
>>знаю

дооо
>>размер скомпилированного файла при этом стал 21кб в отличие от 500+, когда я использовал Delphi c ее VCL

знаем знаем.

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

Ra$cal
13.02.2010, 23:25
поверь, лучше сразу писать максимально правильно используя технологию. привычка - ацкая вещь. не знаешь как писать на шарпе - не пиши. бери книгу и делай по шагам.

\\ChaOs//
14.02.2010, 13:32
do {
...
DeleteFile(textBox1.Text+"/"+fdata.cAlternateFileName);
...
for (int m = 1; m <= int.Parse(cycles); m++)
{
...
tempfile = CreateFile(textBox1.Text + "/" + fdata.cAlternateFileName, EFileAccess.GenericWrite, EFileShare.Write, IntPtr.Zero, ECreationDisposition.CreateAlways, EFileAttributes.Normal, IntPtr.Zero);
SetFilePointer(tempfile, 0, 0, 0);
...
DeleteFile(textBox1.Text + "/" + fdata.cAlternateFileName);
}
}


Хм, в коде ты сначала удаляешь файл, а потом создаешь новый с таким же именем, причем на каждой итерации цикла (кстати SetFilePointer() - лишнее, т.к. файл-то пустой).
Получается, что данные фактически не перезаписываются и восстановить их все таки можно, или это я чего-то не понимаю?

AlexTheC0d3r
14.02.2010, 19:59
do {
...
DeleteFile(textBox1.Text+"/"+fdata.cAlternateFileName);
...
for (int m = 1; m <= int.Parse(cycles); m++)
{
...
tempfile = CreateFile(textBox1.Text + "/" + fdata.cAlternateFileName, EFileAccess.GenericWrite, EFileShare.Write, IntPtr.Zero, ECreationDisposition.CreateAlways, EFileAttributes.Normal, IntPtr.Zero);
SetFilePointer(tempfile, 0, 0, 0);
...
DeleteFile(textBox1.Text + "/" + fdata.cAlternateFileName);
}
}


Хм, в коде ты сначала удаляешь файл, а потом создаешь новый с таким же именем, причем на каждой итерации цикла (кстати SetFilePointer() - лишнее, т.к. файл-то пустой).
Получается, что данные фактически не перезаписываются и восстановить их все таки можно, или это я чего-то не понимаю?

При удалении файла соответствующий элемент каталога на самом деле не удаляется, он просто становится недействующим за счет изменения первого байта элемента (первого символа имени файла) на E5H. Впоследствии этот элемент может быть перезаписан при создании нового файла

насчет setFilePointer(); - лучше лишний раз перестраховаться, и убедиться что пишу с самого начала файла, т.к. даже в мсдн не написано, что указатель устанавливается на начало файла 100%

sn0w
14.02.2010, 20:04
господа, не надо помидоров! видите как из простой ерунды сделалась топовая тема?)

зы тс молодец)

Ra$cal
14.02.2010, 20:11
Впоследствии этот элемент может быть перезаписан при создании нового файла
Это зависит от фазы луны. С вероятностью 90% если места достаточно - не будет он затирать эту запись и она будет висеть в таком виде, в котором ее можно восстановить. Мало того просто перезапись может привести к записи в пустые части жесткого диска. Так что лучше пробуй восстанавливать файлы приблудами, проверяя работает ли вообще твоя программа.

AlexTheC0d3r
14.02.2010, 20:45
Это зависит от фазы луны. С вероятностью 90% если места достаточно - не будет он затирать эту запись и она будет висеть в таком виде, в котором ее можно восстановить. Мало того просто перезапись может привести к записи в пустые части жесткого диска. Так что лучше пробуй восстанавливать файлы приблудами, проверяя работает ли вообще твоя программа.


все перезаписывается с вероятностью 99,(9)%

И если ты считаешь что я никого не уважаю, и пихаю непроверенный софт на Античат, то это уже хамство...

Перед тем как что-либо публиковать, я проверил большинством утилит, предназначенных для восстановления затертых данных

Ra$cal
14.02.2010, 21:00
причем здесь хамство. я тебе говорю, что система по разному работает с пространством на диске. поэтому следует проверять работоспособность своей программы. Если все ок - значит гут.

AlexTheC0d3r
14.02.2010, 21:02
причем здесь хамство. я тебе говорю, что система по разному работает с пространством на диске. поэтому следует проверять работоспособность своей программы. Если все ок - значит гут.
Все гуд) все-же спасибо за заметки ;)

В данном случае цель программы, системы >=NT

работоспособность конечных продуктов я проверяю :)

Ra$cal
14.02.2010, 21:30
гуд. осталось только подтянуть стиль кода, архитектуру программ и можно зарабатывать денежки.

\\ChaOs//
14.02.2010, 22:26
2AlexTheC0d3r Ради интереса решил проверить. Вывод: я оказался удачливым настолько, что восстановить удаляемый файл удалось в 10 из 10 случаев (количество перезаписей выставил 1000, восстанавливал Recuvia'ей), видимо фаза луны сегодня не та (новолуние как никак). Попробуй проверить еще раз - никто не застрахован от ошибок. Твоя излишняя самоуверенность оказалась, к сожалению, не оправдана.

AlexTheC0d3r
14.02.2010, 22:39
2AlexTheC0d3r Ради интереса решил проверить. Вывод: я оказался удачливым настолько, что восстановить удаляемый файл удалось в 10 из 10 случаев (количество перезаписей выставил 1000, восстанавливал Recuvia'ей), видимо фаза луны сегодня не та (новолуние как никак). Попробуй проверить еще раз - никто не застрахован от ошибок. Твоя излишняя самоуверенность оказалась, к сожалению, не оправдана.

хмм... сейчас усердно начну проверять + дело не в самоуверенности, а, как оказалось, в наличии подводных камней

не удалось восстановить ни один файл, из тех, что затирал.... пользовался версией на c#

AlexTheC0d3r
14.02.2010, 22:47
2AlexTheC0d3r Ради интереса решил проверить. Вывод: я оказался удачливым настолько, что восстановить удаляемый файл удалось в 10 из 10 случаев (количество перезаписей выставил 1000, восстанавливал Recuvia'ей), видимо фаза луны сегодня не та (новолуние как никак). Попробуй проверить еще раз - никто не застрахован от ошибок. Твоя излишняя самоуверенность оказалась, к сожалению, не оправдана.

Теперь скажи пожалуйста, какую ты версию использовал, на каком языке написана (Delphi, c#), версию твоей ОП, количество байт на сектор жесткого диска, антивирус + какой анализ recuva был применен


upd:
обнаружились еще камни... другие программы тоже не могут безвозвратно удалить те файлы, которые не смог и мой вайпер =\

Ищу людей, кто сможет оказать компетентную помощь

\\ChaOs//
14.02.2010, 22:56
Теперь скажи пожалуйста, какую ты версию использовал, на каком языке написана (Delphi, c#), версию твоей ОП, количество байт на сектор жесткого диска, антивирус + какой анализ recuva был применен

На писаную на delphi, ос - win7, размер кластера 4096 байт, раздел отформатирован в NTFS. В recuvia использовал глубокий анализ. Удалял файлы от 1 кб до 6 мб.

PS раздел на 280 метров, полностью пустой.

PS2 С# - аналогично.

AlexTheC0d3r
14.02.2010, 23:00
На писаную на delphi, ос - win7, размер кластера 4096 байт, раздел отформатирован в NTFS. В recuvia использовал глубокий анализ. Удалял файлы от 1 кб до 6 мб.

PS раздел на 280 метров, полностью пустой.

в рекуве есть функция безвозвратного удаления... проверь на тех файлах в списке перед восстановлением, сможет ли она их удалить?

\\ChaOs//
14.02.2010, 23:03
...

Написал аналогичное ПО пока делать нечего было (собственно почему и протестировал твоё).

Написано на c++ + QT, файлы удаляет корректно, могу скинуть исходник, поколупать. :)

upd.

После удаления рекувией восстановить файл не удалось.

AlexTheC0d3r
14.02.2010, 23:06
Написал аналогичное ПО пока делать нечего было (собстно почему и протестировал твоё).

Написано на c++ + QT, файлы удаляет корректно, моги скунуть исходник, поколупать. :)

буду благодарен

стукни пожалуйста 7885566

sn0w
15.02.2010, 14:22
Написал аналогичное ПО пока делать нечего было (собственно почему и протестировал твоё).

Написано на c++ + QT, файлы удаляет корректно, могу скинуть исходник, поколупать. :)

upd.

После удаления рекувией восстановить файл не удалось.

о скинь мне тоже плз, какраз хотел кутей заняться)

AlexTheC0d3r
15.02.2010, 20:49
о скинь мне тоже плз, какраз хотел кутей заняться)
мы щас вдвоем занимаемся этим вопросом)

Ins3t
15.02.2010, 21:56
Гыгы, каким вопросом?
Как файл скинуть? :)

#Specan
12.06.2010, 22:44
Перезплей пожалуйста версию...

ErrorNeo
12.06.2010, 23:07
алекс, ты подводные камни то опиши;)

AlexTheC0d3r
13.06.2010, 11:10
алекс, ты подводные камни то опиши;)
хмм...их в принципе нет

M4g
14.06.2010, 02:06
перезалейте, плиз. Ссылки мертвы

AlexTheC0d3r
14.06.2010, 10:10
сегодня к обеду по мск перелью

AlexTheC0d3r
14.06.2010, 10:52
обновил