![]() |
|
|
#1 |
|
Участник
Регистрация: 07.02.2005
Сообщений: 632
ICQ: 4888488 Репутация: 55
|
РАБОТА С СЕТЬЮ
Спрашиваем\отвечаем.Все вопросы по взаимодействию с интернетов в ваших программах.Список будет пополняться новыми решениями\кодами ...Особо большой код выкладывать в аттаче...
( файл ftp.txt )
Код:
uses SHELLAPI;
procedure AutoSendMail;
var
EMailDestinationString, SubjectString, Line1String, Line2String, mailstring: string;
begin
EMailDestinationString := 'gbamber@bamber.com';
SubjectString := 'Message Subject';
Line1String := 'This is the first line';
Line2String := 'This is the second line'; // Можно использовать несколько адресов, разделяя их точкой с запятой
mailstring := 'mailto:' + EMailDestinationString + '?subject=' + SubjectString + '&body=' + Line1String + '%0d' + Line2String;
if (ShellExecute(0, 'open', PChar(mailstring), '', '', SW_SHOWNORMAL) <= 32)
then
ShowMessage('Auto method failed.');
end;
Пишем письмо незаметно от пользователя по протоколу SMTP (файл mail1.txt) И еще разок незаметно (создайте как отдельный модуль) (файл mail2.txt)
узнаем свой айпи ) Код:
uses WinSock; function GetLocalIP: String; const WSVer = $101; var wsaData: TWSAData; P: PHostEnt; Buf: array [0..127] of Char; begin Result := ''; if WSAStartup(WSVer, wsaData) = 0 then begin if GetHostName(@Buf, 128) = 0 then begin P := GetHostByName(@Buf); if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^); end; WSACleanup; end; end; Получаем ip из host Код:
uses WinSock; const WINSOCK_VERSION = $0101; function GetIPAddress(name: string): string; var WSAData: TWSAData; p: PHostEnt; begin WSAStartup(WINSOCK_VERSION, WSAData); p := GetHostByName(PChar(name)); Result := inet_ntoa(PInAddr(p.h_addr_list^)^); WSACleanup; end; Кстати можно еще вот так Код:
function HostToIP(Name: string): String;
var
wsdata : TWSAData;
hostName: array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
Result:= '';
WSAStartup($0101, wsdata);
try
GetHostName(HostName, SizeOf(hostName));
StrPCopy(hostName, Name);
hostEnt:= gethostbyname(hostName);
if not Assigned(hostEnt ) then Exit;
if not Assigned(hostEnt^.h_addr_list) then exit;
addr:= hostEnt^.h_addr_list^;
if not Assigned(addr ) then Exit;
Result:= Format('%d.%d.%d.%d', [Ord(addr[0]), Ord(addr[1]), Ord(addr[2]), Ord(addr[3])]);
finally
WSACleanup;
end
end;
Код:
uses wininet;
function CheckUrl(url: string): boolean;
var
hSession, hfile, hRequest: hInternet;
dwindex, dwcodelen: dword;
dwcode: array [1..20] of char;
res: pchar;
begin
if pos('http://', lowercase(url)) = 0 then
url := 'http://'+url;
Result := false;
hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if assigned(hsession) then
begin
hfile := InternetOpenUrl(hsession, pchar(url), nil, 0, INTERNET_FLAG_RELOAD, 0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
res := pchar(@dwcode);
result := (res = '200') or (res = '302');
if assigned(hfile) then
InternetCloseHandle(hfile);
InternetCloseHandle(hsession);
end;
end;
Код:
type
TRasConn = record
Size: DWORD;
Handle: THandle;
Name: array[0..20] of AnsiChar;
end;
TRasEnumConnections = function(var RasConn: TRasConn; var Size: DWORD;
var Connections: DWORD): DWORD stdcall;
TRasHangUp = function(Handle: THandle): DWORD stdcall;
function DisconnectDialUp: Boolean;
var
Lib: HINST;
RasEnumConnections: TRasEnumConnections;
RasHangUp: TRasHangUp;
RasConn: TRasConn;
Code, Size, Connections: DWORD;
begin
Result := True;
try
Lib := LoadLibrary('rasapi32.dll');
try
if Lib = 0 then
Abort;
RasEnumConnections := GetProcAddress(Lib, 'RasEnumConnectionsA');
if not Assigned(@RasEnumConnections) then
Abort;
RasHangUp := GetProcAddress(Lib, 'RasHangUpA');
if not Assigned(@RasHangUp) then
Abort;
FillChar(RasConn, SizeOf(RasConn), 0);
RasConn.Size := SizeOf(RasConn);
Code := RasEnumConnections(RasConn, Size, Connections);
if (Connections <> 1) or (Code <> 0) then
Abort;
if RasHangUp(RasConn.Handle) <> 0 then
Abort;
Sleep(3000);
finally
FreeLibrary(Lib);
end;
except
on E: EAbort do
Result := False;
else
raise;
end;
end;
Пример использования:
if DisconnectDialUp = true then
ShowMessage('Соединение разорвано')
else
ShowMessage('Не удалось разорвать соединение');
Набираем номер модемом Код:
var
hCommFile: THandle;
procedure TForm1.Button1Click(Sender: TObject);
var
PhoneNumber: string;
CommPort: string;
NumberWritten: LongInt;
begin
PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10;
CommPort := 'COM2';
{Open the comm port}
hCommFile := CreateFile(PChar(CommPort), GENERIC_WRITE, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if hCommFile=INVALID_HANDLE_VALUE then
begin
ShowMessage('Unable to open '+ CommPort);
exit;
end;
NumberWritten:=0;
if WriteFile(hCommFile, PChar(PhoneNumber)^, Length(PhoneNumber),
NumberWritten, nil) = false then
ShowMessage('Unable to write to ' + CommPort);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
{Close the port}
CloseHandle(hCommFile);
end;
__________________
cup.[SU] Последний раз редактировалось gemaglabin; 29.09.2005 в 20:48. |
|
|
|
|
#2 |
|
Участник
Регистрация: 07.02.2005
Сообщений: 632
ICQ: 4888488 Репутация: 55
|
Ап!Тема должна быть интересна многим
__________________
cup.[SU] |
|
|
|
|
#3 | ||||
|
Участник
Регистрация: 03.11.2005
Сообщений: 16
Репутация: 1
|
Ну Ап так Ап :)
вот насканикл у себя в сети Цитата:
Цитата:
Цитата:
Цитата:
вот в общем и всё... если из того что я показал можно сделать что то, то буду рад помощи
__________________
connect 4275274 |
||||
|
|
|
|
#4 |
|
Археолог
Регистрация: 03.08.2010
Сообщений: 962
ICQ: 574454445 Репутация: 2187
|
Уязвимость в функции glob()
Ошибка в реализации библиотечной функции glob() из стандартной библиотеки языка C (libc). PHP код:
Опасность представляет для (S)FTP-серверов, особенно с разрешенным анонимным доступом. Уязвимости подвержены, следующие ОС: OpenBSD 4.7, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC.
__________________
n3kt0 и Я, разные люди! Они даже между собой не разговаривают друг о друге. ![]() |
|
|
|
|
#5 |
|
Археолог
Регистрация: 03.08.2010
Сообщений: 962
ICQ: 574454445 Репутация: 2187
|
Метод взлома, основанный на glibc.
Подвержены Linux-системы, на которых установлена glibc версии 2.4 и выше. Дистрибутивы OpenWall и Alt Linux не подвержены атаке, потому что у них установлен патч sanitize-env. Уязвимость: уязвимости — неправильные проверки при динамическом связывании в режиме LD_AUDIT библиотек с исполняемыми файлами, для которых установлены suid/sgid. Система должна блокировать LD_PRELOAD для загрузки из нестандартных областей файловой системы (/lib, /usr/lib), но этот случай исключение. Исключение из правил для функции LD_AUDIT, наличие которых и приводит к возможности осуществления атаки. При активации режима аудита через LD_AUDIT система связывания выполняет проверку на экспорт символов для всех указанных стандартных библиотек, выполняя вызов dlopen(), который подразумевает запуск процедуры инициализации библиотеки. Атаки при этом сводится к инициированию загрузки подставной библиотеки в пути запуска приложения, либо к использованию стандартных библиотек, неучитывающих фактор наличия флага suid/sgid (euid != uid). PHP код:
__________________
n3kt0 и Я, разные люди! Они даже между собой не разговаривают друг о друге. ![]() |
|
|
|
|
#6 | ||
|
Археолог
Регистрация: 03.08.2010
Сообщений: 962
ICQ: 574454445 Репутация: 2187
|
Уязвимость нулевого дня
Уязвимость позволяет удаленному пользователю выполнить произвольный код на целевой системе. Уязвимость существует из-за неизвестной ошибки, которая позволяет удаленному пользователю скомпрометировать целевую систему. Уязвимость имеется в: Adobe Flash Player 10.1.85.3 и более ранних версиях для ОС Windows, Macintosh, Linux и Solaris. Цитата:
Цитата:
Номер CVE: CVE-2010-3654 Решение: Удаление, переименование или удаление доступа к authplay.dll файлу, снизит угрозу или выведет сообщение об ошибке при открытии PDF-файла, содержащего содержимое Flash (SWF). Authplay.dll-поставляется вместе с Adobe Reader и Acrobat 9.x Для Windows Файл обычно расположен в каталоге C:\Program Files\Adobe\Reader 9.0(версия может быть другой)\Reader\authplay.dll для Adobe Acrobat C:\Program Files\Adobe\Acrobat 9.0(версия может быть другой)\Acrobat\authplay.dll Для Linux и Solaris Adobe Reader Reader9/Reader/intellinux/lib/ - для Linux Reader9/Reader/intelsolaris/lib/ - для Solaris. Удалить библиотеку с именем "libauthplay.so.0.0.0." Для Macintosh Удалить или переместить файл AuthPlayLib.bundle Рекомендации: отключить Flash Player для Adobe Reader и Acrobat. 9.11.2010 - будет выпущен патч. 15.11.2010 - ожидается обновление продуктов.
__________________
n3kt0 и Я, разные люди! Они даже между собой не разговаривают друг о друге. ![]() Последний раз редактировалось n3kt0; 23.01.2011 в 20:29. |
||
|
|
| Плюсанул n3kt0 : |
|
|
#7 |
|
Регистрация: 24.09.2004
Сообщений: 1,610
|
|
|
|