Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   ATC File Wiper by AlexTheC0d3r (https://forum.antichat.xyz/showthread.php?t=174279)

AlexTheC0d3r 29.01.2010 00:00

ATC File Wiper by AlexTheC0d3r
 
[IMG]
Обновление! V1.0 + Console! +Source
C# версия https://forum.antichat.ru/showpost.php?p=1898379&postcount=69


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

Цитата:

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

[GUI]

*Скрины:

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.*

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

[/GUI]

[Console]

*Скрины:

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)

[/Console]


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

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

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

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

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

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

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

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

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

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

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

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



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




*Ссылки

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


[GUI]

[*] Сжатые UPX:

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

[/GUI]



[Console]

[*] Сжатые UPX:

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

[/Console]




*Source


[GUI]

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

[/GUI]



[Console]


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

[/Console]

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

Цитата:

Сообщение от Retimiled
надеюсь пишешь плотненько по всему размеру файла?

да

AlexTheC0d3r 29.01.2010 08:38

Цитата:

Сообщение от W!z@rD
сделать скрин активного окна можно нажатием 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

Цитата:

Сообщение от sn0w
и вот еще
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_GEOMETRY_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

Цитата:

Сообщение от Gar|k
Вот тебе функция на Си + 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_GEOMETRY_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

Цитата:

Сообщение от shell_c0de
чем 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 делай это правильно. Эвристические правила Якоба Нильсена, а то страшно аж смотреть на твою прогу

AlexTheC0d3r 01.02.2010 13:26

Цитата:

Сообщение от Gar|k
AlexTheC0d3r делаешь GUI делай это правильно. Эвристические правила Якоба Нильсена, а то страшно аж смотреть на твою прогу

Можно пожалуйста конкретнее? :)

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

Цитата:

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

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


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

AlexTheC0d3r 01.02.2010 20:24

Цитата:

Сообщение от RDL_Rider
пока будешь вбивать 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

Цитата:

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

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

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

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

RDL_Rider 01.02.2010 21:31

Цитата:

Сообщение от AlexTheC0d3r
Если запуск из контекстного меню проводника, то ничего вводить не надо, все делается за тебя...

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

AlexTheC0d3r 01.02.2010 21:42

Цитата:

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

абсолютно не понимаю тебя...
Нафига 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

Цитата:

Сообщение от RDL_Rider
В 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

Цитата:

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

уже сделал с версией 0.8.6


Время: 04:56